9

不久前,我试图暴力破解发送 12 位二进制“密钥”的遥控器。

我制作的设备可以工作,但速度很慢,因为它以每秒约 50 位的速度尝试每种组合(4096 个代码 = 49152 位 = 约 16 分钟)

我打开接收器,发现它正在使用移位寄存器来检查代码,并且尝试之间不需要延迟。这意味着接收器只是查看要接收的最后 12 位,以查看它们是否与密钥匹配。

这意味着如果流111111111111000000000000被发送,它已经有效地尝试了所有这些代码。

111111111111    111111111110    111111111100    111111111000
111111110000    111111100000    111111000000    111110000000
111100000000    111000000000    110000000000    100000000000
000000000000

在这种情况下,我使用 24 位来尝试 13 种 12 位组合(>90% 压缩)。

有谁知道可以利用这一点减少我发送的 49152 位的算法?

4

2 回答 2

13

您在说的是de Bruijn 序列。如果你不关心它是如何工作的,你只想要结果,这里是.

于 2009-01-30T16:30:49.410 回答
0

在我的脑海中,我想在每个 12 位序列中翻转一位会处理另外 13 种组合,例如 111111111101000000000010,然后是 1111111110110000000000100 等。但是你仍然需要做很多排列,即使我有一个位认为你仍然需要做 111111111101000000000100 等。然后在一侧翻转两位,在另一侧翻转 1,等等。

于 2009-01-30T16:13:41.427 回答