<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Cipher_Block_Chaining_Mode</id>
	<title>Cipher Block Chaining Mode - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Cipher_Block_Chaining_Mode"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Cipher_Block_Chaining_Mode&amp;action=history"/>
	<updated>2026-05-16T04:37:39Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Cipher_Block_Chaining_Mode&amp;diff=203010&amp;oldid=prev</id>
		<title>imported&gt;Mhmhmh: Korrektur: „homorph“ -&gt; „homomorph“, siehe https://de.wikipedia.org/wiki/Homomorphismus</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Cipher_Block_Chaining_Mode&amp;diff=203010&amp;oldid=prev"/>
		<updated>2025-11-23T06:26:33Z</updated>

		<summary type="html">&lt;p&gt;Korrektur: „homorph“ -&amp;gt; „homomorph“, siehe https://de.wikipedia.org/wiki/Homomorphismus&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Cipher Block Chaining Mode&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CBC Mode&amp;#039;&amp;#039;&amp;#039;) ist eine [[Betriebsmodus (Kryptographie)|Betriebsart]], in der [[Blockchiffre]]n betrieben werden können. Vor dem Verschlüsseln eines [[Klartext (Kryptographie)|Klartextblocks]] wird dieser zunächst mit dem im vorhergehenden Schritt erzeugten [[Geheimtext]]block per [[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.&amp;lt;ref&amp;gt;William F. Ehrsam, Carl H. W. Meyer, John L. Smith, Walter L. Tuchman, &amp;quot;Message verification and transmission error detection by block chaining&amp;quot;, US-Patent 4074066, 1976&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
&lt;br /&gt;
Die Struktur der Verschlüsselung im CBC-Modus ist in nachfolgender Abbildung dargestellt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:CBC encryption.svg|CBC-Verschlüsselung]]&lt;br /&gt;
&lt;br /&gt;
Man kann dieses Diagramm auch mathematisch in Formeln ausdrücken, bezeichne dazu &amp;lt;math&amp;gt;E_K&amp;lt;/math&amp;gt; die Verschlüsselungsfunktion mit dem Schlüssel &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt;, sei &amp;lt;math&amp;gt;D_K&amp;lt;/math&amp;gt; die zugehörige&lt;br /&gt;
Entschlüsselungsfunktion. Bezeichne &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt; den i-ten Klartextblock, &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt; den i-ten Geheimtextblock und sei &amp;lt;math&amp;gt;IV&amp;lt;/math&amp;gt; der Initialisierungsvektor; in der Regel wird &amp;lt;math&amp;gt;C_0 = IV&amp;lt;/math&amp;gt; definiert. Außerdem bezeichne &amp;lt;math&amp;gt;\oplus&amp;lt;/math&amp;gt; das logische XOR.&lt;br /&gt;
Dann ist die Verschlüsselung im CBC-Modus wie folgt [[rekursiv]] definiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\forall i \in \mathbb{N}^+ : C_i = E_K(P_i \oplus C_{i-1})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Struktur der Entschlüsselung im CBC-Modus ist in nachfolgender Abbildung dargestellt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:CBC decryption.svg|CBC Entschlüsselung]]&lt;br /&gt;
&lt;br /&gt;
Die zugehörige Entschlüsselung ist im CBC-Modus hingegen nicht rekursiv und lautet mit den gleichen Bezeichnungen wie oben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\forall i \in \mathbb{N}^+ : P_i = D_K(C_i) \oplus C_{i-1}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als [[Initialisierungsvektor]] (IV) benutzt man entweder einen [[Zeitstempel]] oder eine zufällige Zahlenfolge.&lt;br /&gt;
Manche Anwendungen benutzen auch eine vorhersagbare, einfach aufsteigende Zahl, aber dies ist nicht sicher, weil fremde Personen unerwünscht einen [[Wasserzeichenangriff]] (&amp;#039;&amp;#039;watermark attack&amp;#039;&amp;#039;) auf solche Daten ausführen können.&lt;br /&gt;
Das Modul [[dm-crypt]] benutzt zur Generierung des IV das [[ESSIV|ESS]]-Verfahren.&lt;br /&gt;
&lt;br /&gt;
Für die Sicherheit des [[Algorithmus]] ist es nicht notwendig, den [[Initialisierungsvektor]] geheim zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Der CBC-Mode hat einige wichtige Vorteile:&lt;br /&gt;
&lt;br /&gt;
* Klartextmuster werden zerstört.&lt;br /&gt;
* Identische Klartextblöcke ergeben unterschiedliche Geheimtexte.&lt;br /&gt;
* Verschiedene Angriffe (Time-Memory-Tradeoff und Klartextangriffe) werden erschwert.&lt;br /&gt;
* Eine Umsortierung von Chiffratblöcken führt zu fehlerhaften Klartextblöcken.&lt;br /&gt;
Jedoch hat der CBC-Mode auch einige Nachteile:&lt;br /&gt;
&lt;br /&gt;
* Die Verschlüsselung ist nicht parallelisierbar, da &amp;lt;math&amp;gt;C_{i-1}&amp;lt;/math&amp;gt; bekannt sein muss, aber sehr wohl die Entschlüsselung.&lt;br /&gt;
* Bitfehler im Chiffrat multiplizieren sich beim Entschlüsseln im Klartext.&lt;br /&gt;
* Das Chiffrat ist veränderbar und annähernd XOR-homomorph.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.jakoblell.com/blog/2013/12/22/practical-malleability-attack-against-cbc-encrypted-luks-partitions/ |titel=Practical malleability attack against CBC-Encrypted LUKS partitions {{!}} Jakob Lell&amp;#039;s Blog |sprache=en-US |abruf=2022-02-17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt; wird zerstört und im Klartextblock &amp;lt;math&amp;gt;P_{i+1}&amp;lt;/math&amp;gt; wird das respektive Bit negiert. Dies ist unmittelbar aus der Definition der Entschlüsselung und obiger Abbildung ersichtlich, da ein beschädigter Geheimtextblock &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt; nur die Klartextblöcke &amp;lt;math&amp;gt;P_i&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;P_{i+1}&amp;lt;/math&amp;gt; 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 &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; beschädigt wird.&lt;br /&gt;
&lt;br /&gt;
Der CBC-Modus ist wesentlich sicherer als der [[Electronic Code Book Mode|ECB]]-Modus, vor allem wenn man &amp;#039;&amp;#039;keine&amp;#039;&amp;#039; zufälligen Texte hat. Unsere Sprache und andere Dateien, wie z.&amp;amp;nbsp;B. Video-Dateien, sind keinesfalls zufällig, weswegen der ECB-Mode gefährlich ist.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
;Klartext: 01 10&lt;br /&gt;
;Aufgeteilt in Blöcke: 01 = &amp;lt;math&amp;gt;B_1&amp;lt;/math&amp;gt;, 10 = &amp;lt;math&amp;gt;B_2&amp;lt;/math&amp;gt;&lt;br /&gt;
;Schlüssel: 11=k&lt;br /&gt;
;Init. Vektor (IV): 01&lt;br /&gt;
&lt;br /&gt;
Zur Vereinfachung wird als Verschlüsselungsfunktion &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; die [[Dualsystem#Grundrechenarten im Dualsystem|binäre Addition]] und als Entschlüsselungsfunktion &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; die binäre Subtraktion verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsselung ===&lt;br /&gt;
Block 1:&lt;br /&gt;
* &amp;lt;math&amp;gt;B_1\oplus IV = 01 \oplus 01 = 00 = C_{1}&amp;#039;&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;E_k(C_1&amp;#039;) = C_{1}&amp;#039;+k = 00 + 11 = 11 = C_1&amp;lt;/math&amp;gt;&lt;br /&gt;
Block 2:&lt;br /&gt;
* &amp;lt;math&amp;gt;B_2\oplus C_1 = 10 \oplus 11 = 01 = C_{2}&amp;#039;&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;E_k(C_2&amp;#039;) = C_{2}&amp;#039;+k = 01 + 11 = 00 = C_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Verschlüsselter Text:&lt;br /&gt;
* &amp;lt;math&amp;gt;C_1 C_2 = 11 00&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betrachtet man die Verschlüsselung von &amp;lt;math&amp;gt;B_2&amp;lt;/math&amp;gt;, sieht man, dass dazu &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt; benötigt wird. Generell bedeutet das, dass für eine Verschlüsselung von &amp;lt;math&amp;gt;B_i&amp;lt;/math&amp;gt; der Chiffratblock &amp;lt;math&amp;gt;C_{i-1}&amp;lt;/math&amp;gt; benötigt wird. Eine Parallelisierung des Verschlüsselungsvorgangs fällt damit aus.&lt;br /&gt;
&lt;br /&gt;
=== Entschlüsselung ===&lt;br /&gt;
Block 1:&lt;br /&gt;
* &amp;lt;math&amp;gt;D_k(C_1) = C_1 - k = 11 - 11 = 00 = C_{1}&amp;#039;&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;C_{1}&amp;#039;\oplus IV = 00 \oplus 01 = 01 = B_1&amp;lt;/math&amp;gt;&lt;br /&gt;
Block 2:&lt;br /&gt;
* &amp;lt;math&amp;gt;D_k(C_2) = C_2 - k = 00 - 11 = 01 = C_{2}&amp;#039;&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;C_{2}&amp;#039;\oplus C1 = 01\oplus 11 = 10 = B_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Klartext:&lt;br /&gt;
* &amp;lt;math&amp;gt;B_1 B_2 = 01 10&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betrachtet man die Entschlüsselung von &amp;lt;math&amp;gt;C_2&amp;lt;/math&amp;gt;, sieht man, dass &amp;lt;math&amp;gt;B_1&amp;lt;/math&amp;gt; dafür nicht benötigt wird, sondern lediglich &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt;. Generell bedeutet das, dass für eine Entschlüsselung von &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt; nur &amp;lt;math&amp;gt;C_{i-1}&amp;lt;/math&amp;gt; benötigt wird. Damit ist eine Parallelisierung des Entschlüsselungsvorgangs möglich.&lt;br /&gt;
&lt;br /&gt;
== Integritätssicherung mit CBC, CBC-MAC ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:CBC-MAC structure (en).svg|mini|300px|Struktur zur CBC-MAC-Berechnung]]&lt;br /&gt;
&lt;br /&gt;
CBC kann auch zur Integritätssicherung benutzt werden, indem der Initialisierungsvektor auf null gesetzt und der letzte mit CBC verschlüsselte Block als [[Message Authentication Code|MAC]] (dem sogenannten CBC-MAC oder CBC-Restwert) an die ursprüngliche unverschlüsselte Nachricht angehängt und diese samt diesem MAC versandt wird.&amp;lt;ref name=&amp;quot;BKR&amp;quot; /&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
CBC-MAC ist nur für Nachrichten fester Länge sicher. Variiert die Nachrichtenlänge, kann das Verfahren durch &amp;#039;&amp;#039;Length-Extension&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Reinhard Wobst&lt;br /&gt;
   |Titel=Abenteuer Kryptologie. Methoden, Risiken und Nutzen der Datenverschlüsselung.&lt;br /&gt;
   |Auflage=2., überarbeitete Auflage&lt;br /&gt;
   |Verlag=Addison-Wesley Longman&lt;br /&gt;
   |Ort=Bonn u. a.&lt;br /&gt;
   |Datum=1998&lt;br /&gt;
   |ISBN=3-8273-1413-5}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;BKR&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=[[Mihir Bellare]], Joe Kiliany, Phillip Rogaway&lt;br /&gt;
 |Titel=The Security of the Cipher Block Chaining Message Authentication Code&lt;br /&gt;
 |Sammelwerk=Journal of Computer and System Science&lt;br /&gt;
 |Band=61&lt;br /&gt;
 |Nummer=3&lt;br /&gt;
 |Datum=2000&lt;br /&gt;
 |Seiten=362–399&lt;br /&gt;
 |Online={{Webarchiv |url=http://www.cs.ucdavis.edu/research/tech-reports/1997/CSE-97-15.pdf |text=cs.ucdavis.edu |wayback=20120205061813}}&lt;br /&gt;
 |Format=PDF&lt;br /&gt;
 |KBytes=466&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Blockchiffremodi}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Symmetrisches Kryptosystem]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Mhmhmh</name></author>
	</entry>
</feed>