Chaocipher
Chaocipher ist ein symmetrisches Verschlüsselungsverfahren, das 1918 von John Francis Byrne entwickelt wurde. Byrne hielt den Algorithmus für nicht zu brechen. Bis zu seinem Tode versuchte er, Regierungsbehörden von seinem Verfahren zu überzeugen. Damit hatte er jedoch keinen Erfolg, denn er wollte den Algorithmus nicht offenlegen.[1][2] Im Jahr 2010 spendete seine Familie die hinterlassenen Unterlagen des Erfinders an das National Cryptologic Museum (NCM) in Fort Meade. Dieses veröffentlicht das Verfahren.[3]
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]In seiner ursprünglichen Form hatte Byrne sein Verfahren als mechanisches Gerät geplant, es allerdings nie gebaut.[2] Eine Version aus Holz und Pappe wurde von seinem Sohn angefertigt. Das Gerät besteht aus zwei nebeneinander liegenden Scheiben, an deren Umfang sich jeweils die 26 Buchstaben des Alphabets in veränderbarer Reihenfolge befinden. Die Scheiben sind drehbar gelagert und so miteinander verbunden, dass sich bei der Drehung der einen Scheibe in eine Richtung (im oder gegen den Uhrzeigersinn) die andere Scheibe gegenläufig mitdreht.
Das Prinzip von Chaocipher besteht darin, dass beide Alphabete nach jeder Ver- oder Entschlüsselung eines Buchstabens permutiert werden. Da diese Permutation vom vorher ver- bzw. entschlüsselten Buchstaben abhängt, handelt es sich bei diesem Verfahren um einen selbstsynchronisierenden Stromchiffre (englisch autokey cipher).
Überblick
[Bearbeiten | Quelltext bearbeiten]Obwohl der Einsatz von Chaocipher als Maschine gedacht war, kann das Prinzip mit untereinander stehenden Alphabeten für Klartext und Geheimtext nachvollzogen werden. Dabei steht das obere Alphabet für die linke Scheibe (den Geheimtext GT), und das untere Alphabet für die rechte Scheibe (den Klartext KT). Die folgende Darstellung zeigt einen möglichen Ausgangszustand für den Algorithmus, die Anordnung der Buchstaben in beiden Reihen/Scheiben stellt den Schlüssel dar.
+ * Links (GT): HXUCZVAMDSLKPEFJRIGTWOBNYQ Rechts (KT): PTLNBQDEOYSFAVZKGJRIHWXUMC --------------------------------------- Position: 11111111112222222 12345678901234567890123456
Man beachte die Symbole + und *, die Byrne als Zenith und Nadir bezeichnete. Sie befinden sich bei beiden Alphabeten an Position 1 bzw. 14.
Zu Beginn sind linkes (oberes) und rechtes (unteres) Alphabet an ihren jeweiligen Zenith-Markierungen ausgerichtet. Die Verschlüsselung eines Klartextbuchstabens erfolgt sodann in drei Schritten. Diese Schritte werden solange wiederholt, bis alle Buchstaben des Klartextes verschlüsselt sind.
- Bestimme den Geheimtextbuchstaben der zum vorliegenden Klartextbuchstaben passt.
- Permutiere das Geheimtextalphabet.
- Permutiere das Klartextalphabet.
Um den entsprechenden Geheimtextbuchstaben zu finden, sucht man im rechten (unteren) Alphabet den Buchstaben des Klartextes. Der direkt darüber stehende Buchstabe des linken (oberen) Alphabetes ist der zugehörige Buchstabe des Geheimtextes. Verschlüsselt man in diesem Beispiel den Buchstaben A, so erhält man als Geheimtext den Buchstaben P (siehe Pfeil).
+ ↓* Links (GT): HXUCZVAMDSLKPEFJRIGTWOBNYQ Rechts (KT): PTLNBQDEOYSFAVZKGJRIHWXUMC --------------------------------------- Position: 11111111112222222 12345678901234567890123456
Permutation des Geheimtextalphabets
[Bearbeiten | Quelltext bearbeiten]Die anschließende Permutation erfolgt in vier Schritten:
- Verschiebe das gesamte linke (obere) Alphabet nach links so, dass sich der soeben gefundene Geheimtextbuchstabe an Position 1 (Zenith) befindet.
- Entnehme den Buchstaben an Position Zenith+1, also den Buchstaben rechts des Zenith aus dem Alphabet (dabei entsteht für den Moment eine Lücke).
- Verschiebe alle Buchstaben von Position Zenith+2 bis einschließlich Position Nadir (Zenith+13) nach links um eine Stelle.
- Füge den in Schritt 2 entnommenen Buchstaben in die Lücke bei Position Nadir (Zenith+13) ein.
Ausgehend vom oben dargestellten Ausgangszustand sehen diese Schritte wie folgt aus: Als erstes wird das Alphabet verschoben, bis der soeben gefundene Geheimtextbuchstabe P auf Position 1 (Zenith) steht.
+ * Links (GT): PEFJRIGTWOBNYQHXUCZVAMDSLK
Danach wird der Buchstabe bei Position Zenith+1 (E) entnommen.
+ * Links (GT): P.FJRIGTWOBNYQHXUCZVAMDSLK
Im dritten Schritt werden die Buchstaben von Zenith+2 (F) bis Nadir (Q) um eine Stelle nach links verschoben.
+ * Links (GT): PFJRIGTWOBNYQ.HXUCZVAMDSLK
Zuletzt wird der entnommene Buchstabe (E) bei Position Nadir wieder eingefügt.
+ * Links (GT): PFJRIGTWOBNYQEHXUCZVAMDSLK
Permutation des Klartextalphabets
[Bearbeiten | Quelltext bearbeiten]Das Klartextalphabet wird ähnlich dem Geheimtextalphabet in fünf Schritten permutiert:
- Verschiebe das gesamte rechte Alphabet nach links so, dass sich der soeben gefundene Klartextbuchstabe an Position 1 (Zenith) befindet.
- Verschiebe jetzt das gesamte rechte Alphabet um eine weitere Stelle nach links.
- Entnehme den Buchstaben an Position Zenith+2 (auch hier entsteht dadurch eine Lücke).
- Verschiebe alle Buchstaben von Position Zenith+3 bis einschließlich Position Nadir (Zenith+13) nach links um eine Stelle.
- Füge den in Schritt 3 entnommenen Buchstaben in die Lücke bei Position Nadir (Zenith+13) ein.
Für das angegebene Beispiel sieht das rechte Alphabet nach Schritt 1 wie folgt aus:
+ * Rechts (KT): AVZKGJRIHWXUMCPTLNBQDEOYSF
Nun erfolgt das Verschieben um eine weitere Stelle nach links.
+ * Rechts (KT): VZKGJRIHWXUMCPTLNBQDEOYSFA
Als Nächstes wird der Buchstabe bei Position Zenith+2 (K) entnommen.
+ * Rechts (KT): VZ.GJRIHWXUMCPTLNBQDEOYSFA
Im vierten Schritt werden die Buchstaben von Zenith+3 (G) bis Nadir (P) um eine Stelle nach links verschoben.
+ * Rechts (KT): VZGJRIHWXUMCP.TLNBQDEOYSFA
Zuletzt wird der entnommene Buchstabe (K) wieder eingefügt.
+ * Rechts (KT): VZGJRIHWXUMCPKTLNBQDEOYSFA
Nach diesen beiden Permutationen kann der nächste Buchstabe des Klartextes verschlüsselt werden. Wäre der nächste Buchstabe ein N, so müsste der dazugehörige Geheimtext U lauten.
+ * ↓ Links (GT): PFJRIGTWOBNYQEHXUCZVAMDSLK Rechts (KT): VZGJRIHWXUMCPKTLNBQDEOYSFA
Entschlüsseln
[Bearbeiten | Quelltext bearbeiten]Die Vorgehensweise beim Entschlüsseln eines Geheimtextes mittels Chaocipher ist nahezu identisch zu der beim Verschlüsseln. Basierend auf demselben Ausgangszustand der beiden Alphabete besteht der Unterschied lediglich darin, dass man statt des Klartextbuchstabens im rechten (unteren) Alphabet nun den Geheimtextbuchstaben im linken (oberen) Alphabet sucht und so den dazugehörigen Klartextbuchstaben erhält. Danach vollzieht man die oben genannten Schritte um beiden Alphabete zu permutieren und kann dann den nächsten Geheimtextbuchstaben und den entsprechenden Klartextbuchstaben finden.
Entzifferung
[Bearbeiten | Quelltext bearbeiten]Bekanntermaßen hielt der Erfinder von Chaocipher, John F. Byrne, sein Verfahren für „unbrechbar“ (englisch mathematically indecipherable).[4] Tatsächlich gelang es lange Zeit niemandem, die von ihm veröffentlichten Geheimtexte zu entziffern. Dies lag jedoch vor allem daran, dass die Verschlüsselungsmethode unbekannt war. Ein klassischer Fall von Security through obscurity, also „Sicherheit durch Verdunklung“. Nachdem sich dies im Jahr 2010 geändert hatte, änderte sich auch schnell die Einschätzung der Sicherheit des Verfahrens, die spätestens im Jahr 2016 dann ins Gegenteil umschlug.
Es konnte nämlich gezeigt werden, dass Chaocipher eine Reihe von kryptographischen Schwächen besitzt, unter anderem die Anfälligkeit gegenüber Known-Plaintext-Angriffen (siehe auch: Crib). Anfällig zeigt sich Chaocipher auch, falls mehrere Geheimtexte vorliegen, die mit demselben oder ähnlichen Schlüsseln erzeugt wurden (siehe auch: Depth). Hier genügen bereits Texte mit einer Länge von 60 bis 80 Buchstaben zur Lösung, wobei sich der Koinzidenzindex als hilfreich erweist.
Neben den erkannten objektiven kryptographischen Sicherheitsmängeln von Chaocipher, weist es auch einige praktische Schwächen auf, die es für einen „Feldeinsatz“ wenig geeignet machen. Dazu gehört die oben erwähnte „Selbstsynchronisierung“ (autokey) mit der Folge, „dass ein einzelner Fehler bei der Übertragung, dem Empfang, der Verschlüsselung oder Entschlüsselung einer Nachricht dazu führen kann, dass die empfangende Seite die Nachricht überhaupt nicht entschlüsseln kann.“[5]
Zusammenfassend lässt sich heute urteilen, dass Chaocipher lange Zeit von dem Mysterium profitiert hat, dass sein Erfinder durch die Geheimhaltung seines Algorithmus erzeugt hat. Etwas, das bei praktischer Anwendung nicht länger möglich gewesen wäre und das auch Kerckhoffs’ Prinzip widerspricht. Nach Offenlegung der Methode dauerte es nicht lange, bis ihre Schwächen erkannt und Angriffsmethoden entwickelt wurden.
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ "Chaocipher - Platz 7 in Die Zehn ungeknacktesten Codes der Welt" ( vom 20. April 2010 im Internet Archive). Peter Glaser, zehn.de. Abgerufen am 23. Juli 2010.
- ↑ a b Siehe Kahn, 1996, S. 767f.
- ↑ "National Cryptologic Museum Foundation: Direct Museum Support" ( vom 22. Juli 2010 im Internet Archive). Website der National Cryptologic Museum Foundation, 27. Mai 2010. Abgerufen am 23. Juli 2010.
- ↑ George Lasry et al.: Cryptanalysis of Chaocipher and solution of Exhibit 6. Cryptologia, 2016, S. 506.
- ↑ George Lasry et al.: Cryptanalysis of Chaocipher and solution of Exhibit 6. Cryptologia, 2016, S. 507.
Literatur
[Bearbeiten | Quelltext bearbeiten]- Rubin, Moshe: Chaocipher Revealed: The Algorithm, 2. Juli 2010, Chaocipher Revealed: The Algorithm (PDF; 119 kB). Abgerufen am 14. Juli 2010
- David Kahn: The Codebreakers, revised Edition, Scribner, New York 1996, ISBN 0-684-83130-9
- George Lasry, Moshe Rubin, Nils Kopal und Arno Wacker: Cryptanalysis of Chaocipher and solution of Exhibit 6 Cryptologia, 2016, doi:10.1080/01611194.2015.1091797
Weblinks
[Bearbeiten | Quelltext bearbeiten]- The Chaocipher Clearing House – Seite von Moshe Rubin mit Informationen über und Ressourcen zum Umgang mit Chaocipher
- Chaocipher – Deutsche Beschreibung des Algorithmus inkl. Darstellung der Funktionsweise der zwei Scheiben von Nils Plaumann
- Chaocipher aus Papier – Anleitung zum Basteln eines funktionsfähigen Chaociphers aus Papier