Modes opératoires des chiffrements par bloc
Portail > Fondamentaux
Un mode opératoire définit comment enchaîner les blocs d'un chiffrement par bloc pour traiter un message de longueur quelconque. Le choix du mode est aussi déterminant que celui de l'algorithme : un bon algorithme dans un mauvais mode est vulnérable.
ECB — à proscrire
ECB (Electronic Codebook) chiffre chaque bloc indépendamment avec la même clé. Conséquence : deux blocs clairs identiques donnent deux blocs chiffrés identiques, ce qui laisse transparaître la structure des données (l'« image du manchot » chiffrée en ECB reste reconnaissable). À ne jamais utiliser pour des données réelles.
CBC
CBC (Cipher Block Chaining) XOR chaque bloc clair avec le bloc chiffré précédent avant chiffrement ; le premier bloc utilise un IV. Deux blocs identiques ne produisent plus le même chiffré.
- IV imprévisible requis.
- Chiffrement séquentiel (non parallélisable) ; déchiffrement parallélisable.
- Nécessite un padding → exposition possible aux attaques par oracle de padding si l'intégrité n'est pas vérifiée.
CFB / OFB
CFB (Cipher Feedback) et OFB (Output Feedback) transforment le chiffrement par bloc en mode « flot » : ils chiffrent un état réinjecté pour produire un keystream. Pas de padding. Moins utilisés aujourd'hui au profit de CTR et des modes AEAD.
CTR
CTR (Counter) chiffre un compteur (nonce + index) pour produire un keystream XORé au clair :
- parallélisable (chiffrement et déchiffrement), accès aléatoire ;
- pas de padding ;
- nonce/compteur jamais réutilisé sous la même clé, sous peine de compromission totale.
CTR est la base du mode AEAD AES-GCM.
Modes AEAD
Les modes précédents n'assurent que la confidentialité. Les modes AEAD (chiffrement authentifié avec données associées) ajoutent l'intégrité : GCM (basé CTR + authentification), CCM, etc. C'est ce qu'il faut utiliser par défaut (AES-GCM, ChaCha20-Poly1305).
Récapitulatif
| Mode | Padding | Parallélisable | Intégrité | Statut |
|---|---|---|---|---|
| ECB | oui | oui | non | À proscrire |
| CBC | oui | déchiffrement seul | non | Hérité, avec MAC obligatoire |
| CFB / OFB | non | partiel | non | Peu utilisés |
| CTR | non | oui | non | Bon, mais sans intégrité |
| GCM (AEAD) | non | oui | oui | Recommandé |
Points clés à retenir
- Jamais ECB.
- CBC/CTR n'assurent que la confidentialité → toujours ajouter l'intégrité (MAC ou AEAD).
- CTR est parallélisable, sans padding, et fonde GCM.
- Par défaut, viser un mode AEAD (GCM, ChaCha20-Poly1305).
Voir aussi
| Cryptographie symétrique — Portail | |
|---|---|
| Fondamentaux | Principe · Bloc et flot · Modes opératoires · Padding · IV et nonces |
| Intégrité / auth. | MAC et HMAC · AEAD |
| Gestion des clés | Aléa / CSPRNG · KDF · Échange de clés · Stockage / rotation |
| Algorithmes | AES · ChaCha20/Salsa20 · DES / 3DES · Blowfish et Twofish · RC4 · Camellia, ARIA et SM4 · AES-GCM · ChaCha20-Poly1305 · Hachage |
| Applications | Données au repos · En transit / hybride |
| Sécurité avancée | Attaques · Conformité · Post-quantique |