Lektion
Die Theorie — One-Time-Pad: Einmal unknackbar, zweimal gebrochen
Ein One-Time-Pad verknüpft jedes Zeichen einer Nachricht mit einem zufällig gewählten Schlüsselzeichen, das genau für dieses Zeichen und nie wieder verwendet wird. Hier geschieht diese Verknüpfung Byte für Byte über das bitweise exklusive Oder: C = P ⊕ K. Die Entschlüsselung ist dieselbe Operation: P = C ⊕ K. Ist der Zufallsschlüssel mindestens so lang wie die Nachricht, bietet das Verfahren perfekte Sicherheit: Die Kenntnis des Geheimtexts verändert die Wahrscheinlichkeit für keine einzige denkbare Nachricht. Verwendet man denselben Schlüssel für zwei Nachrichten, hebt er sich auf, C₁ ⊕ C₂ = P₁ ⊕ P₂, und beim Crib-Dragging schiebt man ein vermutetes Wort w daran entlang: Wo immer eine der Nachrichten tatsächlich w enthält, liefert w ⊕ C₁ ⊕ C₂ die andere Nachricht.
Was die einzelnen Symbole bedeuten
P- die Nachricht, ein Byte pro Zeichen
K- der Schlüssel: zufällige Bytes, so viele wie die Nachricht Zeichen hat
C- der Geheimtext, P ⊕ K
⊕- exklusives Oder: Jedes Bit des Ergebnisses ist 1, wenn sich die beiden Eingangsbits unterscheiden
w- der Crib: ein Wort, das in einer der Nachrichten vermutet wird
- Setzt voraus
- Nachrichten bestehen aus Kleinbuchstaben und Leerzeichen als ASCII-Bytes. Die Schlüsselbytes stammen aus einem Generator mit 32-Bit-Startwert, sodass diese Seite nur 232 ≈ 4,3 × 109 Schlüssel erzeugen kann. Bereits ab sieben Zeichen sind das weniger Schlüssel als mögliche Nachrichten; nach Shannons Kriterium ist das Pad dieser Seite daher nicht perfekt sicher. Ein echtes One-Time-Pad verlangt Bytes, die niemand reproduzieren kann. Ein Textabschnitt „ähnelt lesbarem Text“, wenn jedes Byte ein Buchstabe oder Leerzeichen ist und jede enthaltene Dreierfolge in den ersten zwei Dritteln von Poes „The Gold-Bug“ (1843) vorkommt. Die untersuchten Paare stammen aus dem letzten Drittel. Verwendet wird XOR statt einer buchstabenweisen Addition modulo 26, weil XOR vorzeichenlos ist: Es entsteht dasselbe Textstück, unabhängig davon, in welcher Nachricht der Crib liegt.
Aufgabe vollständig gelöst
-
Fünf Buchstaben aus zwei Nachrichten mit demselben Einmalschlüssel 4 Schritte
Zwei Nachrichten mit je 50 Zeichen wurden mit demselben One-Time-Pad verschlüsselt. An den Positionen 32 bis 36 lautet C₁ ⊕ C₂ hexadezimal 54 06 09 0c 4e. Nimm an, eine der Nachrichten enthalte dort „ the “, also die Bytes 20 74 68 65 20. Wie lautet die andere Nachricht an diesen fünf Stellen? Gehört die Annahme zu Nachricht 2, deren Geheimtext dort 9d 8e 23 40 9e lautet: Wie heißen dann die fünf Schlüsselbytes? Klicke anschließend auf Beispielaufgabe und führe den nächsten Schritt auf der Seite aus.
-
Schreibe das erste Bytepaar binär: 0x54 ist 01010100 und das Leerzeichen 0x20 ist 00100000. XOR setzt ein Bit genau dort, wo sich beide Bits unterscheiden. Das ergibt 01110100, also 0x74, den Buchstaben t. Das 0x40-Bit von 0x54 verriet bereits vor jedem Raten, dass eine der Nachrichten an Position 32 ein Leerzeichen hat.
-
Die übrigen vier: 0x06 ⊕ 0x74 = 0x72, r; 0x09 ⊕ 0x68 = 0x61, a; 0x0c ⊕ 0x65 = 0x69, i; 0x4e ⊕ 0x20 = 0x6e, n. Die andere Nachricht lautet somit „train“. Ihre drei Dreierfolgen „tra“, „rai“ und „ain“ kommen alle im Referenztext vor.
-
Steht „ the “ in Nachricht 2, lautet der Schlüssel C₂ ⊕ P₂: 0x9d ⊕ 0x20 = 0xbd, 0x8e ⊕ 0x74 = 0xfa, 0x23 ⊕ 0x68 = 0x4b, 0x40 ⊕ 0x65 = 0x25, 0x9e ⊕ 0x20 = 0xbe. Gehörte die Vermutung zu Nachricht 1, stünde in Nachricht 2 das Wort „train“, und die Schlüsselbytes ergäben sich stattdessen aus C₁ ⊕ „ the “. Da C₁ ⊕ C₂ in beiden Fällen identisch ist, kann die Rechnung allein nicht entscheiden, welcher Fall zutrifft.
-
Auf der Seite wird „ the “ an Position 32 in Nachricht 2 übernommen, und im Crib-Feld steht nun „ train “ an Position 31 — in der Annahme, dass „train“ in Nachricht 1 ein vollständiges Wort bildet. Für Nachricht 2 ergibt sich „y the r“: ausschließlich Buchstaben und Leerzeichen, und jede Dreierfolge ist aus dem Referenztext bekannt. Übernimmst du dies in Nachricht 1, wachsen beide Zeilen auf sieben Zeichen an.
Antwort
„train“, und die Schlüsselbytes bd fa 4b 25 be, falls die Vermutung zu Nachricht 2 gehörte. Nichts an C₁ ⊕ C₂ verrät, welche Nachricht „ the “ enthält, und das wird es auch nie: Vertauscht man die beiden Nachrichten vollständig, bleibt C₁ ⊕ C₂ unverändert. Erst die nächste Vermutung entscheidet, welche Bruchstücke zur selben Nachricht gehören. Die Seite zählt zudem mit, wie viele der rekonstruierten Zeichen stimmen, weil ihr beide Nachrichten vorliegen. Ein Angreifer sieht hingegen nur die beiden Zeilen und muss beurteilen, ob sie Sinn ergeben.
-
Lernpfad
Wie Chiffren gebrochen werden
Quellen (2)
- The first insight's perfect secrecy and its cost in keys, and the Vigenère link: C. E. Shannon, "Communication Theory of Secrecy Systems," Bell System Technical Journal 28(4), pp. 656–715, October 1949. §10 "Perfect Secrecy", Theorem 6 (pp. 679–682).
- The second insight's Venona history: the additive key, the duplicate pages, Gardner's first message: "VENONA: An Overview," Cryptologic Almanac 50th Anniversary Series, Center for Cryptologic History, National Security Agency. DOCID 3575728, approved for release 2009.