CBC
Сцепляет блоки, подмешивая XOR предыдущего шифротекста, — решает проблему узоров ECB и создаёт новую.
В режиме Cipher Block Chaining каждый блок открытого текста перед шифрованием складывается по XOR с предыдущим блоком шифротекста. У первого блока предшественника нет, поэтому берётся вектор инициализации. В результате одинаковые блоки открытого текста дают разный шифротекст, а каждый блок зависит от всего предшествующего.
Цена — шифрование становится строго последовательным, хотя расшифровку можно распараллелить. Хуже того, CBC требует дополнения до целого блока, а это открывает дорогу атакам padding oracle, как только система каким-либо образом сообщает, было ли дополнение корректным. POODLE и Lucky Thirteen — вариации на эту тему. Современные протоколы используют AEAD-режимы.