Cipher Block Chaining Mode

Cipher Block Chaining Mode (CBC Mode) ist eine Betriebsart für Blockchiffren. Vor dem Verschlüsseln eines Klartextblocks wird dieser zunächst mit dem im vorh…

Cipher Block Chaining Mode

Cipher Block Chaining Mode (CBC Mode) ist eine Betriebsart für Blockchiffren. Vor dem Verschlüsseln eines Klartextblocks wird dieser zunächst mit dem im vorhergehenden Schritt erzeugten Geheimtextblock per bitweisem XOR (exklusives Oder) verknüpft. Der Modus wurde 1976 von William F. Ehrsam, Carl H. W. Meyer, John L. Smith und Walter L. Tuchman veröffentlicht.[1]

Allgemeines

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

CBC-Verschlüsselung

Als mathematische Formel ausgedrückt:

Dabei bezeichnet die Verschlüsselungsfunktion mit dem Schlüssel , den i-ten Klartextblock und den i-ten Geheimtextblock. ist der Initialisierungsvektor, und steht für die bitweise XOR-Verknüpfung.

Die Entschlüsselung läuft entsprechend umgekehrt ab:

CBC Entschlüsselung

Die zugehörige Entschlüsselungsformel lautet mit den gleichen Bezeichnungen wie oben (und für die Entschlüsselung mit dem Schlüssel ):

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 Angreifer einen Wasserzeichenangriff (watermark attack) auf solche Daten ausführen können. Das Modul dm-crypt benutzt zur Generierung des IV das ESS-Verfahren.

Für die Sicherheit des Algorithmus ist es nicht notwendig, den Initialisierungsvektor geheim zu übertragen.

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.
  • Eine Umsortierung von Chiffratblöcken führt zu fehlerhaften Klartextblöcken.

Jedoch hat der CBC-Mode auch einige Nachteile:

  • Die Verschlüsselung ist (im Gegensatz zur Entschlüsselung) nicht parallelisierbar, da bekannt sein muss.
  • Ein Fehler in einem Chiffratblock verfälscht beim Entschlüsseln auch den nachfolgenden Klartextblock.
  • Das Chiffrat ist veränderbar und annähernd XOR-homomorph.[2]

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 allzu großen Schaden: Der Klartextblock wird zerstört und im Klartextblock wird das respektive Bit negiert. Dies ist unmittelbar aus der Definition der Entschlüsselung und obiger Abbildung ersichtlich, da ein beschädigter Geheimtextblock nur die Klartextblöcke und 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öglich machen. Genauso verursacht ein beschädigter Initialisierungsvektor beim Entschlüsseln keinen allzu großen Schaden, da dadurch nur der Klartextblock 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 gefährlich ist.

Beispiel

Klartext
01 10
Aufgeteilt in Blöcke
01 = , 10 =
Schlüssel
11=k
Init. Vektor (IV)
01

Zur Vereinfachung wird als Verschlüsselungsfunktion die binäre Addition und als Entschlüsselungsfunktion die binäre Subtraktion verwendet.

Verschlüsselung

Block 1:

Block 2:

Verschlüsselter Text:

Betrachtet man die Verschlüsselung von , sieht man, dass dazu benötigt wird. Generell bedeutet das, dass für eine Verschlüsselung von der Chiffratblock benötigt wird. Eine Parallelisierung des Verschlüsselungsvorgangs fällt damit aus.

Entschlüsselung

Block 1:

Block 2:

Klartext:

Betrachtet man die Entschlüsselung von , sieht man, dass dafür nicht benötigt wird, sondern lediglich . Generell bedeutet das, dass für eine Entschlüsselung von nur 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 Initialisierungsvektor auf null gesetzt und 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.[3] Der Empfänger kann mithilfe 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. Falls eine mit CBC verschlüsselte Nachricht mit einem CBC-MAC gesichert werden soll, darf für die Generierung des CBC-MAC nicht derselbe Schlüssel verwendet werden wie für die Verschlüsselung. Würde derselbe Schlüssel verwendet, so wäre der MAC-Block gleich dem letzten Chiffratblock und ein Angreifer könnte unentdeckt die gesamte Nachricht mit Ausnahme des letzten Blocks verändern.

CBC-MAC ist nur für Nachrichten fester Länge sicher. Variiert die Nachrichtenlänge, kann das Verfahren durch Length-Extension angegriffen werden. Ein Angreifer kann aus zwei gültigen Nachricht-MAC-Paaren einen gültigen MAC für eine neue Nachricht (die Konkatenation der beiden Nachrichten) erzeugen. Zwei Modifikationen können diesen Angriff verhindern: Jeder Nachricht kann die Nachrichtenlänge vorangestellt werden oder der MAC-Block wird zusätzlich mit einem zweiten Schlüssel verschlüsselt.

Literatur

  • Reinhard Wobst: Abenteuer Kryptologie. Methoden, Risiken und Nutzen der Datenverschlüsselung. 2., überarbeitete Auflage. Addison-Wesley Longman, Bonn u. a. 1998, ISBN 3-8273-1413-5.

Einzelnachweise

  1. William F. Ehrsam, Carl H. W. Meyer, John L. Smith, Walter L. Tuchman, "Message verification and transmission error detection by block chaining", US-Patent 4074066, 1976
  2. Practical malleability attack against CBC-Encrypted LUKS partitions | Jakob Lell's Blog. Abgerufen am 17. Februar 2022 (amerikanisches Englisch).
  3. Mihir Bellare, Joe Kiliany, Phillip Rogaway: The Security of the Cipher Block Chaining Message Authentication Code. In: Journal of Computer and System Science. Band 61, Nr. 3, 2000, S. 362–399 (cs.ucdavis.edu (Memento vom 5. Februar 2012 im Internet Archive) [PDF; 466 kB]).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.