Chap 3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 70

Cours : Cryptographie et Sécurité Informatique

Chapitre 3. Cryptographie symétrique

I. Akharraz
Université Sidi Mohamed Ben Abdellah

[email protected]
1/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


Sommaire

1. Introduction.

2. Chiffrement par blocs.

3. Catégories de chiffrement par blocs.

4. Cryptographie symétrique.

5. Construction de chiffrement blocs.

6. Le chiffre DES.

7. Le chiffre AES.

2/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


1. Introduction.

• Dans le chapitre précedent nous avons donné des


exemples de chiffrement par blocs (code de Hill) et de
chiffrement par flots (code de César).

• Le chiffrement par blocs agit avec une


transformation fixe par blocs de données en clair.

• Le chiffrement par flots (ou par flux) agit avec


une transformation variante avec le temps sur des
données en clair individuelles.

• Le chiffrement par blocs est le plus répandu que le


chiffrement par flots qui est plus facile à analyser
mathématiquement.

3/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


2. Chirement par blocs.
Schéma général du chiffrement par blocs :
(1) Coder l'information source en binaire. On obtient
une chaîne de caractères composée de 0 et de 1.
(2) Découper cette chaîne en blocs de longueur donnée
(par exemple 64 bits ou 128 bits ou 256 bits).
(3) Chiffrer un bloc en faisant un OU exclusif (ou
XOR) bit à bit avec une clé secrète, k, qui est une
suite de 0 et de 1 de même longueur, (un XOR est une
addition sans retenu en base deux).
(4) Déplacer et permuter certains bits du bloc.
(5) Recommencer un certain nombre de fois l'étape
précédente, on appelle cela une ronde.
(6) Passer au bloc suivant et retourner à l'étape 3
jusqu'à ce que tous les blocs soient chiffrés.
4/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


2. Chirement par blocs.

Remarque

• La fonction OU exclusif, souvent appelée XOR


(eXclusive OR) ou disjonction exclusive, est un
opérateur logique de l'algèbre de Boole.

• À deux opérandes, qui peuvent avoir chacun la valeur


VRAI ou FAUX, il associe un résultat qui a lui-même la
valeur VRAI seulement si les deux opérandes ont des
valeurs distinctes.

• En binaire, mn se note m ⊕ n, par exemple


XOR :
m = 1001111010001111, n = 1011111000010111 m ⊕ n =
0010000010011000

5/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


3. Catégories de chirement par blocs.
• Chiffrement par substitution : Les substitutions
consistent à remplacer des symboles ou des groupes de
symboles par d'autres symboles ou groupes de symboles
dans le but de créer de la confusion.
• Chiffrement par transposition : Les transpositions
consistent à mélanger les symboles ou les groupes de
symboles d'un message clair suivant des règles
prédéfinies pour créer de la diffusion. Ces règles
sont déterminées par la clé de chiffrement. Une suite
de transpositions forme une permutation.
• Chiffrement par produit : C'est la combinaison des
deux. Le chiffrement par substitution ou par
transposition ne fournit pas un haut niveau de
sécurité, mais en combinant ces deux transformations,
on peut obtenir un chiffrement plus robuste. La
plupart des algorithmes à clés symétriques utilisent
le chiffrement par produit. 6/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


4. Cryptographie symétrique.
• La cryptographie symétrique utilise la même clé pour
chiffrer et déchiffrer,("clé secrète").

• Chiffrement inversible : Dk (Ek (m) = m

• Toute sa sécurité est liée au fait que cette clé


n'est connue que par l'expéditeur et le destinataire.

• La cryptographie symétrique est :

• très utilisée
• se caractérise par une grande rapidité
(opérations simples, chiffrement à la volée)
• ses implémentations software ou hardware
accélère nettement les débits.
7/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


5. Construction de chirement blocs.

8/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


5. Construction de chirement blocs.
Méthode 1 : substitutions-permutations.

Décomposition d'un bloc :


• Intervention de la sous clé.
• Couche de substitution.
• Couche de permutation.
9/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


5. Construction de chirement blocs.
Méthode 2 : schéma de Feistel.
• Feistel (IBM, 1973) : permet de construire
facilement des algorithmes de chiffrement par Bloc.

• La fonction de chiffrement et la fonction de déchiffrement sont


identiques. Ainsi la fonction n'a pas à être inversible, c'est
la structure qui l'est.
10/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


5. Construction de chirement blocs.
• Feistel est un chiffrement itératif de t tours .
• A partir d'un bloc de clair de 2n bits (L0 , R0 ) , on
aura en sortie un bloc chiffré (Lt ,Rt ) de taille 2n.
• A chaque tour, le schéma transforme (Li −1 , Ri −1 ) en
(Li , Ri ) tels que:
• Li = Ri −1
• Ri = Li −1 ⊕ f (Ri −1 , ki )
k , k2 ,... Kt :
1 sous clés dérivées de la
clé secréte K.
• Pour tout couples (Li , Ri ),on peut
trouver le couple (Li −1 , Ri −1 ), par
les opérations :
Ri −1 = Li , et Li −1 = Ri ⊕ f (Li , ki ).

11/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


5. Construction de chirement blocs.
Exemple
On se base sur une table de correspondance pour
déterminer le résultat du chiffrement d'un bloc après
passage dans une structure de Feistel.

12/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

• Le Data Encryption Standard (DES) est un algorithme


qui a été sélectionné comme un standard pour la
Federal Information Processing Standard (FIPS) USA
1976.
• La clé du DES est une chaîne de 64 bits, mais seuls
56 bits servent réellement à définir la clé.
• Les bits 8,16,24,32,40,48,56,64 sont des bits de
parité (= bits de détection d'erreur).
• Le 8me bit est fait en sorte que sur les 8 premiers
bits, il y ait un nombre impair de 1.
• Il y a donc pour le DES 256 clés possibles, soit
environ 72 millions de milliards possibilités.

13/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Algorithme général
DES est un système de chiffrement itéré à 16 tours (16
itérations par bloc). Son algorithme général se
décrit dans les cinq étapes suivantes :

(1) La clé K donne naissance à 16 sous-clés, les clefs


des tours, de 48 bits K1 , K2 ,...,K16 .

(2) Etant donné un bloc de texte clair de 64 bits, X ,


on construit, grâce à la fonction d'étage g0 , un
nouveau texte, X0 , par permutation de l'ordre des bits
grâce à la permutation initiale IP.
g0 (X ) = X0 = IP (X )
(3) On sépare les 32 bits de gauche, L0 , et les 32
bits de droites, R0 , de X0 , donc X0 = L0 R0
14/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

(4) On effectue 16 itérations (tours ou étages). On


calcule la valeur de la fonction d'étage
g (Xi −1 , Ki ) = Li Ri , 1 ≤ i ≤ 16 suivant la règle
Li = Ri −1
Ri = Li −1 ⊕ f (Ri −1 , Ki )
où f est une fonction non linéaire qui participe à la
diffusion et qui est décrite par les S-boîtes.

(5) Pour finir on applique la permutation inverse de


la permutation initiale, IP−1 , à R16 L16 .

15/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

16/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

17/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Cryptage Décryptage

18/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Le chiffre DES se résume en 6 étapes :

Phase 1 : Génération des clés.


Phase 2 : Fractionnement du texte en blocs de 64 bits
(8 octets).
Phase 3 : Permutation initiale.
Phase 4 : Découpage des blocs en deux parties:
gauche et droite.
Phase 5 : Itérations : permutation et de
substitution répétées 16 fois (rondes).
Phase 6 : Recollement des parties gauche et droite
puis permutation finale (= initiale inverse).

19/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

Codage d'un bloc de texte clair de 64 bits


(1) Permutation initiale : Chaque bit d'un bloc est
soumis à la permutation initiale, pouvant être
représentée par la matrice de permutation initiale
(notée PI) :

Cette matrice de permutation indique, en parcourant la matrice de


gauche à droite puis de haut en bas, que le 58ème bit du bloc de
texte de 64 bits se retrouve en première position, le 50ème en
seconde position et ainsi de suite.

20/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(2) Scindement en blocs de 32 bits : Le bloc de 64
bits est scindé en deux blocs de 32 bits, notés
respectivement G et D (pour gauche et droite). On
note G0 et D0 l'état initial de ces deux blocs :

(3) Tours : Les blocs Gi et Di sont soumis à un


ensemble de transformation itératives appelées tours,
explicitées dans ce schéma, et dont les détails sont
donnés plus bas :

21/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(4) Fonction d'expansion : Les 32 bits du bloc D0
sont étendus à 48 bits grâce à une matrice appelée
table d'expansion (notée E), dans laquelle les 48 bits
sont mélangés et 16 d'entre eux sont dupliqués :

Le dernier bit de D0 (c.àd. le 7ème bit du bloc d'origine)


devient le premier, le premier devient le second, ... De plus,
les bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28 et 29 de D0
(respectivement 57, 33, 25, 1, 59, 35, 27, 3, 61, 37, 29, 5, 63,
39, 31 et 7 du bloc d'origine) sont dupliqués et disséminés dans
la matrice.
22/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(5) XOR avec la clé : La matrice résultante de 48
0
bits est appelée D0 ou bien E(D0 ). L'algorithme DES
procède ensuite à un OU exclusif entre la première clé
K1 et E(D0 ). Le résultat de ce OU exclusif est une
matrice de 48 bits que nous appelerons D0 par
commodité (il ne s'agit pas du D0 de départ!).
(6) Fonction de substitution (S-box) :
(a) D0 est ensuite scindé en 8 blocs de 6 bits, noté D0i , i=1à8.
(b) Chacun de ces blocs passe par une fonction de sélection
(appelée parfois boîte de substitution ou encore S-box ), notées
Si (D0i passe par Si ).
(c) Les premiers et derniers bits de chaque D0i détermine (en
binaire) la ligne de la fonction de sélection, les autres bits
(respectivement 2, 3, 4 et 5) déterminent la colonne.
(d) La sélection de la ligne se faisant sur deux bits, il y a 4
possibilités (0,1,2,3). La sélection de la colonne se faisant
sur 4 bits, il y a 16 possibilités (0 à 15).
(e) Grâce à cette information, la fonction de sélection
'sélectionne' une valeur codée sur 4 bits. 23/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(6) Fonction de substitution (S-box) :
• La première fonction de substitution est représentée
par la matrice de 4 par 16 :

• Soit D0 égal à 101110 :


1

(i) Le premier et le dernier bit donnent 10, i.e. 2 en


binaire.
(ii) Les bits 2,3,4 et 5 donnent 0111, soit 7 en binaire.
(iii) Le résultat de la fonction de sélection est la
valeur située à la ligne 2, dans la colonne 7. Il s'agit
de la valeur 11, soit en binaire 1011 : S1 (101110) = 1011
• Chacun des 8 blocs de 6 bits est passé dans la
fonction de sélection correspondante, ce qui donne en
sortie 8 valeurs de 4 bits chacune. 24/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(7) Permutation :
• Le bloc de 32 bits obtenu est enfin soumis à une
permutation P :

(8) XOR ou itération :


• L'ensemble de ces résultats en sortie de P est
soumis à un OU Exclusif avec le G0 de départ (comme
indiqué sur le premier schéma) pour donner D1 , tandis
que le D0 initial donne G1 .
• L'ensemble des étapes précédentes (rondes) est
réitéré 16 fois. 25/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(9) Permutation finale (=Permutation initiale inverse)
A la fin des itérations, les deux blocs G16 et D16 sont
'recollés', puis soumis à la permutation initiale
inverse :

(10) Les S-box.

26/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(10) Les S-box.

27/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(10) Les S-box.

28/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Algorithme de génération des clés.
Il faut donc générer 16 sous-clés Ki (une par étage)
de 48 bits à partir de la clé maître de 56 bits.
(1) On choisit une clé K de 56 bits.
(2) On étend K à une clé de 64 bits K64 en ajoutant
les bits de parité aux places 8, 16, 24, 32, 40, 48,
56 et 64 (parité impaire).
(3) Cette clé est soumise alors à la permutation PC-1
afin de produire un bloc de 56 bits (on n'utilise pas
ici les bits de parité).

29/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
(4) Le bloc de 56 bits obtenu est découpé en deux
parties gauche et droite Gi et Di composées chacune de
28 bits :

(5) Ces deux parties vont subir des rotations à gauche


successives au cours des 16 étapes suivantes.
(6) Ces rotations à gauche sont de un cran aux étapes
1, 2, 9 et 16 et de deux crans sinon.
(7) Les 2 blocs de 28 bits sont ensuite regroupés en
un bloc de 56 bits qui passera par une permutation,
notée CP-2, fournissant en sortie un bloc de 48 bits,
représentant la sous-clé de 48 bits Ki .
30/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

Exemple. Soit à crypter le texte CRYPTAGE.

31/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Permutation initiale PI.

Scindement en deux blocs :


L0 R0

32/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Calcul de G1 et D1 .
L1 = R0 :

L1 = R0 ⊕ f (K1 , L0 ) ?
Choix d'une clé à 64 bits

En hexadécimal : 133457799BBCDFF1 33/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Génération des sous clés
Première permutation de la clé initiale :

34/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
PC-1(K) = (G0 ,D0 ) :
G0 D0

En général la sous clé Ki =(Gi ,Di ) dérivée à la ième


itération sera obtenue à partir Gi −1 ,Di −1 par décalage
à gauche d'un bit pour i=1,2 ,9,16 et de 2 bits dans
les autres cas .
Génération de G1 a partir de G0 :

35/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Génération de D1 a partir de D0 :

La clé Ki =(Gi ,Di ) :

36/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

Permutation PC-2 appliquée à la clé K1 :

37/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Expansion de bloc R0 de 32 à 48 bits par la
permutation E :

38/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Calcul de E(R0 ) XOR K1 :

39/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Passage de ce bloc à 48 bits par les S-box :
ligne 1 passe par S1 :

ligne 2 passe par S2 :

40/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Résultat après les 8 S-box :
table de 32 bits :

Application de la permutation P à ce bloc :

41/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Calcul de R1 =0 XOR P(S(E(R0 ) XOR K1 )) :

Résultat final de l'itération 1 :

42/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Uses of DES
• UNIX passwords : In the UNIX password scheme there are 212
different modified DES algorithms all with slightly different
S-boxes. The particular S-box used is determined by a random
12-bit integer called a 'salt'. The key consists of the first 8
characters (only) of the password entered.
• Setting up a password : A random 12-bit is found and used as
the 'salt'. A system dependent constant is encrypted using your
password as the key and the appropriate (to the salt) DES
algorithm, giving a result which is again encrypted. In total it
is encrypted 25 times recursively and the final result is the
encrypted password. The login name, salt and encrypted password
are then recorded in the password file.
• Checking a password : Your login name is given, the salt is
looked up in the password file, then after your password is
entered it is used as the key, and encrypted as above, and the
final result is compared with the encrypted password in the
password file. If they match then the password is accepted,
otherwise it is rejected.
43/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Attaques sur le DES
• La recherche exhaustive par force brute : on teste
toutes les clés possibles, l'une après l'autre, afin
de déchiffrer un bloc de données. On a besoin, en
moyenne, de 255 essais.
• Une machine dédiée au calcul des clés : Deep Crack
(Des Cracker, élaboré par l'Electronic Frontier
Foundation) a coûté moins de 250.000 dollars. Elle
disposait de 1850 processeurs en parallèle pour un
temps de recherche de 56 heures (1998).
• Le calcul distribué : un regroupement d'ordinateurs
par Internet qui partagent leur puissance de calcul.
En 1998, Distributed.net a pu décrypter un message en
39 jours1. Le 19 janvier 1999, EFF et Distributed.net
ont cassé en travaillant conjointement une clé en 22
heures et 15 minutes.
44/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
• Depuis 2006, un autre ordinateur dédié, nommé
COPACABANA, permet de casser une clé DES en 9 jours.
En 2008, des améliorations logicielles ont même permis
de diminuer le temps de recherche à 6,4 jours. Son
avantage est son coût : 10.000dollards. On peut donc
facilement en acquérir plusieurs et donc diminuer le
temps de recherche en conséquence. Par exemple, pour
4 machines acquises (=40,000dollards), il faudra
compter 1,6 jour de recherche.
• Cryptanalyse différentielle : il s'agit de la
possibilité de produire au moyen de textes clairs
choisis les textes chiffrés correspondants avec une
clé inconnue. On analyse les différences résultantes
sur les textes chiffrés et on donne des probabilités
aux clés testées. En affinant, on trouve la clé la
plus probable. La meilleure attaque différentielle
connue demande 247 textes clairs choisis 45/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.

• Cryptanalyse linéaire : on dispose d'un


dictionnaire de (M,C). On ne possède pas la  boite
noire  comme dans le cas différentiel. L'objectif
est de déterminer une équation linéaire modélisant au
mieux les transformations du cryptogramme créé par
lalgorithme de chiffrement.
• Il existe d'autres attaques spécifiques au DES
(Davie's attack, ou des attaques sur des versions
simplifiées du DES) mais qui n'entrent pas dans le
cadre de ce cours.

46/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


6. Le chire DES.
Conclusion
• Le déchiffrement se fait avec la même clé, mais en
renversant l'ordre des boites.
• Suite aux attaques réussies sur DES, d'autres
variantes plus sûr ont été mises en place : 2DES,
3DES, ...
• DES commençait à être dépassé, laissant place à son
successeur l'AES(Advanced Encryption Standard).

Recherche:
(1) DES dans la gestion des mots de passe .
(2) Attaques sur DES.
47/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Introduction.
• AES(Advanced Encryption Standard) : Successeur de
DES.
• Appel propositions pour AES, de 1997 à 2000.
• La proposition retenue fut Rijndael, inventée par
deux belges, Joan Daemen et Vincent Rijmen.
• Il y a quelques petites différences entre Rijndael
et AES (La taille de bloc est la taille des entrées,
sorties et des calculs intermédiaires. La taille de
clé est comme son nom l'indique la taille de la clé) :
• Rijndael considère une taille de bloc et une taille de
clé pouvant être fixées à un multiple quelconque de 32 bits, avec
un minimum de 128 et un maximum de 256, la taille de bloc pouvant
différer de celle de la clé.
• AES fixe la taille du bloc à 128 bits, la clé pouvant
faire 128, 192 ou 256 bits seulement.
48/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

Introduction.
• Le nombre de cycles ("rondes") varie en fonction de
la longueur des blocs et des clés (de 10 à 14).
• La structure générale ne comprend qu'une série de
transformations/permutations/sélections.
• Il est beaucoup plus performant que le DES.
• Il est facilement adaptable à des processeurs de 8
ou de 64 bits.
• Le parallélisme peut être implémenté.
• AES résiste à toutes les attaques connues (attention
ce n'est qu'un fait d'expérience pas une preuve).

49/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Quelques apects techniques d'AES.
• AES est un système de chiffrement itéré constitué
d'un algorithme de chiffrement sur des blocs de 128
bits:
• la fonction d'étage, répétée Ne fois, avec Ne allant de
10 à 14, Ne le nombre d'étages.
• une clef secrète de 128, 192 ou 256 bits,
• pour chaque étage une clef d'étage de longueur fixe, 128
bits.

• Un algorithme de diversification de clef ,


ExpandKey[i], permet de créer une clef pour chacun
des étages, i, à partir de la clef secrète K.
• La fonction d'étage, g, est l'ensemble des
opérations que l'on fait subir au texte qui arrive à
l'étage i. Elle est la même pour tous les étages sauf
le dernier.
50/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Quelques apects techniques d'AES.
• g consiste en l'application successive de 4
opérations SubBytes, ShiftRows, MixColumns,
AddRoundKey.
• Pour le dernier étage on applique seulement les
opérations SubBytes, ShiftRows, AddRoundKey.
• À partir de la clef secrète, K, on génére des sous
clefs d'étage par l'algorithme ExpandKey[i]. On
obtient les clefs d'étage: K 1 , ..., K Ne .
• On note x un bloc de 128 bits du texte initial
(texte en clair), wi le texte utilisé en entrée à
l'étage i (c'est donc un bloc de 128 bits) et y sera
le bloc correspondant crypté final.
• Un état (State) est l'écriture du flux
d'entrée-sortie sur lequel opère l'algorithme. 51/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Quelques apects techniques d'AES.
• On prend le bloc de 128 bits sur lequel opère AES
que l'on considère comme une suite de 16 octets que
l'on range en une matrice 4×4.
• Un octet étant confondu avec un élément de IF256 de
la manière suivante: IF256 est identifié aux polynômes
de IF2 [x] de degré ≤ 7 par l'isomorphisme
IF256 ∼
= IF2 [x]/(x8 + x4 + x3 + x + 1).
• Un état d'AES est donc une matrice de M4×4 (IF256 )
représentant un bloc de 128 bits, soit 16 octets :
a0 a4 a8 a12
 
 a1 a5 a9 a13 
a2 a6 a10 a14 
 

a3 a7 a11 a15
• Un état se note aussi : a0 a1 a2 a3 ...a12 a13 a14 a15 ,
où ai
sont des octets notés par deux chiffres hexadécimaux.
52/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Arithmétique dans GF(28 ).
• En plus des techniques de substitutions,
permutations, XOR, l'AES est complémentée par des
opérations algébriques simples et très performantes.
• Toutes les opérations s'effectuent dans le corps
GF(28 ) : le corps fini de polynômes de degré ≤ 7
avec des coefficients dans GF(2).
• En particulier, un octet (byte) pour AES est un
élément dans GF(28 ) et les opérations sur les octets
(additions, multiplications,...) sont définies comme
sur GF(28 ).
• Notation : GF(28 ) = IF256
• IF256 est identifié aux polynômes de IF2 [x] de degré
≤ 7 par l'isomorphisme :
= IF2 [x]/(x8 + x4 + x3 + x + 1).
IF256 ∼ 53/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Arithmétique dans GF(28 ).
• Un élément de IF256 peut être représenté par un
polynôme de degré au plus 7, à coefficients dans IF2 .
• Un tel polynôme s'écrit donc b7 x7 + b6 x6 + b5 x5 +
b4 x4 + b3 x3 + b2 x2 + b1 x + b0 , où bi ∈ {0, 1}, et on peut
le stocker en mémoire par le nombre binaire (b7 b6 b5 b4
b3 b2 b1 b0 )2 , que l'on notera aussi sous forme hexa.
• (57)16 = (01010111)2 = x6 + x4 + x2 + x + 1 ∈ IF2 .
Addition dans GF(28 ).
• (01010111)2 + (10000011)2 = (11010100)2 .
• (x6 + x4 + x2 + x + 1) + (x7 + x + 1) = x7 + x6
+ x4 + x2 modulo 2.
• en hexadécimal 57 + 83 = D4.
• L'addition peut s'effectuer efficacement au niveau
des octets via le XOR.
54/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Arithmétique dans GF(28 ).
Multiplication dans GF(28 ).
• Le produit de deux éléments de GF(28 ) est le produit
des polynômes correspondants, modulo le polynôme
irréductible m(x) = x8 + x4 + x3 + x + 1, de GF(2)
(11B en hexadécimal).
• (57 * 83)16 = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3
+ 1 = (x5 + x3 )m(x) + x7 + x6 + 1.
• Il n'y a pas de moyen simple de calculer ce produit
au niveau des octets. La meilleure méthode procède
par additions et décalages.
Inverse GF(28 ).
• Tout élément non nul p(x) de GF(28 ) admet un
inverse.
55/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Arithmétique dans GF(28 ).
• Cet inverse inverse se calcule via l'algorithme
d'Euclide étendu, qui détermine deux polynômes u(x) et
v(x) tels que : u(x)p(x) + v(x)m(x) = 1, avec
deg(u(x)) < deg(m(x)) : u(x) est l'inverse de p(x).
• Exemple, l'inverse de x6 +x4 + x2 + x + 1 est x7 + x5
+ x4 + x3 + x2 + x + 1 (inverse de 57 = BF).

Multiplication par x dans GF(28 ).


• b(x) = b7 x7 + ... + b0 , alors xb(x) = b7 x8 + ... +
b0 x.
• Si b7 est nul, xb(x) est déjà réduit modulo m(x),
• Si b7 = 1, il suffit de retrancher(ou d'ajouter
puisqu'on est sur GF(2)) m(x).
56/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

Arithmétique dans GF(28 ).

• Au niveau des octets, cette opération s'implante


facilement par un décalage vers la gauche suivi d'une
soustraction éventuelle de m(x)-x8 soit 1B.

AES considère en fait des polynômes de degré < 4 sur


GF(28 ), chaque colonne de 4 octets d'un état (ou d'une
clé) correspondant à un tel polynôme (le coefficient
de degré i en ligne i).

57/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Description de l'AES
(1) On initialise w0 à x et et on effectue l'opération
AddRoundKey[0] : w0 ⊕ K0 .
(2) Pour chacun des 1 < i ≤ Ne - 1 étages suivants on
effectue sur wi les opérations suivantes :
(a) l'opération de substitution SubBytes.
(b) sur le résultat de SubBytes une permutation notée
ShiftRows (permutation circulaire sur les éléments des
lignes de la matrice des octets si ,j ).
(c) sur le résultat de ShiftRows une opération notée
MixColumns. (application linéaire sur l'espace des
matrices sur IF256 ).
(d) Sur le résultat de MixColumns l'opération
AddRoundKey[i] avec la sous-clé de l'étage i.
(3) Pour le dernier étage Ne on supprime l'opération
MiXColumns.
58/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

59/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
L'opération SubBytes
• L'opération SubBytes est la seule opération non
linéaire.
• On suppose que le message w i est un nombre de 128
bits = 16 octets.
• On écrit : wi = (si ,j )0≤i ,j ≤3 en binaire, si ,j sont des
octets.
• Soit sous la forme d'une matrice :

s0,0 s0,1 s0,2 s0,3


 

Si = 
 s1,0 s1,1 s1,2 s1,3 
s2,0 s2,1 s2,2 s2,3

 
s3,0 s3,1 s3,2 s3,3
• L'opération SubBytes consiste en une permutations
πS sur {0, 1}8 , agissant indépendamment sur chacun des
octets si ,j de l'étage i.
60/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

La permutation πS pour le mot de 8 bits (a7 a6 ...a1 a0 )


consiste en :
(a) appliquer à (a7 a6 ...a1P a0 ) l'application
g : (a7 a6 ...a1 a0 ) −→ a = 7i =0 ai x i ∈ IF2 . 8

(b) appliquer à a l'application : a −→ a−1 si a 6= 0


et 0 si a = 0.
(c) ajouter à a l'élément c = (c7 c6 ...c1 c0 ) = g (01100011)
à a−1 pour obtenir b = (b7 b6 ...b1 b0 ).
(d) appliquer à b l'application :
g −1 : 7i =0 ai x i −→ (a7 a6 ...a1 a0 )
P

c est une constante d'AES.

61/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
L'opération ShiftRows
C'est la permutation cyclique dans les lignes de la
matrice Si décrite par :
a b c d a b c d
   
 e f g h  
 −→  f g h e 
i j k l k l i j
 
   
m n o p p m n o
L'opération MixColumns
C'est une transformation linéaire dans les colonnes de
la matrice Etat, de la manière suivante (les calculs
sont faits dans IF256 ) :
02 03 01 01 a0 a4 a8 a12
   
 01 02 03 01   a1 a5 a9 a13 
 01 01 02 03  ×  a2 a6 a10 a14 
   

03 01 01 02 a3 a7 a11 a15
62/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

L'opération MixColumns consiste alors à effectuer pour


chaque colonne une multiplication du polynôme
correspondant à la colonne par un polynôme fixe
c (x ) = 03x 3 + x 2 + x + 02 suivie d'une réduction modulo le
polynôme x 4 + 1 de façon à obtenir un polyôme de degré
inférieur ou égal à 3 de IF256 [X ] qui est interprété
comme une colonne d'une matrice de M4 (IF256 ).

63/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

L'opération AddRoundKey
• AddRoundKey[i] est l'addition de la clef obtenue à
l'étage i par l'algorithme de diversification des
clés, ExpandKey[i], au texte obtenu à l'issue de
l'étape MixColumns.
• On écrit la clef ExpandKey[i], de 128 bits, sous la
forme d'une matrice de 4×4 octets et on l'ajoute au
résultat de l'étape précédente par un XOR.
a0,0 a0,1 a0,2 a0,3 k0,0 k0,1 k0,2 k0,3 b0,0 b0,1 b0,2 b0,3
     
 a1,0 a1,1 a1,2 a1,3  
⊕ k1,0 k1,1 k1,2 k1,3  
= b1,0 b1,1 b1,2 b1,3 
a2,0 a2,1 a2,2 a2,3 k2,0 k2,1 k2,2 k2,3 b2,0 b2,1 b2,2 b2,3
 
     
a3,0 a3,1 a3,2 a3,3 k3,0 k3,1 k3,2 k3,3 b3,0 b3,1 b3,2 b3,3
Etat entré à l'étape i ExpandKey[i] Etat sorite étape i

64/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
ExpandKey : (Algorithme de diversification de clefs)
• L'opération ExpandKey dépend de la taille de la clé
choisie, Nk × 32, qui peut être égale à 128, 160, 192,
224 ou 256 bits.
• Dans la suite on prend K=192 bits et Ne =12. Et on
a donc Nk = 6 (AES-192).
Extension de la clef secrète K.
Cette opération transforme une clé de Nk mots de 32
bits (Nk × 32 bits) en 4(Ne +1) mots wi de 4 octets
(soit Ne clés supplémentaires à la première du départ,
chacune pour un tour).
(1) On écrit la clef K de départ sous forme d'une
matrice de Nk colonnes de 4 octets chacune (donc 4
lignes, l'élément d'une ligne étant un mot de 8 bits),
dénotées w0 , ...,w5
w0 w1 w2 w3 w4 w5
65/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
(2) Ensuite cette matrice est étendue en une matrice
de taille 4(Ne + 1) = 52, selon l'algo suivant :

w0 w1 w2 w3 w4 w5 w6 w7 ..... w48 w49 w50 w51

| clé tour 0 | clé du tour 1 | ..... |clé du tour Ne


(a) Supposons que nous avons les six mots de la clé du
i ème tour :
wi wi +1 wi +2 wi +3 wi +4 wi +5 , i est un multiple de Nk= 6.
(b) Calcul des mots wi +6 wi +7 wi +8 wi +9 wi +10 wi +11 :
wi +7 = wi +6 ⊕ wi +1
wi +8 = wi +7 ⊕ wi +2 wi +6 = wi ⊕ g (wi +5 )
wi +9 = wi +8 ⊕ wi +3 (new first = old first ⊕ g(old
last))
wi +10 = wi +9 ⊕ wi +4
I. Akharraz
wi +11 = wi +10 ⊕ wi +5
Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique
66/70
7. Le chire AES.

La fonction g() :

g (wi +5 ) = SubByte (RotByte (wi +5 )) ⊕ R [(i + 6)/6];


• SubByte déjà décrite.
• RotByte remplace le mot (a, b, c, d) par (b, c, d,
a), et R[i] = (x i , 0, 0, 0), où x i désigne l'octet
correspondant au polynôme x i de GF(28 ).

Remarque :
On peut exprimer ce calcul autrement :
wj = wj −NK ⊕ wj −1 , ∀j non multiple de NK
wj = SubByte (RotByte (wj −1 )) ⊕ R [j /NK ]; si j est multiple
de NK .

67/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.

Détail d'une étape (round) AES


68/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Déchiffrement AES
Pour déchiffrer, il suffit d'inverser le procédé :
• L'expansion de clé est identique mais on les
considère dans l'ordre inverse.
• on commence par inverser l'étape finale (sans
MixColumn), et on XOR avec la clé initiale à la fin.
• L'inverse de AddRoundKey est lui même.
• Pour MixColumn on multiplie par le polynôme inverse
dans GF(28 )[x] de 03x 3 + x 2 + x + 02 modulo x 4 + 1, soit
11x 3 + 13x 2 + 09x + 14.
• Pour ShiftRows, on décale cycliquement les lignes
dans l'autre direction.
• Enfin pour SubByte il suffit de calculer la
transformation affine inverse.
69/70

I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique


7. Le chire AES.
Conclusion
• La plus grande force de AES réside dans sa simplicité et dans ses
performances, y compris sur des plate-formes à capacité de calcul
réduite (p.ex. des cartes à puces avec des processeurs à 8 bits).
• Depuis sa publication officielle, des nombreux travaux de cryptanalyse
ont été publiés avec des résultats très intéressants. En particulier,
N. Courtois et P.Pieprzyk1 ont présenté une technique appelée XSL
permettant de représenter AES comme un système de 8000 équations
quadratiques avec 1600 inconnues binaires. Leffort nécessaire pour
casser ce système est estimé (il sagit encore dune conjecture...) à
2100.
• Ces attaques se basent sur le caractère fortement algébrique (et
largement contesté...) de AES. De plus, il suffit de quelques known
plaintexts pour les mettre en place, ce qui les distingue des attaques
linéaires et différentielles (page 70).
• Les prochaines années risquent dapporter des développements très
intéressants dans la cryptanalyse de AES et dun bon nombre de block
ciphers itératifs.
• Même si AES reste un algorithme robuste à ce jour, il convient de
surveiller de près les travaux de recherche algébrique2 qui pourraient
révolutionner toutes les théories de conception actuelles relatives aux 70/70
block ciphers.
I. Akharraz Université Sidi Mohamed Ben Abdellah Chapitre 3. Cryptographie symétrique

Vous aimerez peut-être aussi