Normalerweise bildet eine Blockchiffre bit Klartext auf die gleiche Anzahl verschlüsselter Bits ab
(Electronic Codebook, ECB-Modus). Betriebsarten, wie im Folgenden beschrieben, verknüpfen die
Eingangs- und Ausgangsvektoren durch Rückkopplungen mittels modularer Arithmetik. Auf diese
Weise werden ganz spezielle Eigenschaften erzeugt und kryptoanalytische Nachteile der einen oder
anderen Betriebsart umgangen. Eine genaue Auflistung der jeweiligen Eigenschaften geben z. B.
[ISO06b], [Dwo01] sowie [MvV92, 7.2.2], historische Spezifikationen der Betriebsarten sind
in [ANS98, NBS80] zu finden.
In der Betriebsart CBC wird jeder Plaintext-Block vor der Verschlüsselung mit dem letzten
Ciphertext-Block
kombiniert (vgl. auch Abbildung 1.4).
Dadurch ergibt sich eine Abhängigkeit über den gesamten zu verschlüsselnden Klartext, welche z. B. beim CBC-MAC ausgenutzt wird.
An Hand von Abbildung 1.5 (oder aus Formel 1.3) kann man das Entschlüsselungsverfahren leicht erklären. Jeder
Block wird zuerst entschlüsselt, danach die Exklusiv-Oder (XOR) Operation mit Hilfe des “Vorgängers”
rückgängig gemacht6 .
Für den ersten Block wird als Startwert ein Initialisierungsvektor (IV) verwendet, der auch nicht
unbedingt geheim sein muß.
Die Eigenschaften des CBC-Modus bezüglich der Fehlerfortpflanzung lassen sich entweder aus Abbildung 1.5 oder aber Formel 1.3 ableiten:
Im Gegensatz zum CBC-Modus (siehe Abschnitt 1.2.1) geht der Klartext bei dieser Betriebsart weder
direkt noch indirekt über den Verschlüsselungsalgorithmus .
Aus diesem Grund wird die inverse Operation zwar nicht benötigt, die Eigenschaften der CFB-Betriebsart sind aber trotzdem vergleichbar zum CBC:
Die ersten beiden Punkte lassen sich aus den Blockbildern 1.6 und 1.7 erkennen oder über Formel 1.4 verifizieren.
Wegen der Rückführung des Ciphertextes wirkt sich ein Empfangsfehler im Block nur auf den
aktuellen Klartext
und den darauffolgenden Block
aus. In
ist kein Einfluß von
gegeben, weshalb (wie im CBC-Modus) ein
Fehlerburst von
Bits durch diese Art der Rückführung zu
fehlerhaften Bits verbreitert
wird.
Blockbreitenreduktion (Fall )
Die Betriebsart CFB ist auch für Nachrichtenblöcke geeignet, deren Anzahl von Bits
kleiner als die
Blockbreite
des Algorithmus ist. Man benutzt in diesem Fall einfach nur die ersten
Output-Bits
des Algorithmus, muß jedoch im Eingangsvektor die restlichen
Bits auf einen konstanten Wert
setzen (in [ISO06b] auf “1”, vgl. Abbildung 1.8).
Pipelining (Fall )
Bei Einsatz eines Feedback (FB) Registers im Rückkopplungszweig wird es möglich den Kryptoalgorithmus zu
parallelisieren10 .
Man geht dazu wie in Abbildung 1.9 skizziert vor.
Die damit einhergehende Verzögerung verschleppt allerdings auch die Auswirkung von Bitfehlern, was
oftmals unerwünscht ist. Denn, sollte ein empfangener Cipherblock fehlerhaft sein, so wirkt sich dies
auf den aktuellen und den -ten darauffolgenden Block aus (wenn mit
die Tiefe des FB bezeichnet
wird).
Auch in der Betriebsart OFB ist man prinzipiell in der Lage Blockbreiten zu verarbeiten, verliert
aber die Eigenschaft der Selbstsynchronisation. Das Prinzip dieser Betriebsart besteht darin, daß
sowohl auf Sende- als auch Empfangsseite der gleiche (Pseudozufalls-) Strom
erzeugt
und dann direkt zum Ver- bzw. Entschlüsseln verwendet wird (siehe XOR-Operation in
Abbildung 1.10).
Vorteilhaft ist, daß Bitfehler in einem Cipherblock ohne jegliche Streuwirkung transparent auf
den Klartext
abgebildet werden – die Fehlerfortpflanzung demzufolge sehr begrenzt
ausfällt11 . Gehen jedoch
ganze Blöcke
verloren, so ist die Synchronisation bleibend gestört und der gesamte Klartext ab diesem Zeitpunkt
dauerhaft fehlerhaft12 .
Zur Resynchronisation ist es deshalb unbedingt notwendig, daß von Zeit zu Zeit (je nach Anforderung)
ein neuer Initialisierungsvektor in Richtung Empfänger übertragen wird.
Die CTR-Betriebsart13 arbeitet ähnlich wie der OFB-Modus, nur daß der “Pseudozufall” aus einer einem Zähler mit sehr großer (praktisch nicht erreichbarer) Periode stammt [LRW00]. Das Beispiel in Abbildung 1.11, welches für ATM gilt (vgl. [AF99, Annex 6.4.4]), soll das Prinzip verdeutlichen.
Entscheidend ist, daß der Counter für jeden zu ver- oder entschlüsselnden Block einen anderen Wert (Zustandsvektor) liefert. Er besteht in diesem Fall aus:
Bezüglich der Synchronisation und Fehlerfortpflanzung gelten dieselben Aussagen wie für die Betriebsart OFB. Vorteilhaft ist der CTR-Modus insbesondere für Hochgeschwindigkeitsanwendungen, denn:
Will man (in Verbindung mit hohen Datenraten) die Eigenschaft der Selbstsynchronisation mit einer geringen Fehlerfortpflanzung kombinieren, so bietet sich eine Mischung von OFB und CFB als Betriebsarten an. Dazu muß man nur die Rückkopplungen beider Betriebsarten (umschaltbar) miteinander vereinen, was in Abbildung 1.12 durch einen Multiplexer (MUX) realisiert wird.
Algorithmus beschreibt den Entschlüsselungsvorgang, wobei statistische Selbstsynchronisation (siehe z. B. [Rul97] für Details) eine Möglichkeit darstellt um den Zeitpunkt der Umschaltung von einer Betriebsart in die andere zu bestimmen.