Standard d'encryptage avancé

L'algorithme de cryptage symétrique le plus populaire et le plus largement adopté de nos jours est le standard de cryptage avancé (AES). Il se trouve au moins six fois plus rapide que le triple DES.

Un remplacement du DES était nécessaire car sa taille de clé était trop petite. Avec l'augmentation de la puissance de calcul, il était considéré comme vulnérable aux attaques de recherche de clés exhaustives. Triple DES a été conçu pour surmonter cet inconvénient, mais il s'est avéré lent.

Les caractéristiques d'AES sont les suivantes -

  • Chiffrement par bloc symétrique à clé symétrique
  • Données 128 bits, clés 128/192/256 bits
  • Plus fort et plus rapide que Triple-DES
  • Fournir des spécifications complètes et des détails de conception
  • Logiciel implémentable en C et Java

Fonctionnement d'AES

AES est un chiffrement itératif plutôt que Feistel. Il est basé sur un «réseau de substitution-permutation». Il comprend une série d'opérations liées, dont certaines impliquent le remplacement des entrées par des sorties spécifiques (substitutions) et d'autres impliquent le brassage de bits (permutations).

Fait intéressant, AES effectue tous ses calculs sur des octets plutôt que sur des bits. Par conséquent, AES traite les 128 bits d'un bloc de texte en clair comme 16 octets. Ces 16 octets sont disposés en quatre colonnes et quatre lignes pour être traités comme une matrice -

Contrairement à DES, le nombre de tours dans AES est variable et dépend de la longueur de la clé. AES utilise 10 tours pour les clés de 128 bits, 12 tours pour les clés de 192 bits et 14 tours pour les clés de 256 bits. Chacun de ces tours utilise une clé ronde de 128 bits différente, qui est calculée à partir de la clé AES d'origine.

Le schéma de la structure AES est donné dans l'illustration suivante -

Processus de cryptage

Ici, nous nous limitons à la description d'un cycle typique de cryptage AES. Chaque cycle comprend quatre sous-processus. Le processus du premier tour est décrit ci-dessous -

Substitution d'octets (sous-octets)

Les 16 octets d'entrée sont remplacés par la recherche d'une table fixe (S-box) donnée dans la conception. Le résultat est dans une matrice de quatre lignes et quatre colonnes.

Shiftrows

Chacune des quatre lignes de la matrice est décalée vers la gauche. Toutes les entrées qui «tombent» sont réinsérées sur le côté droit de la ligne. Le décalage est effectué comme suit -

  • La première ligne n'est pas décalée.

  • La deuxième ligne est décalée d'une position (octet) vers la gauche.

  • La troisième rangée est décalée de deux positions vers la gauche.

  • La quatrième rangée est décalée de trois positions vers la gauche.

  • Le résultat est une nouvelle matrice composée des mêmes 16 octets mais décalés les uns par rapport aux autres.

MixColumns

Chaque colonne de quatre octets est maintenant transformée à l'aide d'une fonction mathématique spéciale. Cette fonction prend en entrée les quatre octets d'une colonne et génère quatre octets complètement nouveaux, qui remplacent la colonne d'origine. Le résultat est une autre nouvelle matrice composée de 16 nouveaux octets. Il est à noter que cette étape n'est pas effectuée lors du dernier tour.

Addroundkey

Les 16 octets de la matrice sont maintenant considérés comme 128 bits et sont XORed aux 128 bits de la clé ronde. S'il s'agit du dernier tour, la sortie est le texte chiffré. Sinon, les 128 bits résultants sont interprétés comme 16 octets et nous commençons un autre tour similaire.

Processus de décryptage

Le processus de déchiffrement d'un texte chiffré AES est similaire au processus de chiffrement dans l'ordre inverse. Chaque cycle comprend les quatre processus conduits dans l'ordre inverse -

  • Ajouter une clé ronde
  • Mélanger les colonnes
  • Décaler les lignes
  • Substitution d'octet

Étant donné que les sous-processus de chaque cycle sont inversés, contrairement à un chiffrement Feistel, les algorithmes de chiffrement et de déchiffrement doivent être mis en œuvre séparément, bien qu'ils soient très étroitement liés.

Analyse AES

Dans la cryptographie actuelle, AES est largement adopté et pris en charge à la fois par le matériel et les logiciels. Jusqu'à ce jour, aucune attaque cryptanalytique pratique contre AES n'a été découverte. En outre, AES a une flexibilité intégrée de longueur de clé, qui permet un certain degré de «pérennité» contre les progrès dans la capacité à effectuer des recherches clés exhaustives.

Cependant, tout comme pour DES, la sécurité AES n'est assurée que si elle est correctement implémentée et si une bonne gestion des clés est employée.