[JoGu]

Kryptologie

CBC = Cipher Block Chaining

a7Hzq .#5r<
kÜ\as TâÆK$
ûj(Ö2 ñw%h:
Úk{4R f~`z8
¤˜Æ+Ô „&¢Dø

Beschreibung

Mit einem zufällig gewähltem Startwert c0 (=IV = »Initialisierungsvektor«) sieht das Verfahren so aus:

[ECB]

Verschlüsselung nach der Formel:

ci := f(ai*ci-1)     für i = 1, ..., n
= f(ai * f(ai-1*××× f(a1*c0)...)).

Entschlüsselung:

ai = f-1(ci) * ci-1-1     für i = 1, ..., n.


Eigenschaften

Kann der Startwert c0 bei Geheimhaltung als zusätzlicher Schlüssel dienen? (Das wären im Beispiel DES aus 56 Bits des Schlüssels und 64 Bits des Startwerts insgesamt 120 Bits.)

Antwort: Nein!

Denn nur a1 hängt beim Entschlüsseln von c0 ab, d. h., es wird lediglich bekannter Klartext am Anfang etwas besser verschleiert, wenn c0 geheim bleibt. Ist der zweite oder ein späterer Klartextblock bekannt, kann der Angreifer wie bei EBC den Schlüssel bestimmen (durch vollständige Suche oder einen anderen Angriff mit bekanntem Klartext.


Bemerkungen

  1. CBC ist die Komposition f °(Geheimtext-Autokey). Ist also f = 1S, so bleibt das (völlig untaugliche) Geheimtext-Autokey-Verfahren mit Schlüssellänge 1 übrig.

  2. [John KELSEY in der Mail-Liste cryptography@c2.net, 24 Nov 1999] Falls eine »Kollision« ci = cj für i ¹ j auftritt, folgt f(ai*ci-1) = f(aj*cj-1), also ai*ci-1 = aj*cj-1 und daraus aj-1*ai = cj-1*ci-1-1. Der Gegner gewinnt also etwas Information über den Klartext.

    Erwarten kann man diese Situation wegen des Geburtstagsphänomens nach ca. Ö (#S) Blöcken.

    Je länger der Text, desto mehr solcher Kollisionen sind zu erwarten. Auch dies bestätigt wieder die Faustregel, wie rechtzeitig Schlüssel zu wechseln sind.


Autor: Klaus Pommerening, 8. April 2000; letzte Änderung: 11. November 2002.

E-Mail an Pommerening@imsd.uni-mainz.de.