Wie würde ich mich über diesen Algorithmus zu implementieren?
-
20-08-2019 - |
Frage
Eine Weile zurück, ich versuche, eine Fernbedienung, um Brute-Force, die einen 12-Bit-Binär ‚Schlüssel‘ gesendet.
Das Gerät arbeitet ich gemacht, aber es war sehr langsam, da es jede Kombination bei etwa 50 Bits pro Sekunde (4096 Codes = 49152 Bits = ~ 16 Minuten)
versuchtöffnete ich den Hörer ab und fand es wurde ein Schieberegister mit den Codes und keine Verzögerung zu prüfen, wurde zwischen den Versuchen erforderlich. Dies bedeutete, dass der Empfänger einfach bei den letzten 12 Bits der Suche empfangen werden, um zu sehen, ob sie eine Übereinstimmung mit dem Schlüssel war.
Das bedeutet, dass, wenn der Strom 111111111111000000000000
durch geschickt wurde, sie alle diese Codes effektiv versucht hatte.
111111111111 111111111110 111111111100 111111111000
111111110000 111111100000 111111000000 111110000000
111100000000 111000000000 110000000000 100000000000
000000000000
In diesem Fall habe ich 24 Bit verwendet 13 12-Bit-Kombinationen, um zu versuchen (> 90% Kompression).
Kennt jemand einen Algorithmus, meine 49152 Bits durch Ausnutzen dieser gesendet reduzieren könnte?
Lösung
Was du redest ist eine de Bruijn-Sequenz . Wenn Sie nicht über egal, wie es funktioniert, müssen Sie nur das Ergebnis wollen, hier ist es .
Andere Tipps
Aus der Spitze von meinem Kopf, nehme ich an Spiegel ein Bit in jeder 12-Bit-Sequenz würde von weiteren 13 Kombinationen sorgen, beispielsweise 111111111101000000000010, dann 111111111011000000000100 usw. Aber man noch viele Permutationen zu tun hat, auch mit ein Bit ich glaube, Sie müssen noch 111111111101000000000100 tun usw. Flip Dann zwei Bits auf der einen Seite und 1 auf der anderen Seite, etc.