logo

Norme de chiffrement avancée (AES)

Advanced Encryption Standard (AES) est une spécification pour le cryptage des données électroniques établie par le National Institute of Standards and Technology (NIST) des États-Unis en 2001. AES est largement utilisé aujourd'hui car il est beaucoup plus puissant que le DES et le triple DES, bien qu'il soit plus difficile. implémenter.

Points à retenir



  • AES est un chiffrement par bloc.
  • La taille de la clé peut être de 128/192/256 bits.
  • Chiffre les données en blocs de 128 bits chacun.

Cela signifie qu'il prend 128 bits en entrée et génère 128 bits de texte chiffré en sortie. AES repose sur le principe de réseau de substitution-permutation, ce qui signifie qu'il est effectué à l'aide d'une série d'opérations liées qui impliquent le remplacement et le brassage des données d'entrée.

hachage dans la structure de données

Fonctionnement du chiffre :
AES effectue des opérations sur des octets de données plutôt que sur des bits. Puisque la taille du bloc est de 128 bits, le chiffrement traite 128 bits (ou 16 octets) des données d'entrée à la fois.

Le nombre de tours dépend de la longueur de la clé comme suit :



  • Clé de 128 bits – 10 tours
  • Clé de 192 bits – 12 tours
  • Clé de 256 bits – 14 tours

Création de clés rondes :
Un algorithme Key Schedule est utilisé pour calculer toutes les clés rondes à partir de la clé. Ainsi, la clé initiale est utilisée pour créer de nombreuses clés rondes différentes qui seront utilisées dans le cycle correspondant du cryptage.

Chiffrement :
AES considère chaque bloc comme une grille de 16 octets (4 octets x 4 octets = 128 ) dans une disposition principale en colonnes.



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

Chaque tour comprend 4 étapes :

  • Sous-octets
  • MajLignes
  • MixColonnes
  • Ajouter une clé ronde

Le dernier tour n’a pas le tour MixColumns.

Les SubBytes effectuent la substitution et ShiftRows et MixColumns effectuent la permutation dans l'algorithme.

Sous-octets :
Cette étape met en œuvre la substitution.

Dans cette étape, chaque octet est remplacé par un autre octet. Elle est effectuée à l'aide d'une table de recherche également appelée S-box. Cette substitution est effectuée de manière à ce qu'un octet ne soit jamais substitué par lui-même ni remplacé par un autre octet qui est un complément de l'octet actuel. Le résultat de cette étape est une matrice de 16 octets (4 x 4 ) comme auparavant.

Les deux étapes suivantes mettent en œuvre la permutation.

ShiftRows :
Cette étape est exactement ce qu’elle paraît. Chaque ligne est décalée un certain nombre de fois.

  • La première ligne n'est pas décalée
  • La deuxième rangée est décalée une fois vers la gauche.
  • La troisième rangée est décalée deux fois vers la gauche.
  • La quatrième rangée est décalée trois fois vers la gauche.

(Un décalage circulaire vers la gauche est effectué.)

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

MixColonnes :
Cette étape est essentiellement une multiplication matricielle. Chaque colonne est multipliée par une matrice spécifique et ainsi la position de chaque octet dans la colonne est modifiée en conséquence.

transmission médiatique

Cette étape est sautée au dernier tour.

 [ c0 ] [ 2 3 1 1 ] [ b0 ] | c1 | = | 1 2 3 1 | | b1 | | c2 | | 1 1 2 3 | | b2 | [ c3 ] [ 3 1 1 2 ] [ b3 ]>

Ajouter des clés rondes :
Maintenant, la sortie résultante de l’étape précédente est XOR-ed avec la clé ronde correspondante. Ici, les 16 octets ne sont pas considérés comme une grille mais simplement comme 128 bits de données.

Après tous ces tours, 128 bits de données cryptées sont restitués en sortie. Ce processus est répété jusqu'à ce que toutes les données à chiffrer subissent ce processus.

Décryptage :
Les étapes des tours peuvent être facilement annulées car ces étapes ont un opposé qui, une fois exécutées, annule les modifications. Chaque 128 blocs passe par les 10, 12 ou 14 tours en fonction de la taille de la clé.

Les étapes de chaque tour en décryptage sont les suivantes :

  • Ajouter une clé ronde
  • MixColumns inversés
  • MajLignes
  • Sous-octet inversé

Le processus de décryptage est le processus de cryptage effectué à l’envers, je vais donc expliquer les étapes avec des différences notables.

MixColumns inversées :
Cette étape est similaire à l'étape MixColumns du chiffrement, mais diffère par la matrice utilisée pour réaliser l'opération.

 [ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>

Sous-octets inversés :
La S-box inverse est utilisée comme table de recherche et à l'aide de laquelle les octets sont remplacés lors du déchiffrement.

Applications:

AES est largement utilisé dans de nombreuses applications qui nécessitent un stockage et une transmission sécurisés des données. Certains cas d'utilisation courants incluent :

    Sécurité sans fil : AES est utilisé pour sécuriser les réseaux sans fil, tels que les réseaux Wi-Fi, afin de garantir la confidentialité des données et d'empêcher tout accès non autorisé. Cryptage de base de données : AES peut être appliqué pour crypter les données sensibles stockées dans les bases de données. Cela permet de protéger les informations personnelles, les dossiers financiers et autres données confidentielles contre tout accès non autorisé en cas de violation de données. Communications sécurisées : AES est largement utilisé dans des protocoles tels que les communications Internet, le courrier électronique, la messagerie instantanée et les appels vocaux/vidéo. Il garantit la confidentialité des données. Stockage des données : AES est utilisé pour crypter les données sensibles stockées sur les disques durs, les clés USB et autres supports de stockage, les protégeant ainsi de tout accès non autorisé en cas de perte ou de vol. Réseaux privés virtuels (VPN) : AES est couramment utilisé dans les protocoles VPN pour sécuriser la communication entre l'appareil d'un utilisateur et un serveur distant. Il garantit que les données envoyées et reçues via le VPN restent privées et ne peuvent pas être déchiffrées par des oreilles indiscrètes. Stockage sécurisé des mots de passe : le cryptage AES est couramment utilisé pour stocker les mots de passe en toute sécurité. Au lieu de stocker les mots de passe en clair, la version cryptée est stockée. Cela ajoute une couche de sécurité supplémentaire et protège les informations d'identification des utilisateurs en cas d'accès non autorisé au stockage. Cryptage de fichiers et de disques : AES est utilisé pour crypter des fichiers et des dossiers sur les ordinateurs, les périphériques de stockage externes et le stockage cloud. Il protège les données sensibles stockées sur les appareils ou pendant le transfert de données pour empêcher tout accès non autorisé.

Résumé :
Le jeu d'instructions AES est désormais intégré au processeur (offre un débit de plusieurs Go/s) pour améliorer la vitesse et la sécurité des applications qui utilisent AES pour le cryptage et le déchiffrement. Même si 20 ans se sont écoulés depuis son introduction, nous n’avons pas réussi à briser l’algorithme AES car il est irréalisable, même avec la technologie actuelle. Jusqu’à présent, la seule vulnérabilité réside dans la mise en œuvre de l’algorithme.