Cipher Block Chaining

Cipher Block Chaining

Cipher Block Chaining Mode (CBC) ist eine Betriebsart, in der Blockchiffren betrieben werden können. Vor dem Verschlüsseln eines Klartextblocks wird dieser zunächst mit dem im letzten Schritt erzeugten Geheimtextblock per XOR (exklusives Oder) verknüpft.

Inhaltsverzeichnis

Allgemeines

Die Struktur der Verschlüsselung im CBC-Modus ist in nachfolgender Abbildung dargestellt:

CBC Verschlüsselung

Man kann dieses Diagramm auch mathematisch in Formeln ausdrücken, bezeichne dazu EK die Verschlüsselungsfunktion mit dem Schlüssel K, sei DK die zugehörige Entschlüsselungsfunktion. Bezeichne Pi den i-ten Klartextblock, Ci den i-ten Geheimtextblock und sei IV der Initialisierungsvektor. Außerdem bezeichne \oplus das logische XOR. Dann ist die Verschlüsselung im CBC-Modus wiefolgt rekursiv definiert:


\begin{matrix}
& C_0 & = & E_K(P_0 \oplus \mathrm{IV}) & \\
\forall\left( i \in \mathbb{N}^+ \right):\left(\right. & C_i & = & E_K(P_i \oplus C_{i-1}) & \left.\right)
\end{matrix}

Die Struktur der Entschlüsselung im CBC-Modus ist in nachfolgender Abbildung dargestellt:

CBC Entschlüsselung

Die zugehörige Entschlüsselung ist im CBC-Modus hingegen nicht rekursiv und lautet mit den gleichen Bezeichnungen wie oben:


\begin{matrix}
& P_0 & = & D_K(C_0) \oplus \mathrm{IV} \\
\forall\left( i \in \mathbb{N}^+ \right):\left(\right. & P_i & = & D_K(C_i) \oplus C_{i-1} & \left.\right)
\end{matrix}

Als Initialisierungsvektor (IV) benutzt man

  • Entweder einen Zeitstempel
  • Oder eine zufällige Zahlenfolge.
  • Manche Anwendungen benutzen auch eine vorhersagbare, einfach aufsteigende Zahl, aber dies ist nicht sicher, weil fremde Personen unerwünscht einen Wasserzeichenangriff (watermark attack) auf solche Daten ausführen können.
  • Das Modul dm-crypt benutzt zur Generierung des IV das ESS-Verfahren.

Wenn man diesen Initialisierungsvektor geheim überträgt, trägt es nicht zur Sicherheit des Algorithmus bei.

Der CBC-Mode hat einige wichtige Vorteile:

  • Klartextmuster werden zerstört.
  • Identische Klartextblöcke ergeben unterschiedliche Geheimtexte.
  • Verschiedene Angriffe (Time-Memory-Tradeoff und Klartextangriffe) werden erschwert.

Da ein Geheimtextblock nur von dem vorherigen Block abhängt, verursacht ein beschädigter Geheimtextblock, wie beispielsweise ein Bitfehler bei der Datenübertragung, beim Entschlüsseln keinen allzugroßen Schaden, denn es werden nur der betroffene Klartextblock und der darauffolgende Klartextblock falsch dechiffriert. Dies ist unmittelbar aus der Definition der Entschlüsselung und obiger Abbildung ersichtlich, da ein beschädigter Geheimtextblock Ci nur die Klartextblöcke Pi und Pi + 1 beeinflusst und sich nicht unbeschränkt weiter verbreitet. Trotzdem kann diese beschränkte Vervielfachung nur eines einzigen Bitfehlers im Chiffrat bei CBC eine Vorwärtsfehlerkorrektur des Klartextes erschweren bzw. unmöglichen machen. Genauso verursacht ein beschädigter Initialisierungsvektor beim Entschlüsseln keinen allzugroßen Schaden, da dadurch nur der Klartextblock P1 beschädigt wird.

Der CBC-Modus ist wesentlich sicherer als der ECB-Modus, vor allem wenn man keine zufälligen Texte hat. Unsere Sprache und andere Dateien, wie z. B. Video-Dateien, sind keinesfalls zufällig, weswegen der ECB-Mode im Gegensatz zum CBC-Mode Gefahren birgt. Generell sollte ein Blockchiffre immer im CBC-Modus betrieben werden - Ausnahmen sollten gut begründet sein.

Beispiel

Klartext: 01 10 ^ ^ | | Aufgeteilt in Blöcke: B1 B2

Schlüssel: 11 Init. Vektor (IV): 01

Zur Vereinfachung wird als Codierfunktion + (plus) verwendet (dementsprechend als Decodierfunktion - (minus)) und Überträge mitgezogen

Verschlüsselung

Verschlüsselung (Block 1)

B1 \oplus IV = 01 \oplus 01 = 00 = C1' C1' + Schlüssel = 00 + 11 = 11 = C1

Verschlüsselung (Block 2)

B2 \oplus C1 = 10 \oplus 11 = 01 = C2' C2' + Schlüssel = 01 + 11 = 100 = C2

Verschlüsselter Text = C1 C2 = 11 100

Betrachtet man die Verschlüsselung von B2, sieht man, dass dazu C1 benötigt wird. Generell bedeutet das, dass für eine Verschlüsselung von Bi der Codeblock Ci − 1 benötigt wird. Eine Parallelisierung des Kodiervorgangs fällt damit aus.

Entschlüsselung

Verschlüsselter Text: 11 100 ^ ^ | | Aufgeteilt in Blöcke: C1 C2

Entschlüsselung (Block 1)

C1 - Schlüssel = 11 - 11 = 00 = C1' C1' \oplus IV = 00 \oplus 01 = 01 = B1

Entschlüsselung (Block 2)

C2 - Schlüssel = 100 - 11 = 01 = C2' C2' \oplus C1 = 01 \oplus 11 = 10 = B2

Klartext = B1 B2 = 01 10

Betrachtet man die Entschlüsselung von C2, sieht man, dass B1 dafür nicht benötigt wird, sondern lediglich C1. Generell bedeutet das, dass für eine Dekodierung von Ci nur Ci − 1 benötigt wird. Damit ist eine Parallelisierung des Entschlüsselungsvorgangs möglich.

Integritätssicherung mit CBC, CBC-MAC

Struktur zur CBC-MAC Berechnung

CBC kann auch zur Integritätssicherung benutzt werden, indem der letzte mit CBC verschlüsselte Block als MAC (dem sogenannten CBC-MAC oder CBC-Restwert) an die ursprüngliche unverschlüsselte Nachricht angehängt und diese samt diesem MAC versandt wird. Der Empfänger kann mit Hilfe des CBC-Algorithmus den CBC-MAC der empfangenen Nachricht berechnen und nun vergleichen, ob der gerade selbst berechnete Wert mit dem an der Nachricht angehängten übereinstimmt.

Siehe auch

Literaturhinweis

  • Reinhard Wobst: Abenteuer Kryptologie. ISBN 3-8273-1413-5. 

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Cipher Block Chaining — Mode d opération (cryptographie) En cryptographie, un mode d opération est la manière de traiter les blocs de texte clairs et chiffrés au sein d un algorithme de chiffrement par bloc. Chacun des modes possède ses propres atouts. Plusieurs modes… …   Wikipédia en Français

  • Cipher Block Chaining Mode — (CBC) ist eine Betriebsart, in der Blockchiffren betrieben werden können. Vor dem Verschlüsseln eines Klartextblocks wird dieser zunächst mit dem im vorhergehenden Schritt erzeugten Geheimtextblock per XOR (exklusives Oder) verknüpft.… …   Deutsch Wikipedia

  • Cipher Feedback — Mode (CFB) ist eine Betriebsart (Modus), in der Blockchiffren betrieben werden, damit Klartexte verschlüsselt werden können, die länger als die Blocklänge des Chiffrierverfahrens sind. Beispiele für Blockchiffre sind der Data Encryption Standard… …   Deutsch Wikipedia

  • Cipher Feedback Mode — (CFB) ist eine Betriebsart (Modus), in der Blockchiffren betrieben werden, damit Klartexte verschlüsselt werden können, die länger als die Blocklänge des Chiffrierverfahrens sind. Beispiele für Blockchiffre sind der Data Encryption Standard (64… …   Deutsch Wikipedia

  • Block cipher modes of operation — This article is about cryptography. For method of operating , see modus operandi. In cryptography, modes of operation is the procedure of enabling the repeated and secure use of a block cipher under a single key.[1][2] A block cipher by itself… …   Wikipedia

  • Residual block termination — In cryptography, residual block termination is a variation of cipher block chaining mode (CBC) that does not require any padding. It does this by effectively changing to cipher feedback mode for one block. The cost is the increased… …   Wikipedia

  • Blockverschlüsselung — Eine Blockverschlüsselung, auch Blockchiffre genannt, ist ein Verschlüsselungsverfahren, bei dem der Klartext in eine Folge gleichlanger Blöcke zerlegt wird, wobei die Blöcke anschließend unabhängig voneinander mit dem gleichen Schlüssel… …   Deutsch Wikipedia

  • Disk encryption theory — Disk encryption is a special case of data at rest protection when the storage media is a sector addressable device (e.g., a hard disk). This article presents cryptographic aspects of the problem. For discussion of different software packages and… …   Wikipedia

  • OFB — Output Feedback Mode (OFB) ist eine Betriebsart, in der Blockchiffren betrieben werden können. Dabei wird ein Blockalgorithmus wie beispielsweise Data Encryption Standard oder Advanced Encryption Standard genutzt, um daraus einen Stromchiffre zu… …   Deutsch Wikipedia

  • Режим шифрования — Режим шифрования  метод применения блочного шифра, позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. При этом для шифрования одного блока могут использоваться данные другого …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”