skip to content

Comment fonctionne le chiffrement AES ? Pourquoi protège-t-il nos données et fichiers ?

Nicolas Verlhiac : photo de l'auteur de l'article
Nicolas Verlhiac
Tour d'horizon sur le fonctionnement chiffrement AES. Protégez vos données contre le vol et l'abus avec AES.

Le chiffrement AES - pour Advanced Encryption Standard - est aujourd’hui devenu un standard dans de nombreux domaines. Les utilisateurs d’Internet stockent et envoient chaque jour des fichiers et des informations chiffrés. Le chiffrement protège les données contre le vol et les abus. Nous vous présentons le chiffrement AES comme méthode sûre de chiffrement par bloc et allons tenter d’expliquer simplement la cryptographie symétrique.

ℹ️ Avant propos

Nous entendons souvent dans les médias, films ou sur internet le verbe CRYPTER à toutes les sauces. Mais le plus souvent, il est très mal employé, c’est pourquoi nous allons rétablir quelques notions.

On dit :

CHIFFREMENT, CHIFFRER ou encore DÉCHIFFRER quand on parle du procédé de cryptographie.

Mais on ne dit pas :

  • CRYPTER / CRYPTAGE (abusif),
  • ENCRYPTER / DÉENCRYPTER (anglicismes)
  • CHIFFRAGE (évaluer le coût de quelque chose)
  • CODER / ENCODER / DÉCODER (aucune vocation à assurer la confidentialité)

Qu’est-ce que le chiffrement AES ?

AES signifie Advanced Encryption Standard (norme de chiffrement avancée). La norme AES propose un algorithme de chiffrement qui a été développé aux États-Unis. En 1997, le National Institute of Standards and Technology (NIST) a lancé un appel d’offres pour trouver un algorithme nettement plus sûr. L’objectif du gouvernement américain était d’améliorer le chiffrement des fichiers confidentiels de haut niveau.

C’est une méthode symétrique utilisée lors du stockage et de l’envoi de données. Cela signifie que l’expéditeur et le destinataire du fichier chiffré utilisent tous deux le même mot de passe. Grâce à sa structure efficace, le chiffrement AES se retrouve dans de nombreux domaines de la technologie de l’information.

Jusqu’à ce que la norme Advanced Encryption Standard soit développée, les agences gouvernementales utilisaient la norme DES (Data Encryption Standard) pour le chiffrement. Cette norme obsolète utilisait une clé de 56 bits et ne pouvait donc pas continuer à garantir les exigences de sécurité informatique. De plus, la clé de 56 bits n’était plus adaptée aux ordinateurs puissants des pirates. Avec une attaque par force brute, ils pouvaient très facilement déchiffrer les clés secrètes en essayant toutes les clés possibles du chiffrement 56 bits.

L’Institut pour les normes et la technologie a donc fixé des normes plus élevées pour la sécurité des données. Ils ont défini un nouvel algorithme qui a donné naissance à l’Advanced Encryption Standard. L’institut a demandé d’étendre la longueur des clés et d’intégrer différentes clés dans l’algorithme. Des codes de chiffrement avec ces longueurs de clé ont été créés :

  • Chiffrement 128 bits
  • Chiffrement 192 bits
  • Chiffrement 256 bits

Un autre critère pour le développement d’un chiffrement sûr était l’exigence de ne pas déposer de brevet. Cela devait permettre à d’autres développeurs d’intégrer le nouvel algorithme dans leurs programmes afin d’améliorer la sécurité des données chiffrées. Après un long examen et une compétition acharnée, le NIST a annoncé en octobre 2000 le vainqueur de l’appel d’offres. L’algorithme Rijndael des deux développeurs belges Joan Daemen et Vincent Rijmen a répondu aux exigences. Depuis, il est utilisé comme algorithme pour le chiffrement AES et comme standard.

Fonctionnement d’un chiffrement avec AES

Les premières méthodes de chiffrement et de déchiffrement utilisaient un chiffrement asymétrique. Il s’agissait d’une paire de clés composée d’une clé publique et d’une clé secrète. L’expéditeur chiffrait d’abord son message avec la clé publique du destinataire. Seul le propriétaire de la clé privée correspondante pouvait ensuite déchiffrer les fichiers sécurisés par la clé publique.

Contrairement à cette méthode, l’algorithme de Rijndael utilise un chiffrement symétrique. Ici, il n’existe qu’une seule clé pour la transmission de l’expéditeur au destinataire et du destinataire à l’expéditeur. AES utilise cette clé pour chiffrer les données à l’aide d’un procédé mathématique et les déchiffrer ultérieurement. Ce faisant, le chiffrement symétrique est beaucoup plus sûr qu’un chiffrement asymétrique avec la même longueur de clé.

Le schéma de Rijndael est un chiffrement par blocs et divise le texte en clair entrant en un bloc de quatre lignes et quatre colonnes. Un bloc comporte 16 octets au total, de sorte que chaque case contient un octet. Lors du chiffrement ou du déchiffrement, chaque bloc passe par plusieurs rondes de quatre étapes. En fonction de la longueur de la clé, il y a dix tours pour AES-128, douze tours pour AES-192 et un total de 14 tours pour AES-256. Les quatre étapes se répètent à chaque tour.

La procédure de chiffrement symétrique avec AES en quatre étapes

Avant toute chose, 2 notions importantes : Plain Text: L’input (données entrées dans l’algorithme) est le texte non chiffré. Cypher Text : L’output (données en sortie de l’algorithme) est le texte chiffré.

Pour chiffrer, AES applique sur le Plain Text 4 fonctions distinctes dans un ordre précis et de façon répétitive, chacune étant réversibles (pour pouvoir déchiffrer plus tard). La clé de chiffrement est utilisée pour chiffrer mais aussi pour déterminer le nombre de répétition. Les clés peuvent faire 128, 192 ou 256 bits, correspondant respectivement à 10, 12 et 14 répétitions. Avant chaque répétition, on créera ce que l’on appelle la RoundKey, qui est une clé dérivée de la clé initiale.

Illustration du fonctionnement du chiffrement symétrique avec AES en quatre étapes. (Source ownbase.org)

Illustration du fonctionnement du chiffrement symétrique avec AES en quatre étapes. (Source ownbase.org)

  1. ByteSub : Le but de ByteSub est d’effectuer une substitution octet (byte) par octet. Rijndael utilise ici une S-Box (substitution-box) . Celle-ci indique par quelle valeur l’algorithme remplace quel octet dans les blocs. La S-Box est dérivée de la clé AES.
  2. ShiftRow : Rijndael effectue un simple décalage (Shift) des octets ligne (Row) par ligne dans le bloc de données. ShiftRow fait partie, avec MixColumn de la couche de diffusion. Le but est d’introduire de la confusion dans les données en modifiant l’ordre des bits.
  3. MixColumn: à ce stade, l’algorithme AES mélange les octets à l’aide d’un procédé mathématique appelé transformation linéaire. Son but est de faire intervenir de multiples bits dans le codage d’un seul. Cela permet de rapidement lier (via des transformations matricielles) tous les éléments d’un bloc entre eux. Le déchiffrement est alors plus complexe si l’on ne connaît pas la clé.
  4. AddKey : AES combine finalement la clé du tour (Round) actuelle avec les valeurs des blocs. Cette fonction est la seule qui chiffre réellement les données, il est nécessaire d’avoir la clé pour pouvoir réaliser l’étape et la déchiffrer.

Le chiffrement avec l’Advanced Encryption Standard passe par ces quatre étapes autant de fois que la longueur de la clé l’exige. Le résultat est ce que l’on appelle le chiffrement, qui ne laisse plus rien transparaître à l’œil nu du contenu du message ou de l’information. Lors du déchiffrement, Rijndael passe par toutes les étapes de tous les tours (répétitions) dans l’ordre inverse. C’est ainsi que le texte clair (Cypher text) est à nouveau créé à partir du chiffrement.

Quel est le niveau de sécurité offert par le chiffrement AES ?

AES est une méthode de chiffrement qui est encore considérée comme très sûre aujourd’hui. La longueur élevée des clés garantit toujours la sécurité. Les clés ne peuvent pas être déchiffrées sans autorisation par la méthode de la force brute. C’est pourquoi les gouvernements utilisent les variantes AES AES-192 et AES-256 pour le chiffrement de documents gouvernementaux secrets.

Casser un document chiffré avec AES sans disposer de la clé correcte peut prendre plus ou moins de temps en fonction de la longueur de la clé et de la puissance de calcul pour brute forcer.

Étant donné que 93 PetaFLOPS (superordinateur) représentent près d’un million de fois 100 GigaFLOPS (PC de bureau), supposons que ce superordinateur peut craquer le chiffrement AES un million de fois plus vite qu’un PC haut de gamme.

Par conséquent, pour craquer le chiffrement AES-256, il faudrait en moyenne : 27,337,893,038,​406,611,194,​430,009,974,​922,940,323,​611,067,429,​756,962,487 années.

Il est tout simplement impossible, avec la technologie actuelle, d’attaquer l’AES-256 par force brute.

Entre-temps, des attaques réussies contre des systèmes utilisant AES ont été connues. Toutefois, les failles de sécurité étaient dues à une mauvaise intégration des clés AES dans le système et non aux algorithmes AES eux-mêmes. Jusqu’à présent, aucun scientifique ou hacker n’a réussi à lancer une attaque réelle contre l’algorithme. Avec l’évolution des capacités de calcul des ordinateurs, il serait toutefois envisageable qu’une clé AES soit un jour craquée. Mais à l’heure actuelle, cela n’est pas encore en vue.

Chiffrement AES en application

Le chiffrement avec AES est désormais largement répandu. La norme AES chiffre chaque jour des millions de données sensibles. Tous les navigateurs courants sur le réseau utilisent AES. L’algorithme fait également partie du protocole WPA2 pour WLAN ainsi que du protocole SSL/TLS. Il est en outre utilisé dans différents pare-feu et routeurs. Les réseaux VPN, la téléphonie Voix sur IP et les systèmes d’exploitation comme macOS utilisent également AES.