質問

しばらく前、私は12ビットのバイナリ「キー」を送信するリモコンにブルートフォースをかけようとしていました。

私が作成したデバイスは動作しましたが、すべての組み合わせを 1 秒あたり約 50 ビットで試行したため、非常に遅かったです (4096 コード = 49152 ビット = 約 16 分)。

受信機を開いたところ、コードをチェックするためにシフトレジスタが使用されており、試行の間に遅延は必要ありませんでした。これは、受信側が単に受信する最後の 12 ビットを調べて、それらがキーと一致するかどうかを確認していることを意味します。

これは、ストリームが 111111111111000000000000 が送信された場合、これらのコードはすべて事実上試行されていました。

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

この場合、24 ビットを使用して 13 の 12 ビットの組み合わせを試しました (90% を超える圧縮)。

これを利用して送信される 49152 ビットを削減できるアルゴリズムを知っている人はいますか?

役に立ちましたか?

解決

あなたが話しているのは、 デ・ブルーイン・シーケンス. 。やり方を気にしないで結果だけを求めるなら、 ここにあります.

他のヒント

私の頭の上から、私は、各12ビットのシーケンスに1ビットを反転する111111111011000000000100、その後、たとえば111111111101000000000010のために、別の13個の組み合わせの世話をするだろうと仮定などしかし、あなたはまださえして、たくさんの順列をしなければなりません1ビット私はあなたがまだ続いて、他の上の片側と1の2つのビットを反転111111111101000000000100などをしなければならないと思うなど。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top