SECOM Chiffre
Kategorisierung: | Klassisch / Substitution und Transposition |
Siehe auch: | VIC Chiffre, Straddling Checkerboard, Spaltentausch Chiffre, Doppelter Spaltentausch (Doppelwürfel) |
Herkunft / Verwendung: |
Die SECOM-Chiffre ist eine Abwandlung der VIC-Chiffre, die auch Ziffern und Leerzeichen erlaubt und bei der man sich nur einen Leitsatz merken muss. Sie wurde 2005 von Dirk Rijmenants ersonnen und auf seiner Homepage (1) veröffentlicht. Rijmenants beschreibt die Chiffre als ein sehr mächtiges Handverfahren, um Nachrichten mit Buchstaben, Ziffern und Leerzeichen zu verschlüsseln. Er gibt an, dass es sich um eine der am sichersten "in the field"-Chiffren handelt und dass das Verschlüsselungs aus vier Schritten besteht: Berechnen der Schlüsselphrasen-Ziffern, der Kodierung mittels Straddling Checkerboard und zwei Spaltentausch-Transpositionen, wobei eine unterbrochen ist. Zum Hintergrund und zur Historie der VIC Chiffre bitte dort nachlesen. Hier soll nur die Funktionsweise der SECOM Chiffre und die Unterschiede zur VIC Chiffre erläutert werden. |
Beschreibung des Verfahrens
(Die im Folgenden durchgestrichenen Teile sind Bestandteil der VIC-Chiffre, die in der SECOM Chiffre nicht mehr benutzt werden.)Ganz ähnlich wie auch die VIC Chiffre besteht das Verfahren aus folgenden Teilen
- Schlüsselberechnungen
- Kodierung durch Straddling Checkerboard
- 1. Transposition: gewöhnlicher Spaltentausch
- 2. Transposition: spezieller Dreiecks-Spaltentausch
Verstecken der Zufallszahl
Für die Verschlüsselung wird benötigt:
- Klartext: zu verschlüssender Text
Ein Schlüsselwort der Länge 8 mit häufiger benutzten Buchstaben (für das Checkerboard)- Ein Schlüsselsatz der Mindestlänge 20 (für die Transpositionen)
Ein gut zu merkendes, aber nicht leicht zu erratenes 6-stelliges DatumDie Personalnummer des Agenten (einstellig oder im unteren zweistelligen Bereich)Zwei unterschiedliche Ziffern (für Checkerbord-Leerspalten)Eine 5-stellige Zufallszahl, die für jeden Spruch anders sein muss und die nicht gemerkt werden braucht
Im nachfolgenden Beispiel wird der Algorithmus der SECOM Chiffre erläutert, ohne auf jedes Detail der VIC Chiffre einzugehen, die nicht mehr verwendet wird - dazu bitte mit der entsprechenden VIC-Webseite vergleichen.
Beispiel
Klartext: | Dies ist ein Beispielklartext der dazu dient die SECOM Chiffre auf Kryptografie de naeher zu erklaeren |
Schlüsselsatz: | Da steh ich nun ich armer (Tor und bin so klug als wie zuvor) |
Schlüsselberechnungen
Zuerst wird der 20-stellige Schlüsselsatz in zwei Teile zu 10 Zeichen aufgeteilt und jedem Teil die Ziffern 1 bis 0 (0 zuletzt) nach der alphabetischen Sortierung zugewiesen:
DASTEHICHN UNICHARMER
3190457268 0752418639
Das A kommt im Alphabet zuerst, bekommt daher die 1 zugewiesen, danach kommt das C (2) usw. bis zur 0, die zuletzt kommt und auf das T bzw. U fällt.Die beiden Zahlen werden nun addiert (wieder ohne Übertrag):
3190457268
+ 0752418639
3842865897
Das Ergebnis wird durch Kettenaddition auf 60 Zeichen erweitert:
3842865897
1260413768
3864540341
1409943752
5498370277
9371072946
Kettenaddition meint, dass jeweils 2 Ziffern addiert werden, um eine neue zu generieren (ist das Ergebnis größer 10, werden 10 abgezogen). Begonnen wird mit der ersten Ziffer, zu der wird die zweite addiert und an das Ergebnis angehängt, dann wird zur 2. die 3. addiert usw. (3+8=1, 8+4=2, 4+2=6).Die letzten 10 Zeichen werden nach der Wertigkeit aufsteigend (0 wieder zuletzt) sortiert:
9 3 7 1 0 7 2 9 4 6
8 3 6 1 0 7 2 9 4 5
Die 1 in 9371072946 ist die niedrigste Ziffer und bekommt Platz 1, danach folgt die 2 (9371072946), dann die 3 (9371072946) usw. Das Ergebnis ist schließlich die Positionsfolge 8361072945.Diese Ziffernfolge wird später als Überschriftenzeile für ein Straddling Checkerboard benutzt, wobei die Leerspalten fest auf den Positionen 3, 6 und 9 liegen.
Als nächstes gehen wir die 60 Zeichen von hinten nach vorne durch und addieren diese Ziffer für Ziffer, wobei wir Ziffern auslassen, die wir bereits einmal benutzt haben, bis wir auf eine Summe größer als 9 kommen. In diesem Fall 6 und 4, zusammen 10. Mit den nächsten Ziffern rückwärts weiter finden wir 9 und 2, die sich zu 11 addieren, was ebenfalls mindestens 10 entspricht. Diese beiden Zahlen X1 und X2 bestimmen die Breiten der Transpositionstabellen.
X1 = 10
X2 = 11
Außerdem addieren wir ohne Übertrag die Reihenfolgenzahl von oben und die Zahl, die aus dem rechten Teil des Schlüsselsatzes resultiert:
8361072945
+ 0752418639
8013480574
Das Ergebnis bildet die Überschrift für eine Transpositionstabelle, deren Rest aus den erweiterten 50 Zeichen aus der Kettenaddition besteht. Nun werden die Zeilen 2 bis 6 der 60 Zeichen nach der 1. Zeile umgestellt:
8013480574
1260413768
3864540341
1409943752
5498370277
9371072946
Dazu wird die niedrigste Ziffer aus der 1. Zeile gesucht, hier die 1 an 3. Stelle und die darunterstehende Spalte notiert. Dementsprechend wird mit den anderen Ziffern aufsteigend fortgefahren, so dass dies zu dem folgendem Ergebnis führt:
66097 04981 45930812767 37296457413159144772844330302
(ohne Leerzeichen)
Die ersten 10 (X1) Zeichen werden unser 1. Transpositionsschlüssel, die weiteren 11 (X2) Zeichen unser zweiter:
KeyTrans1 = 6609704981
KeyTrans2 = 45930812767
Kodierung durch Straddling Checkerboard
Für diese Kodierung wird eine Substitutionstabelle aufgebaut, wie sie unten zu sehen ist. Sie erhält die zuvor berechnete Überschritenzeile. Die erste Zeile erhält die Buchstaben "ESTONIA", die häufigsten Buchstaben im englischen. Auf die weiteren Zeilen werden verteilt: "BCDFGHJKLM", "PQRUVWXYZ/" und "1234567890", wobei jeweils mit dem Niederschreiben in der Spalte angefangen wird (unten unterstrichen), wie sie ganz links steht (durch die Lücken auf Pos. 3, 6 und 9 entstanden). Am Ende der Zeile angekommen, findet der Rest der Buchstaben in der Spalte vorne beginnend seinen Platz.
1 2 3 4 5 6 7 8 9 0
8 3 6 1 0 7 2 9 4 5
E S - T O - N I - A
6 H J K L M B C D F G
7 V W X Y Z / P Q R U
4 8 9 0 1 2 3 4 5 6 7
Mittels des Straddling Checkerboard Algorithmus (dort nachzulesen) wird der Klartext nun in Ziffern überführt:
D i e s / i s t / e i n / B e i s p i e l k l a r t e x t /
69 9 8 3 77 9 3 1 77 8 9 2 77 67 8 9 3 72 9 8 61 66 61 5 74 1 8 76 1 77
d e r / d a z u / d i e n t / d i e / S E C O M /
69 8 74 77 69 5 70 75 77 69 9 8 2 1 77 69 9 8 77 3 8 62 0 60 77
C h i f f r e / a u f / K r y p t o g r a f i e / d e /
62 68 9 64 64 74 8 77 5 75 64 77 66 74 71 72 1 0 65 74 5 64 9 8 77 69 8 77
n a e h e r / z u / e r k l a e r e n
5 8 68 8 74 77 70 75 77 8 74 66 61 5 8 74 8 2
Die ergibt zusammengefasst folgende 157 Ziffern, die um 3 Zufallsziffern erweitert werden, um auf eine durch 5 teilbare Anzahl zu kommen, was wichtig für die 5er-Gruppierung sein wird.
69983 77931 77892 77678 93729 86166 61574 18761 77698 74776 95707 57769 98217 76998 77386 20607 76268 96464 74877 57564 77667 47172 10657 45649 87769 87725 86887 47770 75778 74666 15874 82972
(ohne Leerzeichen)
1. Transposition: gewöhnlicher Spaltentausch
mit dieser Ziffernfolge wird jetzt ein gewöhnlicher Spaltentausch (dort nachzulesen) vollführt. Als Schlüssel (Überschrift) wird der zuvor berechnete KeyTrans1 angewandt. Dies führt zu folgender Ziffernfolge:
18616 98744 29506 27768 47606 77577 42679 67997 77718 87197 31758 76470 76553 29487 76877 79784 37667 69066 74276 78927 90186 76568 77961 77796 45167 76998 75672 32866 78787 78175 72954 48478
(ohne Leerzeichen)
2. Transposition: spezieller Dreiecks-Spaltentausch
Die nun folgende Transposition ist ein abgewandelter Spaltentausch, bei dem die Tabelle in 2 Schritten gefüllt wird. Dazu wird eine Matrix verwendet, bei denen ein Teil mit X gefüllt ist. Dann wird zuerst der normale Teil der Tabelle und dann der X-Teil der Tabelle aufgefüllt. Der X Teil wird nach einem spezielle Verfahren aufgefüllt, der Dreiecke in die Matrix "malt".
Ausgehend vom oben errechneten Schlüssel für die 2. Transposition "KeyTrans2" wird die niedrigste Ziffer darin gesucht und von dort aus die 1. Zeile bis zum Ende mit X gefüllt. Die nächsten Zeilen wird mit dem X jeweils eine Position weiter rechts begonnen, bis das Dreieck vollendet ist. Dann folgt eine Leerzeile und das Spiel geht mit der nächstniedrigen Ziffer weiter, bis die Matrix genügend groß ist:
45930812767
------XXXXX
-------XXXX
--------XXX
---------XX
----------X
-----------
-------XXXX
--------XXX
---------XX
----------X
-----------
---XXXXXXXX
----XXXXXXX
-----XXXXXX
------
Nun wird die Ziffernfolge zuerst in die mit '-' markierten Felder eingetragen
45930812767
186169XXXXX
8744295XXXX
06277684XXX
760677577XX
4267967997X
77718871973
1758764XXXX
70765532XXX
948776877XX
7978437667X
69066742767
892XXXXXXXX
7901XXXXXXX
86765XXXXXX
687796
und danach erst der Rest in die mit X markierten:
45930812767
18616917779
87442956451
06277684677
76067757769
42679679979
77718871973
17587648756
70765532723
94877687728
79784376676
69066742767
89267878778
79011757295
86765448478
687796
Nun werden wieder nach bekanntem Muster der Reihe nach die Spalten ausgelesen
45930812767
18616917779
87442956451
06277684677
76067757769
42679679979
77718871973
17587648756
70765532723
94877687728
79784376676
69066742767
89267878778
79011757295
86765448478
687796
Dies führt zu:
15857743874754 76479182762878 147671867866167 180747179768786 87662770499968 75767752276797 74679977767724 91799363867858 996768656378746 642067578702077 627798757467159
in 5er Gruppen:
15857 74387 47547 64791 82762 87814 76718 67866 16718 07471 79768 78687 66277 04999 96875 76775 22767 97746 79977 76772 49179 93638 67858 99676 86563 78746 64206 75787 02077 62779 87574 67159
Das Dechiffrieren geschieht prinzipiell genauso, nur durch umgekehrtes Anwenden der Verarbeitungsschritte. Dabei können am Ende des dekodierten Klartextes Zufallsbuchstaben auftauchen, die durch das beim Chiffrieren durchgeführte Auffüllen mit Zufallsziffern entstanden waren. Diese werden beim Lesen dann einfach ignoriert.