CBC
Encadeia os blocos fazendo XOR com o texto cifrado anterior — o que resolve o problema de padrões do ECB e cria um novo.
No Cipher Block Chaining, cada bloco de texto claro passa por XOR com o bloco de texto cifrado anterior antes de ser criptografado. O primeiro bloco não tem antecessor e usa, em vez disso, um vetor de inicialização. O efeito é que blocos de texto claro idênticos geram textos cifrados diferentes, e cada bloco depende de tudo o que veio antes.
O preço é que a criptografia se torna estritamente sequencial — a descriptografia, porém, pode ser paralelizada. Pior: o CBC exige preenchimento até completar um bloco inteiro, o que abre espaço para ataques de padding oracle sempre que o sistema revela, de algum jeito, se o preenchimento era válido. POODLE e Lucky Thirteen são variações desse mesmo tema. Protocolos modernos usam modos AEAD em vez disso.