SECOM Chiffre

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 Eine Zufallszahl wie bei VIC gibt es nicht.

Für die Verschlüsselung wird benötigt: Bezüglich der sich zu merkenden Schlüsselelemente wurde SECOM gegenüber VIC stark vereinfacht. Nun genügt nur noch das Merken eines Schlüsselsatzes, z. B. eines Sprichwortes. Alle Unterschlüssel berechnen sich aus diesem Schlüsselsatz. Das ist der Sicherheit natürlich nicht zuträglich. Eine Kryptoanalyse wird also einfacher fallen. Auch dass auf die Verwendung einer Zufallszahl verzichtet wird, schmälert die Sicherheit.

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.

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)

Der Schlüssel muss mindestens 20 Buchstaben lang sein. Für den Eingabetext sind Buchstaben, Ziffern und Leerzeichen zulässig.

Quellen, Literaturverweise und weiterführende Links