Chaocipher

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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 Byrne erfolglos, Regierungsbehörden von seinem Verfahren zu überzeugen, da er nicht die Absicht besaß, Einzelheiten des Algorithmus der Öffentlichkeit zugänglich zu machen.[1][2] Im Jahr 2010 spendete seine Familie die hinterlassenen Unterlagen des Erfinders an das National Cryptologic Museum in Ft. Meade, U.S.A., wodurch der Algorithmus erstmals öffentlich gemacht wurde.[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.

Ü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 bezeichnet. Sie befinden sich bei beiden Alphabeten an Position 1 bzw. 14.

Zu Beginn sind linkes und rechtes 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.)

  1. Bestimme den Geheimtextbuchstaben der zum vorliegenden Klartextbuchstaben passt.
  2. Permutiere das Geheimtextalphabet.
  3. Permutiere das Klartextalphabet.

Um den entsprechenden Geheimtextbuchstaben zu finden, sucht man im rechten Alphabet den Buchstaben des Klartextes. Der direkt darüber stehende Buchstabe des linken 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 Permutation erfolgt in vier Schritten:

  1. Verschiebe das gesamte linke Alphabet nach links so, dass sich der soeben gefundene Geheimtextbuchstabe an Position 1 (Zenith) befindet.
  2. 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).
  3. Verschiebe alle Buchstaben von Position Zenith+2 bis einschließlich Position Nadir (Zenith+13) nach links um eine Stelle.
  4. 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:

  1. Verschiebe das gesamte rechte Alphabet nach links so, dass sich der soeben gefundene Klartextbuchstabe an Position 1 (Zenith) befindet.
  2. Verschiebe jetzt das gesamte rechte Alphabet um eine weitere Stelle nach links.
  3. Entnehme den Buchstaben an Position Zenith+2 (auch hier entsteht dadurch eine Lücke).
  4. Verschiebe alle Buchstaben von Position Zenith+3 bis einschließlich Position Nadir (Zenith+13) nach links um eine Stelle.
  5. 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 Alphabet nun den Geheimtextbuchstaben im linken 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.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. "Chaocipher - Platz 7 in Die Zehn ungeknacktesten Codes der Welt" (Memento vom 20. April 2010 im Internet Archive). Peter Glaser, zehn.de. Abgerufen am 23. Juli 2010.
  2. a b Siehe Kahn, 1996, S. 767f.
  3. "National Cryptologic Museum Foundation: Direct Museum Support" (Memento vom 22. Juli 2010 im Internet Archive). Website der National Cryptologic Museum Foundation, 27. Mai 2010. Abgerufen am 23. Juli 2010.

Literatur[Bearbeiten | Quelltext bearbeiten]

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