# VIC-Chiffre

Die VIC-Chiffre (engl.: VIC cipher) ist eine manuelle Verschlüsselungsmethode, die mit Papier und Bleistift vorgenommen werden kann. Sie wurde in den 1950er-Jahren, also während der Zeit des Kalten Krieges, vom für die Sowjetunion spionierenden finnisch-russischen Agenten Reino Häyhänen (Deckname: VICTOR; Abkürzung: VIC) benutzt.

## Prinzip

Wie bei vielen Agenten-Chiffren, handelt es sich auch bei der VIC-Chiffre um eine Kombination von Substitutions- und Transpositionsmethoden. Eine kompakte Verfahrensbeschreibung wäre etwa „gespreizte monoalphabetische bipartite Substitution gefolgt von einer modifizierten doppelten Spaltentransposition“. Das erste Adjektiv „gespreizt“ bezieht sich auf die Verwendung einer speziellen Substitutionstabelle, durch die die Buchstaben des Klartextes im ersten Verfahrensschritt in Zahlen umgewandelt werden. Tatsächlich verwendete Häyhänen hierzu das kyrillische Alphabet, da er Texte in russischer Sprache verschlüsselte. Als Codewort wählte er снегопад (SNEGOPAD, deutsch: Schneefall). Dies eignet sich besonders gut für die VIC-Chiffre, da es häufige Buchstaben enthält. Zur Vereinfachung wird das Verfahren hier nicht mit kyrillischen Buchstaben, sondern mit den Großbuchstaben des lateinischen Alphabets illustriert. Vom Codewort werden doppelt auftretende Buchstaben gestrichen, so dass bei Verwendung der deutschen Übersetzung „Schneefall“ des originalen Codeworts die Buchstaben SCHNEFAL übrig bleiben. Damit wird die Zeile direkt unterhalb der Überschriftszeile (mit den Ziffern 0 bis 9) gefüllt.
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| | S | C | H | N | E | F | A | L | | |
| 8 | B | D | G | I | J | K | M | O | P | Q |
| 9 | R | T | U | V | W | X | Y | Z | . | / |
In die letzten beiden Zeilen füllt man die übrigen Buchstaben des Alphabets und hat noch Platz für zwei Sonderzeichen, beispielsweise für „.“ und „/“, denen man spezielle Bedeutungen zuordnen kann. Wichtig ist, dass nun die Buchstaben des Kennworts durch einziffrige Zahlen dargestellt werden (wie E durch 4) und die anderen Buchstaben durch zweiziffrige Zahlen (wie B durch 80). Diese Art der Substitution von Monogrammen durch ein- oder zweistellige Geheimzeichen (hier Zahlen) wird als „gespreizte Chiffrierung“ bezeichnet. Die dazugehörige Tabelle wird im Englischen als straddling checkerboard (deutsch wörtlich: „gespreiztes Schachbrett“) bezeichnet. Vorteile sind, dass häufige Klartext-Zeichen (wie E und N) durch kurze Geheimtext-Zeichen verschlüsselt werden und zusätzlich, aufgrund der wechselnden Länge der Chiffrezeichen, die Entzifferung erschwert wird. Man erreicht so eine gewisse Datenkompression und eine verbesserte kryptographische Sicherheit.
Zwei Plätze in der zweiten Zeile der Tabelle müssen unbesetzt bleiben. Der Einfachheit halber sind hier die Plätze in den beiden letzten Spalten (8 und 9) frei geblieben. Die beiden unteren Zeilen, in die die restlichen Buchstaben des Alphabets eingetragen werden, erhalten diese Nummern als Praefix-Ziffern. Hier ist erneut aus Vereinfachungsgründen die alphabetische Reihenfolge für die Restbuchstaben gewählt worden. Kryptographisch sicherer wäre es, zwei zufällig ausgewählte Plätze der ersten Zeile unbesetzt zu lassen, die restlichen Buchstaben anders als alphabetisch einzutragen und möglicherweise zusätzlich die Spaltennummern zu verwürfeln.
Dennoch stellt diese Substitution allein noch keine ausreichend starke Verschlüsselung dar. Sie könnte durch Häufigkeitsanalyse gebrochen werden. Deshalb gibt es einen weiteren Verfahrensschritt. Dieser besteht im Prinzip aus einer doppelten Spaltentransposition. Im einfachsten Fall trägt man dazu die nach dem ersten Verfahrensschritt erhaltene Ziffernfolge in ein Rechteck zeilenweise ein und liest sie anschließend spaltenweise in verwürfelter Reihenfolge wieder aus (einfache Spaltentransposition). Diesen Verfahrensschritt wiederholt man ein zweites Mal (doppelte Spaltentransposition) und erhält so eine kräftig durchmischte Ziffernfolge als Geheimtext.

## Beispiel

Tatsächlich musste sich der Agent fünf Teilschlüssel merken, die zur Steuerung der einzelnen Verfahrensschritte benötigt wurden. Im Fall von Reino Häyhänen waren dies: Erstens, der Tag des sowjetischen Sieges über Japan, der 3. September 1945. Zweitens, das Kennwort снегопад (SNEGOPAD, deutsch: Schneefall). Drittens, einen Kennsatz. Er stammte aus dem bekannten russischen Volkslied Одинокая гармонь (Odinokaja Garmon, deutsch: Der einsame Harmonikaspieler) und lautete Только слышно на улице где-то одинокая бродит гармонь (deutsch: In der Ferne der Straße – verloren spielt ganz leise und zart ein Bajan). Viertens, die persönliche Kennzahl des Agenten, 13 für Häyhänen, die später auf 20 geändert wurde. Fünftens, eine fünfstellige Zufallszahl wie 20818. Angelehnt an diesen Fall, aber hier übertragen ins Deutsche, wären die fünf Teilschlüssel:
* der Tag des sowjetischen Sieges über Japan, der 3. September 1945, als Ziffernfolge: 391945
* das Kennwort: SCHNEFAL,
* einen Kennsatz: In der Ferne der Straße verloren spielt ganz leise und zart ein Bajan
* die persönliche Kennzahl des Agenten: 13
* eine fünfstellige Zufallszahl: 20818
Während die ersten vier Teilschlüssel für längere Zeit und für viele Nachrichten unverändert blieben, wurde die fünfstellige Zufallszahl für jede verschlüsselte Botschaft unterschiedlich gewählt. Sie wurde als „Saat“ zur Erzeugung von pseudozufälligen Ziffernfolgen benötigt und innerhalb der Geheimnachricht „verschleiert“ als eine der letzten Fünfergruppen übermittelt. Die genaue Position dieser wichtigen Fünfergruppe innerhalb des Geheimtextes wurde durch die letzte Ziffer der ersten Ziffernfolge (391945), also hier „5“ festgelegt. Das bedeutet, die fünfstellige Zufallszahl (hier 20818) wird als fünftletzte Fünfergruppe in den Geheimtext eingefügt.
Ferner wird die Differenz (ohne Übertrag) zwischen dieser Zufallszahl 20818 und den ersten fünf Ziffern der ersten Ziffernfolge 39194 gebildet. Man erhält als Differenz hier 91724. Durch „Kettenaddition“ der einzelnen Ziffern dieser Differenzzahl, kann diese leicht auf zehn Stellen erweitert („expandiert“) werden. Dazu werden die ersten beiden Ziffern (wieder ohne Übertrag) addiert und als neue sechste Stelle hinten angefügt (hier 9+1=0 ergibt 917240). Danach werden die zweite und dritte Ziffer addiert und ergeben die neue siebte Ziffer (hier 8), und so weiter. Am Ende der Expansion hat man 9172408964 erhalten.
Als Nächstes werden die ersten zwanzig Buchstaben des Kennsatzes (von oben) benutzt und diese in zwei Hälften von jeweils zehn Buchstaben gruppiert. Für jede Hälfte separat werden die Buchstaben entsprechend ihrer alphabetischen Reihenfolge durchnummeriert (wobei 0 die 10 bedeutet), hier:
| I | N | D | E | R | F | E | R | N | E | D | E | R | S | T | R | A | S | S | E |
| 6 | 7 | 1 | 2 | 9 | 5 | 3 | 0 | 8 | 4 | 2 | 3 | 5 | 7 | 0 | 6 | 1 | 8 | 9 | 4 |
Nun folgen weitere Zahlenoperationen. Dazu wird die oben durch Expansion erhaltene Zahl 9172408964 unter die zehn Ziffern der linken Hälfte geschrieben und (wieder ohne Übertrag ziffernweise) dazu addiert. Unter die zehn Ziffern der rechten Hälfte werden einfach die Zahlen 1 bis 0 in natürlicher Reihenfolge notiert. Man erhält:
| I | N | D | E | R | F | E | R | N | E | D | E | R | S | T | R | A | S | S | E |
| 6 | 7 | 1 | 2 | 9 | 5 | 3 | 0 | 8 | 4 | 2 | 3 | 5 | 7 | 0 | 6 | 1 | 8 | 9 | 4 |
| 9 | 1 | 7 | 2 | 4 | 0 | 8 | 9 | 6 | 4 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
| 5 | 8 | 8 | 4 | 3 | 5 | 1 | 9 | 4 | 8 | | | | | | | | | | |
Nun wird jede einzelne Ziffer der unteren linken Hälfte in der unteren (durchnummerierten) Zeile der rechten Hälfte gesucht und durch die in der rechten Hälfte unmittelbar darüberstehende Ziffer ersetzt. Dadurch erhält man die folgende Ziffernfolge, die anschließend noch bezüglich ihres Wertes (wieder in der Reihenfolge 1, 2, 3 bis 8, 9, 0) durchnummeriert wird. Man erhält so zwei Zeilen mit jeweils zehn Ziffern:
| 0 | 8 | 8 | 7 | 5 | 0 | 2 | 9 | 7 | 8 |
| 9 | 5 | 6 | 3 | 2 | 0 | 1 | 8 | 4 | 7 |
Die untere dieser beiden Zeilen wird in einem späteren Verfahrensschritt gebraucht. Die obere dieser beiden Zeilen wird nun durch Kettenaddition auf eine 60-stellige Pseudozufallszahl erweitert. Dies geschieht wieder durch Addition der ersten beiden Ziffern ohne Übertrag, um so eine neue elfte Ziffer zu erhalten (und so weiter). Hier ergibt sich somit:
| 0 | 8 | 8 | 7 | 5 | 0 | 2 | 9 | 7 | 8 |
| 8 | 6 | 5 | 2 | 5 | 2 | 1 | 6 | 5 | 6 |
| 4 | 1 | 7 | 7 | 7 | 3 | 7 | 1 | 1 | 0 |
| 5 | 8 | 4 | 4 | 0 | 0 | 8 | 2 | 1 | 5 |
| 3 | 2 | 8 | 4 | 0 | 8 | 0 | 3 | 6 | 8 |
| 5 | 0 | 2 | 4 | 8 | 8 | 3 | 9 | 4 | 3 |
Nun werden die letzten beiden am Ende der 60-stelligen Pseudozufallszahl auftretenden unterschiedlichen Ziffern benutzt (hier 4 und 3) und zur persönlichen Kennzahl des Agenten (13) addiert. Man erhält die beiden Zahlen 17 und 16. Diese bestimmen die Breiten der als Teil des VIC-Verfahrens benutzten beiden Transpositionstabellen. Der Schlüssel für die beiden Transpositionstabellen, also die Reihenfolge der später durchzuführenden Spaltentranspositionen, wird nun durch Auslesen der obigen Tabelle ermittelt. Hierzu dienen nur die Zeilen zwei bis sechs der Tabelle. Die Tabelle wird spaltenweise (beginnend mit der zweiten Zeile bis zur sechsten Zeile) ausgelesen. Die Reihenfolge des Auslesens der Spalten wird dabei durch die weiter oben erzeugte untere der beiden Zeilen (hier mit der Ziffernfolge 9 5 6 3 2 0 1 8 4 7) bestimmt. Das bedeutet hier, zuerst (1) ist die siebte Spalte der Tabelle auszulesen, dann (2) die fünfte Spalte, danach (3) die vierte Spalte, dann (4) die neunte Spalte, danach (5) die zweite Spalte, dann (6) die dritte Spalte und zuletzt (7) die zehnte Spalte. Danach hat man genügend viele Ziffern ausgelesen, um die beiden Transpositionsschlüssel zu bestimmen. Hier erhält man die Ziffernfolge 17803 57008 27444 51164 61820 57482 60583 und damit die beiden für die Definition der beiden 17- und 16-stelligen Transpositionsschlüssel benötigten Ziffernfolgen 17803570082744451 und 1646182057482605. Die Ziffernfolgen müssen abschließend nur noch durchnummeriert werden, um die beiden Transpositionsschlüssel zu erhalten, hier 1 17 11 5 13 14 15 6 16 2 7 12 3 10 4 8 9 und 1 5 7 13 3 11 9 16 2 4 14 10 6 12 8 15.
Mit den nun komplett vorliegenden drei Teilschlüsseln, dem Kennwort SCHNEFAL für die Substitutionstabelle, sowie den beiden Transpositionsschlüsseln für die anschließende doppelte Spaltentransposition, können Klartexte verschlüsselt und auf analoge Weise, unter Umkehrung der Verfahrensschritte mit denselben drei Teilschlüsseln, wieder entschlüsselt werden.