
Chiffrement symétrique et flux
Ce cours aborde les principes fondamentaux du chiffrement par flux, du One‑Time Pad (OTP) et des constructions modernes comme ChaCha20. Vous découvrirez les notions de confidentialité…

Dans un stream cipher, pourquoi la réutilisation du même keystream (two‑time pad) est dangereuse ?
Quel test statistique permet de distinguer un PRG dont le bit de poids fort est 1 pour 2/3 des clés ?
Quel est le rôle du nonce (IV) dans les chiffrements par flux modernes comme ChaCha20 ?
Dans le schéma d’un LFSR, quel élément garantit que le registre reste linéaire ?
Selon le théorème de Shannon, quelle relation doit exister entre la taille de l’ensemble des clés |K| et celle de l’ensemble des messages |M| pour obtenir une parfaite confidentialité ?
Quel est le principal inconvénient du One-Time Pad qui le rend impraticable dans la plupart des applications ?
Combien de fois la fonction 'h' est‑elle appliquée dans le processus de génération du keystream de ChaCha20 selon le diagramme ?
Quelle propriété doit satisfaire un PRG pour qu’un stream cipher basé sur lui soit sémantiquement sûr ?
Chiffrement symétrique et flux – Concepts clés
Ce cours aborde les principes fondamentaux du chiffrement par flux, du One‑Time Pad (OTP) et des constructions modernes comme ChaCha20. Vous découvrirez les notions de confidentialité parfaite, les dangers de la réutilisation d’un keystream, les tests statistiques des générateurs pseudo‑aléatoires (PRG) et le rôle du nonce (IV). Chaque section s’appuie sur des questions‑réponses typiques d’un quiz, afin de consolider vos connaissances de façon pratique.
1. Le One‑Time Pad : la confidentialité parfaite
Le OTP est le seul système de chiffrement symétrique qui offre une confidentialité parfaite selon le théorème de Shannon. Cette propriété signifie que, même si un adversaire possède le texte chiffré, il ne peut aucune fois déduire le texte clair sans connaître la clé.
- Principe de base : chaque bit du message est combiné avec un bit de clé aléatoire de même longueur via l’opération XOR.
- Condition essentielle : la clé doit être vraiment aléatoire, de même taille que le message, et ne jamais être réutilisée.
- Avantage principal : la sécurité ne dépend pas de la puissance de calcul de l’attaquant, mais uniquement de la qualité de la clé.
À retenir : clé = message, sécurité parfaite, aucune réutilisation.
2. Limites pratiques du One‑Time Pad
Malgré son niveau de sécurité inégalé, le OTP reste largement impraticable :
- Il nécessite une clé aussi longue que le message, ce qui rend le stockage et la distribution coûteux.
- La génération d’une clé réellement aléatoire demande des sources d’entropie fiables (ex. bruit thermique, générateurs matériels).
- La moindre réutilisation d’une partie de la clé (le fameux two‑time pad) compromet immédiatement la confidentialité.
À retenir : le principal inconvénient du OTP est la gestion de la clé.
3. Le danger du two‑time pad
Lorsque le même keystream est employé pour deux messages distincts, on obtient :
M_1 \oplus K \;\text{et}\; M_2 \oplus K \;\Rightarrow\; (M_1 \oplus K) \oplus (M_2 \oplus K) = M_1 \oplus M_2
Le XOR des deux textes chiffrés révèle le XOR des deux textes clairs. Si l’un des messages est connu ou prévisible, l’autre peut être récupéré facilement. Ce phénomène illustre pourquoi la réutilisation d’un keystream est catastrophique pour la sécurité.
À retenir : deux chiffrés → XOR = messages XOR.
4. Générateurs pseudo‑aléatoires (PRG) et tests statistiques
Un PRG produit un keystream à partir d’une petite clé secrète. Sa robustesse repose sur l’absence de biais détectables. Un exemple typique de biais est un bit de poids fort (MSB) qui vaut 1 avec une probabilité de 2/3 au lieu de 1/2.
- Test de fréquence du MSB : on compte le nombre de fois où le MSB vaut 1 dans une longue séquence. Un écart significatif par rapport à 50 % indique un biais exploitable.
- Ce type de test fait partie des suites de tests NIST SP 800‑22 ou Dieharder, qui évaluent l’uniformité, l’indépendance et l’absence de corrélations.
À retenir : MSB : fréquence = 2/3, signe de biais.
5. Le rôle du nonce (IV) dans les chiffrements par flux modernes
Les algorithmes comme ChaCha20 utilisent un nonce (ou vecteur d’initialisation) pour garantir l’unicité du keystream même si la même clé secrète est réutilisée. Le nonce doit être unique pour chaque chiffrement mais n’a pas besoin d’être secret.
- Il est généralement concaténé à la clé avant d’alimenter le PRG.
- Un nonce répété avec la même clé reproduit le même keystream, reproduisant ainsi le problème du two‑time pad.
- Dans les protocoles TLS, le nonce combine souvent un compteur et un timestamp pour assurer l’unicité.
À retenir : nonce = garantie de keystream unique.
6. Architecture de ChaCha20 et fonction h
ChaCha20 est un chiffre par flux basé sur un réseau de diffusion (ARX – addition, rotation, XOR). Le keystream est généré par 20 rounds, organisés en 10 paires d’opérations où la fonction h est appliquée.
- Chaque round effectue quatre opérations de type
quarter‑roundqui mélangent les 16 mots d’état. - La fonction h représente le bloc de transformation complet d’un round ; elle est donc exécutée 10 fois pour produire le keystream final.
À retenir : dix rounds = dix appels à h.
7. Registres à décalage à rétroaction linéaire (LFSR)
Les LFSR sont des constructions classiques pour générer des suites pseudo‑aléatoires rapides. Leur caractéristique principale est la linéarité de la fonction de rétroaction :
- La fonction
fcombine les bits de sortie via des XOR uniquement, sans opérations non linéaires (ex. AND, OR). - Cette linéarité rend les LFSR vulnérables aux attaques algébriques (ex. Berlekamp‑Massey) qui permettent de reconstituer la séquence complète à partir d’un nombre limité de bits observés.
À retenir : Linéarité = fonction de rétroaction XOR uniquement.
8. Théorème de Shannon et taille des espaces de clés et de messages
Claude Shannon a démontré que la confidentialité parfaite nécessite que l’ensemble des clés |K| soit au moins aussi grand que l’ensemble des messages |M|. Autrement dit, chaque message possible doit pouvoir être couplé à une clé unique.
- Si
|K| < |M|, il existera des messages qui ne peuvent pas être couplés à une clé distincte, créant ainsi des fuites d’information. - Dans le OTP,
|K| = 2^{|M|}, ce qui satisfait largement la condition de Shannon.
À retenir : clé ≥ messages, sinon fuite.
9. Synthèse et bonnes pratiques
Pour concevoir ou analyser un système de chiffrement par flux, gardez à l’esprit les points suivants :
- Utilisez toujours un nonce unique pour chaque chiffrement afin d’éviter la réutilisation du keystream.
- Privilégiez des PRG robustes, testés avec des suites statistiques (NIST, Dieharder) pour détecter tout biais, notamment sur le MSB.
- Ne jamais réutiliser une clé OTP ; la longueur de la clé doit être égale à celle du message.
- Lorsque vous employez des LFSR, ajoutez des composants non linéaires (ex. filtres, combinateurs) pour contrer les attaques algébriques.
- Vérifiez que la taille de l’espace de clés satisfait le théorème de Shannon afin d’assurer une confidentialité théorique maximale.
En suivant ces recommandations, vous renforcez la sécurité de vos communications et vous assurez que les propriétés théoriques du chiffrement par flux se traduisent en une protection concrète contre les attaques réelles.
