AES est un chiffrement à clé symétrique, et il est généralement considéré comme la « référence » pour le chiffrement des données..
AES est certifié NIST et est utilisé par le gouvernement américain pour protéger les données « sécurisées », ce qui a conduit à une adoption plus générale d'AES comme chiffrement à clé symétrique standard de choix par presque tout le monde. Il s'agit d'un standard ouvert dont l'utilisation est gratuite pour tout usage public, privé, commercial ou non commercial.
Une introduction au cryptage AES
AES est un chiffrement à clé symétrique. Cela signifie que la même clé utilisée pour chiffrer les données est utilisée pour les déchiffrer. Cela crée un problème : comment envoyer la clé de manière sécurisée ?
Les systèmes de chiffrement asymétrique résolvent ce problème en sécurisant les données à l'aide d'une clé publique mise à la disposition de tous. Il ne peut être déchiffré que par un destinataire prévu qui détient la bonne clé privée.
Cela rend le chiffrement asymétrique bien plus efficace pour sécuriser les données en transit, car l'expéditeur n'a pas besoin de connaître la clé privée du destinataire. Un bon exemple estCryptage RSA, qui permet de sécuriser les échanges de clés TLS nécessaires lors de la connexion à un site Web HTTPS sécurisé.
Les chiffrements symétriques comme AES sont donc bien plus efficaces pour sécuriser les données au repos, par exemple lorsqu'elles sont stockées sur votre disque dur. À cet effet, ils sont supérieurs aux chiffrements asymétriques car :
- Ils nécessitent beaucoup moins de puissance de calcul. Cela rend le chiffrement et le décryptage des données avec le chiffrement symétrique beaucoup plus rapides qu'avec le chiffrement asymétrique. À titre de perspective, les chiffrements symétriques sont généralement cités comme étant environ « 1 000 fois plus rapides » que les chiffrements asymétriques.
- Et parce qu’ils sont plus rapides, les chiffrements symétriques sont bien plus utiles pour chiffrer en masse de grandes quantités de données. Les chiffrements asymétriques tels que RSA ne sont réellement utilisés que pour chiffrer de petites quantités de données, telles que les clés utilisées pour sécuriser le chiffrement à clé symétrique.
Bien entendu, dans le monde connecté d’aujourd’hui, les données qui se trouvent uniquement sur votre disque dur sont d’une utilité limitée. Heureusement, il peut être transféré en toute sécurité sur Internet en conjonction avec le cryptage asymétrique, qui gérait les échanges de clés à distance nécessaires pour se connecter en toute sécurité à un serveur distant.
OpenVPN, par exemple, sécurise les données brutes avec un chiffrement symétrique – généralement AES de nos jours. Afin de transférer les données cryptées en toute sécurité entre votre PC et le serveur VPN, il utilise un échange de clé TLS asymétrique pour négocier une connexion sécurisée au serveur.
Le cryptage AES est-il le meilleur type de cryptage ?
AES est largement considéré comme le chiffrement à clé symétrique le plus sécurisé jamais inventé. Il existe également d’autres chiffrements à clé symétrique considérés comme hautement sécurisés, tels que Twofish, co-inventé par le célèbre cryptographe Bruce Schneier.
De tels chiffrements n’ont cependant pas été testés au combat comme l’AES l’a fait. Et si le gouvernement américain pense qu’AES est le meilleur chiffrement pour protéger ses données « sécurisées », qui le conteste ? Mais certains y voient un problème. Veuillez consulter la section sur le NIST ci-dessous.
L’adoption généralisée a bénéficié à l’AES d’autres manières. La plupart des fabricants de processeurs ont désormais intégré le jeu d'instructions AES dans leurs processeurs. L'amélioration matérielle améliore les performances AES sur de nombreux appareils ainsi que leur résistance aux attaques par canal secondaire.
Le cryptage AES 128 bits peut-il être brisé ?
AES lui-même est incassable lorsqu’il est correctement mis en œuvre.
En 2011, le supercalculateur le plus rapide au monde était le Fujitsu K. Il était capable d'une vitesse de pointe Rmax de 10,51 pétaflops. Sur la base de ce chiffre, il seraitprendreFujitsu K 1,02 x 10^18 - environ un milliard de milliards (un quintillion) - d'années pour déchiffrer une clé AES de 128 bits par la force. C'est plus ancien que l'âge de l'univers (13,75 milliards d'années).
Le supercalculateur le plus puissant au monde en 2017 était le Sunway TaihuLight en Chine. Cette bête est capable d'une vitesse maximale de 93,02 pétaflops. Cela signifie qu’il faudrait encore 885 quadrillions d’années à l’ordinateur le plus puissant du monde pour forcer brutalement une clé AES de 128 bits.
Le nombre d'opérations nécessaires pour forcer brutalement un chiffrement de 256 bits est de 3,31 x 10^56. C’est à peu près égal au nombre d’atomes dans l’univers !
En 2011, des chercheurs en cryptographie ont identifié unfaiblesseen AES, ce qui leur a permis de déchiffrer l'algorithme quatre fois plus rapidement qu'auparavant. Mais comme l’un des chercheurs l’a noté à l’époque :
"Pour mettre cela en perspective : sur un billion de machines, dont chacune pourrait tester un milliard de clés par seconde, il faudrait plus de deux milliards d'années pour récupérer une clé AES-128."
En réponse à cette attaque, quatre tours supplémentaires (voir plus loin) ont été ajoutés au processus de cryptage AES-128 pour augmenter sa marge de sécurité.
Attaques par canal secondaire
Ainsi, à toutes fins utiles, AES lui-même est incassable lorsqu’il est correctement mis en œuvre. Mais cela n’est pas toujours mis en œuvre correctement.
Canal latéralles attaques recherchent des indices dans le système informatique mettant en œuvre le cryptage AES afin d'obtenir des informations supplémentaires. Cela peut être utile pour réduire le nombre de combinaisons possibles requises pour forcer brutalement AES.
Ces attaques utilisent des informations de synchronisation (le temps nécessaire à l'ordinateur pour effectuer les calculs), des fuites électromagnétiques, des indices audio et même des indices optiques captés à l'aide d'une caméra haute résolution pour découvrir des informations supplémentaires sur la façon dont le système traite le cryptage AES.
Une attaque par canal secondaire bien connue contre AES avec succèsdéduitClés de chiffrement AES-128 en surveillant attentivement l'utilisation partagée par le chiffrement des tables de cache des processeurs.
Un AES correctement mis en œuvre atténue les attaques par canal secondaire en empêchant les fuites possibles de données (c'est là que l'utilisation du jeu d'instructions AES basé sur le matériel est utile) et en utilisant des techniques de randomisation pour éliminer la relation entre les données protégées par le chiffrement et toute fuite de données qui pourrait être collectée à l'aide d'une attaque par canal secondaire.
Mots de passe non sécurisés
Le cryptage AES est aussi sécurisé que sa clé. Ces clés sont elles-mêmes invariablement sécurisées par des mots de passe, et nous savons tous commentterriblenous, les humains, utilisons des mots de passe sécurisés. Les enregistreurs de frappe introduits par des virus, des attaques d'ingénierie sociale, etc., peuvent également être des moyens efficaces de compromettre les mots de passe qui sécurisent les clés AES.
Utilisation degestionnaires de mots de passeatténue grandement ce problème, tout comme l'utilisation de pare-feu bidirectionnels, d'un bon logiciel antivirus et d'une meilleure éducation sur les problèmes de sécurité.
Un bref historique du cryptage AES
Quand vous étiez enfant, avez-vous joué au jeu dans lequel vous créiez un « message secret » en remplaçant une lettre du message par une autre ? La substitution a été effectuée selon une formule choisie par vous.
Vous auriez pu, par exemple, remplacer chaque lettre du message d'origine par trois lettres derrière elle dans l'alphabet. Si quelqu’un d’autre savait ce qu’était cette formule, ou était capable de la trouver, alors il pourrait lire votre « message secret ».
Dans le jargon de la cryptographie, vous faisiez « chiffrer » le message (les données) selon un algorithme mathématique très simple.
Le cryptage est utilisé pour masquer les données sensibles depuisles temps anciens, mais s’est réellement imposé au cours du XXe siècle. Pendant la Seconde Guerre mondiale, les Allemands ont sécurisé leurs communications en utilisant leMachine énigmatique, dont le code a été également déchiffré par Alan Turing à Bletchley Park.
Qu'est-ce que le cryptage DES
Le Data Encryption Standard (DES) a été créé au milieu des années 1970 pour sécuriser les communications du gouvernement américain. Il est devenu le premier algorithme de chiffrement moderne, public et disponible gratuitement et, en tant que tel, a créé presque à lui seul la discipline moderne de la cryptographie.
Bien que développé par IBM, DES est une idée originale du National Bureau of Standards (NBS, devenu plus tard NIST).
Malgré les inquiétudes concernant l'ingérence de la NSA, le DES a été adopté par le gouvernement américain en 1976 pour le trafic « sensible mais non classifié ». Cela comprenait des éléments tels que des informations personnelles, financières et logistiques.
Comme il n’existait rien d’autre de comparable à l’époque, il a rapidement été largement adopté par les entreprises commerciales qui avaient besoin du cryptage pour sécuriser leurs données. En tant que tel, DES (qui utilisait des clés de 56 bits) est devenu la norme de chiffrement par défaut pendant près de deux décennies.
Cette adoption presque omniprésente a été grandement facilitée par l'obtention du statut FIPS (Federal Information Processing Standards) du DES. Toutes les agences gouvernementales non militaires américaines et les sous-traitants du gouvernement civil sont tenus d'utiliser uniquement les normes FIPS.
Cependant, au milieu des années 1990, le DES commençait à montrer son âge. À cette époque, il était largement admis que la NSA pouvait casser le DES par force brute, un point prouvé en 1998 lorsqu'une machine de 220 000 $ construite par l'Electronic Frontier Foundation (EFF) a réussi à forcer le DES en seulement deux jours. Il était clairement temps d’adopter une nouvelle norme.
Comment est né l’AES
En 1997, l'Institut national des normes et de la technologie des États-Unis (NIST) a annoncé qu'il cherchait un remplaçant au DES. En novembre 2001, il a annoncé le gagnant : AES, anciennement connu sous le nom de Rijndael du nom de l'un de ses co-créateurs.
Sur la recommandation du NIST, le nouveau chiffrement a été officiellement adopté par le gouvernement fédéral américain et est entré en service en mai 2002. Comme DES avant lui, AES a obtenu le statut FIPS. Le gouvernement américain considère que toutes les tailles de clé AES sont suffisantes pour les informations classifiées jusqu'au niveau « Secret », les informations « Top Secret » nécessitant AES-192 ou AES-256.
AES a désormais entièrement remplacé DES dans le monde entier en tant que norme de chiffrement symétrique par défaut.
L'algorithme de cryptage AES crypte et déchiffre les données par blocs de 128 bits. Il peut le faire en utilisant des clés de 128 bits, 192 bits ou 256 bits. AES utilisant des clés de 128 bits est souvent appelé AES-128, etc.
Le diagramme suivant fournit un aperçu simplifié du processus AES…

Texte brut
Ce sont les données sensibles que vous souhaitez chiffrer.
Clé secrète
Il s'agit d'une variable de 128 bits, 192 bits ou 256 bits créée par un algorithme.
Chiffrer
Le chiffrement AES réel effectue ensuite une série de transformations mathématiques en utilisant le texte en clair et la clé secrète comme point de départ. Dans l'ordre, ce sont :
- Expansion clé. Celui-ci utilise la clé secrète d'origine pour dériver une série de nouvelles « clés rondes » à l'aide de l'algorithme de planification des clés de Rijndael.
- Mélange. Chaque clé ronde est combinée avec le texte en clair à l'aide de l'additifAlgorithme XOR.

Substitution des données résultantes à l'aide d'une table de substitution. Cette étape est très similaire en principe (bien que beaucoup plus complexe en pratique) aux chiffrements de substitution que vous avez créés lorsque vous étiez enfant.

Décaler les lignes. Dans lequel chaque octet de la colonne 4 x 4 de seize octets qui constitue un bloc de 128 bits est décalé vers la droite.

5. Mélangez les colonnes. Un autre algorithme est appliqué à chaque colonne.

Levez-vous et répétez. Le processus est répété plusieurs fois, chaque répétition étant appelée un tour. Chaque tour est rechiffré à l'aide de l'une des clés de tour générées lors de l'expansion des clés (étape 1).
Le nombre de tours effectués dépend de la longueur de clé utilisée. AES-128 utilise dix tours, AES-192 en utilise douze et AES-256 en utilise quatorze.
Chaque obus ajouté réduit le risque d'une attaque raccourcie du type de celui utilisé pour attaquer l'AES-128 en 2011. Comme déjà indiqué, à la suite de cette attaque, quatre obus supplémentaires ont été ajoutés à l'AES-128 afin d'améliorer ses marges de sécurité.
Texte chiffré
Il s'agit de la sortie chiffrée du chiffrement après qu'il ait parcouru le nombre de tours spécifié.
Comment décrypter le cryptage AES
Le décryptage d’AES est simple : il suffit d’inverser toutes les étapes ci-dessus, en commençant par la clé ronde inverse. Bien entendu, vous devez disposer de la clé secrète d'origine afin d'inverser le processus en utilisant chaque clé ronde inverse.
Le cryptage d’un fichier le rend-il plus volumineux ?
Oui. Généralement. AES utilise une taille de bloc fixe de 16 octets. Si un fichier n'est pas un multiple d'une taille de bloc, AES utilise un remplissage pour compléter le bloc.
En théorie, cela ne signifie pas nécessairement une augmentation de la taille des données chiffrées (voir vol de texte chiffré), mais le simple fait d'ajouter des données pour compléter le bloc est généralement beaucoup plus facile. Ce qui augmente la quantité de données cryptées.
Des preuves anecdotiques suggèrent que les fichiers de plus de 1 Mo chiffrés avec AES ont tendance à être environ 35 % plus volumineux qu'avant le chiffrement.
Quelle est l’importance de la taille des clés dans le cryptage AES ?
La façon la plus simple de mesurer la force d’un chiffre est la taille de sa clé. Plus la clé est grande, plus il y a de combinaisons possibles.
AES peut être utilisé avec des tailles de clé de 126 bits, 192 bits ou 256 bits. Le chiffre Rijndael original a été conçu pour accepter des longueurs de clé supplémentaires, mais celles-ci n'ont pas été adoptées dans AES.
Attaques par force brute
Plus l'algorithme est complexe, plus le chiffre est difficile à déchiffrer à l'aide d'unattaque par force brute. Cette attaque de forme très primitive est également connue sous le nom de recherche de clé exhaustive. Cela implique essentiellement d'essayer toutes les combinaisons de chiffres possibles jusqu'à ce que la bonne clé soit trouvée.
Comme vous le savez sûrement, les ordinateurs effectuent tous les calculs en utilisant des nombres binaires : des zéros et des uns. Et comme nous l'avons vu, la complexité d'un chiffre dépend de la taille de sa clé en bits - le nombre brut de uns et de zéros nécessaires pour exprimer son algorithme, où chaque zéro ou un est représenté par un seul bit.
Ceci est connu sous le nom de longueur de clé et représente également la faisabilité pratique de réussir une attaque par force brute sur un chiffre donné.
Le nombre de combinaisons possibles (et donc la difficulté de les forcer brutalement) augmente de façon exponentielle avec la taille de la clé. Pour AES :
Comme nous l’avons déjà évoqué, il faudrait au supercalculateur le plus rapide du monde plus de temps que l’âge de l’univers pour déchiffrer ne serait-ce qu’une clé AES-128 par la force !
Tours de chiffrement
Comme nous l’avons également évoqué, plus la clé utilisée par AES est longue, plus elle effectue de cycles de cryptage. Il s'agit principalement d'empêcher les attaques par raccourci qui peuvent réduire la complexité informatique des chiffrements et qui facilitent donc la force brute du chiffrement.
Comme le cryptographe renoncé Bruce Schneierditde l'attaque de raccourci de 2011 sur AES-128,
"La cryptographie est une question de marges de sécurité. Si vous pouvez briserntour d'un chiffre, vous le concevez avec 2nou 3ntours.
Il a recommandé d'introduire davantage de tours pour chaque taille de clé dans l'AES, mais le NIST juge les niveaux actuels suffisants.
Alors pourquoi utiliser plus que l’AES-128 ?
Tout cela soulève la question suivante : s’il faudrait plus de temps que l’âge de l’univers pour déchiffrer ne serait-ce qu’AES-128, pourquoi s’embêter à utiliser AES-192 ou AES-256 ? Comme Schneier l'a noté :
"Je suggère aux gens de ne pas utiliser AES-256. AES-128 offre une marge de sécurité plus que suffisante dans un avenir prévisible. Mais si vous utilisez déjà AES-256, il n'y a aucune raison de changer."
En effet, Schneier a soutenu dans le passé que l'AE-128 est en fait plus sûr que l'AES, car il possède unplus fortcalendrier clé que AES-256.
Alors pourquoi l’AES-256 est-il considéré comme la référence en matière de chiffrement à clé symétrique ?
Marges de sécurité
L’attaque de raccourci de 2011 démontre que, quel que soit le niveau de sécurité que les experts considèrent comme un algorithme de cryptographie, les personnes inventives trouveront toujours des moyens auxquels personne n’avait jamais pensé pour les affaiblir.
Comme pour le nombre de tours utilisés, une taille de clé plus grande offre une marge de sécurité plus élevée contre les fissures.
Bling
L’effet du marketing ne doit pas être ignoré lorsque l’on considère l’omniprésence du cryptage AES-256. Le simple fait qu’AES-256 soit largement considéré comme le chiffrement symétrique le plus sécurisé au monde en fait le choix numéro un pour beaucoup.
Je veux dire, si AES-128 est bon, alors il va de soi que AES-256 doit être meilleur, n'est-ce pas ?
Le fait que le gouvernement américain utilise AES-256 pour sécuriser ses données les plus sensibles ne fait qu'ajouter à sa valeur « bling » et permet aux sociétés VPN et autres de prétendre qu'elles utilisent un cryptage de « niveau militaire ».
Étant donné que cette « perception bling-bling » est (en grande partie) exacte, la popularité de l'AES-256 ne pose aucun problème (bien que voir les notes sur le NIST ci-dessous).
AES et OpenVPN
Les utilisateurs de VPN, en particulier, doivent cependant être prudents. La plupart des services VPN utilisent AES-256 pour sécuriser les données transmises par le protocole OpenVPN, mais il s'agit de l'un des différents mécanismes utilisés par OpenVPN pour sécuriser les données.
Une connexion TLS sécurise le transfert des clés de chiffrement utilisées par AES pour sécuriser les données lors de l'utilisation d'OpenVPN. Ainsi, si les paramètres OpenVPN TLS (canal de contrôle) sont faibles, les données peuvent être compromises malgré leur cryptage à l'aide d'AES-256. Veuillez consulter notreGuide ultime du cryptage VPNpour plus de détails.
AES-CBC vs AES-GCM
Jusqu'à récemment, le seul chiffrement AES que vous étiez susceptible de rencontrer dans le monde VPN était AES-CBC (Cipher Block Chaining). Il s’agit ici du mode de chiffrement par blocs, un sujet complexe qui ne vaut pas vraiment la peine d’être abordé ici.
Bien que CBC puisse théoriquement présenter certaines vulnérabilités, le consensus est que CBC est sécurisé. CBC est en effet recommandé dans le manuel d’OpenVPN.
OpenVPN prend désormais également en charge AES-GCM (Galios/Counter Mode). GCM fournit une authentification, éliminant ainsi le besoin d'une fonction de hachage HMAC SHA. Il est également légèrement plus rapide que CBC car il utilise l'accélération matérielle (en thread sur plusieurs cœurs de processeur).
AES-CBC reste le mode le plus couramment utilisé, mais AES-GCM gagne en popularité. Compte tenu des avantages du GCM, cette tendance ne fera que se poursuivre. D’un point de vue cryptographique, cependant, AES-CBC et AES-GCM sont hautement sécurisés.
NIST
AES est une norme certifiée NIST. Il s'agit d'un organisme qui, de son propre aveu, travailleétroitementavec la NSA dans le développement de ses codes.
Compte tenu de ce que nous savons désormais des efforts systématiques de la NSA pour affaiblir ou intégrer des portes dérobées aux normes internationales de chiffrement, il y a toutes les raisons de remettre en question l’intégrité des algorithmes du NIST. Le NIST, bien entendu, réfute fermement de telles allégations :
"Le NIST n’affaiblirait pas délibérément une norme cryptographique.»
Il a également invité le publicparticipationdans un certain nombre de normes de chiffrement proposées à venir, dans le but derenforcer la confiance du public.
LeNew York Times, cependant, a accusé la NSA de contourner les normes de cryptage approuvées par le NIST, soit en introduisant des portes dérobées indétectables, soit en subvertissant le processus de développement public pour affaiblir les algorithmes.
Cette méfiance s'est encore renforcée lorsque RSA Security (une division d'EMC) a demandé en privé à ses clients de cesser d'utiliser un algorithme de chiffrement qui contiendrait une faille.conçupar la NSA. Cet algorithme avait également été approuvé par le NIST.
En outre,Double_EC_DRBG(Dual Elliptic Curve Deterministic Random Bit Generator) est une norme de cryptage conçue par le NIST. On sait depuis des années qu’il n’est pas sécurisé.
En 2006, l'Université de Technologie d'Eindhoven aux Pays-Basnotéqu'une attaque contre lui était assez facile à lancer sur "un PC ordinaire". Les ingénieurs de Microsoft ont également signaléune porte dérobée suspectéedans l'algorithme.
Malgré ces inquiétudes, là où le NIST est en tête, l'industrie suit. Cela est dû en grande partie au fait que le respect des normes NIST est une condition préalable à l'obtention de contrats avec le gouvernement américain (FIPS).
Les normes cryptographiques certifiées par le NIST telles que AES sont quasiment omniprésentes dans le monde entier, dans tous les domaines de l'industrie et des affaires qui dépendent de la confidentialité. Cela rend la situation plutôt effrayante.
Peut-être précisément parce que beaucoup de choses dépendent de ces normes, les experts en cryptographie ont été réticents à affronter le problème.
Crédit image : xkcd.com/538.
