Roche Chiffre
Kategorisierung: | Klassisch / Transposition |
Herkunft / Verwendung: |
In seinem Buch "Traité élémentaire de cryptographie" (zu deutsch "Grundlegende Abhandlung über Kryptografie"), erschienen 1902 in Paris, erwähnt Felix Delastelle ein Chiffrierverfahren, dass er die "Première méthode de M. le colonel Roche." nennt; also das erste Verfahren nach Colonel Roche. Delastelle nennt das Verfahren eine raffinierte Methode, die die Buchstaben perfekt mischt. In dem Verfahren werden die Ziffern einer langen Zahl dazu benutzt, die einzelnen Buchstaben des Klartextes neu zu gruppieren und damit zu tranpositionieren. Allerdings verweist er auch gleich auf einen Mangel, den Kapitän Valério in seinem "Essai sur les méthodes de déchiffrement" (zu deutsch "Essay über die Methoden der Dechiffrierung") erwähnt; nicht ohne zugleich zu erklären, wie man diesem Mangel abhilft. Delastelle schlägt vor, sich eine Zahl in leicht zu merkender Form auszusuchen, so zum Beispiel "ein Siebtel" (1/7), was für die Dezimalzahl 0,142857... und damit für die sechs Ziffern 142857 steht, oder 1/49 für die Stellen von 0,02040816326530612244897959183673... oder 1/19 für die Stellen von 0,05263157894736842105263157894737... Im Grunde soll man sich nur einen Bruch merken, der genügend Nachkommastellen zur Verfügung stellt für das Vorhaben, das man hat. Je mehr Nachkommastellen, desto gründlicher wird gemischt. Idealerweise findet man eine Zahl, dessen Ziffernsumme der Anzahl der zu verschlüsselnden Buchstaben entspricht. Allerdings ist es nicht sinnvoll, eine Zahl zu wählen, bei der die Summe der Nachkommastellen die Anzahl der Buchstaben des Klartextes unterschreitet. Denn dann kann nicht der gesamte Klartext verschlüsselt werden und müsste gekürzt werden. Überschreitet die Ziffernsumme hingegen die Anzahl der Buchstaben des Klartextes, dann kann man den Klartext mit zufälligen Zeichen bis zur richtigen Menge auffüllen, die dann bei korrekter Dechiffrierung wieder am Ende stehen und vom berechtigten Empfänger des Chiffrats einfach ignoriert werden können. Natürlich kann man auch eine irrationale Zahl mit endlos vielen Nachkommastellen wie Pi , e (eulersche Zahl), Phi (goldener Schnitt) oder auch eine Wurzel, wie die aus 2 verwenden. Dann merkt man sich die verwendete Zahl, die erste zu verwendende Nachkommastelle daraus (vielleicht 19860812, wenn man am 12. August 1986 ein besonderes Datum war) und wieviele Stellen man verwenden möchte. Der Kreativität sind hier keine Grenzen gesetzt. Je schwieriger es ist, auf die Zahl bzw. die Ziffern zu kommen, desto besser. Man könnte zwar auch eine Abfolge von echten Zufallszahlen notieren, hätte aber dann das Problem, dass es eine schriftliche (oder digitale) Aufzeichnung geben müsste, die wiederum gefunden werden könnte. Besser ist es, etwas zu haben, was man sich merken kann und nur im eigenen Gedächtnis vorhanden ist. |
Beschreibung des Algorithmus
Am Besten lässt sich die Anwendung des Verfahrens an einem Beispiel erläutern. Unsere ausgesuchte Zahl soll 1/19, also 0,05263157894736842105263157894737... sein.Daraus wollen wir 8 Ziffern benutzen. Die Nullen werden übergangen und wir erhalten die acht Ziffern 52631574. Unser Klartext soll 33 Zeichen lang sein und "Ein Text von ausreichender Laenge" lauten. Die Quersumme von 52631574 ist ebenfalls 33 und entspricht der Klartextlänge, wie es idealerweise der Fall ist. Außerdem verwendet Delastelle in seiner Original-Dokumentation die Zahl 52631574 beispielhaft, was der Überprüfung der Korrektheit / Gleichheit des hier angewandten Algorithmus dienlich ist.
Zuerst werden (weil 8 Ziffern) 8 Gruppen ausgezeichnet und zwar jeweils mit der Breite, die die jeweilige Ziffer angibt:
.....|..|......|...|.|.....|.......|....
5 2 6 3 1 5 7 4
Als nächste werden Buchstabenpositionen in die Gruppen nacheinander von links nach rechts eingetragen, also zuerst die linke Gruppe, dann die zweite usw. Und zwar nach folgendem Schema:
- 1. die ersten acht (bzw. Anzahl der Schlüsselziffern) Positionen rechtsbündig in die Gruppen von links nach rechts eintragen
- 2. die nächsten acht Positionen (9-15) bzw. so viele denn hineinpassen (nämlich 9-14) werden linksbündig (bzw. an die erste freie Position hinter den vorher eingetragenen Positionen) in die Gruppen von links nach rechts eingetragen. Die erste Gruppe ganz links wird dabei übergangen und bei der 2. Gruppe von links gestartet.
- 3. ähnlich wie bei 1., nur diesmal werden die Zahlen (wieder rechtsbündig) in die Gruppen (in denen noch etwas frei ist) von rechts nach links eingetragen
- 4. Guppenweise von links nach rechts linksbündig die nächsten Positionen eintragen. Die erste Gruppe wird wieder übergangen (es sei denn, es ist die einzige, die noch Platz bietet).
- 5. Guppenweise von rechts nach links rechtsbündig die nächsten Positionen eintragen.
- n. weiter abwechselnd mit 4. und 5. fortfahren, bis alle Lücken gefüllt sind.
1. __ __ __ __ 1 | __ 2 | __ __ __ __ __ 3 | __ __ 4 | 5 | __ __ __ __ 6 | __ __ __ __ __ __ 7 | __ __ __ 8
2. __ __ __ __ 1 | 9 2 | 10 __ __ __ __ 3 | 11 __ 4 | 5 | 12 __ __ __ 6 | 13 __ __ __ __ __ 7 | 14 __ __ 8
3. __ __ __ 20 1 | 9 2 | 10 __ __ __ 19 3 | 11 18 4 | 5 | 12 __ __ 17 6 | 13 __ __ __ __ 16 7 | 14 __ 15 8
4. __ __ __ 20 1 | 9 2 | 10 21 __ __ 19 3 | 11 18 4 | 5 | 12 22 __ 17 6 | 13 23 __ __ __ 16 7 | 14 24 15 8
5. __ __ 28 20 1 | 9 2 | 10 21 __ 27 19 3 | 11 18 4 | 5 | 12 22 26 17 6 | 13 23 __ __ 25 16 7 | 14 24 15 8
6. __ __ 28 20 1 | 9 2 | 10 21 29 27 19 3 | 11 18 4 | 5 | 12 22 26 17 6 | 13 23 30 __ 25 16 7 | 14 24 15 8
7. __ 32 28 20 1 | 9 2 | 10 21 29 27 19 3 | 11 18 4 | 5 | 12 22 26 17 6 | 13 23 30 31 25 16 7 | 14 24 15 8
8. 33 32 28 20 1 | 9 2 | 10 21 29 27 19 3 | 11 18 4 | 5 | 12 22 26 17 6 | 13 23 30 31 25 16 7 | 14 24 15 8
- Für die Kodierung: Der erste Buchstabe des Chiffrats ist der 33. des Klartextes, dann folgt der 32., 28. usw.
- Für die Dekodierung: Den ersten Buchstaben des Chiffrats positionieren wir an 33. Stelle unseres Klartextes, den zweiten, an der 32., den dritten an 28. usw.
1. __ __ __ __ E | __ i | __ __ __ __ __ n | __ __ - | T | __ __ __ __ e | __ __ __ __ __ __ x | __ __ __ t
2. __ __ __ __ E | - i | v __ __ __ __ n | o __ - | T | n __ __ __ e | - __ __ __ __ __ x | a __ __ t
3. __ __ __ c E | - i | v __ __ __ i n | o e - | T | n __ __ r e | - __ __ __ __ s x | a __ u t
4. __ __ __ c E | - i | v h __ __ i n | o e - | T | n e __ r e | - n __ __ __ s x | a d u t
5. __ __ L c E | - i | v h __ - i n | o e - | T | n e r r e | - n __ __ e s x | a d u t
6. __ __ L c E | - i | v h a - i n | o e - | T | n e r r e | - n e __ e s x | a d u t
7. __ g L c E | - i | v h a - i n | o e - | T | n e r r e | - n e n e s x | a d u t
8. e g L c E | - i | v h a - i n | o e - | T | n e r r e | - n e n e s x | a d u t
Beispiel
Klartext: | Ein Text von ausreichender Laenge |
Schlüssel: | 52631574 (Länge 8) |
Chiffrat: | egLcE ivha inoe Tnerre nenesxadut |
Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)
Quellen, Literaturverweise und weiterführende Links
Delastelle, Félix: Traité élémentaire de cryptographie, Gauthier Villars, Paris, 1902, S. 34Die Roche Chiffre im Cipherbrain-Blog von Klaus Schmeh