Die bekannteste Art der polyalphabetischen
Chiffrierung ist die Vigenère-Verschlüsselung. Sie wurde im Jahre
1586 in dem berühmten Buch „Traité des chiffres“ von dem französischen
Diplomaten Blaise de Vigenère (1523 bis 1596) der Öffentlichkeit
zugänglich gemacht. Vigenère perfektionierte dabei ein Verfahren,
das ursprünglich der Mönch Johannes Trithemius (1462-1516) entwickelt
hatte. Da es zur Zeit der Renaissance noch keine Computer gab, sollte erst einmal
das Vorgehen bei der Verschlüsselung „per Hand“ erläutert werden.
Zur Chiffrierung der Nachrichten benötigt man ein Schlüsselwort und
das Vigenère-Quadrat. Dabei kann das Schlüsselwort jede beliebige
Buchstabenfolge sein. Im nachfolgenden Beispiel soll exemplarisch die Vorgehensweise
bei dieser Art von Verschlüsselung dargestellt werden. Es wird vereinbart:
Schlüsselwort W* |
BOND |
Schlüsselwort W: |
BONDBONDBONDBONDBONDBO |
Klartext K: |
TREFFINDERGRUENENTANNE |
Geheimtext G |
UFRIGWAGFFTUVSAHOHNQOS |
Wie kommt man zu dem Geheimtext? Es ist ein beliebiges
Schlüsselwort, z.B. „BOND“ zu wählen. Dieses Wort wird zeichenweise
so lange über den Klartext geschrieben, bis die Länge des Klartextes
erreicht ist. Der über einem bestimmten Klartextzeichen stehende Schlüsselwortbuchstabe
und der direkt darunter liegende Klartextbuchstabe bestimmen anhand des Vigenère-Quadrates
den Geheimtextbuchstaben. Dazu geht man in die Zeile, die mit dem Schlüsselwortbuchstaben
anfängt und sucht die Spalte, die mit dem Klartextbuchstaben beginnt. Am
Schnittpunkt von Zeile und Spalte steht der Geheimbuchstabe. Das Vigenère-Quadrat
und die Suche der ersten beiden Geheimtextbuchstaben würde für das
obige Beispiel wie folgt aussehen:
Das Vigenère-Quadrat
Die Verschlüsselung des
restlichen Textes erfolgt analog. Wie im Beispiel zu sehen ist, werden dem E
aus dem Klartext verschiedene Buchstaben zugeordnet (R,F,S,S). Dadurch wird
die Häufigkeit des Auftretens der verschiedenen Buchstaben verschleiert,
was ja – bereits bekannt – den Angriffspunkt für die statistischen Methoden
der Kryptoanalyse bei monoalphabetischen Verfahren bot.
Obiges Beispiel zeigt die Funktionsweise der Verschlüsselung
mit dem Vigenère-Quadrat recht deutlich. Für die Arbeit mit einem
Computer ist es notwendig, die Vorgehensweise mathematisch auszudrücken
und zu algorithmieren. Die mathematische Beschreibung des Vigenère-Verfahrens
sieht folgendermaßen aus:
G* = (S* + K*) mod 26.
wobei
G*,
S* und
K* die Positionen
der Geheimtext-, Klartext- und Schlüsselbuchstaben z.B. in einem Array
sind. Wie man sieht, ist dies die gleiche Formel, die auch zur Caesar-Chiffrierung
angewandt wurde. Der Unterschied besteht darin, dass sich
S*
ständig ändert und somit eine bessere Verteilung der Häufigkeiten
der Zeichen erreicht wird.
Im obigen Beispiel sieht das so aus:
B + T = ? B
* = 1; T
* = 19 daraus folgt 1 + 19 = 20 daraus folgt U
O + R = ? O
* = 14; R
* = 19 daraus folgt 14 + 17 = 31 daraus folgt 31 mod 26 = 5 daraus folgt F
Die Modulo-Funktion wird für
die Ermittlung des ersten Geheimtextbuchstabens nicht benötigt, weil der
„Definitionsbereich“ nicht verlassen wurde. Die Dechiffrierung mit bekanntem
Schlüssel verläuft analog in umgekehrter Richtung.
Auch diese Art der Verschlüsselung
hat ihren Schwachpunkt. Trotz der besseren Verschleierung der Häufigkeiten
der Buchstaben wiederholen sich kleinere Wörter. Mit diesen kann man das
Schlüsselwort (vor allem bei kurzen Schlüsseln) errechnen. Allgemein
gilt: Je länger der Schlüssel (am besten so lang wie der Klartext),
desto sicherer die Vigenère-Verschlüsselung.
Programme:
vigenere.html, vigeneredechiff.html