Modes opératoires des chiffrements par bloc

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche

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