CBC (Cipher Block Chaining)
El modo CBC aplica XOR del bloque de texto cifrado anterior con el texto plano actual antes de cifrar, de modo que bloques idénticos producen cifrados distintos; requiere un IV aleatorio pero no aporta autenticación de integridad.
Propósito
Elimina los patrones de bloques idénticos del ECB y ofrece confidencialidad, pero necesita un MAC adicional para la integridad.
Mecanismo
Cifrado: C_i = E_K(P_i ⊕ C_{i-1}), con C_0 = IV. Descifrado: P_i = D_K(C_i) ⊕ C_{i-1}. El IV debe ser impredecible (aleatorio). La propagación de errores solo afecta al bloque actual y al siguiente. No está autenticado y debe combinarse con un HMAC (Encrypt-then-MAC).
Casos de uso
- Cifrado de archivos (p. ej., valores por defecto de OpenSSL)
- Cifrado de campos de bases de datos
- IPsec ESP (histórico)
- Cifrado de disco (parcialmente)
Ejemplos
- entrada
IV + P1 P2 P3OutputC1 C2 C3Each block depends on the previous one
Errores comunes
- A predictable IV enables chosen-plaintext attacks
- Use a random IV and transmit it with the ciphertext
- Lack of authentication invites padding attacks (e.g., POODLE)
- Use an AEAD mode or Encrypt-then-MAC
Términos relacionados
ECB (Electronic Codebook)
El modo ECB cifra cada bloque de forma independiente, de modo que bloques de texto claro idénticos producen bloques de texto cifrado idénticos; es inseguro y solo sirve para datos de un solo bloque o aleatorios. GLOSARIO
CTR (Counter Mode)
El modo CTR convierte un cifrador de bloques en un cifrador de flujo: cifra un contador incremental para generar un flujo de claves que se XOR con el texto plano, soportando paralelismo y acceso aleatorio, pero sin integridad. GLOSARIO
GCM (Galois/Counter Mode)
GCM es un modo AEAD que combina el cifrado CTR con la autenticación GHASH, proporcionando confidencialidad e integridad a la vez, y es el modo preferido de TLS 1.2/1.3. GLOSARIO
Mode of Operation
Un modo de operación es un esquema que permite a un cifrado por bloques procesar datos de longitud arbitraria, definiendo cómo se encadenan los bloques de texto plano durante el cifrado; los comunes incluyen ECB, CBC, CTR y GCM. GLOSARIO
IV (Initialization Vector)
Un vector de inicialización (IV) es una entrada que inyecta aleatoriedad en los modos de cifrado por bloques, de modo que el mismo texto plano produce distintos cifrados en cada cifrado. GLOSARIO