Chiffrement RC4 (obsolète)

Chiffrez du texte avec le chiffrement par flot RC4 (ARC4) via une phrase secrète compatible OpenSSL ou une clé hex brute. Pour la compatibilité et les tests.

RC4 est cassé : son flux de clé présente des biais statistiques et il est interdit dans TLS (RFC 7465). Utilisez-le uniquement pour d’anciennes données, jamais pour un nouveau chiffrement.

La sortie utilise le format OpenSSL « Salted__ » en Base64 : un sel aléatoire de 8 octets suivi du texte chiffré. La clé et l’IV sont dérivés de la phrase secrète et du sel : le même texte donne donc un résultat différent à chaque fois. Commande équivalente :

La phrase secrète est transformée en clé RC4 de 128 bits, comme dans OpenSSL. CryptoJS.RC4 avec une phrase secrète utilise une clé de 256 bits : sa sortie ne peut donc pas être déchiffrée ici.

openssl enc -rc4 -md md5 -a -A -provider legacy -provider default -k '…'

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Qu'est-ce que Chiffrement RC4 ?

Chiffre des données avec RC4 (aussi appelé ARC4 ou ARCFOUR), un chiffrement par flot autrefois utilisé dans WEP, les premières versions de TLS et de nombreux formats de fichiers. La sortie a la même longueur que l’entrée, car RC4 applique un XOR entre les données et un flux de clé.

Comment utiliser Chiffrement RC4

  1. Choisissez Phrase secrète (compatible OpenSSL) et saisissez une phrase secrète, ou Clé + IV bruts (hex) et entrez une clé de 1 à 256 octets en hex (RC4 n’utilise pas d’IV).
  2. Saisissez ou collez le Texte en clair.
  3. Cliquez sur Chiffrer et choisissez Base64 ou Hex comme Encodage de la sortie.
  4. Copiez le texte chiffré.

Exemple

Entrée
Clé brute 4b6579 (« Key »), texte en clair « Plaintext », sortie Hex
Sortie
bbf316e8d940af0ad3

Le vecteur de test classique de RC4.

Quand utiliser Chiffrement RC4

Utilisez-le pour interagir avec d’anciens logiciels ou vérifier des vecteurs de test RC4 (RFC 6229). N’utilisez jamais RC4 pour un nouveau chiffrement : les premiers octets du flux de clé révèlent des informations sur la clé et il n’y a aucun contrôle d’intégrité.

Comment fonctionne Chiffrement RC4

RC4 construit une permutation de 256 octets à partir de la clé (algorithme de planification de clé), puis génère un octet de flux de clé par octet d’entrée, combiné au texte en clair par XOR. Le mode brut utilise directement les octets de votre clé (1 à 256 octets). Le mode phrase secrète dérive une clé de 16 octets à partir de la phrase secrète et d’un sel aléatoire, comme openssl enc -rc4 (EVP_BytesToKey MD5 ou PBKDF2-SHA256), et produit le format Salted__. Chiffrement et déchiffrement sont la même opération.

Cas d'utilisation courants

  • Vérifier des vecteurs de test RC4 comme Key/Plaintext → BBF316E8D940AF0AD3
  • Produire des données pour une application héritée qui utilise ARC4
  • Étudier pourquoi WEP et RC4 dans TLS ont été cassés
  • Recréer la sortie de openssl enc -rc4

Note de Sécurité

RC4 est cassé : son flux de clé présente de forts biais statistiques et la RFC 7465 l’interdit dans TLS. Il n’offre aucune protection d’intégrité. Ne l’utilisez que pour des données héritées.

Questions Fréquentes

Pourquoi ne puis-je pas déchiffrer une sortie CryptoJS.RC4 créée avec une phrase secrète ?

CryptoJS dérive une clé RC4 de 256 bits à partir d’une phrase secrète, OpenSSL une clé de 128 bits. Cet outil suit OpenSSL. Avec une clé brute, les deux donnent des résultats identiques.

RC4 utilise-t-il un IV ?

Non. C’est pourquoi réutiliser la même clé pour deux messages est catastrophique : le XOR des deux textes chiffrés annule le flux de clé. Le mode phrase secrète évite ce problème avec un sel aléatoire à chaque fois.

Quelle commande OpenSSL correspond ?

openssl enc -rc4 -md md5 -a -A -provider legacy -provider default -k <passphrase> (OpenSSL 3 nécessite le fournisseur « legacy »).

Explorer d'autres catégories