| Klassische Kryptographie | Cäsar-Chiffre |
Wir stellen im Folgenden einige Klassen von allgemeinen Methoden der Ver- und Entschlüsselung vor. Dies soll dazu dienen, ein Gefühl für mögliche kryptographische Ansätze und Verfahren zu bekommen.
Die Blockchiffren wurden bereits im Abschnitt über Klassische Kryptographie erwähnt. An dieser Stelle geben wir noch eine formale Definition dieser Methode.
Seien
und
endliche Alphabete, es gelte
,
und es sei
eine endliche Menge von Schlüsseln. Eine Chiffrierfunktion
heißt
-Blockchiffre, wenn es eine Funktion
gibt, wobei
für jeden Schlüssel
injektiv ist, so dass gilt: Für jede Nachricht
der Länge
zerlegt in Blöcke
der Länge jeweils
ist
Ist
nicht durch
teilbar, so fülle die Nachricht
beliebig bis Länge
auf. Das Chiffrat
hat die Länge
.
Der Nachteil bei
-Blockchiffren ist, dass gleiche Klartextblöcke gleiche Kryptogramme erzeugen können. Regelmäßig auftretende Textmuster findet man dann im Kryptogramm wieder. Ein Vorteil ist hingegen, dass z.B. Bitumkehrfehler, etwa bei einer Störung der Übertragung, isoliert bleiben und nur einen Block unbrauchbar machen. Die Cäsar Chiffren sind
-Blockchiffren, wie wir noch sehen werden.
Im Gegensatz zu den Blockchiffren verwenden Flusschiffren für jeden zu verschlüsselnden Buchstaben einen anderen Schlüssel. Sei etwa
und eine endliche Schlüsselmenge, etwa
gegeben. Ein Schlüssel
wird als Eingabe für einen deterministischen "Zufallszahlengenerator" verwendet, der eine im Prinzip beliebig lange Ausgabefolge
produziert.
Eine Nachricht
wird verschlüsselt mit
Die Entschlüsselung geschieht dann mit
Hierbei ist
das Exklusiv-Oder. Ein Vorteil von Flusschiffren ist, dass Buchstaben/Blöcke positionsabhängig verschlüsselt werden, also gleiche Buchstaben teilweise mit verschiedenen
.
Beim Chaining vermeidet man das Auftreten regelmäßiger Muster. Die Verschlüsselung eines Blockes hängt von allen vorherigen Blöcken ab. Eine Nachricht
wird zunächst in Blöcke
jeweils der Länge
zerlegt. Die Verschlüsselung erfolgt auf diesen Blöcken mittels einer Verschlüsselungsfunktion
.
Nun wählt man zusätzlich zu dem Schlüssel
eine Initialisierungsfolge
und bildet das Chiffrat
mit
wobei
und im Allgemeinen
gilt. Für die Dechiffrierfunktion
gilt dann
mit
und
. Hierbei ist
die Umkehrfunktion zu
.
Im Allgemeinen werden gleiche Klartextblöcke verschieden verschlüsselt, da der Kryptogrammblock
von der Verschlüsselung des Nachrichtenblocks
und allen vorhergehenden Nachrichtenblöcken
abhängt. Es ist nicht möglich, nur einzelne Kryptogrammblöcke, etwa in der Mitte, zu entschlüsseln. Ein Bitumkehrfehler in
wirkt sich möglicherweise auf die Entschlüsselung der Nachrichtenblöcke
und
aus, aber nicht auf die folgenden Blöcke
.
Eine Beschleunigung der Entschlüsselung der Chiffrate beim Empfänger gegenüber dem CBC-Modus erhalten wir mit dem folgend beschriebenen Verfahren. Beim CBC-Modus können nämlich Ver- und Entschlüsselung nur nacheinander ausgeführt werden, was bei zeitaufwändigen Berechnungen ein Problem sein kann.
Man wählt einen Initialisierungsvektor
der Länge
. Dann wird eine Zahl
fixiert. Eine Nachricht
wird in Blöcke
jeweils der Länge
zerlegt. Gegeben ist eine Chiffrierfunktion
mit der endlichen Schlüsselmenge
, die Sender und Empfänger kennen.
Anfangs setzt man
und führt zur Verschlüsselung der Blöcke
die folgenden Schritte durch:
= erste
Bits von 

.
Bits von
, schiebt die verbleibenden Bits nach "links" und an den
freigewordenen niederwertigen Positionen fügt man die Bits von
ein.)Der Empfänger geht analog vor und setzt
und führt für
die folgenden Schritte aus:
Der Vorteil ist, dass Sender und Empfänger gleichzeitig
berechnen können, sobald
bekannt ist.
Verschiedene oder auch gleiche Kryptosysteme können kombiniert werden, beispielsweise durch Komposition (Hintereinanderausführung) oder Produktbildung. Die Komposition zweier Kryptosysteme
und
ergibt ein System
, wobei die Verschlüsselung mit der folgenden Funktion geschieht
und die Entschlüsselung mit der Funktion
Die Systeme werden also nacheinander auf den entstehenden unverschlüsselten bzw. verschlüsselten Text angewendet.
Als das Produkt zweier Kryptosysteme
und
ergibt sich das System
mit
und
Es wird also auf eine linke und rechte Hälfte getrennt voneinander das erste bzw. das zweite Kryptosystem angewendet.
Als Beispiel für die Komposition zweier Kryptosysteme betrachten wir die Komposition zweier Cäsar-Chiffren. Man erhält als Verschlüsselungsfunktion
, man erhält also wieder eine Cäsar-Chiffre.