このアルゴリズムを実装するにはどうすればよいでしょうか?
-
20-08-2019 - |
質問
しばらく前、私は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などをしなければならないと思うなど。