Seiten

Dienstag, 3. Mai 2011

Teil 1: Spaltentransposition Chiffre mit CubeCrypt 2011 - Das Verfahren der "Spaltentransposition"

Seit gestern ist "CubeCrypt 2011" in der Expression Gallery zum Download bereitgestellt. "CubeCrypt 2011" ist ein Tool für Silverlight. Es ermöglicht das Verschlüsseln und Entschlüsseln von Text mithilfe eines speziellen Verschlüsselungsverfahrens. Dieses Verschlüsselungsverfahren wird "Spaltentransposition" genannt.

Diese dreiteilige Artikelreihe stellt das Verschlüsselungsverfahren der "Spaltentransposition" kurz vor und zeigt, wie man "CubeCrypt 2011" in einer Silverlight-Anwendung verwendet. Schließlich werde ich auf die kryptologische Sicherheit des Verfahrens und mögliche kryptanalytische Angriffe eingehen. Hier ist der Inhalt dieser Artikelreihe in der Übersicht:

Teil 1: Das Verfahren der "Spaltentransposition"
Teil 2: Verwendung von "CubeCrypt 2011"
Teil 3: Zur Kryptologie und Kryptanalyse der "Spaltentransposition" (noch nicht veröffentlicht)



Das Verfahren der "Spaltentransposition"

"Spaltentransposition" ist von seiner Herkunft her ein einfach anwendbares Handverfahren. Es kann überall und jederzeit sehr einfach nur mithilfe von Papier und Bleistift angewendet werden. Die Funktionsweise des Verschlüsselungsalgorithmus ist dadurch gekennzeichnet, dass die Positionen der Alphabetzeichen von einem Klartext durch Anwendung eines Passwortes auf den Klartext geändert werden.

Dabei werden die Zeichen von einem Klartext in Reihen geschrieben, die jeweils der Länge des Passwortes entsprechen.. Ein Beispiel:

Passwort: BERLIN

Diese Passwort hat die Länge 6.

Klartext: WE ARRIVE AT TEN PAST EIGHT

Die Leerzeichen werden entfernt, so dass der Klartext dann lautet:

WEARRIVEATTENPASTEIGHT

Dieser Klartext wird nun in Reihen, die jeweils der Länge des Passwortes entsprechen niedergeschrieben:


Nun werden die Spalten numeriert, und zwar nach der Reihenfolge, in der die Buchstaben des Passworts im Alphabet auftreten:


In alphabetischer Reihenfolge tritt als erstes der Buchstabe "B" auf. Die Spalte, die durch den Buchstaben "B" markiert ist, wird deswegen mit der Ziffer "1" numeriert.


In alphabetischer Reihenfolge tritt als nächtes der Buchstabe "E" auf. Die Spalte, die durch den Buchstaben "E" markiert ist, wird deswegen mit der Ziffer "2" numeriert.


Entsprechend dieser Logik werden alle Buchstaben des Passworts bzw. alle Spalten numeriert.

Um den Geheimtext zu erhalten, werden dann die Buchstaben im Klartext Spalte für Spalte in der Reihenfolge der Numerierungen ausgelesen und in einer Zeile aufgeschrieben. Als erstes werden die Buchstaben der ersten Spalte ausgelesen, danach die Buchstaben der zweiten Spalte, dann die Buchstaben der dritten Spalte, und so weiter. Die nachfolgende Grafik veranschaulicht diesen Vorgang.


Im Ergebnis erhalten wir den folgenden Geheimtext:

WVNIEEPGRTTRTSTIEEAAAH

Dieser Geheimtext ist das Ergebnis einer einzelnen Spaltentransposition. Bei einer doppelten Spaltentransposition wird auf den Geheimtext erneut eine einzelne Spaltentransposition angewendet.

Gegeben sei das weitere Passwort "HAMBURG". Der Geheimtext, der das Resultat der ersten einzelnen Spaltentransposition war, wird erneut in Reihen unterhalb des zweiten Passworts geschrieben. Die Buchstaben des Passworts bzw. die Spalten werden erneut entsprechend der oben beschriebenen Logik numeriert.


Die Spalten werden erneut in der numerischen Reihenfolge ausgelesen. Das Resultat ist der zweite Geheimtext.

VRIITEPSAWGTHNTEETAERA

Das ist das Ergebnis der doppelten Spaltentransposition.

Das ist fast alles, was zu der Anwendung der Spaltentransposition zu sagen ist. Eines fehlt noch. Wenn in einem Passwort ein Buchstabe mehrfach vorkommt, dann werden sie in der Reihenfolge ihres Auftretens im Passwort numeriert. Dazu ein Beispiel. In dem Passwort "HAMM" tritt der Buchstabe "M" zweimal auf. Die Buchstaben dieses Passworts werden wie folgt numeriert:


Der Vorgang der Entschlüsselung funktioniert folgendermaßen. Bekannt sind die folgenden Informationen:

Passwort 1: BERLIN

Passwort 2: HAMBURG

Geheimtext: VRIITEPSAWGTHNTEETAERA

Der Geheimtext hat 22 Zeichen. Das Passwort 1 hat 6 Zeichen. Das Passwort 2 hat 7 Zeichen.

Um den Geheimtext mithilfe der Passworte zu entschlüsseln, wird zunächst das Passwort 2 auf den Geheimtext angewendet. Auf den sich nach diesem Vorgang ergebenden Geheimtext wird das Passwort 1 angewendet. Das Ergebnis ist der Klartext. Bei der Entschlüsselung wird grundsätzlich das oben beschriebene Verfahren verwendet, nur in umgekehrter Reihenfolge.

Das folgende Beispiel veranschaulicht den Vorgang der Entschlüsselung:

Zunächst wird das zweite Passwort "HAMBURG" niedergeschrieben, die Buchstaben des Passworts werden numeriert und der Geheimtext "VRIITEPSAWGTHNTEETAERA" wird in Reihen unterhalb der Buchstaben des Passworts Spalte für Spalte eingetragen.


Weil der Geheimtext spaltenweise eingetragen wird, muss vorher bekannt sein, wieviele kurze Spalten und wieviel lange Spalten es gibt. Der Grund ist, dass die Anzahl der langen Spalten abhängt von der Anzahl der Zeichen im Passwort. Die Anzahl der langen Spalten wird anhand der folgenden Formel berechnet:

Anzahl der Geheimtextzeichen "MODULO" Anzahl der Passwortzeichen

Angewendet auf unser Beispiel:

22 MODULO 7

22 geteilt durch 7 ergibt 3 mit einem Rest von 1.

Das Ergebnis ist, dass es 1 lange Spalte gibt. Das ganzzahlige Ergebnis der obigen Berechnung gibt die Anzahl der vollständig ausgefüllten Reihen wieder.

Der Geheimtext wird nun zeilenweise ausgelesen. Das ergibt die folgende Zeichenfolge.

WVNIEEPGRTTRTSTIEEAAAH

Diese Zeichenfolge stellt das Ergebnis der ersten Verschlüsselung dar. Die Zeichenfolge muss nun mit dem ersten Passwort entschlüsselt werden. Dazu wird das erste Passwort aufgeschrieben und die Buchstaben des Passworts werden erneut numeriert.



Die Anzahl der langen Spalten und die Anzahl der vollständig ausgefüllten Reihen werden berechnet.

22 MODULO 6

22 geteilt durch 6 ergibt 3 mit einem Rest von 4

Jetzt kann die Zeichenfolge der ersten Entschlüsselung unter das erste Passwort Spalte für Spalte eingetragen werden. Die numerische Reihenfolge der Spalten muss eingehalten werden.


Dann werden die Reihen nacheinander ausgelesen. Das Resultat ist der ursprüngliche Klartext.

WEARRIVEATTENPASTEIGHT

Im zweiten Teil dieser Artikelreihe werde ich das Tool "CubeCrypt 2011" für Silverlight vorstellen.

Keine Kommentare:

Kommentar veröffentlichen