Du chiffre classique au chiffre par blocs

Le chiffrement par blocs et AES

Plutôt que de traiter les lettres une par une, les chiffres modernes découpent le message en blocs de taille fixe et transforment chaque bloc entièrement.

AES en quelques chiffres

AES (Advanced Encryption Standard) est le standard depuis 2001. Il travaille sur des blocs de 128 bits, soit 16 octets, avec une clé de 128, 192 ou 256 bits.

Le bloc est rangé dans un carré de 4 × 4 octets, appelé l'état :

b0  b4  b8  b12
b1  b5  b9  b13
b2  b6  b10 b14
b3  b7  b11 b15

Les quatre opérations d'un tour

Sur cet état, AES répète un tour composé de quatre étapes :

SubBytes     (chaque octet remplace par un autre, via une table)
ShiftRows    (les lignes glissent vers la gauche)
MixColumns   (les colonnes se melangent entre elles)
AddRoundKey  (on combine avec la cle du tour, par XOR)

Le nombre de tours dépend de la clé : 10 tours pour 128 bits, 12 pour 192, 14 pour 256.

Chacune de ces étapes est réversible, et leur enchaînement produit exactement l'effet recherché : SubBytes casse la linéarité, ShiftRows et MixColumns propagent chaque bit d'entrée vers tous les octets de sortie. Au bout de deux ou trois tours, modifier un seul bit du clair a déjà bouleversé le bloc entier.

Pourquoi lui faire confiance

AES a été choisi à l'issue d'un concours public de cinq ans, où quinze candidats ont été attaqués publiquement par la communauté. Vingt ans plus tard, aucune attaque pratique ne le menace : les meilleures connues ne gagnent qu'un facteur négligeable sur la recherche exhaustive.

Une erreur classique à éviter : « AES-256 est deux fois plus sûr qu'AES-128 ». Non — il a 2^128 fois plus de clés. Et 2^128 est déjà hors de portée de toute machine concevable.