INTRODUCTION AUX TECHNIQUES DE CHIFFREMENT ET DE SECURITE – CNAM LIMOGES, CYCLE

INTRODUCTION AUX TECHNIQUES DE CHIFFREMENT ET DE SECURITE – CNAM LIMOGES, CYCLE C, 2003-2004 L’ADVANCED ENCRYPTION STANDARD - PHILIPPE JEULIN – 1 / 10 L’ADVANCED ENCRYPTION STANDARD OU « AES » Ce document en langue française s’appuie essentiellement sur l’excellente publication que représente le « FIPS P 197 » disponible à l’adresse http://aes.nist.gov. Toute personne désirant découvrir l’AES peut et doit s’y reporter, le caractère pédagogique de cette publication « standard » étant incontestable. Introduction L’AES est le standard de chiffrement symétrique destiné à remplacer le « DES »1 (FIPS P 46-3). Il est aujourd’hui défini dans le « FIPS P 197 » (« Federal Information Processing Standards Publication »). Historique En avril 1997, le « NIST » ou « Nationale Institute of Standards and Technology » lance un défi à la communauté cryptographique sur la conception d’un nouvel algorithme de chiffrem ent symétrique. C’est un appel au public ; la participation au « concours » est libre. Cinq critères à respecter ont été lister dans le cahier des charges : • ce doit être un algorithme très robuste, à blocs, à clé symétrique pour les utilisations commerciales et gouvernementales du prochain siècle ; • il doit être plus efficace que le Triple DES, devant mettre en œuvre des clés de 128, 192 ou 256 bits de longueur et travailler sur des blocs de 128 bits de longueurs (les autres tailles sont optionnelles) ; • il doit être élaboré et évalué publiquement ; • il doit être libre de toute propriété intellectuelle dans le monde entier… A ces cinq critères, nous pouvons ajouter le fait qu’il devait enfin être à large portabilité : protocoles de réseau, cartes à puce, processeurs dédiés… Le 15 juin 1998, 15 algorithmes sont recensés répondant à ces critères, algorithmes venant de l’Allemagne, l’Australie, de la Belgique, du Canada, de la Corée, du Costa Rica, des Etats-Unis, de la France (ENS CNRS), du Japon… 1 Le « Triple DES » reste encore un algorithme approuvé pour les utilisations gouvernementales américaines. INTRODUCTION AUX TECHNIQUES DE CHIFFREMENT ET DE SECURITE – CNAM LIMOGES, CYCLE C, 2003-2004 L’ADVANCED ENCRYPTION STANDARD - PHILIPPE JEULIN – 2 / 10 Le 9 août 1999, une « short list » de 5 nominés est annoncée regroupant les algorithmes « Mars » (IBM), « RC6 » (RSA), « Rijndael » (prononcer « Raindal »), « Serpent » et « Twofish ». Le 2 octobre 2000, le finaliste (le « winner ») est l’algorithme « Riijndael » proposé par deux flamands, Joan Daemen de la société Proton World International et Vincent Rijmen chercheur au Département d’Electronique « ESAT » de l’Université Catholique de Louvain (Katholieke Universiteit Leuven). Le lecteur pourra se reporter à l’adresse du site des concepteurs http://www.esat.kuleuven.ac.be/~rijmen/rijndael pour de plus amples informations sur cette algorithme. Le NIST a sélectionné « Rijndael » pour des raisons de sécurité, de performance, d’efficacité, de facilité d’implémentation et de flexibilité. Il est possible de se procurer à l’adresse http://csrc.nist.gov/encryption/aes/round2/r2report.pdf (document de 116 pages) l’analyse rationnelle de ce choix. Présentation générale L’AES est un système de chiffrement symétrique à clé secrète. L’algorithme « Rijndael » offre la possibilité de travailler sur des blocs de 128, 192 ou 256 bits. Le standard, l’AES, n’a retenu que la taille de bloc de 128 bits. La clé de chiffrement peut être de 128, 192 ou 256 bits. Cette clé sera donc stockée sur 32 octets maximum. Qui plus est, le temps de calcul des « sous-clés » est faible. Ceci est fort intéressant lors de l’utilisation dans un contexte de sécurité à fort changement (tel « IPSec »). Tailles des clés AES Nombres des clés AES 128 3,4 1038 192 6,2 1057 256 1,1 1077 Taille de la clé DES Nombre des clés DES 56 7,2 1016 Rapport de 1021 avec le DES 1 clé DES cassée en 1 seconde ð 149 mille milliard d’années pour casser une clé AES sur 128 bits (Age de l’Univers : 20 109 années) INTRODUCTION AUX TECHNIQUES DE CHIFFREMENT ET DE SECURITE – CNAM LIMOGES, CYCLE C, 2003-2004 L’ADVANCED ENCRYPTION STANDARD - PHILIPPE JEULIN – 3 / 10 Schéma général Note : l’AES est un algorithme orienté « octet ». Clé Expansion ↓ ↓ ↓ ↓ ↓ Bloc en clair ð ⊕ ð Tour 1 ð Tour 2 ð ……. ð Tour r-1 ð Tour r ð Bloc chiffré Valeur de r ou Nr nombre de cycles ou « rounds ». Tailles du Bloc : Nb x 32 128 192 256 128 10 12 14 192 12 12 14 Tailles de la Clé : Nk x 32 256 14 14 14 AES Nb = 4 Nb = 6 Nb = 8 Détail d’un Tour Clé du Tour ò Bloc en entrée ð Substitution non linéaire : « SubByte » ð Bloc intermédiaire ð Permutation Linéaire : « ShiftRow » + « MixColumns » ð ⊕ ð Bloc en sortie « SubByte() » est une fonction non linéaire qui opère de façon indépendante sur chaque octet du bloc à partir d’une table de substitution « s-box ». « ShiftRow() » est une fonction qui opère des délages vers la gauche de 0, 1, 2 et 3 octets pour les « morceaux » 1, 2, 3 et 4. « MixColumns() » est une fonction qui transforme chaque octet d’entrée en une combinaison linéaire d’octets d’entrée (produit matriciel sur sur CG( 28)). Note : Le déchiffrement consiste à réaliser les opérations inverses en présentant les sous-clés également dans l’ordre inverse. INTRODUCTION AUX TECHNIQUES DE CHIFFREMENT ET DE SECURITE – CNAM LIMOGES, CYCLE C, 2003-2004 L’ADVANCED ENCRYPTION STANDARD - PHILIPPE JEULIN – 4 / 10 Formalisme mathématique Byte L’AES est un algorithme orienté « byte », concaténation de 8 bits : {b7, b 6, b 5, b 4, b 3, b 2, b 1, b 0}. Les valeurs de ces « bytes » peuvent être interprétés comme des éléments d’un Groupe.. Trois représentations d’une même information : 0 1 1 0 0 0 1 1 x6 + x 5 + x + 1 { 6 3 } en hexadécimal {b7, b 6, b 5, b 4, b 3, b 2, b 1, b 0} : b 7 x7 + b 6 x6 + b 5 x 5 + b 4 x 4 + b 3 x3 + b 2x2 + b 1x1 + b 0. Bloc et Etat Les opérations de l’AES peuvent s’appréhender comme des opérations sur des tableaux à 2 dimensions ou Etats (« States ») contenant 4 lignes et N b octets . Pour l’AES, le standard, N b = 4. Un Bloc est en fait un tableau de 4 x 4 octets soit 16 octets soit 128 bits. 3 , 3 2 , 3 1 , 3 0 , 3 3 , 2 2 , 2 1 , 2 0 , 2 3 , 1 2 , 1 1 , 1 0 , 1 3 , 0 2 , 0 1 , 0 0 , 0 s s s s s s s s s s s s s s s s Etat Lois de composition Addition : XOR ⊕ 0 1 0 0 1 1 1 0 notons la propriété intéressante a ⊕ a = 0 et donc (a ⊕ b) ⊕ b = a. Trois représentations : 01010111 ⊕ 10000011 = 11010100 {57} ⊕ {83} = {d4} (x6+x4 +x2+x=1) ⊕ (x7+x+1) = x 7+x6 +x4+x2 INTRODUCTION AUX TECHNIQUES DE CHIFFREMENT ET DE SECURITE – CNAM LIMOGES, CYCLE C, 2003-2004 L’ADVANCED ENCRYPTION STANDARD - PHILIPPE JEULIN – 5 / 10 Multiplication : • Multiplication modulo un polynôme irréductible de degré 8 Pour l’AES, ce polynôme est m(x) = x8 + x4 + x3 + x + 1 (soit {01 1b}). Exemple : {57} • {83} = {c1} ; En effet, (x6+x4 +x2+x=1) • (x7+x+1) = x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x3 +1 et ceci modulo x 8 + x 4 + x 3 + x + 1 est égal à x7 + x 6 + 1 soit {c1}. Note : a(x) • b(x) mod m(x) ⇔ b-1(x) = a(x) mod m(x) Multiplication par x c’est-à-dire par (00000010) ou {02}. Soit b7x 7 + b 6x6 + b 5x5 + b 4x4 + b 3x3 + b 2x2 + b 1x1 + b 0 multiplié par x : x • (b7x7 + b 6x6 + b 5x5 + b 4x4 + b 3x3 + b 2x2 + b 1x1 + b 0) = b7x 8 + b 6x7 + b 5x6 + b 4x5 + b 3x 4 + b 2x3 + b 1x 2 + b 0x Si b7 = 0 , le modulo m(x) est : b6x 7 + b 5x6 + b 4x5 + b 3x4 + b 2x 3 + b 1x2 + b 0x si b7 = 1, le modulo m(x) sera : (b6x 7 + b 5x6 + b 4x5 + b 3x4 uploads/Litterature/ l-x27-advanced-encryption-standard-ou-aes.pdf

  • 35
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager