Vous êtes sur la page 1sur 64

INTRODUCTION

A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES CHIFFREMENT PAR BLOC


CH. PAR BLOC

MODES

Orphée HOUNKANRIN, Ir.

UPIB

Avril 2011
Sommaire

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE
1 Generalites
GENERALITES

CH. PAR BLOC

MODES

2 Chiffrement par bloc

3 Modes
Generalites
Principe

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE m = m1 m2 · · · mN
GENERALITES Texte en clair = |m1 · · · m2 |mk+1 · · · m2k | · · · |m(n−1)k+1 · · · mk |
Principe = |M1 |M2 | · · · |Mn |
Définition

CH. PAR BLOC Clé K ↓


MODES
Texte chiffré C = |C1 |C2 | · · · |Cn |
= c1 c2 · · · cN

Remarque

Une procédure itérative (plusieurs rondes ⇒ Rounds)


par ronde : une sous-clé dérivée de la clé de chiffrement
Generalites
Definitions

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
Diffusion

SOMMAIRE Il s’agit de la diffusion-répartition de l’influence des caractères du


GENERALITES texte en clair sur un grand nombre des caractères du texte chiffré.
Principe
Définition But Masquer la statistique du texte en clair
CH. PAR BLOC
Il est réalisé par des fonctions linéaires
MODES

Confusion
Il s’agit des transformations cryptographiques qui rendent malaisées la
détermination de la relation entre la statistique du texte chiffré et
celle du texte en clair.
But Rendre la cryptanalyse aussi difficile que possible
Il est réalisé par des fonctions non linéaires
Chiffrement par bloc
Schema ou chiffre de Feistel

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


Utilisé pour la première fois dans Lucifer (IBM)
CHIFFRE DE
FEISTEL et DES (IBM-NSA)
DES
AES par ronde : le bloc Xi−1 (2n nits) est scindé en
MATHEMATIQUES
DE RIJNDAEL deux blocs de n bits ⇒ Li−1 et Ri−1
AES-128
IDEA la fonction f est non linéaire
MODES
Li = Ri−1 et Ri = Li−1 ⊕ f (K , Ri−1 )
Chiffrement par bloc
Data Encryption Standard - DES

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
DES (1977)
SOMMAIRE
Blocs de 64 bits, une clé de 56
GENERALITES
bits, 16 rondes, non-linéarités
CH. PAR BLOC
CHIFFRE DE par S-box
FEISTEL
DES Opérations
AES
MATHEMATIQUES
DE RIJNDAEL
Transformation
AES-128 K −→ K1 , K2 , · · · , K16
IDEA
La fonction non linéaire f
MODES

f (Ki , Ri−1 ) = m

des permutations PC1 et


PC2
Chiffrement par bloc
Data Encryption Standard - DES

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. Transformation de la clé K (56 bits)
SOMMAIRE
Etape 1
GENERALITES
Compléter la clé à 64 bits en ajoutant des bits de parité
CH. PAR BLOC
CHIFFRE DE
FEISTEL [k1 |k2 | · · · |k7 |p1 |k9 | · · · |k15 |p2 | · · · |k50 | · · · |k56 |p8 ]
DES
AES
MATHEMATIQUES
avec
DE RIJNDAEL
8
M
AES-128 k8j+1 = 0 pour j = 1, · · · , 7
IDEA
i=1
MODES

But
Détecter une erreur dans un groupe de 8 bits (les bits de parité sont
ignorés pendant la constitution des sous-clés)
Chiffrement par bloc
Data Encryption Standard - DES (2)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
Transformation de la clé K (56 bits)
O., Ir.
Etape 2
SOMMAIRE

GENERALITES
Engendrer 16 sous-clés de 48 bits : K1 , K2 , · · · K16
CH. PAR BLOC Sous-étape 1
CHIFFRE DE
FEISTEL
DES
K (56) −→ PC 1(k1 , · · · , k7 , k9 , · · · , k63 ) −→ [C0 |D0 ]
AES
MATHEMATIQUES Sous-étape 2
DE RIJNDAEL
AES-128
IDEA
[C0 |D0 ] −→LSi [C1 |D1 ] −→ PC 2 −→ K 1(48 bits)
MODES
avec LSi une fonction cyclique qui effectue un décalage vers la
gauche de ni positions :

1 si i = 1, 2, 9, 16
ni =
2 sinon.
Chiffrement par bloc
Data Encryption Standard - DES (3)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
Les permutations PC1 (8 × 7) et PC2 (8 × 6)
SOMMAIRE

GENERALITES
PC1 PC2
57 49 41 33 25 17 9 14 17 11 24 1 5
CH. PAR BLOC
1 58 50 42 34 26 18 3 28 15 6 21 10
CHIFFRE DE
FEISTEL
10 2 59 51 43 35 27 23 19 12 4 26 8
DES 19 11 3 60 52 44 36 16 7 27 20 13 2
AES 63 55 47 39 31 23 15 41 52 31 37 47 55
MATHEMATIQUES 7 62 54 46 38 30 22 30 40 51 45 33 48
DE RIJNDAEL
14 6 61 53 45 37 29 44 49 39 56 34 53
AES-128
21 13 5 28 20 12 4 46 42 50 36 29 32
IDEA

MODES

Ainsi, PC 1(k1 k2 k3 k4 k5 k6 k7 k9 · · · k62 k63 ) = k57 k49 k41 · · · k12 k4

Similaire pour PC2


Chiffrement par bloc
Data Encryption Standard - DES (5)

INTRODUCTION Schéma pour la génération des sous-clés


A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
Data Encryption Standard - DES (6)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN La fonction f de DES


O., Ir.

f (Ri−1 , Ki ) = P(S(E (Ri−1 ) ⊕ Ki ))


SOMMAIRE

GENERALITES E
Ri−1 −→Exp −→ Ri−1 ⊕ Ki = Bi −→Subst Ci −→Per
CH. PAR BLOC
CHIFFRE DE Les étapes
FEISTEL
DES
AES
1 Expansion par répétition de certains bits : 32 bits −→ 42 bits
MATHEMATIQUES
DE RIJNDAEL
E (X ) = |x32 x1 x2 x3 x4 x5 |x4 x5 x6 x7 x8 x9 |x8 · · · x29 |x28 x29 x30 x31 x32 x1 |
AES-128
IDEA

MODES
2 Calculer dans F248 = B = E (Ri−1 ) ⊕ Ki = B1 B2 · · · B8
3 Appliquer les S-boxes : S1 , · · · , S8

[b1 |b2 | · · · |b6 ]i −→Si [c1 |c2 |c3 |c4 ]i

4 La permutation P : C = C1 C2 C3 C4 C5 C6 C7 C8 −→P f (Ri−1 , Ki )


Chiffrement par bloc
Data Encryption Standard - DES (8)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. Etape 1

SOMMAIRE
Expansion Ri−1 −→ E (Ri−1 )
GENERALITES
E
CH. PAR BLOC
32 1 2 3 4 5
CHIFFRE DE
FEISTEL 6 7 8 9 10 11
DES 32bits −→ 12 13 14 15 16 17 −→ 48bits
AES 18 19 20 21 22 23
MATHEMATIQUES 24 25 26 27 28 29
DE RIJNDAEL
28 29 30 31 32 1
AES-128
IDEA
Etape 2
MODES
E (Ri−1 ) ⊕ Ki

B = B1 B2 B3 B4 B5 B6 B7 B8
avec Bi = [b1 |b2 |b3 |b4 |b5 |b6 ]i
Chiffrement par bloc
Data Encryption Standard - DES (9)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. Etape 3

SOMMAIRE Bi = [b1 |b2 |b3 |b4 |b5 |b6 ]i −→Si Ci = [c1 |c2 |c2 |c4 ]i
GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES B4 = [1|0110|1] −→S4 C4 = [1101]

En effet, en binaire [1|...|1] y 11 = 3 ⇒ Ligne 4 (= 3 + 1)

[.|0110|.] y 0110 = 6 ⇒ Colonne 7 (= 6 + 1)


Chiffrement par bloc
Data Encryption Standard - DES (10)

INTRODUCTION Etape 3
A LA CRYPTO-
GRAPHIE S4
HOUNKANRIN 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 5
O., Ir. 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
SOMMAIRE

GENERALITES

CH. PAR BLOC


c4 = S4 (4, 6) = 13 = [1|1|0|1] (←− écriture binaire)
CHIFFRE DE
FEISTEL
Les autres tableaux
DES
AES S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
MATHEMATIQUES
DE RIJNDAEL 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
AES-128
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
IDEA

MODES
S2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
Chiffrement par bloc
Data Encryption Standard - DES (11)

INTRODUCTION
A LA CRYPTO-
GRAPHIE S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
HOUNKANRIN 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
O., Ir. 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
SOMMAIRE

GENERALITES

CH. PAR BLOC S6


12 1 10 15 4 2 6 8 0 13 3 4 14 7 15 11
CHIFFRE DE
FEISTEL
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
DES
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
S7
IDEA
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
MODES 13 0 11 7 4 9 1 10 14 5 3 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 13 15 12 9 0 3 5 6 11
Chiffrement par bloc
Data Encryption Standard - DES (12)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. Etape 4
SOMMAIRE
Appliquer à C = C1 C2 C3 C4 C5 C6 C7 C8 (mot de 8 × 4 = 32 bits), la
GENERALITES
permutation ci-après
CH. PAR BLOC
CHIFFRE DE
FEISTEL
DES P
AES
MATHEMATIQUES
16 7 20 21 29 12 28 17
DE RIJNDAEL 1 15 23 26 5 18 31 10
AES-128
IDEA 2 8 24 14 32 27 3 9
MODES 19 13 30 6 22 11 4 25

C = C1 C2 C3 C4 C5 C6 C7 C8 −→P f (Ri−1 , Ki )
Chiffrement par bloc
Data Encryption Standard - DES (13)

INTRODUCTION Etape 4 f (Ri−1 , Ki ) = P(S(E (Ri−1 ) ⊕ Ki ))


A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
La fonction f : Le schéma
IDEA

MODES
Chiffrement par bloc
Data Encryption Standard - DES (14)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN Chiffrement DES


O., Ir.

SOMMAIRE
Le message binaire en clair est divisé en mots de 64 bits. Le
GENERALITES
chiffrement du mot X de 64 bits
CH. PAR BLOC
CHIFFRE DE
m = X1 X2 · · · Xk · · · Xn
FEISTEL
DES
AES Le chiffrement s’effectue de la façon suivante :
MATHEMATIQUES
DE RIJNDAEL 1 Permutation initiale : Xk −→IP IP(Xk ) = [L0 |R0 ]k
AES-128
IDEA
2 Le swap [Li |Ri ]k , i = 1, · · · , 16
MODES
Li = Ri−1

Ri = Li−1 ⊕ f (Ri−1 , Ki )
3 Irregular swap Yk = IP −1 ([L16 |R16 ]k )
Chiffrement par bloc
Data Encryption Standard - DES (15)

INTRODUCTION
A LA CRYPTO-
GRAPHIE Permutations IP et inverse
HOUNKANRIN
O., Ir.
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
SOMMAIRE 62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
GENERALITES 57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
CH. PAR BLOC 61 53 45 37 29 21 13 5
CHIFFRE DE 63 55 47 39 31 23 15 7
FEISTEL
DES
AES
Table: Permutation IP
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA 40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
MODES
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

Table: Permutation IP −1
Chiffrement par bloc
Data Encryption Standard - DES (16)

INTRODUCTION
A LA CRYPTO-
Chiffrement DES
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
Data Encryption Standard - DES (17)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE Déchiffrement DES


GENERALITES

CH. PAR BLOC


1 Y = IP −1 (R16 L16 ) −→ IP(Y ) = IP(IP −1 (R16 L16 )) = R16 L16
CHIFFRE DE
FEISTEL 2 Ce qui suit : 
DES   Ri−1 = Li
AES Ri = Li−1
MATHEMATIQUES ⇒ Li−1 = Ri ⊕ f (Ri−1 , Ki )
DE RIJNDAEL Li = Ri−1 ⊕ f (Ri−1 , Ki )
= Ri ⊕ f (Li , Ki )

AES-128
IDEA
(avec i = 15, 14, · · · , 1, 0)
MODES
3 IP −1 (L0 , R0 ) = X
Chiffrement par bloc
Data Encryption Standard - DES (18)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL Déchiffrement DES
AES-128
IDEA

MODES
Chiffrement par bloc
Data Encryption Standard - DES (19)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. Commentaires
SOMMAIRE Structure de Feistel : meme algorithme pour le chiffrement et le
GENERALITES déchiffrement
CH. PAR BLOC
CHIFFRE DE Grande faiblesse : la clé de 56 bits
FEISTEL
DES Electronic Frontier Foundation (1998) : DES cracker
AES
MATHEMATIQUES
hardware - Deep - CrackChip - brute force attack
DE RIJNDAEL
AES-128
Si 92 milliards de clés par seconde ⇒ 4.5 jours ! !
IDEA
La solution : Triple-DES (K1 , K2 )
MODES

Ci = DESK1 (DESK2 (DESK1 (Mi )))

L’algorithme de chiffrement a donc une clé de longueur de 112 bits.


Chiffrement par bloc
Advanced Encryption Standard - AES

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES
Le problème de DES −→ compétition NIST (National Institute of
CH. PAR BLOC
CHIFFRE DE
Standards and Technology) (1997- 2001) : 15 candidats
FEISTEL
DES après 4 rondes, 4 candidats restent : Rijndael, Serpent, Twofish, RC6
AES
MATHEMATIQUES
et Mars
DE RIJNDAEL
AES-128 Vainqueur : Rijndael avec ’son’ AES
IDEA

MODES
Développé par Vincent Rijmen et Joan Daeman, de la KUL
Chiffrement par bloc
Advanced Encryption Standard - AES (2)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN Les caracteristiques


O., Ir.
Chiffrement par blocs
SOMMAIRE
Blocs de 128, 160, 192, 224 ou 256 bits
GENERALITES
Clés de 128, (160), 192, (224) ou 256 bits
CH. PAR BLOC
CHIFFRE DE Sans S-boxes, mais calcul matriciel
FEISTEL
DES 10, 12, ou 14 rondes
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
Pourquoi Rijndael
IDEA
Tres efficace et tres rapide
MODES
Relativement facile à implémenter, peu de mémoire nécessaire
Compatible avec différentes architectutes (cartes à puce de 8 bits jusqu’au processeur
de 64 bits)
N’est sensible à aucune attaque de sécurité connue
Possibilité de calcul parallèle
Chiffrement par bloc
Les mathematiques de Rijndael (2)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE
F256 = GF (28 )
GENERALITES Le polynôme caractéristique
CH. PAR BLOC
CHIFFRE DE h(x) = x 8 + x 4 + x 3 + x + 1 −→ GF (28 ) = Z2 [x]/h(x)
FEISTEL
DES
AES
Les éléments de F256
MATHEMATIQUES
DE RIJNDAEL
{0, 1, x, x + 1, · · · , x 7 + x 6 + x 5 + x 4 + x 3 + x 2 + x + 1}
AES-128
IDEA
Représentation générale
MODES 7
2 26 25 24 23 22 21 20 161 160
−→
a7 a6 a5 a4 a3 a2 a1 a0 b1 b0
Bin ⇒ Hex
Chiffrement par bloc
Les mathematiques de Rijndael (3)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
Définitions : Champ fini primitif et générateur d’un champ fin
SOMMAIRE
Un champ fini est considéré comme un champ fini primitif si
GENERALITES
l’élément g est un générateur pour le champ fini
CH. PAR BLOC
CHIFFRE DE
FEISTEL
Le générateur d’un champ fini Fp :
DES
AES
MATHEMATIQUES ∀ x ∈ Fp \{0}, ∃ m ∈ N : x = g m
DE RIJNDAEL
AES-128
IDEA
Exemple : pour Z13 , 2 est un générateur
MODES

mod 13 21 22 23 24 25 26 27 ···
2 4 8 3 6 12 11 ···
Chiffrement par bloc
Les mathematiques de Rijndael (4)

INTRODUCTION
A LA CRYPTO-
GRAPHIE
Générateur de GF (28 ) = Z2 [x]/(x 8 + x 4 + x 3 + x + 1) g (x) = x + 1
HOUNKANRIN
O., Ir. 0
(x + 1) = 1
SOMMAIRE 1
(x + 1) = x +1
GENERALITES 2 2
(x + 1) = x +1
CH. PAR BLOC 3 3 2
CHIFFRE DE (x + 1) = x +x +x +1
FEISTEL
4 4
DES (x + 1) = x +1
AES 5 5 4
(x + 1) = x +x +x +1
MATHEMATIQUES
DE RIJNDAEL
. .
AES-128 . .
IDEA
. = .
8 4 3
MODES
(x + 1) = x +x +x
. .
. .
. = .

Ainsi, pour f (x) = x 3 + x 2 + x + 1 et g (x) = x 5 + x 4 + x + 1

3+5 4 3
f (x) · g (x) = (x + 1) =x +x +x
Chiffrement par bloc
AES-128

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. AES-128
SOMMAIRE Représentation des états
GENERALITES
Construction de la clé de ronde (K1 , · · · , K2 )
CH. PAR BLOC
CHIFFRE DE
FEISTEL
Les 4 fonctions par ronde
DES
AES
1 SubBytes (SB)
MATHEMATIQUES 2 ShiftRows (SR)
DE RIJNDAEL
AES-128
3 MixColumn (MC)
IDEA 4 AddRoundKey (ARK)
MODES
10 rondes
Chiffrement par bloc
AES-128 (2)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (3)

INTRODUCTION
A LA CRYPTO-
GRAPHIE Représentation de l’état
HOUNKANRIN
O., Ir. entrée/sortie : séquence de 128 bits = 16 mots (bytes) de 8 bits, avec ∀ i ∈
{0, 1, 2, · · · , 15}
SOMMAIRE
(i) (i) (i) (i) (i) (i) (i) (i)
GENERALITES
xi = x7 x6 x5 x4 x3 x2 x1 x0
CH. PAR BLOC
CHIFFRE DE
FEISTEL
x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x8 |x9 |x10 |x11 |x12 |x13 |x14 |x15
DES
AES
MATHEMATIQUES Organisation de l’entrée
DE RIJNDAEL
AES-128
IDEA
x0 x4 x8 x12
MODES x1 x5 x9 x13
x2 x6 x10 x14
x3 x7 x11 x15

Cette matrice, qui constitue l’état initial de l’algorithme, est notée S0 et ses éléments
(0)
seront notés si,j , ou i et j prennent des valeurs entre 0 et 3.
Chiffrement par bloc
AES-128 (4)

INTRODUCTION
A LA CRYPTO- Représentation de l’état
GRAPHIE

HOUNKANRIN Représentation matricielle S0 −→ Sr


O., Ir.
 (0) (0) (0) (0)
  (r ) (r ) (r ) (r )

SOMMAIRE S S0,1 S0,2 S0,3 S S0,1 S0,2 S0,3
 0,0
(0) (0) (0) (0)   0,0
(r ) (r ) (r ) (r ) 
GENERALITES S1,0 S1,1 S1,2 S1,3  S1,0 S1,1 S1,2 S1,3 
S0 = 
S (0) (0) (0)

(0)  −→Round r Sr = 
S (r ) (r ) (r ) (r )

CH. PAR BLOC  2,0 S2,1 S2,2 S2,3   2,0 S2,1 S2,2 S2,3 
CHIFFRE DE (0) (0) (0) (0) (r ) (r ) (r ) (r )
FEISTEL S3,0 S3,1 S3,2 S3,3 S3,0 S3,1 S3,2 S3,3
DES
AES
Etat final S10
MATHEMATIQUES
DE RIJNDAEL
AES-128  (10) (10) (10) (10)

S S0,1 S0,2 S0,3 y0 y4 y8 y12
 0,0
IDEA
 
(10) (10) (10) (10) 
MODES
S1,0 S1,1 S1,2 S1,3  y1 y5 y9 y13 
S10 =  (10)

(10) (10)
=
(10)  y
S2,0 S2,1 S2,2 S2,3  2 y6 y10 y14 
(10) (10) (10) (10) y3 y7 y11 y15
S3,0 S3,1 S3,2 S3,3

La sortie de l’algorithme

y0 |y1 |y2 |y3 |y4 |y5 |y6 |y7 |y8 |y9 |y10 |y11 |y12 |y13 |y14 |y15
Chiffrement par bloc
AES-128 (5)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN Clé de la ronde : représentation


O., Ir.

SOMMAIRE K = k0 |k1 |k2 |k3 |k4 |k5 |k6 |k7 |k8 |k9 |k10 |k11 |k12 |k13 |k14 |k15
GENERALITES
avec ki = k70 k60 · · · k00
CH. PAR BLOC
CHIFFRE DE  
FEISTEL k0 k4 k8 k12 k0,0 k0,1 k0,2 k0,3
DES
k1 k5 k9 k13 k1,0 k1,1 k1,2 k1,3 
AES
−→ 
k2,0

MATHEMATIQUES
DE RIJNDAEL
k2 k6 k10 k14 k2,1 k2,2 k2,3 
AES-128 k3 k7 k11 k15 k3,0 k3,1 k3,2 k3,3
IDEA

MODES
Round key

K4×4 −→ W4×44 = [wi,j ]


[K [0]|K [1]|K [2]|K [3]] −→ [W [0]| · · · |K [43]]
Chiffrement par bloc
AES-128 (6)

INTRODUCTION
A LA CRYPTO- Procédure Round keys
GRAPHIE

HOUNKANRIN 1 W [0] = K [0], W [1] = K [1], W [2] = K [2], W [3] = K [3]


O., Ir.
2 Pour i > 3
SOMMAIRE i 6= 4 −→ W [i] = W [i − 4] ⊕ W [i − 1]
GENERALITES i = 4 −→ W [i] = W [i − 4] ⊕ T (W [i − 1])
CH. PAR BLOC
CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (7)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
Fonction SubBytes
SOMMAIRE

GENERALITES Il s’agit d’une substitution non linéaire lors de laquelle chaque octet
CH. PAR BLOC de la matrice est remplacé par un autre octet choisi dans une table
CHIFFRE DE
FEISTEL particulière appelée S-box
DES
AES A cet effet, deux fonctions :
MATHEMATIQUES
−1
inv : GF (28 ) → GF (28 ) ; b = (b7 b6 b5 b4 b3 b2 b1 b0 ) 7→ b
DE RIJNDAEL
1
AES-128
IDEA 2 Une application affine inversible
−1
MODES
f :GF (28 ) → GF (28 ) ; b 7→ A · b + c
m(x) = 11B en notation hexadécimale (m(x) = x 8 + x 4 + x 3 + x + 1)
Chiffrement par bloc
AES-128 (8)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
Fonction SubBytes
SOMMAIRE
Les entrée (ai,j ) et sortie (bi,j ) de cette fonction sont des matrices dont les éléments
GENERALITES
sont des octets.
CH. PAR BLOC
CHIFFRE DE
Ici i,j ∈ {0,1,2,3}
FEISTEL
DES
On a : ai,j = Sbox(bi,j )
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (9)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN Fonction SubBytes


O., Ir.
   
1 0 0 0 1 1 1 1 1
SOMMAIRE 1 1 0 0 0 1 1 1 1
1 1 1 0 0 0 1 1 0
   
GENERALITES
1 1 1 1 0 0 0 1 0
   
CH. PAR BLOC A=  c = 
CHIFFRE DE
1 1 1 1 1 0 0 0 0
0 1 1 1 1 1 0 0
 1
FEISTEL   
DES
0 0 1 1 1 1 1 0 1
AES 0 0 0 1 1 1 1 1 0
MATHEMATIQUES
DE RIJNDAEL
AES-128 Exemple
IDEA

MODES
f(x) [f (x)]2 [f (x)]16
b x7 + x6 + x5 + x4 + x2 + 1 [1111|0110] [F|6]
−1
b x +1 [0000|0011] [0|3]
−1
Ab +c [0100|0010] [42]
Chiffrement par bloc
AES-128 (10)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN S-Box
O., Ir.

SOMMAIRE 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
GENERALITES 1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15
CH. PAR BLOC 3 04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75
4 09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84
CHIFFRE DE
5 53 D1 00 ED 20 FC 01 5B 6A CB BE 39 4A 4C 58 CF
FEISTEL
6 D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8
DES 7 51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2
8 CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73
AES
9 60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB
MATHEMATIQUES A E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79
DE RIJNDAEL B E7 08 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08
C BA 78 25 2E 1C A6 B4 C6 EB DD 74 1F 4B BD 8B 8A
AES-128
D 70 3E B5 66 48 3 F6 0E 61 35 57 B9 86 C1 1D 9E
IDEA E E1 F8 98 11 69 D9 8E 94 9B 1E 87 E9 CE 55 28 DF
F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16
MODES

f(x) [f (x )]2 [f (x )]16


7
b x + x6 + x5 + x4 + x2 + 1 [1111|0110] [F|6]

b
−1 x +1 [0000|0011] [0|3]

Ab
−1 + c [0100|0010] [42]
Chiffrement par bloc
AES-128 (11)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir. Fonction Shift Rows

SOMMAIRE Cette fonction a comme entrée une matrice 4 × 4 dont les éléments sont des octets.
GENERALITES La première ligne est inchangée
CH. PAR BLOC La deuxième subit un décalage cyclique d’un élément vers la gauche, la troisième subit
CHIFFRE DE un décalage cyclique de deux éléments vers la gauche, et la quatrième, le même
FEISTEL
DES
décalage de trois éléments vers la gauche.
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (12)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

Fonction Shift Rows


SOMMAIRE

GENERALITES La fonction admet une fonction inverse


CH. PAR BLOC Faire les opérations inverses pour la retrouver
CHIFFRE DE
FEISTEL Elle est noté Inv Shift Rows
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (13)

INTRODUCTION
A LA CRYPTO-
GRAPHIE
Fonction Mix Columns
HOUNKANRIN
O., Ir.
Les colonnes d’un état sont considérées comme des polynômes dans GF(28 ) et
SOMMAIRE multipliés modulo x 4 + 1 par un polynôme fixe c(x) donné par :
GENERALITES
3 2
CH. PAR BLOC
c(x) = [0|3]x + [0|1]x + [0|1]x + [0|2]
CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES

a(x) = a01 + a11 x + a21 x 2 + a31 x 3


a(x) 7→ a(x) · c(x)mod(x 4 + 1)
Chiffrement par bloc
AES-128 (14)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN Fonction Mix Columns


O., Ir.
En pratique
SOMMAIRE

GENERALITES
Input → MixColumns (A) = M x A → Output B
CH. PAR BLOC
CHIFFRE DE On considère que
FEISTEL
DES
02 03 01 01
 
AES
MATHEMATIQUES 01 02 03 01
M =
DE RIJNDAEL 01 01 02 03
AES-128
03 01 01 02
IDEA

MODES Matrice inverse de M (notation hexadécimale)

0E 0B 0D 09
 
−1  09 0E 0B 0D 
M =
0D 09 0E 0B 
0B 0D 09 0E
Chiffrement par bloc
AES-128 (15)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE
Fonction Add Round Key
GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Fonction : AddRoundKey (State, RoundKey)
Chiffrement par bloc
AES-128 (16)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL Chiffrement AES-128
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (17)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES Le déchiffrement AES-128


CH. PAR BLOC
CHIFFRE DE
L’algorithme de chiffrement peut être inversé et réordonné pour
FEISTEL
produire un algorithme de déchiffrement utilisant les fonctions
DES
AES
MATHEMATIQUES
InvSubBytes (ISB)
DE RIJNDAEL InvShiftRows (ISR)
AES-128
IDEA
InvMixColumns (IMC)
MODES AddKey (AK)
Chiffrement par bloc
AES-128 (18)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE Le déchiffrement AES-128


GENERALITES
L’algorithme
CH. PAR BLOC
CHIFFRE DE
FEISTEL
ARK
DES Clé : W [40]|W [41]|W [42]|W [43]
AES
MATHEMATIQUES
1 ronde de ISR → ISB → ARK ;
DE RIJNDAEL
AES-128
Clé : W [36]|W [37]|W [38]|W [39]
IDEA 9 rondes de IMC → ISR → ISB → ARK
MODES RounKey : W [40 − 4j]|W [41 − 4j]|W [42 − 4j]|W [43 − 4j],
j ∈ {2,3, · · · , 10}
Chiffrement par bloc
AES-128 (19)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL Déchiffrement AES-128
AES-128
IDEA

MODES
Chiffrement par bloc
AES-128 (20)

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
IDEA

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES
Créé en 1992 par X. Lai et J. Massey
CH. PAR BLOC
CHIFFRE DE
FEISTEL
Renforce les versions préliminaires
DES
AES
PES (Proposed Encryption Standard)
MATHEMATIQUES IPES (Improvised Proposed Encryption Standard)
DE RIJNDAEL
AES-128
Longeur de la clé : 128 bits
IDEA

MODES Bloc de texte clair : 64 bits


Chiffrement par bloc
IDEA

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE Chiffrement
GENERALITES

CH. PAR BLOC


Il consiste en trois (3) opérations différentes
CHIFFRE DE
FEISTEL Multiplication, addition, et XOR.
DES
AES Elles sont effectuées sur des blocs de 16 bits qui sont considérés
MATHEMATIQUES
DE RIJNDAEL
comme la représentation binaire de nombres naturels, soit
AES-128 comme une suite finie de 16 élements de F2
IDEA

MODES 8 rondes
1 transformation finale
Chiffrement par bloc
IDEA : Opérations de chiffrement

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE La multiplication
GENERALITES

CH. PAR BLOC


C’est une multiplication modulo 216 + 1 = 65537, ie une
CHIFFRE DE multiplication dans F65537
FEISTEL
DES
Représentation :
AES
MATHEMATIQUES
DE RIJNDAEL
Dans l’algorithme, les nombres sont représentés par 16 bits
AES-128
IDEA Mais, 65636 = 216 ne peut être représenté avec 16 bits.
MODES
Convention : 216 est représenté par |0000...0000
{z }.
16x
Chiffrement par bloc
IDEA : Opérations de chiffrement

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE L’addition
GENERALITES

CH. PAR BLOC Il s’agit L’addition modulo 216 , ie l’addition dans Z65536
CHIFFRE DE
FEISTEL Représentation : 
DES
AES
MATHEMATIQUES
Le OU exclusif ou XOR
DE RIJNDAEL
AES-128 Il s’agit du OU exclusif (XOR), bit par bit. En d’autres termes, il
IDEA
s’agit d’une addition dans F2
MODES
Représentation : ⊕
Chiffrement par bloc
IDEA : Les rondes

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES
Les rondes
CH. PAR BLOC
CHIFFRE DE
FEISTEL Pour la ronde k, k ∈ {1, 2, . . . , 8}, on utilise 6 sous-clés de 16 bits, à
DES (k) (k) (k)
AES
savoir Z1 , Z2 , . . ., Z6
MATHEMATIQUES
DE RIJNDAEL Pour la transformation finale, on utilise 4 sous-clés de 16 bits, à
AES-128 (9) (9)
IDEA
savoir : Z1 , . . ., Z4
MODES
Chiffrement par bloc
IDEA : Generation des clés

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES Les 52 (6 × 8 + 4) de 16 bits sont produits à partir de la clé K de 128


CH. PAR BLOC bits comme suit
CHIFFRE DE
FEISTEL On divise K en 8 blocs de 16 bits : ce sont les 8 premiers
DES
AES
sous-blocs de 16 bits
MATHEMATIQUES
DE RIJNDAEL
On effectue un décalage cyclique de 25 bits vers la gauche sur la
AES-128 clé K ce qui donne les 8 sous-clés suivantes
IDEA

MODES
On répète le décalage cyclique jusqu’à ce que les 52 sous-clés soient
générés.
Chiffrement par bloc
IDEA : Representation schematique

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC


CHIFFRE DE
FEISTEL
DES
AES
MATHEMATIQUES
DE RIJNDAEL
AES-128
IDEA

MODES
Chiffrement par bloc
IDEA : Padding

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC Les messages chiffrés doivent avoir une table qui est multiple de 8
CHIFFRE DE
FEISTEL octets, puisque IDEA chiffre par bloc de 64 bits
DES
AES Dans le cas contraire, on effectue un padding (bourrage), ie on
MATHEMATIQUES
DE RIJNDAEL complète le train binaire, en remplissant les bits manquants de bits
AES-128
IDEA
égaux à 0.
MODES
Chiffrement par bloc
Modes d’utilisation

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

SOMMAIRE Mode de chiffrement : définition


GENERALITES

CH. PAR BLOC


Il s’agit des différentes manières de combiner les blocs
MODES
ECB
CBC
ECB Electronic Code Book
OFB CBC Cipher Block Chaining
CTR
CONCLUSION CFB Cipher FeedBack
OFB Output FeedBack
CTR Counter mode encryption
Chiffrement par bloc
Modes d’utilisation (2)

INTRODUCTION
A LA CRYPTO-
GRAPHIE
Electronic Code Book (ECB)
HOUNKANRIN
O., Ir.
ci = EK (mi )
SOMMAIRE

GENERALITES

CH. PAR BLOC

MODES
ECB
CBC
OFB
CTR
CONCLUSION

Caractéristiques du mode ECB


Chaque bloc est chiffré séparément avec la même clé
Chaque bloc est toujours chiffré de la même manière
Il s’agit du mode le plus simple ; il n’offre aucune sécurité
Chiffrement par bloc
Modes d’utilisation (3)

INTRODUCTION
A LA CRYPTO-
GRAPHIE Cipher Block Chaining (CBC)
HOUNKANRIN
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC

MODES
ECB
CBC
OFB
CTR
CONCLUSION

Caractéristiques du mode CBC (le plus utilisé)

Chiffrage : ci = mi ⊕ EK (ci−1 )
Un bloc n’est jamais codé de la même manière
La valeur initiale IV est aléatoire
Déchiffrage : mi = ci ⊕ EK (ci−1 )
Pas besoin de fonction de déchiffrage
Chiffrement par bloc
Modes d’utilisation (4)

INTRODUCTION
A LA CRYPTO-
GRAPHIE
Output Feedback (OFB)
HOUNKANRIN z0 = c0 , zi = EK (zi−1 ), ci = mi ⊕ zi
O., Ir.

SOMMAIRE

GENERALITES

CH. PAR BLOC

MODES
ECB
CBC
OFB
CTR
CONCLUSION

Caractéristiques du mode OFB

Permet un codage et un décodage totalement symétriques


Déchiffrage : zi = EK (zi−1 ), mi = ci ⊕ zi
Utile dans les satellites (minimaliser le nombre de circuits)
Chiffrement par bloc
Modes d’utilisation (4)

INTRODUCTION
A LA CRYPTO-
GRAPHIE
Counter Mode Encryption (CTR)
HOUNKANRIN
O., Ir.
ci = mi ⊕ EK (T = i)
SOMMAIRE

GENERALITES

CH. PAR BLOC

MODES
ECB
CBC
OFB
CTR
CONCLUSION

Caractéristiques du mode CTR


Un même bloc n’est jamais codé de la même façon
Totalement symétrique
Déchiffrage : mi = ci ⊕ EK (T + i)
Chiffrement par bloc
Conclusion

INTRODUCTION
A LA CRYPTO-
GRAPHIE Avantages
HOUNKANRIN
O., Ir. La rapidité
SOMMAIRE
Désavantages
GENERALITES

CH. PAR BLOC

MODES
ECB
CBC
OFB
CTR
CONCLUSION
Annexe I

INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.
S. Douglas.
Annexes Cryptographie : théorie et pratique.
Bibliographie
2nd Ed, 2002.

J. Van Hamme.
Introduction à la cryptographie.
ERM, 2009.

J. Daenen, V. Rijmen.
AES proposal : Rijndael.
KUL, 1999.

J. Daenen, V. Rijmen.
A specification for the AES algorithm
Mai 2002.
INTRODUCTION
A LA CRYPTO-
GRAPHIE

HOUNKANRIN
O., Ir.

Annexes

QUESTIONS

Vous aimerez peut-être aussi