Qu’est-ce que le cryptage AES et comment fonctionne-t-il ?
Lorsqu’il s’agit de cybersécurité, AES est l’un de ces acronymes que l’on voit apparaître partout. En effet, il est devenu la norme mondiale en matière de cryptage et il est utilisé pour assurer la sécurité d’une grande partie de nos communications.
La norme de chiffrement avancée(AES)est une forme de cryptage rapide et sécurisée qui éloigne les regards indiscrets de nos données. Nous le voyons dans les applications de messagerie commeWhatsAppetSignal, des programmes commeVeraCrypteetWinZip, dans une gamme de matériel et une variété d'autres technologies que nous utilisons tout le temps.
Pourquoi AES a-t-il été développé ?
Les premiers types de cryptage étaient simples, en utilisant des techniques telles que remplacer chaque lettre d'une phrase par celle qui la suit dans l'alphabet. Sous ce genre de code, la phrase précédente devient :
Comme vous pouvez le constater, ce simple code le rend totalement illisible. Malgré l’illisibilité initiale, si vous aviez le temps et saviez qu’il s’agissait d’un code et pas seulement d’un ensemble de caractères crachés sur la page, il ne serait pas trop difficile de le comprendre.
Alors que les gens s'amélioraient pour déchiffrer les codes, le cryptage a dû devenir plus sophistiquéde sorte que lales messages pourraient être secret bien gardé. Cette course aux armements consistant à trouver des méthodes plus sophistiquées tandis que d'autres s'efforçaient de les briser a conduit à des techniques de plus en plus complexes,comme le Machine énigmatique . Ses premières conceptions remontent à un brevet de l'inventeur allemand Arthur Scherbius en 1918.
L’essor des communications électroniques a également été une aubaine pour le cryptage. Dans les années 1970, leBureau national des normes des États-Unis (NBS)a commencé à rechercher un moyen standard qui pourrait être utilisé pour crypter les informations gouvernementales sensibles. Le résultat de leur recherche a été d'adopter un algorithme à clé symétrique développé chez IBM, désormais appelé le Norme de cryptage des données (DES) . Le DES a relativement bien rempli son objectif au cours des deux décennies suivantes, mais dans les années 90, certains problèmes de sécurité ont commencé à apparaître.
Le DES n'a qu'unClé de 56 bits(par rapport aumaximum de 256 bits en AES, mais nous y reviendrons plus tard), de sorte qu'à mesure que la technologie et les méthodes de craquage se sont améliorées, les attaques contre ce système ont commencé à devenir plus pratiques. Le premier message crypté DES à être ouvert remonte à 1997, par le Projet DESCHALL dans unConcours sponsorisé par RSA Security.
L'année suivante, le Fondation Frontière Electronique (EFF) a construit un cracker DES capable de forcer brutalement une clé en un peu plus de deux jours. En 1999, leEFFet le premier collectif informatique d'Internet,distribué.net, ont collaboré pour ramener ce temps à moins de 24 heures.
Bien que ces attaques aient été coûteuses et peu pratiques à mettre en œuvre, elles ont commencé à montrer que le règne du DES en tant que norme de chiffrement incontournable touchait à sa fin. Avec une puissance de calculaugmentation exponentielleselonLa loi de Moore, ce n'était qu'une question de temps avant que l'on ne puisse plus compter sur le DES.
Le gouvernement américain s'est lancé dans une mission de cinq ans pour évaluer diverses méthodes de cryptage afin de trouver une nouvelle norme sécurisée. LeInstitut national des normes et de la technologie (NIST)a annoncé avoir finalement fait sa sélection fin 2001.
Leur choix était un sous-ensemble spécifique du Chiffre par bloc de Rijndael , avec une taille de bloc fixe de 128 bits et des tailles de clé de 128, 192 et 256 bits. Il a été développé par Joan Daemen et Vincent Rijmen, deux cryptographes belges. En mai 2002, AES a été approuvé pour devenir le Norme fédérale américaine et est rapidement devenu l’algorithme de chiffrement standard pour le reste du monde également.
En rapport: Un guide du débutant en cryptographie
Pourquoi ce chiffre a-t-il été choisi pour AES ?
Quel que soit le type de cryptage, il y a toujours des compromis à faire. Vous pourriez facilement avoir une norme exponentiellement plus sécurisée que l’AES, mais son chiffrement et son déchiffrement prendraient trop de temps pour être d’une quelconque utilité pratique. En fin de compte, leLe chiffrement par blocs de Rijndael a été choisi par le NISTpourses capacités polyvalentes, notamment ses performances tant sur le plan matériel que logiciel, sa facilité de mise en œuvre et son niveau de sécurité.
Comment fonctionne l'AES ?
Sachez que l'exemple suivant est une simplification, mais il vous donne une idée générale du fonctionnement d'AES. Malheureusement, il n’y a pas assez de café dans le monde pour donner envie à la plupart des gens de se familiariser avec les aspects les plus compliqués de l’AES. Normalement, le processus est effectué en binaire et il y a beaucoup plus de mathématiques.
Tout d’abord, les données sont divisées en blocs.
Avec cette méthode de cryptage, la première chose qui se produit est que votre texte brut (qui correspond aux informations que vous souhaitez chiffrer) est séparé en blocs. La taille de bloc d'AES est de 128 bits, il sépare donc les données en une colonne quatre par quatre de seize octets (il y a huit bits dans un octet et 16 x 8 = 128).
Si votre message était « achetez-moi des chips s'il vous plaît », le premier bloc ressemble à ceci :
b | m | Ô | p |
dans | et | m | Ô |
ET | et | t | |
s | un |
Nous allons ignorer le reste du message pour cet exemple et nous concentrer uniquement sur ce qui arrive au premier bloc lorsqu'il est chiffré. Le «… aux jetons s'il vous plaît» serait normalement simplement ajouté au bloc suivant.
Extension de clé
L'expansion de clé consiste à prendre la clé initiale et à l'utiliser pour créer une série d'autres clés pour chaque cycle du processus de cryptage. Ces nouvelles clés rondes de 128 bits sont dérivées de Le programme clé de Rijndael , qui est essentiellement un moyen simple et rapide de produire de nouveaux chiffres clés. Si la clé initiale était « les clés sont ennuyeuses1 » :
k | je | ||
et | un | b | n |
ET | r | Ô | g |
s | et | r | 1 |
Ensuite, chacune des nouvelles clés pourrait ressembler à ceci une fois que le programme de clés de Rijndael aura été utilisé :
14 | 29 | 1h | s5 |
h9 | 9f | St | 9f |
GT | 2h | QG | 73 |
ks | DJ | df | hb |
Bien qu'elles ressemblent à des caractères aléatoires (et l'exemple ci-dessus n'est qu'une invention), chacune de ces clés est dérivée d'un processus structuré lorsque le cryptage AES est réellement appliqué. Nous reviendrons plus tard sur l’utilisation de ces clés rondes.
Ajouter une clé ronde
Dans cette étape, parce qu'il s'agit du premier tour, notre clé initiale est ajoutée au bloc de notre message :
b | m | Ô | p |
dans | et | m | Ô |
ET | et | t | |
s | un |
+
k | je | ||
et | un | b | n |
ET | r | Ô | g |
s | et | r | 1 |
Cela se fait avec un Chiffre XOR , qui est un algorithme de chiffrement additif. Même s’il semble que vous ne puissiez pas réellement additionner ces éléments, sachez que cela se fait en réalité en binaire. Les personnages ne sont que des remplaçants pour essayer de rendre les choses plus faciles à comprendre. Disons que cette opération mathématique nous donne un résultat de :
h3 | jd | à | 7s |
s8 | 7j | 26 | 2n |
DJ | 4b | 9j | 9c |
74 | le | 2h | hg |
Remplacer les octets
Dans cette étape, chaque octet est substitué selon une table prédéterminée. C'est un peu comme l'exemple du début de l'article, où la phrase était codée en remplaçant chaque lettre par celle qui la suit dans l'alphabet (Bonjourdevientsimmp).
Ce système est un peu plus compliqué et n’a pas nécessairement de logique. Au lieu de cela, il existe un tableau établi qui peut être consulté par l'algorithme, qui indique, par exemple, queh3devientjb,s8devient9f,DJdevient62et ainsi de suite. Après cette étape, disons que le tableau prédéterminé nous donne :
jb | n3 | kf | n2 |
9f | jj | 1h | js |
74 | quoi | 0j | 18 |
hs | 17 | d6 | px |
Décaler les lignes
Shift rows est un nom simple, et cette étape correspond essentiellement à ce à quoi vous vous attendez. La deuxième ligne est déplacée d'un espace vers la gauche, la troisième ligne est déplacée de deux espaces vers la gauche et la quatrième ligne est déplacée de trois espaces vers la gauche. Cela nous donne :
jb | n3 | kf | n2 |
jj | 1h | js | 9f |
0j | 18 | 74 | quoi |
px | hs | 17 | d6 |
Mélanger les colonnes
Cette étape est un peu délicate à expliquer. Pour éliminer la plupart des calculs et simplifier les choses, disons simplement que chaque colonne est associée à une équation mathématique afin de la diffuser davantage. Disons que l'opération nous donne ce résultat :
ls | j4 | 2n | et |
83 | 28 | le | 9f |
9w | xm | 3l | m4 |
5b | a9 | cj | ps |
Ajouter une clé ronde (encore)
Vous vous souvenez de ces clés rondes que nous avons créées au début, en utilisant notre clé initiale et le programme de clés de Rijndael ? Eh bien, c'est là que nous commençons à les utiliser. Nous prenons le résultat de nos colonnes mixtes et ajoutons la première clé de tour que nous avons dérivée :
ls | j4 | 2n | et |
83 | 28 | le | 9f |
9w | xm | 3l | m4 |
5b | a9 | cj | ps |
+
14 | 29 | 1h | s5 |
h9 | 9f | St | 9f |
GT | 2h | QG | 73 |
ks | DJ | df | hb |
Disons que cette opération nous donne le résultat suivant :
9j | 5b | 28 | SF |
ls | df | hf | 3b |
9t | 28 | HP | 8f |
62 | 7j | quinze | ah |
Encore beaucoup de tours…
Si vous pensiez que c’était tout, nous ne sommes même pas proches. Une fois la dernière clé ronde ajoutée, elle revient à l'étape de substitution d'octets, où chaque valeur est modifiée selon un tableau prédéterminé. Une fois cela fait, il s’agit de décaler les lignes et de déplacer chaque ligne vers la gauche d’un, deux ou trois espaces. Ensuite, il repasse par l'équation des colonnes de mélange. Après cela, une autre clé ronde est ajoutée.
Cela ne s’arrête pas là non plus. Au début, il était mentionné queAES a des tailles de clé de 128, 192 ou 256 bits.Lorsqu'une clé de 128 bits est utilisée, il y a neuf de ces tours. Lorsqu'une clé de 192 bits est utilisée, il y en a 11. Lorsqu'une clé de 256 bits est utilisée, il y en a 13. Ainsi, les données passent par la substitution d'octets, décalent les lignes, mélangent les colonnes et arrondissent les étapes de clé jusqu'à treize fois chacune, étant modifié à chaque étape.
Après ces neuf, 11 ou 13 tours, il y a un tour supplémentaire dans lequel les données sont uniquement traitées par substitution d'octets, décalage de lignes et ajout d'étapes clés de tour, maispasl’étape de mélange des colonnes. L’étape de mélange des colonnes est supprimée car à ce stade, elle ne ferait que consommer de la puissance de traitement sans altérer les données, ce qui rendrait la méthode de cryptage moins efficace.
Pour rendre les choses plus claires, l'ensemble du processus de cryptage AES se déroule comme suit :
Extension de clé
Ajouter une clé ronde
Substitution d'octets
Décaler les lignes
Mélanger les colonnes
Ajouter une clé ronde
x 9, 11 ou 13 fois selon que la clé est de 128, 192 ou 256 bits
Substitution d'octets
Décaler les lignes
Ajouter une clé ronde
Une fois que les données ont suivi ce processus complexe, votre original'achète-moi des chips s'il te plaît'ça ressemble à quelque chose comme'ok23b8a0i3j 293uivnfqf98vs87a'. Cela ressemble à une chaîne de caractères complètement aléatoire, mais comme vous pouvez le voir dans ces exemples, c'est en fait le résultat de nombreuses opérations mathématiques différentes qui lui sont appliquées encore et encore.
Quel est l’intérêt de chacune de ces étapes ?
Beaucoup de choses se produisent lorsque nos données sont cryptées et il est important de comprendre pourquoi. Clél’expansion est un facteur critiqueétape, car elle nous donne nos clés pour les tours ultérieurs. Sinon, la même clé serait ajoutée à chaque tour, ce qui rendrait AES plus facile à déchiffrer. Au premier tour, la clé initiale est ajoutée afin de commencer la modification du texte brut.
Leétape de substitution d'octet, où chacun des points de données est modifié selon un tableau prédéterminé,joue également un rôle essentiel. Il modifie les données de manière non linéaire, afin de créer une confusion dans les informations. La confusion est un processus qui permet de masquer la relation entre les données cryptées et le message d'origine.
Le décalage des lignes est également essentiel, effectuant ce qu'on appelle la diffusion. En cryptographie, la diffusion signifie essentiellement transposer les données pour ajouter de la complication. En décalant les lignes, les données sont déplacées de leur position d'origine, ce qui contribue à les obscurcir davantage.Mélanger les colonnesagit de la même manière, modifiant les données verticalement plutôt qu'horizontalement.
À la fin d'un tour, une nouvelle clé de tour dérivée de la clé initiale est ajoutée. Cela ajoute une plus grande confusion aux données.
Pourquoi y a-t-il autant de tours ?
Les processus deajout de clés rondes,substitution d'octets,déplacement des lignesetcolonnes de mélangemodifie les données, mais elles peuvent toujours être crackées par cryptanalyse, qui est une manière d'étudier l'algorithme cryptographique afin de le casser.
Attaques de raccourcisont l'un desprincipales menaces. Il s’agit d’attaques qui peuvent déchiffrer le chiffrement avec moins d’effort que le forçage brutal. Lors de la conception d’AES, des attaques de raccourci ont été détectées pendant jusqu’à six tours de son processus. Pour cette raison, quatre tours supplémentaires ont été ajoutés pour un minimum deAES 128 bits comme marge de sécurité. Les 10 tours résultants donnent à la méthode de cryptage suffisamment d’espace pour empêcher les attaques par raccourci avec les techniques et technologies actuelles.
Pourquoi ne pas ajouter davantage de rondes pour renforcer la sécurité ?
La plupart des choses étant en sécurité, il doit y avoir uncompromis entre la force défensive pure, la convivialité et les performances. Si vous installiez dix portes en acier avec pênes dormants à chacun des points d’entrée de votre maison, cela la rendrait sûrement plus sécurisée. Cela prendrait également un temps déraisonnable pour entrer et sortir, c’est pourquoi nous ne voyons jamais personne le faire.
C’est la même chose en matière de cryptage. Nous pourrions le rendre plus sûr en ajoutant davantage de cartouches, mais cela serait aussi plus lent et beaucoup moins efficace.Les 10, 12 et 14 tours d'AES ont été retenus car ils offrent un bon compromisentre ces aspects concurrents, du moins dans le paysage technologique actuel.
Décrypter AES
Si vous avez réussi à comprendre le processus de cryptage expliqué ci-dessus, le décryptage est relativement simple. Pour passer du texte chiffré au texte clair du message original, tout se fait à l’envers.
Si nous commençons par notre résultat chiffré de'ok23b8a0i3j 293uivnfqf98vs87a'etappliquer l'inverse de chaque étape de chiffrement, cela commence par la touche de tour inverse, puis les lignes de décalage inverse et la substitution d'octet inverse, avant de passer à l'inverse des 9, 11 ou 13 tours.Cela ressemble à ceci :
'ok23b8a0i3j 293uivnfqf98vs87a'
Inverse ajouter une clé ronde
Lignes de décalage inversées
Substitution d'octet inverse
Inverse ajouter une clé ronde
Colonnes à mélange inverse
Lignes de décalage inversées
Substitution d'octet inverse
x 9, 11 ou 13 fois selon que la clé est de 128 192 ou 256 bits
Inverse ajouter une clé ronde
Après ce processus de décryptage, nous nous retrouvons avec notre message original :'achète-moi des chips s'il te plaît'
AES 128 contre 192 contre 256 bits
AES a trois longueurs de clé différentes. La principale différence réside dans le nombre de tours parcourus par les données lors du processus de cryptage, respectivement 10, 12 et 14. En substance,192 bitset256 bitsfournir unune plus grande marge de sécuritéque128 bits.
Dans le paysage technologique actuel,AES 128 bitsest suffisant pour la plupart des objectifs pratiques. Données hautement sensibles traitées par des personnes présentant un niveau de menace extrême, telles queDocuments TRÈS SECRETScontrôlé par l'armée, devrait probablement être traité soit par192ouAES 256 bits.
Si vous êtes paranoïaque, vous préférerez peut-être utiliser192ou256 bitscryptage dans la mesure du possible. C’est bien si cela vous permet de dormir plus facilement la nuit, mais ce n’est vraiment pas nécessaire dans la plupart des situations. Cela n’est pas non plus sans coût, avec les quatre tours supplémentaires deCryptage 256 bitsce qui le rend environ 40 pour cent moins efficace.
Problèmes de sécurité AES
Les cryptographes recherchent constamment les faiblesses d’AES, tentent de proposer de nouvelles techniques et d’exploiter la technologie qui leur est proposée. C’est essentiel, car si ce système n’était pas testé de manière approfondie par des universitaires, des criminels ou des États-nations pourraient éventuellement trouver un moyen de le pirater à l’insu du reste du monde. Jusqu’à présent, les chercheurs n’ont découvert que des ruptures théoriques et des attaques par canal secondaire.
Attaque de clé associée
En 2009, une série de attaques de clés associées ont été découverts. Il s’agit d’un type de cryptanalyse qui consiste à observer comment un chiffre fonctionne sous différentes clés. Les attaques liées aux clés découvertes par les chercheurs ne sont pas très préoccupantes ; ils ne sont possibles que contre des protocoles qui ne sont pas correctement mis en œuvre.
Attaque distinctive à clé connue
Encore en 2009, il y a eu un attaque distinctive à clé connue contre une version à huit tours de l'AES-128. Ces attaques utilisent une clé déjà connue afin de comprendre la structure inhérente du chiffre. Comme cette attaque visait uniquement une version à huit cartouches, il n’y a pas trop de quoi s’inquiéter pour les utilisateurs quotidiens d’AES-128.
Attaque par canal secondaire
Il y a eu plusieurs autres attaques théoriques, mais avec la technologie actuelle, il faudrait encore des milliards d’années pour les résoudre. Cela signifie queAES lui-même est essentiellement incassable pour le moment. Malgré cela, AES peut toujours être vulnérable s’il n’a pas été mis en œuvre correctement, dans ce qu’on appelle un attaque par canal secondaire .
Attaques par canal secondairese produire lorsqu’un système fuit des informations. L'attaquant écoute le son, les informations de synchronisation, les informations électromagnétiques ou la consommation d'énergie afin de recueillir des conclusions de l'algorithme qui peuvent ensuite être utilisées pour le casser.
Si AES est mis en œuvre avec soin, ces attaques peuvent être évitées soit en supprimant la source de la fuite de données, soit en garantissant qu'il n'y a aucune relation apparente entre les données divulguées et les processus algorithmiques.
La dernière faiblesse est plus générale que spécifique à AES, mais les utilisateurs doivent être conscients qu’AES ne sécurise pas automatiquement leurs données.Même AES-256 est vulnérable si un attaquant peut accéder à la clé d'un utilisateur. C'est pourquoi AES ne constitue qu'un aspect de la sécurité des données. La gestion efficace des mots de passe, les pare-feux, la détection des virus et la formation contre les attaques d’ingénierie sociale sont tout aussi essentiels à leur manière.
L'AES est-il suffisant ?
À l’ère actuelle, nous transmettons tous une grande partie de nos données sensibles en ligne,AES est devenu un élément essentiel de notre sécurité. Bien qu’il existe depuis 2001, ce processus répétitif d’ajout de clés, de substitution d’octets, de déplacement de lignes et de mélange de colonnes s’est avéré avoir résisté à l’épreuve du temps.
Malgré les attaques théoriques actuelles et les éventuelles attaques par canal secondaire,AES lui-même reste sécurisé. Il s’agit d’une excellente norme pour sécuriser nos communications électroniques et peut être appliquée dans de nombreuses situations où des informations sensibles doivent être protégées. À en juger par le niveau actuel de la technologie et des techniques d'attaque,vous devriez vous sentir en confiance pour l'utiliserbien dans un avenir prévisible.
Pourquoi avons-nous besoin du cryptage ?
Maintenant que nous avons passé en revue les détails techniques d’AES, il est important d’expliquer pourquoi le chiffrement est important. À son niveau le plus élémentaire, le cryptage nous permet d’encoder des informations afin que seuls ceux qui ont accès à la clé puissent déchiffrer les données. Sans la clé, cela ressemble à du charabia. Avec la clé, le fouillis de personnages apparemment aléatoires redevient son message original.
Le cryptage est utilisé par les gouvernements et les militaires depuis des millénaires.pour éviter que des informations sensibles ne tombent entre de mauvaises mains. Au fil des années, cela s’est imposé de plus en plus dans la vie quotidienne, d’autant plus qu’une grande partie de nos relations personnelles, sociales et professionnelles ont désormais migré vers le monde en ligne.
Pensez simplement à toutles données que vous saisissez dans vos appareils:mots de passe, coordonnées bancaires, tonMessages privéset beaucoup plus. Sans aucun type de cryptage, ces informations seraient beaucoup plus faciles à intercepter par quiconque, qu'il s'agisse de criminels, de harceleurs fous ou du gouvernement.
Tellement denos informations sont précieuses ou sensibles, il est donc clair qu’il doit être protégé de manière à ce que seuls nous-mêmes et ceux que nous autorisons puissions y accéder.C'est pourquoi nous avons besoin du cryptage. Sans cela, le monde en ligne ne pourrait tout simplement pas fonctionner. Nous serions complètement privés de toute confidentialité et sécurité, ce qui plongerait nos vies en ligne dans un chaos absolu.
Voir également:
Outil générateur de mot de passe
Ressources de chiffrement : une grande liste d'outils et de guides
Codes et chiffres célèbres à travers l'histoire
Statistiques et faits sur la cybersécurité
« Piratage, cybercriminalité » par jaydeep_ sous licence CC0