AES
L'AES, tirant son nom de l'abréviation de l'anglicisme Advanced Encryption Standard, est un algorithme de chiffrement symétrique largement utilisé pour protéger les données sensibles. Il a été adopté comme standard de chiffrement par le gouvernement des États-Unis en 2001, après un concours public organisé par le NIST (National Institute of Standards and Technology) pour remplacer l'algorithme DES (Data Encryption Standard).
Voici les caractéristiques principales de l'AES :
- Chiffrement symétrique : AES utilise la même clé pour le chiffrement et le déchiffrement des données, ce qui signifie que les deux parties (expéditeur et destinataire) doivent posséder la clef secrète.
- Tailles de clef : AES prend en charge trois tailles de clé différentes : 128 bits, 192 bits et 256 bits. Une clef plus longue offre un niveau de sécurité plus élevé :
- Structure : L'AES est un algorithme de chiffrement par blocs. Il divise les données à chiffrer en blocs de 128 bits et applique plusieurs cycles de transformations, appelés tours (10 tours pour AES-128, 12 pour AES-192, et 14 pour AES-256). Ces transformations incluent des substitutions, des permutations, et des opérations mathématiques sur les bits.
- Sécurité : AES est considéré comme très sûr et résistant aux attaques cryptographiques. Il est utilisé dans de nombreuses applications de sécurité, telles que le HTTPS, les réseaux privés virtuels (VPN), les disques durs chiffrés et les communications sans fil sécurisées.
Clef | Description |
---|---|
AES-128 | Utilise une clef de 128 bits. |
AES-192 | Utilise une clé de 192 bits. |
AES-256 | Utilise une clé de 256 bits. |
Algorithme
Voici l'algorithme du AES :
* Entrée : Texte clair de 128 bits, clef de 128 bits * Sortie : Texte chiffré de 128 bits MODULE AES(Texte_clair,clef) * Étape 1 : Générer les sous-clefs (expansion de la clef) sous_clés ← Expansion_de_clef(clef) * Étape 2 : Initialisation du chiffrement état ← Texte_clair ⊕ sous_clefs[0] * Ajouter la première sous-clef * Étape 3 : Effectuer les 10 tours de chiffrement BOUCLE POUR tour de 1 à 9 FAIRE état ← SubBytes(état) * 1. SubBytes : appliquer S-Box pour la substitution non-linéaire état ← ShiftRows(état) * 2. ShiftRows : permuter les lignes état ← MixColumns(état) * 3. MixColumns : mélanger les colonnes état ← AddRoundKey(état, sous_clefs[tour]) * 4. Ajouter la sous-clef du tour actuel FIN POUR * Étape 4 : Dernier tour (sans MixColumns) état ← SubBytes(état) état ← ShiftRows(état) état ← AddRoundKey(état, sous_clefs[10]) * Le résultat final est le texte chiffré Texte_chiffré ← état RETOURNE Texte_chiffré |
Dernière mise à jour : Samedi, le 21 septembre 2024