RC4 (chiffrement Rivest 4) est un chiffrement par flux conçu par Ron Rivest en 1987. Il chiffre les données en générant un flux pseudo-aléatoire de bits (appelé flux de clés) qui est combiné aux données en clair, généralement par une opération XOR, pour produire le texte chiffré.
Chiffrement : Chaque octet du texte en clair est combiné à un octet correspondant du flux de clés pour générer le texte chiffré.
Déchiffrement : Le même flux de clés est utilisé pour effectuer un XOR sur le texte chiffré et récupérer le texte en clair d'origine.
Vitesse : RC4 est reconnu pour sa rapidité et son efficacité, notamment dans les environnements aux ressources limitées.
Simplicité : Sa mise en œuvre est simple et nécessite un minimum de ressources, ce qui le rend adapté aux environnements à puissance de traitement limitée.
Utilisation historique : RC4 était largement utilisé dans des protocoles tels que SSL/TLS pour la communication sécurisée et WEP pour la sécurité des réseaux sans fil.
Génération de clé : Une clé secrète (généralement comprise entre 40 et 2 048 bits) est utilisée pour initialiser le État RC4.
Génération du flux de clés : L'algorithme RC4 génère un flux de clés pseudo-aléatoire basé sur la clé.
Chiffrement : Chaque octet du texte en clair est soumis à un OU exclusif avec l'octet du flux de clés, ce qui produit un texte chiffré.
Déchiffrement : Le même flux de clés est utilisé pour effectuer un OU exclusif sur le texte chiffré et récupérer le texte en clair d'origine.
Bibliothèques/Outils : RC4 est pris en charge par plusieurs bibliothèques, bien qu'il soit souvent déconseillé pour des raisons de sécurité :
Python : bibliothèque pycryptodome.
Java : Paquet javax.crypto (bien que son utilisation soit déconseillée au profit d'algorithmes plus puissants).
C# : Espace de noms System.Security.Cryptography.
Systèmes hérités : Lorsque vous travaillez sur des systèmes plus anciens qui utilisent encore le chiffrement RC4 (par exemple, d'anciennes implémentations SSL/TLS).
Applications non critiques : Si vous travaillez sur des projets où la vitesse est plus importante que la sécurité, bien que cela soit généralement déconseillé au profit de chiffrements plus puissants.
Pédagogique Objectifs : RC4 est souvent utilisé pour enseigner les chiffrements symétriques et les chiffrements par flux en raison de sa simplicité.