Chiffreurs de flux
Les chiffreurs de flux chiffrent les données en générant un flux de clés pseudo-aléatoire à partir d'une clé secrète et en le combinant avec le texte en clair, généralement bit par bit ou octet par octet, émulation du masque jetable (one-time pad) parfaitement sécurisé avec une clé courte.
Definition
Un chiffreur de flux est un schéma de chiffrement symétrique qui produit un long flux de clés pseudo-aléatoire à partir d'une clé secrète (et généralement d'un nonce) et chiffre en combinant le flux de clés avec le texte en clair, le plus souvent par un OU exclusif (XOR) bit à bit.
Scope
Ce thème couvre la conception et l'analyse des chiffreurs de flux : les générateurs de flux de clés construits à partir de registres à décalage à rétroaction linéaire, les constructions à combinateur et à filtre, ainsi que les conceptions modernes orientées logiciel telles que ChaCha20 et le portefeuille eSTREAM. Il aborde la relation avec le masque jetable (one-time pad), l'exigence critique de ne jamais réutiliser un flux de clés, et les attaques résultant de la réutilisation du flux de clés ou de générateurs faibles. Il exclut les chiffreurs par blocs, bien qu'un chiffreur par blocs en mode compteur fonctionne effectivement comme un chiffreur de flux.
Core questions
- Comment une clé courte peut-elle être étendue en un long flux de clés imprévisible qui imite un masque jetable (one-time pad) ?
- Pourquoi la réutilisation d'un flux de clés est-elle catastrophique, et comment les nonces l'empêchent-ils ?
- Qu'est-ce qui rend un générateur de flux de clés cryptographiquement fort plutôt que simplement statistiquement aléatoire ?
- Comment les chiffreurs de flux modernes comme ChaCha20 atteignent-ils une telle vitesse sans matériel dédié ?
- Quelles attaques classiques (corrélation, algébriques) cassent les conceptions faibles basées sur les LFSR ?
Key concepts
- flux de clés
- masque jetable (one-time pad)
- registre à décalage à rétroaction linéaire
- nonce et vecteur d'initialisation
- réutilisation du flux de clés (two-time pad)
- ChaCha20 et Salsa20
- attaques par corrélation
- chiffreurs synchrones vs auto-synchronisants
Key theories
- Masque jetable (one-time pad) et secret parfait
- Le chiffrement par XOR avec une clé véritablement aléatoire de la même longueur que le message permet d'atteindre le secret parfait de Shannon ; les chiffreurs de flux l'approximent en substituant un flux de clés pseudo-aléatoire au masque véritablement aléatoire, qui est impraticable.
- Génération de flux de clés et pseudo-aléatoire cryptographique
- Un chiffreur de flux sécurisé est un générateur pseudo-aléatoire : son flux de clés doit être computationnellement indiscernable d'un flux aléatoire, de sorte qu'aucun adversaire efficace ne puisse prédire les bits futurs du flux de clés, même après en avoir observé un grand nombre.
Mechanisms
Un chiffreur de flux synchrone initialise un état interne à partir de la clé et du nonce, puis met à jour l'état de manière répétée et émet un flux de clés indépendant du texte en clair. Le flux de clés est combiné par XOR avec le texte en clair pour chiffrer et avec le texte chiffré pour déchiffrer. Les conceptions basées sur des registres à décalage à rétroaction linéaire sont rapides en matériel mais nécessitent des combinateurs non linéaires pour résister aux attaques algébriques ; les chiffreurs logiciels comme ChaCha20 utilisent des opérations d'addition-rotation-XOR (ARX) sur un grand état pour la vitesse et la sécurité.
Clinical relevance
ChaCha20 (avec l'authentificateur Poly1305) est largement déployé dans TLS 1.3, OpenSSH, WireGuard et la messagerie mobile, où il est préféré à AES sur les appareils dépourvus d'accélération matérielle AES. Les chiffreurs de flux sont bien adaptés aux médias en continu et aux liaisons à faible latence. Historiquement, le chiffreur de flux RC4 a protégé les premières versions de SSL/TLS et le Wi-Fi WEP jusqu'à ce que ses biais conduisent à sa dépréciation.
Evidence & guidelines
ChaCha20-Poly1305 est standardisé dans la RFC 8439 et approuvé pour TLS. RC4 est interdit dans TLS par la RFC 7465 en raison de biais dans le flux de clés. Le projet eSTREAM (2004-2008) a produit un portefeuille de chiffreurs de flux validés. La règle cardinale à travers toutes les normes est qu'une paire (clé, nonce) ne doit jamais être réutilisée.
History
Les chiffreurs de flux descendent du chiffrement de Vernam (1917) et du masque jetable (one-time pad). Les systèmes militaires de la Guerre Froide utilisaient des générateurs de flux de clés basés sur des registres à décalage. RC4, conçu par Ron Rivest en 1987, est devenu énormément répandu mais a finalement été cassé dans ses utilisations protocolaires. La compétition eSTREAM et la famille Salsa20/ChaCha20 de Daniel Bernstein (2008) ont défini la génération moderne, adaptée aux logiciels, désormais privilégiée dans les protocoles Internet.
Key figures
- Claude Shannon
- Daniel J. Bernstein
- Ronald Rivest
- Adi Shamir
Related topics
Seminal works
- shannon1949
- katz2020
- menezes1996
Frequently asked questions
- Que se passe-t-il si un flux de clés de chiffreur de flux est réutilisé ?
- L'application d'un XOR entre deux textes chiffrés avec le même flux de clés annule le flux de clés, laissant le XOR des deux textes en clair — ce qui révèle souvent les deux messages. C'est pourquoi chaque chiffrement doit utiliser un nouveau nonce afin que le flux de clés ne se répète jamais sous une clé fixe.
- Les chiffreurs de flux sont-ils moins sécurisés que les chiffreurs par blocs ?
- Pas intrinsèquement. Les chiffreurs de flux modernes comme ChaCha20 sont considérés comme aussi sécurisés qu'AES et sont parfois plus rapides en logiciel. L'insécurité découle d'une mauvaise utilisation (réutilisation du flux de clés) ou de conceptions héritées faibles telles que RC4, et non du concept de chiffreur de flux lui-même.