Preenchimento (padding)
Bytes extras acrescentados a um texto claro para que ele ocupe um número inteiro de blocos.
ECB e CBC exigem que o texto claro seja um múltiplo exato do tamanho do bloco, 16 bytes no AES. O que falta é completado segundo uma regra combinada. O PKCS#7 é a mais comum: cada byte de preenchimento guarda o número de bytes de preenchimento, de modo que o receptor sabe quanto remover. O CTR e outros modos de fluxo não precisam de preenchimento algum, uma de suas poucas virtudes indiscutíveis.
O problema começa na remoção. Se o receptor revela se o preenchimento era válido, por uma mensagem de erro ou por uma diferença de tempo, o atacante ganha um oráculo para consultar. Essa é a base do ataque de padding oracle que Serge Vaudenay descreveu em 2002, e de toda uma família de ataques posteriores.