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:
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.