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.