Auch wenn dieser Algorithmus so ziemlich das simpelste ist, was man sich vorstellen kann, so ist er doch der einzige auf dieser Welt der eine totale Sicherheit im informationstheoretischen Sinne gewährleistet. Das bedeutet, daß die Chiffre unter keinen Umständen zu knacken ist. Vielleicht werden jetzt einige Aufschreien und meckern: Und was ist mit PGP usw. ? Nun diese sind “nur” im komplexitätstheoretischen Sinne sicher, aber keine Angst das reicht vollkommen.
Denn ein Algorithmus ist im komplexitätstheoretischem Ansatz sicher, wenn gilt:
kann dieser nicht gebrochen werden, z.B RSA in Zusammenarbeit mit perfekten Zufallsgeneratoren.
Nun aber zurück zu unserem One-Time-Pad. Dieser basiert auf der logischen Operation XOR. Jedes Bit der Message wird mit dem entsprechenden Bit im Schlüssel geXor-d. Der Empfänger Xor-d die Chiffre wiederum mit dem Schlüssel und erhält die dechiffrierte Message.
Hierzu ein Beispiel:
Message: | 101001001010 |
Schlüssel: | 100100011011 |
XOR | |
Chiffre: | 001101010001 |
Schlüssel: | 100100011011 |
XOR | |
Message: | 101001001010 |
Voila, das bringt doch Spaß.
Folgendes können wir schon einmal festhalten:
Warum dieses Verfahren aber nun so sicher ist, ist noch nicht so einsichtig. Hierzu greife ich auf eine Variante des One-Time-Pads zurück, daß zeichenweise mod 26 arbeitet. Auch hier ein schönes Beispiele:
(O + T) mod 26 = I
(A + C) mod 26 = D
(K - B) mod 26 = I
(I - P) mod 26 = S
Message: | HIGHSTONE |
Schlüssel: | ABCDEFGHI |
(x + y) mod 26 | |
Chiffre: | IKJLXZVVN |
Schlüssel: | ABCDEFGHI |
(x - y) mod 26 | |
Message: | HIGHSTONE |
Ist ja alles ziemlich einfach, nun stellen wir uns einmal vor, daß wir in den Besitz der Chiffre IKJLWZVVN gelangt sind. Vom Schlüssel haben wir aber keinen blassen Schimmer.
Beispiele zur Lösung:
Chiffre: | IKJLXZVVN | IKJLXZVVN |
Schlüssel (???): | PHBTSQTQV | XJRXOWKQB |
(x - y) mod 26 | ||
Message: | SCHREIBER | KARNICKEL |
Wir haben sehr schöne Schlüssel gefunden, aber woher wissen wir jetzt, welcher der richtige ist?
Genau in dieser Frage liegt die Sicherheit des Algorithmus. Denn jede Klartext-Message kann über einen geeigneten Schlüssel gebildet werden. Woher soll ich denn wissen, daß die richtige Message Highstone ist und eben nicht Karnickel?
Diese Sicherheit ist aber nur gewährleistet, wenn zum einen der Schlüssel nur EINMAL verwendet wird und der Schlüssel WIRKLICH ZUFÄLLIG ist und nicht auf irgendwelchen Pseudo-Zufallszahlen beruht.
Weiter oben habe ich erwähnt, daß der Schlüssel die gleiche Länge haben muß wie die Message. Möchte ich also z.B. eine CD-ROM vollständig verschlüsseln, brauche ich einen 680 MB Schlüssel und mein Partner braucht genau den gleichen nocheinmal. Man sieht schon, daß die totale Sicherheit doch ihre Nachteile hat. Besonders das Schlüsselmanagement ist nicht so ganz einfach bzw. nicht handbar.