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 P3OutputC1 C2 C3Each 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
ECB (Electronic Codebook)
Le mode ECB chiffre chaque bloc indépendamment, si bien que des blocs de texte clair identiques produisent des blocs de texte chiffré identiques ; il est non sûr et ne convient qu'aux données d'un seul bloc ou aléatoires. GLOSSAIRE
CTR (Counter Mode)
Le mode CTR transforme un chiffrement par blocs en chiffrement de flux : il chiffre un compteur incrémenté pour générer un flux de clés XORé avec le texte clair, permettant parallélisme et accès aléatoire, mais sans intégrité. GLOSSAIRE
GCM (Galois/Counter Mode)
GCM est un mode AEAD qui combine le chiffrement CTR avec l'authentification GHASH, offrant à la fois confidentialité et intégrité ; c'est le mode privilégié de TLS 1.2/1.3. GLOSSAIRE
Mode of Operation
Un mode d'opération est un schéma permettant à un chiffrement par blocs de traiter des données de longueur arbitraire, en définissant comment les blocs de texte en clair sont chaînés lors du chiffrement ; les modes courants incluent ECB, CBC, CTR et GCM. GLOSSAIRE
IV (Initialization Vector)
Un vecteur d'initialisation (IV) est une entrée qui injecte de l'aléa dans les modes de chiffrement par blocs, de sorte que le même clair produise des chiffrés différents à chaque chiffrement. GLOSSAIRE