C’est quoi, l’AES ? — Du bit au chiffrement incassable

AES (Advanced Encryption Standard)

L’AES est l’algorithme de chiffrement symétrique par blocs le plus utilisé au monde. Adopté comme standard par le NIST (Institut national américain des normes et de la technologie) en 2001, il est aujourd’hui au cœur de presque tous les systèmes de sécurité : HTTPS, Wi-Fi (WPA2), chiffrement de fichiers, communications militaires, et bien d’autres.

Deux notions clés — chiffrement symétrique et chiffrement par blocs

Clé symétrique : la clé utilisée pour chiffrer et celle utilisée pour déchiffrer sont identiques. C’est rapide et efficace, mais cela pose toujours la question de la transmission sécurisée de la clé à l’autre partie. (C’est précisément ce problème que résolvent les algorithmes asymétriques comme RSA.)

Chiffrement par blocs : les données sont découpées en blocs de 128 bits (16 octets) et traitées l’une après l’autre. On ne chiffre pas tout d’un coup — on répète l’opération bloc par bloc.

La taille de la clé est au choix parmi trois options :

VarianteLongueur de cléNombre de tours
AES-128128 bits10 tours
AES-192192 bits12 tours
AES-256256 bits14 tours

Plus la clé est longue, plus le chiffrement est solide — mais plus le calcul est intense. Pour la grande majorité des usages, AES-128 est largement suffisant.

Le State — comment l’AES représente les données en interne

L’AES ne traite pas les 128 bits en ligne droite. En interne, il les dispose dans une matrice 4×4 octets appelée State :

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

C’est sur cette matrice que s’appliquent les quatre opérations à chaque tour. À chaque passage, les données se transforment progressivement jusqu’à devenir méconnaissables — c’est le principe fondamental de l’AES.

Flux global du chiffrement

En AES-128, le déroulé est le suivant :

① Expansion de clé (Key Expansion) À partir de la clé d’origine (128 bits), on génère à l’avance toutes les sous-clés nécessaires à chaque tour. En AES-128, cela produit 11 clés de tour de 128 bits chacune.

② Tour initial — AddRoundKey On effectue un XOR entre le texte clair et la première clé de tour. C’est une première injection de clé avant que le vrai travail commence.

③ Tours 1 à 9 — les quatre opérations en boucle À chaque tour, les quatre opérations sont exécutées dans l’ordre.

④ Tour final (Tour 10) — sans MixColumns Le dernier tour omet MixColumns afin de garantir la symétrie avec le déchiffrement.

Les quatre opérations fondamentales

① SubBytes — confusion

Chacun des 16 octets est remplacé par une autre valeur via la table S-Box. Cette table est construite à partir du calcul d’inverses dans le corps fini GF(2⁸), ce qui garantit l’absence totale de relation linéaire entre entrée et sortie. Résultat : même avec un grand nombre de paires texte clair / texte chiffré, un attaquant ne peut en tirer aucun pattern exploitable.

Exemple : 0x53 → S-Box → 0xED

② ShiftRows — préparation à la diffusion

Chaque ligne est décalée circulairement vers la gauche :

Ligne 0 : aucun décalage   [ a  b  c  d ] → [ a  b  c  d ]
Ligne 1 : 1 cran            [ e  f  g  h ] → [ f  g  h  e ]
Ligne 2 : 2 crans           [ i  j  k  l ] → [ k  l  i  j ]
Ligne 3 : 3 crans           [ m  n  o  p ] → [ p  m  n  o ]

Vue horizontalement, c’est un simple déplacement. Vue verticalement, chaque colonne contient désormais des octets issus de lignes différentes. Sans ShiftRows, MixColumns n’opérerait que colonne par colonne, sans aucune interaction entre elles — la diffusion serait nulle.

③ MixColumns — diffusion puissante

Chaque colonne (4 octets) est multipliée par une matrice fixe dans GF(2⁸) :

s0' = (2·s0) ⊕ (3·s1) ⊕ s2 ⊕ s3
s1' = s0 ⊕ (2·s1) ⊕ (3·s2) ⊕ s3
s2' = s0 ⊕ s1 ⊕ (2·s2) ⊕ (3·s3)
s3' = (3·s0) ⊕ s1 ⊕ s2 ⊕ (2·s3)

Si un seul octet d’entrée change, les 4 octets de sortie sont tous différents. C’est l’effet avalanche. En quelques tours seulement, un changement d’un seul bit dans le texte clair se propage à l’ensemble du texte chiffré. Cette opération est absente du dernier tour.

④ AddRoundKey — injection de clé

On effectue un XOR entre chaque octet du State et l’octet correspondant de la clé de tour. C’est la seule opération qui dépend de la clé. Grâce aux propriétés mathématiques du XOR, un second XOR avec la même clé redonne la valeur d’origine :

Chiffrement : A ⊕ K = C
Déchiffrement : C ⊕ K = A

Sans la clé, il est mathématiquement impossible de retrouver les données.


Pourquoi cette combinaison de quatre opérations ?

En cryptographie, un bon chiffrement doit posséder deux propriétés fondamentales :

  • Confusion : rendre la relation entre texte chiffré et clé aussi complexe que possible → c’est le rôle de SubBytes
  • Diffusion : faire en sorte qu’un changement dans le texte clair affecte l’ensemble du texte chiffré → c’est le rôle de ShiftRows + MixColumns
  • Dépendance à la clé : c’est le rôle de AddRoundKey

Répéter ces trois rôles dix fois de suite rend la relation entre données d’origine et texte chiffré mathématiquement intraçable.

Avantages et inconvénients

Si l’AES occupe la place de standard depuis près de trente ans, c’est grâce à son équilibre entre vitesse et sécurité. Sur les processeurs supportant l’accélération matérielle (jeu d’instructions AES-NI), il fonctionne à une vitesse proche de celle de la mémoire vive.

Son principal inconvénient est inhérent au chiffrement symétrique : le problème de distribution des clés. Comment transmettre la clé à l’autre partie de façon sécurisée au départ ? En pratique, on résout ce problème en utilisant un algorithme asymétrique (RSA, Diffie-Hellman) pour échanger la clé, puis AES pour chiffrer les données réelles. C’est ce qu’on appelle l’approche hybride — et c’est exactement ce que fait HTTPS.

Les modes d’opération

L’AES définit comment chiffrer un seul bloc de 128 bits. Mais les données réelles sont bien plus longues. La façon dont on découpe et enchaîne le traitement de ces blocs s’appelle le mode d’opération.

ModeCaractéristiqueUsage principal
ECBChaque bloc traité indépendamment. Même texte clair → même texte chiffré. Non sécuriséQuasi-inutilisé
CBCXOR avec le bloc chiffré précédent avant chiffrement. Nécessite un IVChiffrement fichiers, TLS
CTRChiffrement d’un compteur pour générer un flux de clé, puis XOR. ParallélisableStreaming, disques
GCMCTR + vérification d’intégrité (MAC) intégrée. Mode recommandé aujourd’huiHTTPS (TLS 1.3), SSH

Le CBC résout le problème de pattern du mode ECB, mais les erreurs se propagent et le traitement ne peut pas être parallélisé. De nos jours, c’est le mode GCM — qui inclut également une vérification d’intégrité — qui s’impose comme la référence.

Cas d’utilisation réels
  • HTTPS / TLS : toutes les communications entre navigateur et serveur
  • Wi-Fi (WPA2 / WPA3) : chiffrement des réseaux sans fil
  • Chiffrement du système de fichiers : BitLocker (Windows), FileVault (macOS)
  • Applications de messagerie : chiffrement de bout en bout de WhatsApp, Signal
  • VPN : chiffrement des données dans IPsec, OpenVPN
  • Matériel : auto-chiffrement des SSD (Self-Encrypting Drive)

Pour conclure

L’AES n’est pas simplement “un algorithme très utilisé”. C’est le socle invisible de toute l’infrastructure de sécurité moderne. Le navigateur qui affiche cette page, la connexion Wi-Fi du smartphone, les données stockées derrière l’écran de verrouillage — la grande majorité est protégée par l’AES.

SubBytes crée la confusion, ShiftRows et MixColumns assurent la diffusion, AddRoundKey injecte la clé. Répéter cette structure simple dix fois suffit à produire un chiffrement mathématiquement quasi-impénétrable. Chaque opération prise séparément n’a rien d’extraordinaire — mais leur combinaison produit un résultat d’une solidité remarquable.

ⓒ 2025. Chaewon JEON All Rights Reserved.