Chiffrement par bloc et chiffrement par flot
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
- Modes opératoires des chiffrements par bloc
- Remplissage (padding)
- Vecteurs d'initialisation et nonces
- Chiffrement authentifié (AEAD)
| 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 |