CBC
Verkettet die Blöcke, indem der vorherige Geheimtext hineingexort wird — das löst ECBs Musterproblem und schafft ein neues.
Beim Cipher Block Chaining wird jeder Klartextblock vor der Verschlüsselung mit dem vorhergehenden Geheimtextblock XOR-verknüpft. Der erste Block hat keinen Vorgänger und verwendet stattdessen einen Initialisierungsvektor. Der Effekt: identische Klartextblöcke ergeben unterschiedlichen Geheimtext, und jeder Block hängt von allem ab, was zuvor kam.
Der Preis dafür ist, dass die Verschlüsselung streng sequenziell wird — die Entschlüsselung lässt sich dagegen parallelisieren. Schlimmer ist, dass CBC ein Auffüllen auf volle Blockgröße erfordert, was Padding-Oracle-Angriffe öffnet, sobald das System auf irgendeine Weise verrät, ob das Padding gültig war. POODLE und Lucky Thirteen sind beides Varianten dieses Themas. Moderne Protokolle setzen stattdessen auf AEAD-Modi.