Chiffrement par flux (Stream Cipher)

Un “chiffrement par flux” (stream cipher) est un type d’algorithme de chiffrement qui fonctionne en chiffrant un message bit par bit, octet par octet ou mot par mot. Cette méthode contraste avec les chiffrements par blocs, qui chiffrent des blocs de données de taille fixe en une seule opération.

Fonctionnement

Le fonctionnement d’un chiffrement par flux repose sur la génération d’une séquence de bits, appelée flux de clés (keystream), qui est combinée avec le message original (texte en clair) bit par bit en utilisant des opérations de type XOR. La sécurité du chiffrement dépend du caractère aléatoire et de l’imprévisibilité du flux de clés.

Flux de clés (Keystream)

Le flux de clés est une séquence de bits pseudo-aléatoires générée par un générateur de nombres pseudo-aléatoires (PRNG). Le PRNG est initialisé avec une clé secrète qui doit rester inconnue de quiconque n’est pas autorisé à déchiffrer le message.

Opération XOR

L’opération XOR (OU exclusif) est une fonction logique qui produit une valeur vraie (1) uniquement lorsque ses deux variables d’entrée sont différentes. Cette opération est appliquée entre chaque bit du message original et le bit correspondant du flux de clés. Si un bit du message est 1 et que le bit du flux de clés est 0, le résultat sera 1, et vice versa.

Exemples de chiffrements par flux

Quelques exemples connus de chiffrements par flux incluent :

  • RC4 : l’un des chiffrements par flux les plus connus, bien qu’il soit aujourd’hui considéré comme non sécurisé pour de nombreuses applications.
  • Salsa20 et ChaCha20 : des chiffrements par flux modernes conçus pour offrir un haut niveau de sécurité et des performances élevées.

Avantages et inconvénients

Avantages

  • Efficacité : Les chiffrements par flux sont généralement plus rapides que les chiffrements par blocs car ils chiffrent les données bit par bit.
  • Flexibilité : Ils peuvent chiffrer des flux de données de n’importe quelle longueur sans avoir à diviser le message en blocs.

Inconvénients

  • Vulnérabilité aux attaques : Si le même flux de clés est utilisé plusieurs fois (par exemple, si la clé secrète n’est pas changée), le chiffrement par flux peut devenir vulnérable à des attaques connues sous le nom d’attaque par “réutilisation du flux de clés”.
  • Gestion des clés : La nécessité de maintenir la clé secrète parfaitement sécurisée est cruciale, et toute compromission de la clé peut entraîner la compromission de l’ensemble du système de chiffrement.

Applications

Les chiffrements par flux sont souvent utilisés dans des applications où la vitesse de chiffrement est critique, comme le chiffrement des communications en temps réel (par exemple, dans les connexions réseau) ou dans les systèmes embarqués aux ressources limitées.

Conclusion

Les chiffrements par flux représentent une catégorie importante d’algorithmes cryptographiques, appréciés pour leur vitesse et leur flexibilité. Cependant, ils nécessitent une gestion attentive de la clé et une génération sécurisée du flux de clés pour garantir leur efficacité et leur sécurité.

Leave a Reply

Your email address will not be published. Required fields are marked *