|
Tapir
|
Funktionsweise und Beispiel
Das Verschlüsselungsverfahren "TAPIR" ist ein Substitutionsverfahren, welches in der ehemaligen Deutschen Demokratischen Republik (DDR) von nahezu allen Abteilungen der Nationalen Volkarmee (NVA) und des MfS (Ministerium für Staatssicherheit) zur Verschlüsselung von Nachrichten eingesetzt wurde. Ausnahmen bilden die Grenztruppen. Wie auch die artverwandten Verwahren ZEBRA, KORALLE, KOBRA und PYTHON basiert es auf einer Zeichenersetzungstabelle und einem Einmal-Schlüssel (One-Time-Pad).
Das Bild zeigt die Ersetzungen. Buchstaben oder Buchstabengruppen sowie Ziffern und Zeichen wurden mit einer oder zwei Ziffern ersetzt. Gelb hinterlegte Zeichen gelten als Buchstaben (Bu), grün hinterlegte als Ziffern (Zi). Der Wechsel zwischen Buchstaben und Ziffern wird stets mit einem vorangestellten "Bu" bzw. "Zi" angekündigt. Begonnen wird der Text immer mit Buchstaben. Leerzeichen, hier Zwischenräume (ZwR) genannt können sowohl als Buchstaben als auch als Zeichen gedeutet werden. Der verschlüsselte Text wird in 5er Gruppen zusammengefasst. Ist der verschlüsselte Text nicht komplett in 5er Gruppen zusammenfassbar, werden solange die Ziffern 8 und 3 angehangen, bis dies möglich ist.
Um möglichst kurze Mitteilungen verfassen zu können, existierte außerdem ein Codebuch, in welchem häufig genutzte Wörter oder Wortgruppen auf wenige Zeichen gekürzt wurden. Ist der Klartext einmal in Ziffern übersetzt, wird ein Einmalschlüssel zu diesem Ergebnis - ohne Übertrag - addiert. Dadurch ist die Nachricht mathematisch und kryptografisch sicher, solange der Empfänger nicht ebenfalls im Besitz des Schlüssels ist.
Die Dechiffrierung ist analog: Der Einmalschlüssel wird subtrahiert und die Ziffern wieder gemäß der Tabelle zurück ersetzt.
Quelle: Wikipedia
Beispiele:
Ohne Schlüssel:
ABC = A B C = 0 50 52 = 05052
ADE = A DE = 0 55 = 05583 (Achtung: 055 ist keine 5er-Gruppe, deswegen wird 8 und 3 angehangen!)
123 = 1 2 3 = 11 22 33 = 82112 23383 (Achtung: voranstehende 82, um Ziffern einzuleiten, angestellte 83 wegen der 5er-Gruppe)
Cache 1 23 DE F = C A CH E ZwR 1 ZwR 2 3 DE ZwR F = 52 0 53 1 83 (Zi) 11 83 22 33 (Bu) 55 56 = 52053 18382 11832 23381 55568
Ergebnisse mit Schlüssel '01234 56789':
05052 + 01234 = (0 + 0)(5 + 1)(0 + 2)(5 + 3)(2 + 4) = 06286
05583 + 01234 = (0 + 0)(5 + 1)(0 + 5)(5 + 8)(3 + 4) = 065(13)7 = 06537 (Addition ohne Übertrag!)
82112 23383 + 01234 56789 = (8 + 0)(2 + 1)(1 + 2)(1 + 3)(2 + 4) (2 + 5)(3 + 6)(3 + 7)(8 + 8)(3 + 9) = 83346 79(10)(16)(12) = 83346 79062
Entschlüsseln mit Schlüssel '01234 56789':
Chiffre - Schlüssel = 83346 79062 - 01234 56789 =
(8 - 0)(3 - 1)(3 - 2)(4 - 3)(6 - 4) (7 - 5)(9 - 6)(0 - 7)(6 - 8)(2 - 9) =
(8 - 0)(3 - 1)(3 - 2)(4 - 3)(6 - 4) (7 - 5)(9 - 6)(10 - 7)(16 - 8)(12 - 9) =
82112 23383 = 82 11 22 33 83 = 82 11 22 33 = Zi 1 2 3 = 123
Bedienung
GCC berücksichtigt NICHT die Codebuch-Abkürzungen!
Eingabe
-
Zu verschlüsselnder Text
-
Schlüssel, im Idealfall mindestens gleich lang wie der Klartext. Ansonsten werden an den Schlüssel in GCC entsprechend viele Nullen angehängt
-
Auswahl, ob ver- oder entschlüsselt werden soll
-
Feuer!
Ausgabe
Verschlüsselter oder entschlüsselter Text