AES (Advanced Encryption Standard)
Qu'est-ce que l'AES ?
L'Advanced Encryption Standard (AES) est un algorithme de chiffrement par blocs symétrique choisi par le gouvernement américain pour protéger les informations classifiées.
L'AES est mis en œuvre dans les logiciels et le matériel dans le monde entier pour crypter les données sensibles. Il est essentiel pour la sécurité informatique des gouvernements, la cybersécurité et la protection des données électroniques.
Le National Institute of Standards and Technology (NIST) a commencé à développer l'AES en 1997 lorsqu'il a annoncé la nécessité d'une alternative au Data Encryption Standard (DES), qui commençait à devenir vulnérable aux attaques par force brute.
Le NIST a déclaré que le nouvel algorithme de cryptage avancé ne serait pas classifié et qu'il devait être "capable de protéger les informations gouvernementales sensibles pendant une bonne partie du [XXIe] siècle". Il devait être facile à mettre en œuvre dans le matériel et les logiciels, ainsi que dans des environnements restreints - comme une carte à puce - et offrir des défenses décentes contre diverses techniques d'attaque.
L'AES a été créé pour le gouvernement américain et peut être utilisé librement et volontairement dans le cadre de programmes publics ou privés, commerciaux ou non commerciaux, qui fournissent des services de cryptage. Toutefois, les organisations non gouvernementales qui choisissent d'utiliser l'AES sont soumises aux limitations imposées par le contrôle américain des exportations.
Fonctionnement du cryptage AES
L'AES comprend trois algorithmes de chiffrement par bloc :
- AES-128 utilise une longueur de clé de 128 bits pour crypter et décrypter un bloc de messages.
- AES-192 utilise une longueur de clé de 192 bits pour crypter et décrypter un bloc de messages.
- AES-256 utilise une longueur de clé de 256 bits pour chiffrer et déchiffrer un bloc de messages.
Chaque algorithme de chiffrement chiffre et déchiffre les données par blocs de 128 bits en utilisant donc respectivement des clés cryptographiques de 128, 192 et 256 bits.
Les chiffrements symétriques, également connus sous le nom de clés secrètes, utilisent la même clé pour le cryptage et le décryptage. L'expéditeur et le destinataire doivent tous deux connaître -- et utiliser -- la même clé secrète.
Le gouvernement classe les informations en trois catégories : Confidentiel, Secret ou Très secret. Toutes les longueurs de clés peuvent être utilisées pour protéger les informations confidentielles et secrètes. Les informations très secrètes nécessitent des longueurs de clé de 192 ou 256 bits.
Il y a 10 rondes pour les clés de 128 bits, 12 rondes pour les clés de 192 bits et 14 rondes pour les clés de 256 bits. Un cycle se compose de plusieurs étapes de traitement qui comprennent la substitution, la transposition et le mélange du texte clair d'entrée pour le transformer en texte chiffré final.
L'algorithme de cryptage AES définit de nombreuses transformations à effectuer sur des données stockées dans un tableau. La première étape du chiffrement consiste à placer les données dans un tableau, après quoi les transformations du chiffrement sont répétées au cours de plusieurs cycles de chiffrement.
La première transformation du chiffrement AES est la substitution des données à l'aide d'une table de substitution. La deuxième transformation décale les lignes de données. La troisième mélange les colonnes. La dernière transformation est effectuée sur chaque colonne à l'aide d'une partie différente de la clé de cryptage. Les clés plus longues nécessitent un plus grand nombre de tours.
Quelles sont les caractéristiques d'AES ?
Le NIST a précisé que le nouvel algorithme AES devait être un algorithme de chiffrement par bloc capable de traiter des blocs de 128 bits, en utilisant des clés de 128, 192 et 256 bits.
Les autres critères de sélection du prochain algorithme AES sont les suivants :
- Sécurité. Les algorithmes en compétition devaient être jugés sur leur capacité à résister aux attaques par rapport aux autres algorithmes de chiffrement présentés. La force de la sécurité devait être considérée comme le facteur le plus important du concours.
- Coût. Destinés à être diffusés à l'échelle mondiale, non exclusifs et libres de droits, les algorithmes candidats devaient être évalués en fonction de leur efficacité en termes de calcul et de mémoire.
- Mise en œuvre. Les facteurs à prendre en compte étaient la flexibilité de l'algorithme, l'adéquation de la mise en œuvre matérielle ou logicielle et la simplicité globale.
Choix du nouvel algorithme AES
Quinze algorithmes symétriques concurrents ont fait l'objet d'une analyse préliminaire par la communauté cryptographique mondiale, y compris la National Security Agency (NSA).
En août 1999, le NIST a sélectionné cinq algorithmes pour une analyse plus approfondie :
- MARS, présenté par une grande équipe d'IBM Research ;
- RC6, soumis par RSA Security ;
- Rijndael, présenté par deux cryptographes belges, Joan Daemen et Vincent Rijmen ;
- Serpent, présenté par Ross Anderson, Eli Biham et Lars Knudsen ; et
- Twofish, présenté par une grande équipe de chercheurs de Counterpane Internet Security, dont le célèbre cryptographe Bruce Schneier.
Les implémentations de tous les éléments ci-dessus ont été testées de manière approfondie dans les langages C et Java de l'American National Standards Institute (ANSI) :
- la rapidité et la fiabilité des processus de cryptage et de décryptage ;
- le temps de configuration de la clé et de l'algorithme
- la résistance à diverses attaques, tant dans les systèmes centrés sur le matériel que sur les logiciels.
Des analyses détaillées ont été effectuées par des membres de la communauté cryptographique mondiale, y compris par certaines équipes qui ont tenté de casser leurs propres soumissions.
Après de nombreux commentaires, débats et analyses, le chiffrement Rijndael a été choisi comme algorithme proposé pour l'AES en octobre 2000. Il a été publié par le NIST sous le nom de U.S. Federal Information Processing Standards (FIPS) PUB 197, qui a été accepté par le secrétaire au commerce en décembre 2001.
L'AES est devenu une norme du gouvernement fédéral en 2002. Il est également inclus dans la norme 18033-3 de l'Organisation internationale de normalisation (ISO)/Commission électrotechnique internationale (CEI), qui spécifie les algorithmes de chiffrement par blocs pour la confidentialité des données.
En juin 2003, le gouvernement américain a annoncé que l'AES pouvait être utilisé pour protéger des informations classifiées. L'AES est rapidement devenu l'algorithme de chiffrement par défaut pour la protection des informations classifiées, ainsi que le premier algorithme de chiffrement ouvert et accessible au public approuvé par la NSA pour les informations très secrètes. La NSA a choisi l'AES comme l'un des algorithmes cryptographiques à utiliser par sa direction de l'assurance de l'information pour protéger les systèmes de sécurité nationale.
L'utilisation réussie de l'AES par le gouvernement américain a conduit à la généralisation de l'algorithme dans le secteur privé. L'AES est devenu l'algorithme le plus populaire en matière de cryptographie à clé symétrique. Le processus de sélection transparent mis en place par le NIST a contribué à créer un niveau élevé de confiance dans l'AES parmi les experts en sécurité et en cryptographie.
Quelle est la différence entre AES-128 et AES-256 ?
Les experts en sécurité considèrent que l'AES est sûr contre les attaques par force brute. On parle d'attaque par force brute lorsqu'un acteur de la menace vérifie toutes les combinaisons de clés possibles jusqu'à ce qu'il trouve la bonne clé. La taille de la clé utilisée pour le cryptage AES doit donc être suffisamment grande pour ne pas être piratée par les ordinateurs modernes, même en tenant compte des progrès réalisés dans la vitesse des processeurs grâce à la loi de Moore.
Une clé de chiffrement de 256 bits est nettement plus difficile à deviner par une attaque par force brute qu'une clé de 128 bits. Toutefois, comme cette dernière est très longue à deviner, même avec une puissance de calcul énorme, il est peu probable que cela pose un problème dans un avenir proche, car un acteur malveillant devrait utiliser l'informatique quantique pour générer la force brute nécessaire.
Cependant, les clés de 256 bits nécessitent également une plus grande puissance de traitement et peuvent prendre plus de temps à être exécutées. Lorsque la puissance est un problème - en particulier sur les petits appareils - ou lorsque la latence est susceptible d'être une préoccupation, les clés de 128 bits sont probablement une meilleure option.
Lorsque des pirates veulent accéder à un système, ils visent le point le plus faible. Ce n'est généralement pas le chiffrement d'un système, qu'il s'agisse d'une clé de 128 bits ou de 256 bits. Les utilisateurs doivent s'assurer que le logiciel envisagé fait ce qu'ils veulent qu'il fasse, qu'il protège les données des utilisateurs de la manière attendue et que le processus global ne présente pas de points faibles.
En outre, il ne doit y avoir aucune zone d'ombre ou d'incertitude concernant le stockage et le traitement des données. Par exemple, si les données résident dans le nuage, les utilisateurs doivent connaître l'emplacement du nuage. Plus important encore, le logiciel de sécurité sélectionné doit être facile à utiliser afin que les utilisateurs ne soient pas obligés d'effectuer des contournements non sécurisés pour faire leur travail.
Quelle est la différence entre AES et RSA ?
L'AES est largement utilisé pour protéger les données au repos. Les applications de l'AES sont les suivantes
- lecteurs de disques auto-cryptés
- cryptage de la base de données
- cryptage du stockage
L'algorithme RSA (Rivest-Shamir-Adleman) est souvent utilisé dans les navigateurs web pour se connecter aux sites web, dans les connexions aux réseaux privés virtuels (VPN) et dans de nombreuses autres applications.
Contrairement à l'AES, qui utilise le chiffrement symétrique, le RSA est la base de la cryptographie asymétrique. Le chiffrement symétrique consiste à convertir un texte clair en texte chiffré en utilisant la même clé, ou clé secrète, pour le chiffrer et le déchiffrer. Le terme asymétrique vient du fait que deux clés sont utilisées pour le cryptage : une clé publique et une clé privée. Si le cryptage est effectué avec la clé publique, le décryptage ne peut se faire qu'avec la clé privée correspondante, et vice versa. En règle générale, les clés RSA sont utilisées lorsqu'il y a deux points d'extrémité distincts.
Si le cryptage RSA fonctionne bien pour protéger le transfert de données au-delà des frontières géographiques, ses performances sont médiocres. La solution consiste à combiner le cryptage RSA avec le cryptage AES afin de combiner les avantages de la sécurité du RSA avec les performances de l'AES. Pour ce faire, il suffit de générer une clé AES temporaire et de la protéger par un chiffrement RSA.
Quelle est la différence entre AES et DES ?
Le gouvernement américain a développé les algorithmes DES il y a plus de 40 ans pour s'assurer que les systèmes gouvernementaux utilisent tous la même norme sécurisée afin de faciliter l'interconnexion.
DES a été le pivot de la cryptographie gouvernementale pendant des années jusqu'en 1999, lorsque des chercheurs ont cassé la clé de 56 bits de l'algorithme à l'aide d'un système informatique distribué. En 2000, le gouvernement américain a choisi d'utiliser l'AES pour protéger les informations classifiées. Le DES est encore utilisé dans certains cas pour des raisons de rétrocompatibilité.
Les deux normes sont des algorithmes de chiffrement par blocs symétriques, mais l'AES est plus efficace d'un point de vue mathématique. Le principal avantage de l'AES réside dans ses options de longueur de clé. Le temps nécessaire pour décrypter un algorithme de cryptage est directement lié à la longueur de la clé utilisée pour sécuriser la communication (clés de 128, 192 ou 256 bits). Par conséquent, l'AES est exponentiellement plus puissant que la clé de 56 bits du DES. Le chiffrement AES est également beaucoup plus rapide, ce qui le rend idéal pour les applications, les microprogrammes et le matériel qui nécessitent une faible latence ou un débit élevé.
Attaques contre le cryptage AES
La recherche d'attaques contre le chiffrement AES s'est poursuivie depuis la finalisation de la norme en 2000. Différents chercheurs ont publié des attaques contre des versions réduites de l'AES.
Les chercheurs ont trouvé quelques moyens potentiels d'attaquer le chiffrement AES :
- En 2009, ils ont découvert une attaque possible par clés apparentées. Cette cryptanalyse tente de décrypter un algorithme de chiffrement en étudiant la manière dont il fonctionne avec différentes clés. L'attaque par clé apparentée s'est avérée n'être une menace que pour les systèmes AES mal configurés.
- En 2009, une attaque par clé connue a été lancée contre l'AES-128. Une clé connue a été utilisée pour discerner la structure du chiffrement. Cependant, le piratage ne visait qu'une version à huit tours de l'AES-128, plutôt que la version standard à 10 tours, ce qui rendait la menace relativement mineure.
Les attaques par canaux latéraux constituent un risque majeur pour le cryptage AES. Plutôt que de tenter un assaut par force brute, les attaques par canal latéral visent à récupérer des fuites d'informations du système. Les attaques par canal latéral peuvent toutefois réduire le nombre de combinaisons possibles nécessaires pour attaquer AES par force brute.
Les attaques par canal latéral consistent à collecter des informations sur ce que fait un dispositif informatique lorsqu'il effectue des opérations cryptographiques et à utiliser ces informations pour faire de la rétro-ingénierie sur le système de cryptographie du dispositif. Ces attaques peuvent utiliser des informations temporelles, telles que le temps nécessaire à l'ordinateur pour effectuer des calculs, des fuites électromagnétiques, des indices sonores et des informations optiques (provenant par exemple d'une caméra à haute résolution) pour découvrir des informations supplémentaires sur la manière dont le système traite le cryptage AES. Dans un cas, une attaque par canal latéral a été utilisée avec succès pour déduire les clés de chiffrement AES-128 en surveillant attentivement l'utilisation partagée des tables de cache des processeurs par le système de chiffrement.
Les attaques par canal latéral peuvent être atténuées en empêchant les fuites de données. En outre, l'utilisation de techniques de randomisation peut contribuer à éliminer toute relation entre les données protégées par le chiffrement et les fuites de données qui pourraient être collectées à l'aide d'une attaque par canal latéral.
Le système AES est-il sûr ?
Les experts en sécurité affirment que l'AES est sûr lorsqu'il est mis en œuvre correctement. Toutefois, les clés de cryptage AES doivent être protégées. Même les systèmes cryptographiques les plus complets peuvent être vulnérables si un pirate informatique accède à la clé de chiffrement.
Pour garantir la sécurité des clés AES :
- Utilisez des mots de passe robustes.
- Utilisez des gestionnaires de mots de passe.
- Mettre en œuvre et exiger l'authentification multifactorielle (MFA).
- Déployer des pare-feu et des logiciels antimalware.
- Organiser des formations de sensibilisation à la sécurité pour éviter que les employés ne soient victimes d'ingénierie sociale et d'attaques par hameçonnage.