Ich habe eine bevorstehende Prüfung, bei der ich einen einfachen Taschenrechner verwenden kann. Bei einigen Beispielfragen bitten sie uns, zwei XOR-Werte (für AES-Rundschlüssel) anzugeben, und ich weiß, wie man sie von Hand schreibt, aber gibt es einen anderen schnelleren Weg, da die Prüfung natürlich zeitlich festgelegt ist.
Antwort
Wenn Sie Glück haben, kann die Definition von „einfacher Taschenrechner“ alle nicht grafischen Taschenrechner enthalten. In diesem Fall können Sie einen Casio FX-115ES Plus verwenden, der hexadezimale und oktale Basismodi enthält und über einen XOR-Operator verfügt. Es kann mit Gruppen von Oktetten bis zu 32 Bit arbeiten.
Wenn Sie nicht so viel Glück haben, ist die XOR-Tabelle Ihr bester Freund. Abhängig davon, wie viele Berechnungen Sie durchführen müssen, kann es sehr wohl schneller sein, während der Prüfung eine auf einem Arbeitsblatt zu erstellen. Möglicherweise dürfen Sie sogar eine mitbringen.
Ich hatte eine Anforderung an eine XOR-Tabelle, um schnelle Berechnungen an einem gedruckten Codebuch für eine kryptografisch starke Kommunikation über einen öffentlichen Sprachkanal durchzuführen. Es musste auch schnell ohne die Verwendung eines Computers oder eines elektronischen Geräts erledigt werden und auf ein kleines 4×6-Blatt im Raum unter dem Chiffretext passen.
Ich hatte verschiedene Methoden, um das zu verdichten Tisch und haben es noch verwendbar. Wenn Sie klug und einfallsreich sind, können Sie mit dem Wissen zum Erstellen der komprimierten Versionen sehr schnell viele XOR-Berechnungen durchführen. Die hexadezimale XOR-Tabelle enthält ein rekursives Muster, das ausgenutzt werden kann. Die obige Tabelle ist farbcodiert, um dieses Muster anzuzeigen, das sich bis zu den einzelnen Zeichen erstreckt. Hier sind die komprimierten Tabellen:
Während die obige Tabelle weniger Platz beansprucht, hat sie die gleiche Anzahl von Zeichen und benötigt daher ungefähr die gleiche Zeit zum Erstellen. Eine einfache Regel ist erforderlich, um die richtigen Zeichen auszuwählen.
Das nächste Level nimmt jetzt sowohl die Hälfte des Platzes des vorherigen als auch die Hälfte der Zeichen ein. Die Regel ist komplexer, aber ein paar Minuten Übung machen die Verwendung fast so schnell wie die vollständige Tabelle. Selbst wenn die Regel mit XOR vereinfacht werden kann, ist das Ergebnis korrekt, wenn das XOR der Regelauswahl 1 ist.
Die letzte Ebene besteht wieder aus der Hälfte des Leerzeichens und der Hälfte der Zeichen (fast) wie in der vorherigen, wobei eine zusätzliche Regel erforderlich ist, um die Aufgabe zu erledigen. Wenn Sie sich an die rekursive Struktur und das Grundlayout dieser Tabelle erinnern, können Sie sie mit Stift und Papier in weniger als einer Minute neu erstellen.
Beginnen Sie mit der Überschrift der inneren Spalte, zuerst knabbern; 0 1 2 3 4 5 6 7
Fügen Sie dann das 2. Halbbyte hinzu, das das erste Halbbyte + 8 ist. 8 9 ABCDEF
Der äußere Spaltenkopf ist der innere Spaltenkopf mit umgedrehten Hälften.
Der innere Zeilenkopf ist die erste Hälfte des inneren Spaltenkopfs.
Der äußere Zeilenkopf ist die erste Hälfte des äußeren Spaltenkopfs Header
Anschließend füllen Sie die Tabelle mit der rekursiven Struktur aus, die aus dem Header der inneren Spalte erstellt wurde.
Beim Erstellen der doppelt komprimierten Tabelle werden die äußeren Überschriften weggelassen, es wird jedoch eine vollständige Zeilenüberschrift verwendet.
Ein einzelnes Beispiel für die dreifache Tabelle:
25 XOR B6
2 XB = [2a] X [3b] (1 2 2) = 9
Da 2 das 1. Halbbyte und B das 2. ist, verwenden wir das 2. Halbbyte von [19]
5 X 6 = [5d] x [ 6e] (1 1 1) = 3
Da 5 das 1. Halbbyte und 6 das 1. ist, verwenden wir das 1. Halbbyte von [3b]
Daher 25 XOR B6 = 93
Antwort
Konvertieren Sie Hexadezimalzahlen in Binärzahlen und führen Sie für jedes Bit exklusive ODERs durch. Konvertieren Sie dann die Binärzahlen zurück in Hexadezimalzahlen.
Kommentare
- Da 16 genau 2 ^ 4 ist, können Sie dies außerdem digital tun. Das heißt, Sie müssen ' nicht die ganze Zahl auf einmal in eine Binärzahl konvertieren, sondern können jeweils eine Ziffer xor ausführen und dann das Ergebnis wieder in hex
Antwort
Das Bearbeiten von 2 Bits ist einfach.
Das Konvertieren einer hexadezimalen Ziffer in 4 Bits ist einfach.
Die Kombination dieser beiden Fakten sollte das Xoring einer einzelnen Hex-Ziffer ziemlich einfach machen. Wenn Sie eine Tabelle für jede Ziffer in eine Binärzahl aufschreiben (in einem zeitgesteuerten Test hängt es von der Anzahl der Konvertierungen ab, ob dies sinnvoll ist oder nicht), müssen Sie keine schriftliche Berechnung durchführen. Zum Beispiel ist für xor e und 3 1110 xor 0011, was 1101 ist, was d ist. Wenn Sie eine Tabelle bereit haben, erfolgt diese Berechnung im Grunde genommen sofort.
Wiederholen Sie dies jetzt für alle Ziffern. Dies kann ziffernweise erfolgen, da jede hexadezimale Ziffer genau 4 Bits
erneut sendet