Saltar al contenido
uencoder

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 P3
    Output
    C1 C2 C3

    Each 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

Herramientas relacionadas

References