Verschlüsselungsverfahren

Eines der wichtigsten Teilgebiete der modernen Informatik und Mathematik ist die Kryptografie. Die Zielstellung dieser Wissenschaft besteht u.a. in der Konstruktion von Kodierungs- bzw. Verschlüsselungsverfahren, dem Nachweis ihrer (praktischen) Sicherheit, aber auch in der Suche nach Entschlüsselungsmethoden.

Mit der ständig wachsenden Globalisierung der Weltwirtschaft, dem immer stärkeren Zusammenwachsen der Staaten und dem Einzug moderner Rechentechnik in alle Bereiche des täglichen Lebens kommt der sicheren Verschlüsselung brisanter Daten immer größere Bedeutung zu.
Dieses Teilprogramm demonstriert einfache Verschlüsselungsverfahren.

Cäsar-Code
Die Geschichte der Geheimhaltung von Nachrichten ist über 2000 Jahre alt. Eines der ersten Verschlüsselungsverfahren ist nach Cäsar benannt. Hierbei wird die geheim zu haltende Nachricht mit einer Codezahl verändert. Jedem Buchstaben wird eine Nummer entsprechend seiner Position im Alphabet zugeordnet, dann wird die Codezahl hinzuaddiert und das Ergebnis wieder in das Alphabet zurückübersetzt. Eventuell muss zuvor von der Summe die Anzahl der Buchstaben des Alphabets subtrahiert werden. Der Erzählung nach soll Cäsar die konstante Codezahl 3 benutzt haben.

Wenn man nur Großbuchstaben zulässt, kennt dieses Verfahren lediglich 26 verschiedene Codezahlen, wodurch es mit einem kleinen und einfachen Computerprogramm sehr schnell gelingt, jede derartig verschlüsselte Botschaft zu knacken. Heute hat diese Kryptografiemethode keinerlei praktische Bedeutung mehr. In diesem Unterprogramm können Sie Texte mit dem Cäsar-Code bzw. mit dem weiter unten beschriebenen Vigenere-Code kodieren und dekodieren.

Wählen Sie in der Liste Verschlüsselungsverfahren für das Cäsar-Verfahren den Eintrag Cäsar-Code (Buchstaben), werden ausschließlich Buchstaben übersetzt. Kleinbuchstaben werden automatisch in Großbuchstaben umgewandelt. Wollen Sie auch andere Zeichen einbeziehen, so markieren Sie Cäsar-Code (ASCII-Satz). In diesem Fall benutzt das Programm das vollständige Computer-Alphabet (ASCII).

Vigenere-Code
Beim Start des Teilprogramms ist das Verschlüsselungsverfahren Vigenere-Code, das von dem französischen Mathematiker Vigenére entwickelte wurde, voreingestellt. Grundlage der Verschlüsselung ist hier ein Codewort, nicht bloß eine Zahl, das zyklisch zum eigentlich zu verschlüsselnden Text byteweise addiert (Modulo-Addition) wird. Das bedeutet z.B.:
Der Text POLSTER soll mit dem Codewort BIT verschlüsselt werden. Legt man nur Großbuchstaben und somit 26 als Modul zugrunde, ergibt die schrittweise Umwandlung:

Text P O L S T E R
ASCII 80 79 76 83 84 69 82
ASCII – 64 16 15 12 19 20 5 18
Codewort B I T B I T B
ASCII 66 73 84 66 73 84 66
ASCII – 64 2 9 20 2 9 20 2
Summe 18 24 32 21 29 25 20
Modulo 26 18 24 6 21 3 25 20
+ 64 82 88 70 85 67 89 84
Code-Text Q X F U C Y T

Der kodierte Text würde damit QXFUCYT lauten. Da die Länge des Codewortes und der Wert des Moduls normalerweise nicht bekannt sind, ist es etwas schwieriger, diesen Code zu knacken. Mit hinreichender Rechentechnik und einigen theoretischen Überlegungen, die hier allerdings zu weit führen, ist es aber prinzipiell möglich (siehe weiter unten).

Legen Sie zuerst das Codewort fest. Hierbei gilt: Je länger, desto aufwendiger wäre ein unbefugtes Entschlüsseln. Danach tragen Sie unter Unverschlüsselter Text Ihren Ausgangstext ein oder laden diesen als ASCII-Datei über den entsprechenden Schalter. Betätigen Sie Text kodieren, kodiert das Programm Ihren Text. Der Wert des verwendeten Moduls bleibt das Geheimnis des Programmautors. Den kodierten Text können Sie speichern und, wenn Sie es wünschen, z.B. per E-Mail an einen Bekannten senden.

Wählen Sie in der Verfahrensliste Vigenere-Code (Großbuchstaben), werden das Codewort und der unverschlüsselte Text in Großbuchstaben verwandelt und nach der Kodierung ebenfalls in den Bereich der Großbuchstaben zurücktransformiert.

An dieser Stelle sei nochmals darauf verwiesen, dass dieses Verfahren nicht sicher ist. Allerdings ist ab Codewortlängen über 10 Buchstaben schon ein erheblicher Aufwand zum Entschlüsseln notwendig. Selbstverständlich muss der Empfänger das Codewort kennen, andernfalls erhält er nur eine Datei, die aus einer Menge Datenmüll besteht. Erhalten Sie kodierten Text, können Sie diesen über den Schalter Codierten Text laden einladen und anschließend dekodieren.

Binäres Verschlüsseln
Bei diesem Verfahren wird in Analogie zum Vigenere-Code der Originaltext mit einem Codewort verschlüsselt. Der wesentliche Unterschied besteht jedoch darin, dass die einzelnen Zeichen nicht entsprechend ihrer Stellung im Alphabet „addiert“, sondern bitweise Exklusiv-Oder verknüpft werden. Allerdings wird dieses Verschlüsselungsverfahren durch diesen Mechanismus nicht sicherer als der Vigenere-Code. Haben Sie dieses Verfahren gewählt, können Sie den Text in Analogie zum oben beschriebenen Verfahren ver- und entschlüsseln.

Atbasch-Kodierung, Permutations-Code, Gartenzaunkodierung
Bei der Atbasch-Kodierung wird einfach der erste Buchstabe des Textes durch den letzten Buchstaben des Alphabets ersetzt, der zweite durch den vorletzten usw. Natürlich ist auch dieses Verfahren in keiner Weise sicher.
Historisch ist die Atbasch-Kodierung im antiken Judentum nachzuweisen.

Viele einfache Verschlüsselungen sind sehr unsicher. (Vor allem, wenn in einem Text gleiche Zeichen hintereinander vorkommen.) Wesentlich sicherer wird der verschlüsselte Text, wenn man die darin enthaltenen Buchstaben vorher verwirbelt, d.h., man vertauscht die Buchstaben des Textes – sie werden permutiert.
Führt man dann noch ein Passwort ein, wird für jeden Buchstaben eine zusätzliche Permutation durchgeführt.
Auch diese Verschlüsselung lässt sich mittels einer Known-Plaintext-Attacke brechen.

Bei der Gartenzaunkodierung wird die Nachricht, hier „das ist ein test“, in n Reihen aufgeteilt und diese in Form einer Zickzacklinie (Gartenzaun) untereinander aufgeschrieben.
Die kodierte Nachricht ergibt sich, indem die Buchstaben der einzelnen Zeilen aneinander gefügt werden.
Wählen Sie das Teilprogramm Gartenzaunkodierung (Ziffern, Buchstaben) werden nur die Buchstaben und Ziffern in ihrer Lage verändert. Leerzeichen und Sonderzeichen behalten ihre Position, so dass die Grundstruktur des Textes erhalten bleibt.

RC4-,RC5-,RC6-Verschlüsselung
Ron’s Code oder der Rivest Cipher No.4 (RC4) ist ein Verfahren zur Stromchiffrierung. Es wurde 1987 von Ronald L.Rivest für RSA Data Security Inc. entwickelt und lange Jahre geheimgehalten.

Im September 1994 veröffentlichte eine anonyme Person einen Algorithmus, der zu RC4 identische Ergebnisse erzeugte und daher „RC4“ ist. Im Gegensatz zu DES ist die Schlüssellänge variabel und kann bis zu 2048 Bit (256 Zeichen) betragen, wobei bereits 128 Bit als sicher gelten.
Es wird immer ein Byte auf einmal verschlüsselt. Der Algorithmus ist einfach und sicher und kann effizient programmiert werden.
Zuerst wird eine S-Box initialisiert. Das gefüllte Feld wird mit Hilfe des Schlüssels untereinander vertauscht. Danach wird für jeden Buchstaben des Eingabetextes ein Zufallsbyte aus der S-Box ermittelt, wobei die Felder des Array erneut vertauscht werden. Am Ende werden das Zufallsbyte und das Textzeichen XOR miteinander verknüpft.

RC5 und RC6 sind Weiterentwicklungen des RC4-Codes und können ebenfalls in diesem Programmteil verwendet werden. RC6 gilt heute (2014) als praktisch nicht angreifbar.
Weiterhin sind auch IDEA und Rijndael (AES) nutzbar.

Knacken des Vigenere-Codes
Wie oben erwähnt, ist es möglich, den Vigenere-Code zu knacken. Voraussetzung dafür ist ein hinreichend langer Text. Das Programm bietet Ihnen die Möglichkeit, mit dem Vigenere-Code verschlüsselte Botschaften ohne Kenntnis des Codewortes zu entschlüsseln. Dies bedingt Folgendes:

  • der Text muss eine Mindestlänge von 16 mal der Codewortlänge haben
  • der Text muss mit dem in diesem Programm verwendeten Codierungsverfahren verschlüsselt sein.

Die erste Voraussetzung ergibt sich aus der Methode der internen Codewortberechnung. Die zweite Bedingung ist notwendig, da in jedem Vigenere-Verschlüsselungsprogramm ein anderes Gesamtalphabet zugelassen sein kann.
Zum Dekodieren eines verschlüsselten Textes ohne Kenntnis des Codewortes laden Sie den Text über den Punkt Codierten Text laden. Betätigen Sie nun den Schalter Vigenere-Code knacken, analysiert das Programm den Text und sucht nach auftretender Periodizität. Wird ein Codewort gefunden, zeigt das Programm dieses an und transformiert den Text. Ist der Text für eine vollständige Dekodierung zu kurz, erhalten Sie eine Fehlermeldung der Form:

Textlänge lässt nur das (wahrscheinliche) Erkennen eines maximal … Zeichen langen Codewortes zu!
In vielen Fällen wird der Text dennoch korrekt umgewandelt.

Skytale
Vor 2500 Jahren verwendete Sparta eine interessante Methode zur Übermittlung geheimer Nachrichten.

Sender und Empfänger mussten beide eine sogenannte Skytale haben. Dies waren zwei Zylinder mit denau dem gleichen Radius.
Der Sender wickelte ein schmales Band aus Pergament spiralförmig um seinen Zylinder und schrieb dann der Länge nach seine Nachricht auf das Band. War nun das Band abgewickelt, konnte die Nachricht nur von einer Person gelesen werden, die einen Zylinder genau desselben Umfangs hatte.

Skytale

Im Teilprogramm kann auch dieses Verfahren getestet werden. Der Zylinderdurchmesser von 2 bis 20 ist als Codezahl einzugeben.

Download

Skytale existiert auch als eigenständiges kleines Programm.