Encryptage à clé secrète RC4 |
Les algorithmes modernes à clé secrète, tel que RC4, génèrent donc une suite de bits pseudo-aléatoire. On combine par OU-EXCLUSIF le texte à coder avec cette suite de bits. On procède par codage en continu: chaque octet est codé directement, sans partager le message en blocs. Le décryptage, symétrique, se fait en répétant la même opération.
RC4 a été inventé par Rivest en 1987, il fonctionne avec une clé de longueur variable. Il est très simple à implémenter. On dispose d'une table de substitution de 256 octets. Après avoir été initialisée grâce à la clé, elle est utilisée pour générer une suite de nombres pseudo-aléatoires entre 0 et 255. Au fur et à mesure que le codage se poursuit, la table de substitution évolue lentement, indépendamment du texte codé. Ainsi, s'il y a une erreur de transmission, toute la suite du message restera déchiffrable. Il n'y a pas de rétroaction de sortie (Output-Feedback).
Cet algorithme a été conçu pour des machines 8 bits. L'interface Mathematica étant indépendant de la précision, on ne peut pas exploiter cette caractéristique dans l'implementation. Il en résulte donc un exercice plutôt académique, présenté ici à titre éducatif, dont l'efficacité finale est très médiocre.
On code le texte à l'aide de l'algorithme RC4:
Connaissant la clé secrète, le décodage s'effectue par la même opération: