En cryptographie, le RC4 (également connu sous le nom d'ARC4 ou ARCFOUR signifiant prétendu RC4, voir ci-dessous) est l'un des logiciels de chiffrement de flux les plus courants. Il est utilisé dans des protocoles populaires comme Secure Sockets Layer (SSL) (pour protéger le trafic Internet) et WEP (pour sécuriser les réseaux sans fil).
La RC4 est connue pour être simple et rapide, mais des attaques sont susceptibles de se produire lorsque le début du flux de clés de sortie n'est pas supprimé, ou lorsqu'un flux de clés est utilisé deux fois ; certaines façons d'utiliser la RC4 peuvent se transformer en systèmes cryptographiques très peu sûrs tels que le WEP.
Le RC4 a été créé par Ron Rivest de RSA Security en 1987. Bien que son nom officiel soit "Rivest Cipher 4", l'abréviation RC est également connue pour signifier "Ron's Code" (voir également RC2, RC5 et RC6).
RC4 a d'abord été créé comme un secret commercial, mais en septembre 1994, une description de celui-ci a été postée sur la liste de diffusion Cypherpunks. Elle a rapidement été publiée sur le groupe de discussion sci.crypt, puis sur de nombreux sites Internet. Le code a été confirmé comme étant authentique (et non faux) car sa sortie correspondait à celle d'un logiciel propriétaire utilisant la licence RC4. L'algorithme étant connu, il ne s'agit plus d'un secret commercial. Le nom "RC4" est cependant une marque déposée. RC4 est souvent appelé "ARCFOUR" ou "ARC4" (ce qui signifie "RC4 présumé", car RSA n'a jamais officiellement publié l'algorithme), pour éviter d'éventuels problèmes de marque déposée. Il fait désormais partie de certains protocoles et normes de cryptage couramment utilisés, notamment WEP et WPA pour les cartes sans fil et TLS.
Les deux principales raisons qui ont favorisé son utilisation sur un si large éventail d'applications sont sa rapidité et sa simplicité. Les utilisations du RC4, tant sur le plan logiciel que matériel, sont extrêmement faciles à développer.
L'algorithme de cryptage RC4 est lancé avec une longueur de clé différente, généralement entre 40 et 256 bits, en utilisant l'algorithme de programmation des clés (KSA). Une fois cette opération terminée, le flux de bits cryptés est créé à l'aide de l'algorithme de génération pseudo-aléatoire (PRGA).
Le RC4 ne répond pas aux normes fixées par les cryptographes pour un chiffrement sûr à bien des égards, et il n'est pas recommandé de l'utiliser dans les nouvelles applications car il existe de nombreuses méthodes d'attaque du RC4. Le fait d'abandonner le premier kilooctet de données du flux de clés peut améliorer quelque peu la sécurité.