Aller au contenu
uencoder

CBC (Cipher Block Chaining)

Le mode CBC applique un XOR entre le bloc de texte chiffré précédent et le texte en clair courant avant le chiffrement, si bien que des blocs identiques donnent des textes chiffrés différents ; il exige un IV aléatoire mais ne fournit aucune authentification d'intégrité.

Objectif

Élimine les motifs de blocs identiques d'ECB et offre la confidentialité, mais nécessite un MAC supplémentaire pour l'intégrité.

Mécanisme

Chiffrement : C_i = E_K(P_i ⊕ C_{i-1}), avec C_0 = IV. Déchiffrement : P_i = D_K(C_i) ⊕ C_{i-1}. L'IV doit être imprévisible (aléatoire). La propagation d'erreurs n'affecte que le bloc courant et le suivant. Non authentifié, il doit être associé à un HMAC (Encrypt-then-MAC).

Cas d’usage

  • Chiffrement de fichiers (p. ex. valeurs par défaut d'OpenSSL)
  • Chiffrement de champs de base de données
  • IPsec ESP (historique)
  • Chiffrement de disque (partiellement)

Exemples

  • entrée
    IV + P1 P2 P3
    Output
    C1 C2 C3

    Each block depends on the previous one

Erreurs courantes

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

Termes associés

Outils associés

References