One Time Pad (Vernam-Chiffre)

Das One Time Pad (Abk. OTP, dt. Einmalverschlüsselung) Verschlüsselungsverfahren, auch Vernam Verschlüsselung nach seinem Erfinder.

Vernam arbeitete bei der US-amerikanischen Telefongesellschaft AT&T und war dort mit der damals noch neuen Fernschreiber-Technik betraut. Ein Problem war, dass man Fernschreiben leicht abhören konnte - besonders, wenn diese per Funk übertragen wurden. 1917 hatte er eine Idee für die Lösung: er wollte die Bits des Baudot-Codes, den man damals für Fernschreiben nutzte und die aus einer Null oder einer Eins bestanden, verschlüsseln, indem er jedes Bit mit einem zufälligen, anderen Bit kombinierte. Dazu benutzte er einen zweiten Lochstreifen mit Zufallsmuster zum ersten mit der Botschaft. Zuerst nahm er nur einen kurzen Lochstreifen, dessen Ende er an den Anfang klebte und so einen sich wiederholenden Endlosstreifen erhielt. Doch dann merkte er, dass absolute Sicherheit nur ein Schlüsselstreifen bieten konnte, der genau so lang war wie der Lochstreifen mit dem Klartext.

Der amerikanische Major (und später General) Joseph O. Mauborgne setzte die Idee 1918 als Erster für militärische Zwecke um und erweiterte sie um die Prämisse, dass ein Schlüsselcode zufällig und nur einmal benutzt werden darf. Das Verfahren wurde als One-time-system bekannt. Aus Gründen der Praktikabilität verwendete er allerdings einen sich wiederholenden Schlüssel. Alsbald beschäftigten sich auch die Deutschen mit dem Verfahren und setzten es im diplomatischen Dienst der Weimarer Republik ein.

One Time Pad ist also ein Verfahren, bei dem jedes Zeichen des Klartextes mit einem Zeichen eines Schlüssels kombiniert wird, um zu einem Chiffrat zu gelangen. Dies bedeutet aber auch, dass der Schlüssel genau so lang sein muss wie der zu verschlüsselnde Text.

Damit das Verfahren sicher ist, ist es außerdem wichtig, dass der Schlüssel rein zufällig ist und dass der Schlüssel nur ein einziges mal verwendet wird. Denn würde der Schlüssel zweimal verwendet und wäre dem Gegner bekannt, dass zweimal derselbe Schlüssel für zwei unterschiedliche Klartexte verwendet wurden, so ließe sich ein Datenstrom aus den Differenzen erstellen, der wiederum durch Häufigkeitsanalyse der verwendeten Zeichen angreifbar wäre.

Von Prinzip her könnte man die One Time Pad Verschlüsselung auch als polyalphabetische Substitution bezeichnen, bei dem für jedes Zeichens des Klartextes ein anderer Schlüssel verwendet wird.

Auf der anderen Seite stellt die Länge des Schlüssels doch einige Anforderungen bei längeren Texten, so dass der Schlüssel wohl zumeist der Output eines Pseudo-Zufallsgenerators sein wird, wobei dann der Terminus Stromchiffre wieder passen würde.

Ein Vorteil des One Time Pad Verfahrens ist außer der Sicherheit bei richtiger Anwendung auch, dass es leicht mit Papier und Bleistift bewerkstelligt werden kann. So war es im kalten Krieg unter Geheimdiensten oft eingesetzt. Dabei wurden die Zeichen einer Geheimbotschaft mittels Dekodierschablonen zu Ziffern umgewandelt, die dann mittels langen Ziffernkolonnen in einem Heft oder Block, sogenannte Wurmtabellen kombiniert wurden.

Z. B.: Klartext 6, Schlüsselziffer 7 ergibt 13 → 3 (Addition Modulo 10). Mit der Umkehrrechnung (Subtraktion Absolut), hier also 7 - 13 = -6 → 6 konnte dann wieder auf den Klartext entschlüsselt werden. Ein einmal verwendete Wurmtabelle wurde nach dem Verschlüsseln dann nach einem festen Muster (z. B. alle angefangenen Blätter) vernichtet.

Auch der Heiße Draht (das sogenannte Rote Telefon) zwischen dem amerikanischen Präsidenten und dem sowjetischen Generalsekretär wurde durch ein One Time Pad Verfahren gesichert.

Das OTP lässt sich auch einfach per Computer realisieren. Die Bits der dort vorliegende Binärdaten werden dann aber meistens mittels XOR verknüpft, weil dies weniger Rechenoperationen erfordert. Außerdem ist XOR eine reversible Operation und kann so für Ver- und Entschlüsselung zugleich eingesetzt werden.

Der Hauptnachteil des OTP in der modernen Umgebung liegt in der erforderlichen Schlüssellänge. Wollte man zum Beispiel eine gesamte Festplatte verschlüsseln, so bräuchte man eine zweite, mindestens genau so große, die den Schlüssel enthält. Noch dazu müsste der Schlüssel aus echten Zufallszahlen und nicht aus berechneten Pseudozufallszahlen bestehen, um wirklich sicher zu sein. Dies würde viel Aufwand bedeuten. Außerdem kann der Schlüssel bei dieser Größe nicht mehr gemerkt werden, so dass er an Medien gebunden ist, die dem Feind in die Hände fallen könnten.

Darum hat das OTP Verfahren in der Moderne zunehmend an Bedeutung verloren, insbesondere, wenn größere Datenmengen verschlüsselt werden müssen.

Beispiel

Eine einfache Handmethode zur Verschlüsselung ist beispielsweise die buchstabenweise Addition von Klartext und Schlüssel. Hierzu ersetzt man zunächst mithilfe einer beliebigen Substitutionstabelle die Buchstaben des Klartextalphabets durch Zahlen. Im einfachsten Fall ordnet man den 26 Großbuchstaben des lateinischen Alphabets Zahlen zu, die ihrer Position im Alphabet entsprechen. Mit anderen Worten, man nummeriert das Alphabet wie folgt durch:

A B C D E F G H I J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Jetzt ist eine buchstabenweise Addition leicht möglich. Beispielsweise ergibt die Addition von A und F den Buchstaben G, entsprechend ihren Platznummern 1 + 6 = 7. Falls die Summe den Wert 26 überschreiten sollte, so zieht man einfach 26 ab (Modulo-Operation) und erhält so wieder einen der 26 Alphabetbuchstaben. Beispielsweise X plus U ist numerisch 24 + 21 = 45, nach Abziehen von 26 ergibt sich 19 und damit der Buchstabe S, also X + U = S.

Die Zusammenhänge bei der Addition von Buchstaben lassen sich an der folgenden Tabelle, die Ähnlichkeit mit einer klassischen Tabula recta (Vigenere Quadrat) hat, übersichtlich darstellen.

Zur Verschlüsselung wird man einen zufälligen Schlüssel benutzen, der in diesem Beispielfall passenderweise ebenfalls aus den 26 Großbuchstaben zusammengesetzt ist und dessen Länge (mindestens) der Länge des zu verschlüsselnden Klartextes entspricht. Entscheidend für die Sicherheit der Verschlüsselung ist, dass die einzelnen Buchstaben des Schlüssels wirklich zufällig verteilt sind, unvorhersagbar sind und in keinerlei Zusammenhang untereinander stehen. Als Beispiel für einen zufälligen Schlüssel dient die folgende Buchstabenfolge:

S = WZSLXWMFQUDMPJLYQOXXB

Der Schlüssel S ist in diesem Beispiel recht kurz, er umfasst nur 21 Buchstaben und ist bei bestimmungsgemäßer Verwendung sehr schnell verbraucht, nämlich bereits nach Verschlüsselung eines Textes aus 21 Buchstaben.

Beispielsweise soll der folgende Klartext K verschlüsselt werden:

K = ANGRIFFIMMORGENGRAUEN

Zur Verschlüsselung werden Klartext K und Schlüssel S, wie oben erläutert, buchstabenweise addiert. Als Summe (K + S = G) erhält man nach der so durchgeführten Einmalverschlüsselung den Geheimtext G:

G = XNZDGCSODHSEWOZFIPSCP

Der im Ergebnis erhaltene Geheimtext G ist von einem Zufallstext nicht zu unterscheiden und kann prinzipiell mit keiner noch so gearteten kryptanalytischen Angriffsmethode (weder jetzt noch in Zukunft) entziffert werden. Allein die Kenntnis des Schlüssels S erlaubt es, aus dem Geheimtext G durch Subtraktion des Schlüssels wieder den Klartext K zu gewinnen. Ohne den Schlüssel kann man prinzipiell alle denkbaren und mehr oder weniger sinnvollen Buchstabenkombinationen aus 21 Buchstaben konstruieren. Theoretisch könnte ein Angreifer dies probieren. Das wären aber 26^21 = 518 131 871 275 444 637 960 845 131 776 Möglichkeiten.