Content

Blockchiffremodi

Blockchiffremodi

Cipher Block Chaining



Beim CBC-Modus fließt der Chiffretext des vorherigen Klartextblockes in die Verschlüsselung des aktuellen Klartextblockes mit ein. Der Chiffretext vom vorherigen Klartextblock wird mit dem aktuellen Klartextblock XOR verknüpft und dann verschlüsselt. So hängt die Verschlüsselung des aktuellen Blocks von allen vorangegangenen Blöcken ab.

Die Entschlüsselung ist analog, der Chiffreblock wird entschlüsselt und mit dem vorherigen Chiffreblock XOR verknüpft. Es werden aber immer noch zwei identische Nachrichten aus einem identischen Chiffretext erzeugt. Es wird der gleiche Chiffretext produziert, bis ein Unterschied im Klartext vorhanden ist. Um das zu verhindern, wurde ein Initalisierungsvektor (IV) eingeführt. Er wird vor den ersten Klartextblock gesetzt und so wird jede Nachricht eindeutig. Der IV muss selbst keine Bedeutung haben, er kann aus Zufallsdaten oder einem Zeitstempel bestehen. Zwei identische Nachrichten erzeugen jetzt einen unterschiedlichen Chiffretext, damit wird ein Block-Replay-Angriff unmöglich.
Da der CBC blockorientiert arbeitet, ist es nur möglich vollständige Blöcke zu verschlüsseln, das kann aber in manchen Situationen sehr störend sein. Umgangen wird das Problem, wenn nur weniger wichtige Informationen am Ende stehen oder der Abschluss bekannt ist. Wird bei der übertragung ein Bit umgedreht, durch einen Angreifer oder durch eine schlechte übertragungsleitung, ist die Entschlüsselung des ganzen Blockes fehlerhaft und ein Bit des nächsten Blockes, an dem der Bitfehler sich befand. Danach erholt sich der CBC-Modus wieder und alle folgenden Blöcke werden fehlerfrei entschlüsselt. Anders ist es, wenn ein Bit herausgenommen oder hinzugefügt wird, da so die Synchronisation verloren geht. Dadurch werden der aktuelle Block und alle nachfolgenden falsch entschüsselt. Es ist daher empfehlenswert einen Synchronisationsrahmen einzuführen.

Der CBC hat eine gewisse Weiterentwicklung durch verschiedene Varianten erfahren. Dazu zählt der CBC-MAC. In ihm ist der message authentication code integriert, was eine eindeutige Zuordnung der Nachricht zu einem Absender möglich macht. Des weiteren gibt es den Propagating CBC. Er ist ähnlich wie der CBC aufgebaut, nur dass er eine Integritätsprüfung enthalten kann, um die Unverfälschtheit der Nachricht zu überprüfen. Leider kann der Modus die unangenehme Eigenschaft haben, dass eine unbegrenzte Fehlerfortpflanzung mögich ist.



Beispiele zum Verhalten des CBC Modus

Beispiele für Angriffe auf den CBC Modus