Ici, quand on parlera de RC-4, on fera directement l'association avec tout le
protocole de chiffrage du WEP (utilisation d'un IV puis de RC-4) bien que la
notion d'IV ne fasse pas partie réellement de RC-4.
RC-4 génère à partir d'une clé privée K et d'un vecteur d'initialisation IV une
séquence pseudo-aléatoire S qui sera utilisée pour crypter un contenu.
Tout d'abord, la clé privée K et le vecteur d'initialisation IV passent dans un
algorithme appelé KSA (pour Key Scheduling Algorithm) qui génère une table d'états
T qui aura la même taille que la clé dérivée. Cette table d'état passe ensuite
dans un système de génération de séquences pseudo-aléatoires qui est basé sur
l'utilisation de deux compteurs qui servent à organiser un pseudo-aléa.
Une séquence pseudo-aléatoire S (qui a toujours la même taille que la clé dérivée)
est alors générée. C'est cette séquence qui sera proprement dit la clé de cryptage
effective.
L'opération de cryptage des données se fait pas un simple ou-exclusif (XOR) des
bits en clair et de S. Bien sûr, S est beaucoup plus petite sue les données en
clair. La méthode qui est utilisée consiste à étendre S pour lui faire atteindre
la taille du texte plus son CRC32. La méthode d'expansion de S n'est expliquée
nulle part mais consiste probablement en la multiplication de S par un polynôme
remarquable de degré adéquat ou alors plus simplement par la répétition de ses
bits.
Quoi qu'il en soit, les données cryptées C consistent en un simple ou-exclusif
du texte clair couplé à son CRC32 avec la version étendue de S comme nous le
montre le schéma FIG.
.
Le cryptage complet consiste en la formule suivante :
2004-08-25