Chiffrement par bloc et chiffrement par flot

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

Portail > Fondamentaux

Les algorithmes symétriques se répartissent en deux grandes familles : les chiffrements par bloc, qui traitent des blocs de taille fixe, et les chiffrements par flot, qui produisent un flux de clé combiné au message bit à bit.

Chiffrement par bloc

Un chiffrement par bloc transforme un bloc de taille fixe (ex. 128 bits pour AES) en un bloc chiffré de même taille, sous le contrôle de la clé. Pour chiffrer un message plus long, il faut :

  • un mode opératoire (CBC, CTR, GCM…) qui enchaîne les blocs ;
  • un remplissage pour compléter le dernier bloc (sauf modes de type flot comme CTR).

Exemples : AES, Twofish, Camellia, ARIA, SM4, et les hérités DES/3DES.

Chiffrement par flot

Un chiffrement par flot génère, à partir de la clé (et d'un nonce), un flux de clé (keystream) pseudo-aléatoire, combiné au message — typiquement par XOR :

chiffré = clair XOR keystream(K, nonce)
clair   = chiffré XOR keystream(K, nonce)

Pas de blocs, pas de padding. Très adapté aux flux continus et aux petits messages. Exemple moderne : ChaCha20 ; hérité et cassé : RC4.

Contrainte absolue : ne jamais réutiliser le même couple (clé, nonce). Réutiliser le keystream permet de retrouver le XOR de deux messages clairs (Vecteurs d'initialisation et nonces).

Bloc imitant le flot

Certains modes (notamment CTR) transforment un chiffrement par bloc en générateur de keystream : le bloc chiffre un compteur, et le résultat est XORé au clair. On obtient ainsi un comportement « par flot » à partir d'AES, sans padding. C'est la base d'AES-GCM.

Comparaison

Par bloc Par flot
Unité Bloc fixe (ex. 128 bits) Bit/octet (flux)
Padding Requis (sauf modes flot) Aucun
Accès aléatoire Selon le mode (CTR : oui) Selon la construction
Exemples AES, Camellia, 3DES ChaCha20, (RC4 — cassé)

Et l'intégrité ?

Bloc comme flot n'assurent, seuls, que la confidentialité. Pour garantir aussi l'intégrité, on combine avec un MAC ou — recommandé — on emploie une primitive AEAD (AES-GCM, ChaCha20-Poly1305).

Points clés à retenir

  • Bloc : blocs fixes, nécessite mode + padding (AES…).
  • Flot : keystream XORé au clair, pas de padding (ChaCha20…), nonce jamais réutilisé.
  • Le mode CTR fait fonctionner un chiffrement par bloc « en flot ».
  • Ni l'un ni l'autre n'assure l'intégrité seul → MAC ou AEAD.

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