Comment fonctionne AES?
Fonctionnement de base
L'AES peut être décrit comme un bloc crypté itératif et symétrique. L'AES utilise une structure de boucle pour effectuer de manière répétée des réarrangements de données, ou permutations. La boucle remplace une unité de données par une autre pour les données d'entrée. La routine de chiffrement utilise la même clé pour chiffrer et déchiffrer les données et applique cette clé aux blocs de données de longueur fixe.
Programme clé
La routine de chiffrement AES stocke la clé de chiffrement principale dans un tableau. Une matrice est un groupe d'objets avec les mêmes attributs que ceux pouvant être adressés individuellement. La matrice se compose de quatre lignes, chacune contenant quatre, six ou huit octets, en fonction de la taille de la clé. En coulisse, la routine de chiffrement utilise cette matrice pour générer un tableau, appelé programme de clé, contenant plusieurs clés. Ces clés sont appelées clés rondes pour les distinguer de la clé principale originale.
Matrice d'état
L'AES utilise une clé de cryptage pouvant avoir une longueur de 128, 192 ou 256 bits. Elle est appliquée en unités de données, appelées blocs, chacune d'une longueur de 128 bits. L'algorithme AES commence par copier chaque bloc de 16 bits dans un tableau à deux dimensions appelé État, afin de créer un tableau de 4x4 octets. L'algorithme effectue une opération exclusive "O" qui renvoie "true" si l'un ou l'autre de ses opérandes est vrai. Ceci s'appelle "AddRoundKey" et se situe entre les quatre premières lignes du programme de clé et la matrice d'état.
Des opérations mathématiques
Après l'opération initiale exclusive "O", l'algorithme de chiffrement AES entre dans sa boucle principale, où il effectue à plusieurs reprises quatre opérations mathématiques différentes dans la matrice d'état: "SubBytes", "ShiftRows", "MixColumns" et "AddRoundKey" . Ces opérations utilisent une combinaison d’addition, de multiplication, de rotation et de substitution pour chiffrer chaque octet dans la matrice d’État. La boucle principale s'exécute 10, 12 ou 14 fois en fonction de la taille de la clé de cryptage. Une fois l'exécution terminée, l'algorithme copie la matrice d'états dans sa sortie sous la forme d'un texte crypté.