Advanced Encryption Standard
|
Cet article ou cette section doit être recyclé. Une réorganisation et une clarification du contenu paraissent nécessaires.
Discutez des points à améliorer en page de discussion.
|
AES | |
Résumé | |
---|---|
Concepteur(s) | Joan Daemen, Vincent Rijmen |
Première publication | 2000 |
Dérivé de | Rijndael, Square |
Chiffrement(s) basé(s) sur cet algorithme | Aucun |
Caractéristiques | |
Taille(s) du bloc | 128 bits |
Longueur(s) de la clé | 128, 192, 256 bits |
Structure | Réseau de substitution/permutation |
Nombre de tours | 10,12 ou 14 selon la taille de la clé |
Meilleure cryptanalyse | |
Une attaque par clé apparentée casse 9 tours de AES-256. Une attaque par texte clair choisi casse 8 tours de AES-192 et 256, ou 7 tours de AES-128 (Ferguson et al, 2000). | |
modifier |
Advanced Encryption Standard ou AES (soit « standard de chiffrement avancé » en français), aussi connu sous le nom de Rijndael, est un algorithme de chiffrement symétrique. Il remporta en octobre 2000 le concours AES, lancé en 1997 par le NIST et devint le nouveau standard de chiffrement pour les organisations du gouvernement des États-Unis. Il a été approuvé par la NSA (National Security Agency) dans sa suite B[1] des algorithmes cryptographiques. Il est actuellement le plus utilisé et le plus sécuritaire.
Origine
Il est issu d'un appel à candidatures international lancé en janvier 1997 et ayant reçu 15 propositions. Parmi ces 15 algorithmes, 5 furent choisis pour une évaluation plus poussée en avril 1999 : MARS, RC6, Rijndael, Serpent, et Twofish. Au bout de cette évaluation, ce fut finalement le candidat Rijndael, du nom de ses deux concepteurs Joan Daemen et Vincent Rijmen (tous les deux de nationalité belge) qui a été choisi[2]. Ces deux experts en cryptographie étaient déjà les auteurs d'un autre algorithme : Square. AES est un sous-ensemble de Rijndael : il ne travaille qu'avec des blocs de 128 bits alors que Rijndael offre des tailles de blocs et de clefs qui sont des multiples de 32 (compris entre 128 et 256 bits).
Ce faisant, l'AES remplace le DES (choisi comme standard dans les années 1970) qui de nos jours devenait obsolète, car il utilisait des clefs de 56 bits seulement. L'AES a été adopté par le NIST (National Institute of Standards and Technology) en 2001. De plus, son utilisation est très pratique car il consomme peu de mémoire et n'étant pas basé sur un schéma de Feistel, sa complexité est moindre et il est plus facile à implémenter.
Fonctionnement
L'algorithme prend en entrée un bloc de 128 bits (16 octets), la clé fait 128, 192 ou 256 bits. Les 16 octets en entrée sont permutés selon une table définie au préalable. Ces octets sont ensuite placés dans une matrice de 4x4 éléments et ses lignes subissent une rotation vers la droite. L'incrément pour la rotation varie selon le numéro de la ligne. Une transformation linéaire est ensuite appliquée sur la matrice, elle consiste en la multiplication binaire de chaque élément de la matrice avec des polynômes issus d'une matrice auxiliaire, cette multiplication est soumise à des règles spéciales selon GF(28) (groupe de Galois ou corps fini). La transformation linéaire garantit une meilleure diffusion (propagation des bits dans la structure) sur plusieurs tours.
Finalement, un OU exclusif XOR entre la matrice et une autre matrice permet d'obtenir une matrice intermédiaire. Ces différentes opérations sont répétées plusieurs fois et définissent un « tour ». Pour une clé de 128, 192 ou 256, AES nécessite respectivement 10, 12 ou 14 tours.
Attaques
L'AES n'a pour l'instant pas été cassé et la recherche exhaustive (« force brute ») demeure la seule solution. Rijndael a été conçu de manière à rendre des méthodes classiques comme la cryptanalyse linéaire ou différentielle très difficiles.
Attaques sur des versions simplifiées
Des attaques existent sur des versions simplifiées d'AES. Niels Ferguson et son équipe ont proposé en 2000 une attaque sur une version à 7 tours de l'AES 128 bits. Une attaque similaire casse un AES de 192 ou 256 bits contenant 8 tours. Un AES de 256 bits peut être cassé s'il est réduit à 9 tours avec une contrainte supplémentaire. En effet, cette dernière attaque repose sur le principe des « related-keys » (clés apparentées). Dans une telle attaque, la clé demeure secrète mais l'attaquant peut spécifier des transformations sur la clé et chiffrer des textes à sa guise. Il peut donc légèrement modifier la clé et regarder comment la sortie de l'AES se comporte.
Attaques sur la version complète
Certains groupes ont affirmé avoir cassé l'AES complet mais après vérification par la communauté scientifique, il s'avérait que toutes ces méthodes étaient erronées. Cependant, plusieurs chercheurs ont mis en évidence des possibilités d'attaques algébriques, notamment l'attaque XL et une version améliorée, la XSL. Ces attaques ont été le sujet de nombreuses controverses et leur efficacité n'a pas encore été pleinement démontrée, le XSL fait appel à une analyse heuristique dont la réussite n'est pas systématique. De plus, elles sont impraticables car le XSL demande au moins 287 opérations voire 2100 dans certains cas. Le principe est d'établir les équations (quadratiques / booléennes) qui lient les entrées aux sorties et de résoudre ce système qui ne comporte pas moins de 8 000 inconnues et 1 600 équations pour 128 bits. La solution de ce système reste pour l'instant impossible à déterminer. En l'absence d'une preuve formelle sur l'efficacité d'attaques similaires au XSL, l'AES est donc considéré comme sûr.
En 2011, des chercheurs de Microsoft publient une attaque sur la version complète d'AES[3]. Cette attaque permet de trouver la clef d'AES-128 en seulement opérations (contre pour une attaque par force brute). La même attaque s'applique à une version simplifiée (à 8 tours) d'AES-128, réduisant la complexité de l'attaque à . Cependant, cette attaque se basant sur une amélioration de l'attaque par rencontre au milieu est encore impraticable.
Recommandations de la NSA
La NSA a annoncé que tous les finalistes qui avaient participé au concours AES pouvaient être considérés comme sûrs et qu'ils étaient suffisamment robustes pour chiffrer les données non-classifiées du gouvernement américain. Pour les données classifiées, le gouvernement américain a annoncé en juin 2003 à propos de l'algorithme AES :
« L'architecture et la longueur de toutes les tailles de clés de l'algorithme AES (128, 192 et 256) sont suffisantes pour protéger des documents classifiés jusqu'au niveau « SECRET ». Le niveau « TOP SECRET » nécessite des clés de 192 ou 256 bits. L'implémentation de l'AES dans des produits destinés à la protection des systèmes et/ou documents liés à la sécurité nationale doit faire l'objet d'une analyse et d'une certification par la NSA avant leur acquisition et leur utilisation »
— paragraphe (6) de la dépêche originale[4]
Autres attaques
|
Cet article ou cette section doit être recyclé. Une réorganisation et une clarification du contenu paraissent nécessaires.
Discutez des points à améliorer en page de discussion.
|
Cette dernière phrase prend tout son sens lorsqu'on sait que des attaques sont possibles sur des systèmes défaillants. On peut en effet analyser la consommation électrique (des pics de consommation indiqueraient des calculs lourds) ou encore le temps nécessaire au chiffrement. Ce genre d'attaque vise surtout des systèmes « boîtes noires » dans lesquels une clé secrète constante est codée dans le matériel et utilisée pour chiffrer plusieurs messages, par exemple des cartes à puce.
Voir l'article sur l'analyse de consommation (cryptographie).
On peut toutefois se demander pourquoi aucun concours officiel n'a été lancé pour promouvoir la recherche d'attaques sur AES. Dans ce domaine, la méthode de chiffrement asymétrique RSA remporte la palme avec plusieurs concours dotés de gains élevés.
Implémentations
- (en) Différentes implémentations matérielles libres en VHDL AES-128, AES-192 et AES-256
- (en) OpenSSL présent par défaut sur tous les systèmes Unix, simple et polyvalent
- (en) Implémentation en PHP et JAVA outil en ligne
- (en) Implémentation en JavaScript
- (en) aescrypt - Logiciel libre de chiffrement AES multiplateformes.
- (en) Rijndael Inspector - Logiciel permettant de chiffrer / déchiffrer un bloc de 128 bits et animation permettant de visualiser l'algorithme de chiffrement.
Notes et références
- ↑ (en) « Suite B Cryptography »
- ↑ (en) James Nechvatal, Elaine Barker, Lawrence Bassham, William Burr, Morris Dworkin, James Foti, Edward Roback, « Report on the Development of the Advanced Encryption Standard (AES) », sur csrc.nist.gov, National Institute of Standards and Technology, (consulté le 8 juin 2009)
- ↑ (en) Andrey Bogdanov, Dmitry Khovratovich, and Christian Rechberger, « Biclique Cryptanalysis of the Full AES », 2011
- ↑ http://web.archive.org/web/20070927035010/http://www.cnss.gov/Assets/pdf/cnssp_15_fs.pdf
Annexes
Articles connexes
- Cryptographie symétrique
- DES
- Mode d'opération (cryptographie)
- Projet NESSIE
- Rijndael
- Triple DES
Liens externes
- (fr) « Adaptation française du document du NIST » (version du 20 février 2009 sur l'Internet Archive)
- (en) code de référence
- (en) « Site officiel de Rijndael » (Archive • Wikiwix • Archive.is • Google • Que faire ?) (lien mort) *lien vers archive.org*
- (en) Présentation de l'attaque XSL
- (en) L'avis des experts sur l'attaque XSL
- (en) « A timing attack against Rijndael » (1999) - Francois Koeune, Jean-Jacques Quisquater
- (en) AES timing attacks - discussion sur comp.dsp
- (en) Report of the Development of the Advanced Encryption Standard (AES)
- Portail de la cryptologie