L’AES
L’AES (Advanced Encryption Standard), est un algorithme de chiffrement symétrique établi par deux
chercheurs belges entre 1998 et 2000 sous le nom de code Rijndael. Cet algorithme a été choisi suite
à un concours international organisé par la NIST (National Institute of Standards and Technology),
une agence américaine, afin de désigner le successeur de l’algorithme DES qui commençait à montrer
ses limites.
Principe de l’algorithme
On prend en entrée le fichier à chiffrer et une clé générée aléatoirement avec une taille de 128,192
ou 256 bits.
Le fichier d’entrée est segmenté en paquets de 16 octets qui remplissent chacun une matrice 4x4
qu’on appelle Store.
L’étape suivante consiste à créer des sous-clés de la clé principale afin de faire des opérations sur
chacune d’entre elles et sur la matrice Store.
Dans des méthodes de chiffrement simples, ces sous-clés peuvent être des parties contigües de la clé
principale, mais pour l’AES, la détermination de ces sous-clés est beaucoup plus complexe.
Une fois les sous-clés calculées, il reste 10 étapes à effectuer (pour une clé de 128 bits) :
Etape 1 : On effectue un ou-exclusif entre la matrice Store et la première sous-clé rangée elle aussi
dans une matrice.
Etapes 2 à 8 : On effectue :
- Une transformation SubBytes (décrite ci-dessous) appliquée cette fois aux éléments de la
matrice Store
- Une transformation ShiftRows qui consiste à permuter circulairement les lignes de Store un
certain nombre de fois en fonction du numéro de la ligne.
- Une transformation MixColumns où chaque colonne de Store est multipliée par la matrice :
La multiplication est définie de la manière suivante : par 1 l’octet reste inchangé, par 2 on décale
l’octet vers la gauche, et par 3 on décale l’octet vers la gauche et on effectue un ou-exclusif avec
l’octet qui a été multiplié par 1
- Puis on refait l’étape 1.
Etape 10 : On effectue :
- La transformation SubBytes
- La transformation ShiftRows
- L’étape 1