Prev    Up    Next  

1.2 Betriebsarten

Normalerweise bildet eine Blockchiffre n 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 [ANS98NBS80] zu finden.

1.2.1 Cipher Block Chaining (CBC)

In der Betriebsart CBC wird jeder Plaintext-Block pi  vor der Verschlüsselung mit dem letzten Ciphertext-Block ci−1  kombiniert (vgl. auch Abbildung 1.4).

pict

Dadurch ergibt sich eine Abhängigkeit über den gesamten zu verschlüsselnden Klartext, welche z. B. beim CBC-MAC ausgenutzt wird.


PIC
Abbildung 1.4: CBC-Verschlüsselung


An Hand von Abbildung 1.5 (oder aus Formel 1.3) kann man das Entschlüsselungsverfahren leicht erklären. Jeder Block ci  wird zuerst entschlüsselt, danach die Exklusiv-Oder (XOR) Operation mit Hilfe des “Vorgängers” ci−1  rückgängig gemacht6 . Für den ersten Block wird als Startwert ein Initialisierungsvektor (IV) verwendet, der auch nicht unbedingt geheim sein muß.


PIC
Abbildung 1.5: CBC-Entschlüsselung


Die Eigenschaften des CBC-Modus bezüglich der Fehlerfortpflanzung lassen sich entweder aus Abbildung 1.5 oder aber Formel 1.3 ableiten:

  1. Bitfehler im Block ci  wirken sich auf den aktuellen sowie den nächsten Klartext-Block aus. Wegen pi = ci−1⊕ DK (ci)  sind in pi  nahezu alle Bits verfälscht7 . In pi+1 = ci⊕ DK(ci+1)  hingegen sind es nur solche, die auch in ci  fehlerhaft waren. War deren Anzahl m so führt die Fehlerfortpflanzung zu n+ m verfälschten Bits.
  2. Geht die Blocksynchronisation verloren, d. h. wird beispielsweise der Block c1  in Abbildung 1.5 gar nicht erst empfangen (und an dessen Stelle c2  verwendet), so wird der zugeordnete entschlüsselte Block p2  (jetzt an Stelle von p1  ) komplett gestört sein. Alle weiteren Blöcke sind jedoch wieder korrekt8 , weshalb man auch von einer selbstsynchronisierenden Betriebsart spricht (self-synchronizing, ciphertext autokey).
  3. Ohne Maßnahmen zur Blocksynchronisation bewirken eingefügte oder verlorene Bits, daß auch alle weiteren Klartext-Blöcke fehlerhaft sind9 .

1.2.2 Cipher Feedback (CFB)

Im Gegensatz zum CBC-Modus (siehe Abschnitt 1.2.1) geht der Klartext bei dieser Betriebsart weder direkt noch indirekt über den Verschlüsselungsalgorithmus E
 K  .

pict

Aus diesem Grund wird die inverse Operation zwar nicht benötigt, die Eigenschaften der CFB-Betriebsart sind aber trotzdem vergleichbar zum CBC:

  1. sie ist selbstsynchronisierend;
  2. hat eine beschränkte Fehlerfortpflanzung und
  3. ist (zusätzlich) für Blockbreiten kleiner der des Algorithmus geeignet.

Die ersten beiden Punkte lassen sich aus den Blockbildern 1.6 und 1.7 erkennen oder über Formel 1.4 verifizieren.


PIC
Abbildung 1.6: CFB-Verschlüsselung



PIC
Abbildung 1.7: CFB-Entschlüsselung


Wegen der Rückführung des Ciphertextes wirkt sich ein Empfangsfehler im Block ci  nur auf den aktuellen Klartext pi = ci⊕ EK(ci−1)  und den darauffolgenden Block pi+1 = ci+1⊕ EK (ci)  aus. In pi+2 = ci+2⊕ EK (ci+1)  ist kein Einfluß von ci  gegeben, weshalb (wie im CBC-Modus) ein Fehlerburst von m Bits durch diese Art der Rückführung zu n + m fehlerhaften Bits verbreitert wird.

Blockbreitenreduktion (Fall r < n ) Die Betriebsart CFB ist auch für Nachrichtenblöcke geeignet, deren Anzahl von Bits r kleiner als die Blockbreite n des Algorithmus ist. Man benutzt in diesem Fall einfach nur die ersten r Output-Bits des Algorithmus, muß jedoch im Eingangsvektor die restlichen n − r Bits auf einen konstanten Wert setzen (in [ISO06b] auf “1”, vgl. Abbildung 1.8).


PIC (a) Verschlüsselung PIC (b) Entschlüsselung

Abbildung 1.8: CFB mit verringerter Blockbreite


Pipelining (Fall r > n ) 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.


PIC (a) Verschlüsselung PIC (b) Entschlüsselung

Abbildung 1.9: CFB mit Pipelining


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 k -ten darauffolgenden Block aus (wenn mit k die Tiefe des FB bezeichnet wird).

1.2.3 Output Feedback (OFB)

Auch in der Betriebsart OFB ist man prinzipiell in der Lage Blockbreiten r < n 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 ei  erzeugt und dann direkt zum Ver- bzw. Entschlüsseln verwendet wird (siehe XOR-Operation in Abbildung 1.10).


PIC (a) Verschlüsselung PIC (b) Entschlüsselung

Abbildung 1.10: Betriebsart OFB


Vorteilhaft ist, daß Bitfehler in einem Cipherblock ci  ohne jegliche Streuwirkung transparent auf den Klartext pi  abgebildet werden – die Fehlerfortpflanzung demzufolge sehr begrenzt ausfällt11 . Gehen jedoch ganze Blöcke ci  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.

1.2.4 Counter (CTR)

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.


PIC
Abbildung 1.11: ATM Counter-Modus


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:

LFSR
Das Schieberegister (LFSR) hat eine Länge von 21 Bit und ist durch das irreduzible (und primitive) Generatorpolynom g(x)= x21+ x2+ 1  charakterisiert.
I/R
Das Initiator/Responder-Bit (I/R) identifiziert den Anrufenden (Calling Party) bzw. Angerufenen (Called Party) und schützt damit vor Angriffen auf schlüsselgleiche Texte.
SEQ
Die Sequenznummer (SEQ) wird von höheren Protokollen übernommen (nur AAL-3/4 und AAL-1).
SEG
Die Segmentnummer (SEG) identifiziert das ver- bzw. entschlüsselte Segment einer ATM-Zelle.
JUMP
Die Jump Number (JUMP) wird bei jeder Session Key Changeover OAM-Zelle und bei einem End Of Message (EOM) im AAL-5 erhöht.

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:

1.2.5 Mischarten

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.


PIC (a) Verschlüsselung PIC (b) Entschlüsselung

Abbildung 1.12: Kombination von CFB- und OFB-Modus


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.


Algorithmus 1: Synchronisation
  if synchron then
  for ever do
  ci = pi⊕ ei
  FB =  ei  {OFB-Mode}

  end for

  else
  ci = pi⊕ ei
  FB =  ci  {CFB-Mode}

  end if