SETIT2011
- 3 -
sont disponibles sur la page Web du NIST. Un
cryptage de 128 bits, valeur standard utilisée par le
Rijndael AES (1997), est plutôt fort à l'heure actuelle.
Rijndael a été conçu de telle manière à rendre des
méthodes classiques comme la cryptanalyse linéaire
ou différentielle très difficiles. La NSA a donc
annoncé que l’AES était apte à protéger des
informations de classe "Secret" et même "Top Secret"
si on utilise des clés de 256 bits [AES 04]. Cet
algorithme n'est pas cassé à la date d'aujourd'hui [Cryp
09]. Il est l’aboutissement de recherches récentes
notamment dans le domaine de la cryptoanalyse, et il
est utilisé dans plusieurs protocoles et applications
pour l’embarqué [AES 10]. Des nouvelles instructions
Intel® AES dédiées au cryptage AES sont disponibles
dans la famille 2010 des processeurs Intel® Core™
(i5 et i7) basés sur l’architecture codename Westmere
et gravés en une technologie de 32nm. Ces nouvelles
instructions visant à accélérer le traitement des
algorithmes de chiffrage AES et une optimisation de la
virtualisation, permettent donc un cryptage/décryptage
des données rapide et sécurisé [AES 10]. Le logiciel
de chiffrement TrueCrypt utilise notamment ces
instructions.
Nous avons préféré nous concentrer sur
l’algorithme de chiffrement AES sur lequel nous
allons travailler tout au long de ce travail. Les
caractéristiques et les spécifications techniques de cet
algorithme seront décrites dans la section 1.3.
1.2.2. Cryptographie asymétrique ou "à double clé"
Dans ce système, la clé qui sert à chiffrer le
message n'est pas la même que celle qui est utilisée
pour son déchiffrement. Avec ce procédé, chaque
utilisateur a sa propre paire de clés : une clé publique
et une clé privée. La première est disponible pour tous
les utilisateurs alors que la seconde reste secrète et
stockée sur un support protégé. Ainsi, cette technique,
inventée en 1975 par les deux ingénieurs en
électronique Whitfield Diffie et Martin Hellman [NivS
91], permet de garantir un encryptage facile et rapide
et un décryptage difficile. L'application de ce crypto-
système asymétrique permet aussi de prouver l’origine
de données et d'expéditeurs (fonction
d'authentification) et de vérifier si les données ont été
altérées (fonction d’intégrité). L'authentification de
données consiste à générer une signature digitale à
partir de la donnée originale et de la clé privée de
l'expéditeur.
Parmi les algorithmes les plus répandus de la
cryptographie asymétrique, on trouve le RSA [RSA
06]. Inventé en 1978 par trois chercheurs du MIT
(Massachusetts Institute of Technology), cet
algorithme de chiffrement à clef publique est toujours
considéré comme efficace pour des clés suffisamment
longues (1024, 2048 et 4096 bits). Ainsi, il est difficile
de le casser en un temps ou avec des moyens
raisonnables. Le RSA est aujourd’hui le crypto-
système le plus employé. Il est utilisé dans une large
variété d’appareils (téléphones, réseaux Ethernet, etc.),
de logiciels (Microsoft, Apple, Sun, etc.), et dans des
industries [RSA 06, Cryp 09]. Son problème majeur
réside dans le choix des deux nombres premiers p et q,
de 100 chiffres au moins, permettant de calculer le
produit n [Cryp 00]. Il existe d’autres algorithmes à
clés publiques, l’exemple de Digital Signature
Algorithm, ECDSA, XTR et ELGamel. Le principal
inconvénient de ces algorithmes (incluant le RSA) est
leur grande lenteur par rapport aux algorithmes à clés
secrètes.
Avec le déchiffrement asymétrique le problème de
la distribution de la clef est résolu. Cependant cette
technique est moins rapide et demande beaucoup de
calcul lors des opérations de chiffrement et de
déchiffrement, ce qui peut causer des problèmes de
performance lorsque de nombreuses machines doivent
s'exécuter simultanément [RSA 06]. Il est plus facile
d’attaquer ces algorithmes en utilisant les propriétés
mathématiques des clés, comme une factorisation dans
le cas du RSA. Au contraire, la cryptographie
symétrique est caractérisé par une grande rapidité et
des implémentations aisés aussi bien software que
hardware, ce qui accélère nettement les débits et
autorise son utilisation massive [Cryp 00].
1.3. Caractéristiques et spécifications techniques de
l’AES
Le choix de l’algorithme AES répond à de
nombreux critères dont nous pouvons citer les
suivants: sa résistance face à toutes les attaques
connues, sa facilité de calcul, ses besoins faibles en
ressources et mémoire, sa flexibilité d’implémentation
en termes de tailles de clés et de blocs, sa simplicité
dans le design et la possibilité de son implémentation
aussi bien sous forme logicielle (l’exemple de Krypto
Zone, firewalls logiciels, etc.) que matérielle (cartes
dédiées, processeurs cryptos 8 à 32 bits, algorithmes
câblés, etc.).
L’AES utilise une des trois longueurs de clé de
codage suivantes : 128, 192 ou 256 bits. Les tailles de
clé les plus élevées offrent un plus grand nombre de
bits de brouillage des données mais également une
complexité accrue de l’algorithme [AES 03]. Pour une
clé de 128 bits, il y a environ 3,4 x 10
38
clés de 128
bits possibles. Ce qui rend impossible de casser l’AES
et la recherche exhaustive demeure la seule solution
[AES 03]. Cet algorithme offre toujours un niveau de
sécurité suffisant pour tout type d’applications. Il
s’insère très bien dans les systèmes embarqués. En
effet, il ne demande que peu de mémoire. C’est
pourquoi il a été utilisé dans les microcontrôleurs, les
microprocesseurs, les On-Chip Memories, les
MicroChips, et les cartes à puce [NoCC 03, SoCL 07,
NoCS 08, AES 10].
Comme la plupart des chiffrements par blocs
modernes, le processus de cryptage est basé sur une
procédure d'expansion E, des boites de substitutions S,
appelées au niveau de la diversification de clé K. Ce
processus conserve le principe des étages au moment
de l’étape d’expansion. Le déchiffrement est l'inverse
du chiffrement.
Chaque fonction de chiffrement (A) ou de