Kryptografie


Kryptografie bezeichnet die Lehre der Verschlüsselung von Daten. Sie war seit Anbeginn der Menschheitsgeschichte von großer Bedeutung, und die Sicherheit einzelner Kryptosysteme (Verschlüsselungsverfahren) war entscheidend für den Ausgang militärischer oder diplomatischer Konflikte oder der Geheimhaltung von wirtschaftsrelevanten Erkenntnissen. Seit den 1990er Jahren hat durch die zunehmende Verbreitung des Internets auch für die Privatperson die Bedeutung zugenommen, um beispielsweise Kreditkarten-Daten o. ä. sicher im Internet zu versenden.

In der gesamten Geschichte der Kryptografie ist erst ein Verfahren entdeckt worden, welches nachweislich sicher ist. Der Grund, weshalb es absolut sicher ist, wird hier auch laienverständlich erläutert werden. Und selbstverständlich wird ausschließlich dieses Verschlüsselungsverfahren bei der Datenübertragung mit SDTP verwendet.

Das Verfahren heißt One-Time-Pad oder auch, nach dem Entwickler benannt, Vernam-Chiffre. Ein wichtiges Merkmal ist, dass es sicher ist, sofern der Schlüssel die gleiche Länge hat, wie die zu verschlüsselnden Daten. Außerdem muss der Schlüssel statistisch absolut zufällig sein, was bei einem Schlüssel, der mit Zufallszahlen durch den Diffie-Hellman-Schlüsselaustausch erzeugt wurden, der Fall ist.


One-Time-Pad im Binärsystem

Das Verfahren ist denkbar einfach. Zunächst werden die Klardaten und der Schlüssel übereinander geschrieben, ähnlich wie bei der schriftlichen Addition und Subtraktion:

    1011010101100010
XOR 0110101001010110

Anschließend wird jeweils unter die zwei Bits eine 0 geschrieben, wenn sie sich nicht unterscheiden, bzw. eine 1, wenn sie sich unterscheiden. Dies kann man sich dadurch merken, dass XOR die Abkürzung für exclusive or (engl. exklusives oder) ist. Exklusives oder meint, dass nur, wenn entweder das erste oder das zweite Bit eine 1 ist, aber nicht, wenn beides 1 ist, das Ergebnis 1 ist.

    1011010101100010
XOR 0110101001010110
  = 1101111100110100

Hier wurde jeweils nach der oberen Regel eine 0 unter die beiden Bits geschrieben, wenn kein Unterschied vorlag, und eine 1, wenn ein Unterschied vorlag.


One-Time-Pad im Hexadezimalsystem

Im Hexadezimalsystem ist folgende Tabelle nützlich, um hexadezimale Daten zu verschlüsseln:

"Tabula Recta" des Hexadezimalsystems
 
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1 1 2 3 4 5 6 7 8 9 A B C D E F 0
2 2 3 4 5 6 7 8 9 A B C D E F 0 1
3 3 4 5 6 7 8 9 A B C D E F 0 1 2
4 4 5 6 7 8 9 A B C D E
F 0 1 2 3
5 5 6 7 8 9 A B C D E F 0 1 2 3 4
6 6 7 8 9 A B C D E F 0 1 2 3 4 5
7 7 8 9 A B C D E F 0 1 2 3 4 5 6
8 8 9 A B C D E F 0 1 2 3 4 5 6 7
9 9 A B C D E F 0 1 2 3 4 5 6 7 8
A A B C D E F 0 1 2 3 4 5 6 7 8 9
B B C D E F 0 1 2 3 4 5 6 7 8 9 A
C C D E F 0 1 2 3 4 5 6 7 8 9 A B
D D E F 0 1 2 3 4 5 6 7 8 9 A B C
E E F 0 1 2 3 4 5 6 7 8 9 A B C D
F F 0 1 2 3 4 5 6 7 8 9 A B C D E
 
Um eine hexadezimale Datenziffer mit einer Schlüsselziffer zu verknüpfen, muss mit der Tabelle zunächst in der vertikalen Leiste die Datenziffer gesucht werden, und anschließend in der Reihe die Zelle, welche sich sowohl in der Zeile der Datenziffer als auch der Spalte der Schlüsselziffer befindet, gefunden werden. Die Ziffer in dieser Zelle wird notiert, und ist die verschlüsselte Datenziffer.


Entschlüsselung

Bei der Entschlüsselung wird der Vorgang umgekehrt, indem jede verschlüsselte Ziffer mit der Schlüsselziffer verknüpft wird. Ohne Kenntnis des Schlüssels kann daher keine Entschlüsselung vorgenommen werden.


Änderung des Schlüssels

Die Änderung des Schlüssels erfolgt durch das Entschlüsseln mit dem alten Schlüssel und anschließende Verschlüsseln mit dem neuen Schlüssel. Der alte Schlüssel ist anschließend zu verwerfen, und darf nie wieder benutzt werden.