Tutoriel de cryptographie Tutoriel de cryptographie

Simon Guillem-Lessard
Projet de fin d'étude 2001-2002
Département des mathématiques et de l'informatique
Université du Québec à Trois-Rivières


Table Des Matières
 Chiffrements de flux
 RC4

Introduction

L'algorithme RC4 a été pensé par Ron Rivest en 1987 et développé pour la RSA Security. Il est basé sur les permutations aléatoires, avec des opérations sur des octets.

L'algorithme a une longueur de clé variable (de 1 à 256 octets). Cependant à cause des lois d'exportation, la clé a souvent une longueur de 40 bits. La clé est utilisée pour initialiser une "table d'états" de 256 octets. La table d'état est
employée pour la génération d'octets pseudo-aléatoires et ensuite pour produire le flux pseudo-aléatoire avec lequel le texte clair sera transformé avec l'opération du OU-Exclusif.

Le RC4 est employé dans plusieurs applications commerciales, par exemple dans le protocole SSL
et dans Oracle Secure SQL. Il s'exécute très rapidement dans les logiciels.

Le RC4 au format allégé est appelé ARCFOUR (ARC4).

Algorithme

Chiffrement

Deux étapes sont nécessaires pour le chiffrement : l'initialisation à l'aide de la clé et le chiffrement du texte clair.

La première étape génère deux tableaux de 256 octets en fonction de la clé : un tableau K initialisé avec les octets de la clé et un tableau P (appelé table d'états, laquelle sera le flux appliqué sur le texte clair) initialisé avec les nombres de 0 à 255 permutés pseudo-aléatoirement selon le tableau K.

Exemples des tableaux (clé de 40 bits)

K = {clé(0),clé(1),clé(2),...,clé(39),clé(0),clé(1),...,clé(39)}
P = {34,55,228,0,...,4}

La deuxième étape consiste aussi en des permutations pour effectuer le chiffrement. À noter que les additions sont toutes exécutées modulo 256. Le chiffrement est relativement simple :

Algorithme

i = 0
j = 0

Pour chaque octet du texte clair.
   Ajouter 1 à i
   Ajouter P[i] à j
   Permuter P[i] avec P[j]
   n = P[i] + P[j]
   Retourner le résultat du OU-Exclusif entre S[n] et l'octet du texte
      clair)
Fin Pour

On remarque que le tableau P change à chaque itération en ayant deux éléments permutés.



Déchifffement

Le déchiffrement est exactement l'inverse du chiffrement.

Considérations

Le RC4 est la propriété de la RSA Security, mais la version allégée ARC4 peut être utilisée légalement. Il est populaire en étant extrêmement rapide (environ dix fois plus rapide que le DES) et relativement sécuritaire.

Il y a une clé faible sur 256. Il faut donc identifier les circonstances dans lesquelles elles peuvent apparaître et éviter de les utiliser.



Pour en savoir plus
· Page officielle :
http://www.rsasecurity.com/
· Codes sources C/C++/Java :
http://burtleburtle.net/bob/rand/isaac.html#RC4code
http://www.cypherspace.org/~adam/rsa/rc4.c
/codes/rc4/
http://sourceforge.net/projects/rc4crypt/ (PHP)


.Sources. .Haut de page.


Algorithmes Importants

  Systèmes à clé privée

     Blowfish

     DES

     IDEA

     RC2, RC5, RC6

     RC4

     Rijndael

     SEAL

     TripleDES

  Systèmes à clé publique

     Diffie-Hellman

     DSA

     PGP

     RSA

  Fonctions de hachage

     MD2, MD4, MD5

     RIPEMD-128, RIPEMD-160

     SHA0, SHA1

     Tiger

  Protocoles Web

     SSL

     SHTTP