vorherigerMenunächster

One Time Pad

Funktionsweise und Beispiel

Das One-Time-Pad (Abkürzung: OTP, deutsch: Einmalverschlüsselung oder Einmalschlüssel-Verfahren, wörtlich Einmal-Block, nicht zu verwechseln mit dem Einmal-Passwort-Verfahren) ist ein symmetrisches Verschlüsselungsverfahren zur geheimen Nachrichtenübermittlung. Das OTP ist als einziges bekanntes Verschlüsselungsverfahren informationstheoretisch sicher und kann mathematisch beweisbar nicht gebrochen werden. Die Voraussetzung dafür ist die Verwendung eines Schlüssels, der (mindestens) genauso lang ist wie die zu verschlüsselnde Nachricht. Dieser Schlüssel muss absolut zufällig generiert sein und jede Nachricht braucht einen neuen Schlüssel. Anderenfalls kann man sich die Wiederholungen oder Eigenarten bei dem nicht-zufälligen Verfahren, mit dem der Schlüssel erstellt wurde, zunutze machen und beispielsweise mittels Häufigkeitsanalysen den Code knacken.
Die genaue Art der Durchführung der "Kombination" von Klartext und Schlüssel ist nebensächlich und kann auf unterschiedliche Weise vorgenommen werden. Eine einfache und häufig gewählte Methode zur Verschlüsselung ist beispielsweise die buchstabenweise Addition von Klartext und Schlüssel. Dies wäre ein Spezialfall der Vigenère-Verschlüsselung. 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 durch (A = 1...Z = 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.

One-Time-Pads wurden schon zu Zeiten der Weimarer Republik verwendet. Auch war der „Heiße Draht“ (auch als das „Rote Telefon“ bekannt), also die hochsichere direkte Fernschreibverbindung zwischen dem amerikanischen Präsidenten und dem sowjetischen Generalsekretär durch ein Einmalschlüssel-Verfahren geschützt.

Da stellt sich die Frage, warum dieses Verfahren nicht häufiger Anwendung findet. Einer der Gründe liegt in der Schlüssellänge. Um beispielsweise die gesamten Daten eines Festplattenlaufwerks zu verschlüsseln, ist ein zweites Festplattenlaufwerk (mit mindestens gleicher Größe) zur Speicherung des Schlüssels nötig. Auch der logistische Aufwand, der beim Austausch Schlüssel besteht, darf nicht unterschätzt werden. Damit OTP funktioniert, brauchen beide Enden den gleichen Schlüssel. So muss eine Stelle ihn generieren und an die andere Stelle übermitteln. Es bedarf also sicherer Übermittlungswege. Das könnte einerseits manuell durch einen Boten geschehen, der aber vielleicht bestechlich ist, oder andererseits elektronisch. Auf elektronischem Wege muss der Schlüssel selbst wieder verschlüsselt werden, damit er nicht abgefangen oder abgehört werden kann. Doch eine sichere Verschlüsselung bietet wiederum nur das OTP-Verfahren, für das wiederum Schlüssel gebraucht werden. Ein Teufelskreis. Früher hat man kleine Codebücher verwendet, die vollgedruckt waren mit zufälligen Zahlenkolonnen. Diese Bücher wurden unter den betreffenden Einheiten verteilt. Als Schlüssel wurde dann beispielsweise eine Seite/Zeile genannt und aus dem Nachrichtentext konnte die Länge ermittelt werden. Die Codebücher durften dann unter keinen Umständen an den Feind gelangen, deshalb waren sie so klein, dass man sie bequem in Falten von Kleidungsstücken oder Schuhen verstecken konnten. Doch die Schwäche dieses Verfahrens wurde schon angesprochen: Jeder Mensch ist potentiell bestechlich oder das Buch kann gestohlen werden. Mathematisch einwandfrei sicher ist etwas anderes. Aufgrund des hohen logistischen Aufwands kann sich das One-Time-Pad für die Verschlüsselung in größeren Kommunikationsnetzen nicht durchsetzen. Für die zweiseitige geheime Kommunikation ist es in puncto Sicherheit jedoch nach wie vor die erste Wahl.
Ein eher theoretisches Problem besteht darin, dass die einzelnen Zeichen des Schlüssels vollkommen zufällig und unabhängig erzeugt werden müssen. In idealer Weise kann das nur durch einen nichtdeterministischen physikalischen Zufallszahlengenerator erreicht werden. In der Praxis verzichtet man häufig darauf und gibt sich mit mehr oder weniger guten Zufallsgeneratoren zufrieden. Handelsübliche Rechner sind nicht in der Lage, wirklich zufällige Schlüssel zu erzeugen, sondern nur so genannte Pseudozufallszahlen.

Beispiele

Die OTP-Verschlüsselung von "BAUM" mit dem Schlüssel "HAUS" mittels Buchstaben-Addition führt zu

Die geheime Nachricht lautet also "JBPF".

Zur Entschlüsselung subtrahiert man in gleicher Weise die Buchstabenwerte des Schlüssels vom Buchstabenwert der Geheimnachricht und addiert bei negativen Zahlen 26

Quelle: Wikipedia

Bedienung

Das bei GCC verwendete OTP-Verfahren ist ebenfalls der Vigenère-Spezialfall, also die einfache Addition der Buchstabenwerte von Nachricht und Schlüssel.

Eingabe
  1. Der zu verschlüsselnde Text
  2. Der Schlüssel (Achtung: Dieser Text muss genauso lang sein wie der zu verschlüsselnde Text)
  3. Auswahl, ob verschlüsselt oder entschlüsselt werden soll
  4. Auswahl einer zusätzlichen Verschiebung (Standard "1")
  5. Klick!
Ausgabe
Der ver- oder entschlüsselte Text oder eine Fehlermeldung, wenn die Zeichenlängen nicht übereinstimmen.