Académique Documents
Professionnel Documents
Culture Documents
§ Le masque jetable n'est rien d'autre qu'une très longue suite non
répétitive et aléatoire de lettres
H. Laanaya
Algorithmes cryptographiques : Algorithmes à
clef (Procédés symétrique)
39
H. Laanaya
Algorithmes cryptographiques : Algorithmes à
clef (Procédés symétrique)
40
§ Si le message est :
MASQUEJETABLE
H. Laanaya
Algorithmes cryptographiques : Algorithmes à
clef (Procédés symétrique)
41
§ Ou encore :
RTFDAPUVHMGNX
H. Laanaya
DES : Data Encryption Standard
43
H. Laanaya
DES : Data Encryption Standard
44
Principe du DES
§ Le D.E.S. est un système de chiffrement par blocs
H. Laanaya
DES : Data Encryption Standard
45
L'algorithme du DES
Bloc de 64 bits clair
Permutation initiale
G0 D0
Permutation expansive
XOR Clef ki
Permutation P
XOR
G1 D1
Permutation finale
H. Laanaya
DES : Data Encryption Standard
46
L'algorithme du DES
H. Laanaya
DES : Data Encryption Standard
47
L'algorithme du DES
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
H. Laanaya
DES : Data Encryption Standard
48
L'algorithme du DES
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
H. Laanaya
DES : Data Encryption Standard
49
L'algorithme du DES
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
H. Laanaya
DES : Data Encryption Standard
50
L'algorithme du DES
• Phase 2
1. Permutation initiale
§ Dans un premier temps, chaque bit d'un bloc est soumis à la
permutation initiale, pouvant être représentée par la matrice
de permutation initiale (notée PI) suivante :
58
50
42
34
26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
48
40
32
24
16
8
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
5
63
55
47
39
31
23
15
7
H. Laanaya
DES : Data Encryption Standard
51
L'algorithme du DES
• Phase 2
2. Scindement en blocs de 32 bits
§ Une fois la permutation initiale réalisée, le bloc de 64 bits est
scindé en deux blocs de 32 bits, notés respectivement G et D
On note G0 et D0 l'état initial de ces deux blocs :
58
50
42
34
26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
48
40
32
24
16
8
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
5
63
55
47
39
31
23
15
7
H. Laanaya
DES : Data Encryption Standard
52
L'algorithme du DES
• Phase 2
3. Fonction d'expansion
§ Les 32 bits du bloc D0 sont étendus à 48 bits grâce à une
table (matrice) appelé table d'expansion (notée E), dans
laquelle les 48 bits sont mélangés et 16 d'entre eux sont
dupliqués :
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
H. Laanaya
DES : Data Encryption Standard
53
L'algorithme du DES
• Phase 2
4. OU exclusif avec la clé
H. Laanaya
DES : Data Encryption Standard
54
L'algorithme du DES
§ Phase 2
5. Fonction de substitution
• D0 est ensuite scindé en 8 blocs de 6 bits, noté D0i. Chacun
de ces blocs passe par des fonctions de sélection (appelées
parfois boîtes de substitution ou fonctions de compression),
notées généralement Si.
H. Laanaya
DES : Data Encryption Standard
55
L'algorithme du DES
• Phase 2
5. Fonction de substitution
§ 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
H. Laanaya
DES : Data Encryption Standard
56
L'algorithme du DES
• Phase 2
6. Permutation
§ Le bloc de 32 bits obtenu est enfin soumis à une permutation P.
7. OU Exclusif
§ L'ensemble de ces résultats en sortie de P est soumis à un OU
Exclusif avec le G0 de départ pour donner D1, tandis que le D0
initial donne G1.
H. Laanaya
DES : Data Encryption Standard
57
L'algorithme du DES
§ Phase 3 : Itération
L'ensemble des étapes précédentes (rondes) est réitéré 16 fois. A
partir de Gi-1Di-1 (pour i de 1 à 16), on calcule Gi et Di en posant :
• Gi = Di-1.
• Di = Gi-1 XOR f(Di-1,Ki)
H. Laanaya
DES : Data Encryption Standard
58 Bloc de 64 bits clair
G0 D0
Clef k1
F(D0,k1)
G1 D1
Clef k16
F(D15,k16)
XOR
G16 D16
Permutation finale
H. Laanaya
DES : Data Encryption Standard
59
DES attaqué
H. Laanaya
DES : Data Encryption Standard
60
DES attaqué
H. Laanaya
AES : Advenced Encryption Standard
61
• Une large portabilité : il est destiné à servir aussi bien dans les
cartes à puces, aux processeurs 8 bits peu puissants, que dans
des processeurs spécialisés pour chiffrer des milliers de
télécommunications à la volée
H. Laanaya
AES : Advenced Encryption Standard
63
Spécifications de l'AES
H. Laanaya
AES : Advenced Encryption Standard
64
Spécifications de l'AES
• Tandis que, les clés DES ont une longueur de 56 bits ce qui signifie
qu'il y a approximativement 7.2 x 1016 clés différentes possibles.
• Cela nous donne un ordre de 1021 fois plus de clés 128 bits pour
l'AES que de clés 56 bits pour le DES.
H. Laanaya
AES : Advenced Encryption Standard
65
Fonctionnement de l'AES
Fonctionnement de l'AES
H. Laanaya
AES : Advenced Encryption Standard
67
H. Laanaya
Algorithmes à clef publique
68
Introduction
Clef k1 Clef k2
Texte en clair
Texte en clair Texte chifré
original
Chiffrement Déchiffrement
H. Laanaya
Algorithmes à clef publique
69
Introduction (suite)
H. Laanaya
Algorithmes à clef publique
70
Cryptosystèmes hybrides
H. Laanaya
Algorithmes à clef publique
71
H. Laanaya
Algorithmes à clef publique
72
Signatures numériques
• Les signatures sur des documents ont été longtemps utilisées pour
prouver l'identité de leur auteur ou du moins l'accord du signataire
avec le contenu du document
• La signature :
§ est authentique : convaincre le destinataire que le signataire a
délibérément signé le document.
§ est infalsifiable : la signature est la preuve que le signataire a
signé le document.
§ est inutilisable : la signature fait partie du document, on ne peut
pas la faire déplacer sur un autre document.
§ est inaltérable : une fois le document signé, il ne peut plus être
modifié
§ ne peut pas être reniée : Le signataire ne peut pas prétendre plus
tard ne pas avoir signé le document.
H. Laanaya
Algorithmes à clef publique
73
H. Laanaya
Algorithmes à clef publique
76
H. Laanaya
Algorithmes à clef publique
77
H. Laanaya
Algorithmes à clef publique
78
S = b1 M1 + b2 M2 + b3 M3 + b4 M4 + b5M5 + b6 M6.
H. Laanaya
Algorithmes à clef publique
79
H. Laanaya
Algorithmes à clef publique
80
H. Laanaya
Algorithmes à clef publique
81
• Par exemple, la suite {2, 3, 6, 13, 27, 52} est une suite super-
croissante (3>2, 6>2+3, 13>2+3+6, 27>2+3+6+13 et 52>2+3+6+13+27)
tandis que la suite {1, 3, 4, 9, 15, 25} n'est pas une suite super-
croissante (puisque par exemple 15<1+3+4+9=17).
H. Laanaya
Algorithmes à clef publique
82
H. Laanaya
Algorithmes à clef publique
83
H. Laanaya
Algorithmes à clef publique
84
H. Laanaya
Algorithmes à clef publique
85
§ Le modulo (i.e. m) doit être plus grand que la somme de tous les
nombres de la suite, par exemple 105.
§ Le multiplicateur (i.e. n) ne doit pas avoir de facteur en commun
avec aucun nombre de la suite
H. Laanaya
Algorithmes à clef publique
86
• L'empilement difficile est alors { 62, 93, 81, 88, 102, 37}
• La suite pour empilement super-croissant est la clef privée. La suite
pour empilement normale (difficile) est la clef publique
H. Laanaya
Algorithmes à clef publique
87
H. Laanaya
Algorithmes à clef publique
88
H. Laanaya
Algorithmes à clef publique
89
H. Laanaya
Algorithmes à clef publique
90
• Soit la suite {3, 5, 10, 21, 44, 91, 185, 400}, m= 800 et n=19.
H. Laanaya
Algorithmes à clef publique
91
Algorithme RSA
• Un algorithme à clef publique apparut peu après l'algorithme à
empilement de Merkle et Hellman.
• Il fonctionne pour le chiffrement aussi bien que pour les signatures
numériques.
• C'est un algorithme facile à comprendre et à réaliser. C'est le plus
populaire. Il a été inventé par les mathématiciens Ronald Rivest, Adi
Shamir et Léonard Adlman.
• Il a résisté depuis à des années de cryptanalyse. Bien que la
cryptanalyse n'ait jamais prouvé la sécurité ou la non-sécurité de
RSA, cela inspire un certain niveau de confiance dans l'algorithme.
• La sécurité de RSA dépend de la difficulté de factoriser des grands
nombres. Les clefs publique et privée sont des fonctions d'une paire
de grands nombres premiers (100 à 200 chiffres). Retrouver le texte
en clair à partir d'une des clefs et du texte chiffré est supposé
équivalent à la factorisation du produit des deux nombres premiers.
H. Laanaya
Algorithmes à clef publique
92
H. Laanaya
Algorithmes à clef publique
93
H. Laanaya
Algorithmes à clef publique
95
• On a le schéma suivant :
e d
H. Laanaya
Algorithmes à clef publique
96
• Clef publique :
n produit de deux nombres premiers, p et q ( p et q
doivent rester secrets)
• Clef privée :
d = e-1 mod ((p-1)(q-1))
• Chiffrement :
c = me mod n
• Déchiffrement :
m = cd mod n
H. Laanaya
Algorithmes à clef publique
97
H. Laanaya
Algorithmes à clef publique
99
30 3 = 27000 ≡ 06 mod 33
14 3 = 2744 ≡ 05 mod 33
06 3 = 216 ≡ 18 mod 33
07 3 = 343 ≡ 13 mod 33
01 3 = 1 ≡ 01 mod 33
26 3 = 17576 ≡ 20 mod 33
H. Laanaya
Algorithmes à clef publique
100
2.
a. Donner le chiffrement C du message M = ARITHMETIQUE
H. Laanaya
Algorithmes à clef publique
101
H. Laanaya
Algorithmes à clef publique
102
r × e1 + s × e2 = 1.
§ En faisant l'hypothèse que r est négatif (soit r soit s doit l'être), alors
l'algorithme d'Euclide peut être utilisé à nouveau pour calculer C1-1.
Donc :
H. Laanaya
Algorithmes à clef publique
103
H. Laanaya
Algorithmes à clef publique
104
§ Le problème est qu'il est très facile, si l'on connaît N et A (resp. B), de
déterminer B (resp. A) par un simple calcul d'inverse modulaire. Il est
donc nécessaire que A et B soient secrets, pour que le chiffrement soit
sûr.
H. Laanaya
Algorithmes à clef publique
105
H. Laanaya
Algorithmes à clef publique
106
x = gs mod p
§ La fiabilité du système est assurée par le fait que toute personne ayant
seulement connaissance de la clef publique ; se trouve dans l'incapacité
de déterminer s (car cela revient à déterminer un logarithme discret).
H. Laanaya
Algorithmes à clef publique
107
H. Laanaya
Algorithmes à clef publique
108
§ Posons alors
a = xk mod p.
§ a est bien premier avec p, et convient donc pour le chiffrement résiduel.
On chiffre alors le message m par :
m' = m xk mod p.
§ On envoie m' ainsi que α.
H. Laanaya
Algorithmes à clef publique
110
üClef publique :
Ø p premier (peut être partagé par un groupe d'utilisateurs).
Ø g < p (peut être partagé par un groupe d'utilisateurs).
Ø x = gs mod p.
üChiffrement :
Ø k choisi aléatoirement et premier avec p-1.
Ø α = gk mod p.
Ø c = xk m mod p.
üDéchiffrement : m = c / αs mod p.
H. Laanaya
Algorithmes à clef publique
111
Chiffrement :
§ Comme p est de longueur 3, il nous faut prendre des blocs de longueur
2 : [ 07, 12, 90 ], qui pour l'ordinateur devient : [ 7, 12, 90 ]. On prend
alors un nombre k au hasard compris entre 2 et p-2, par exemple k = 6,
on détermine alors
α = gk mod p = 236 mod 181 = 152 mod p.
H. Laanaya
Algorithmes à clef publique
112
H. Laanaya
Algorithmes à clef publique
113
H. Laanaya
Algorithmes à clef publique
114
§ Il ne reste plus qu'à compléter chaque bloc par des 0, si nécessaire, afin
d'avoir des éléments de longueur p-1, c'est à dire 2.
H. Laanaya
Algorithmes à clef publique
115
Signatures ElGamal
H. Laanaya
Algorithmes à clef publique
116
H. Laanaya
Algorithmes à clef publique
117
H. Laanaya
Algorithmes à clef publique
118
H. Laanaya
Algorithmes à clef publique
119
H. Laanaya
Fonctions de hachage
120
Les Fonctions
H. Laanaya
Fonctions de hachage
121
§Casser une assiette est un bon exemple de fonction à sens unique. Il est
facile de casser l'assiette en mille morceaux. Toutefois, il est très difficile de
recoller les morceaux ensembles pour reconstruire l'assiette.
H. Laanaya
Fonctions de hachage
122
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
f(x) 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6 1
H. Laanaya
Fonctions de hachage
123
§Soient
deux nombres premiers p = 48611, q = 53993, on a n = pq =
2624653723 et soit X={1, 2, 3, …, n-1}.
§On définie une fonction f sur X par f(x)= rx pour tout x ∈X, où rx est le reste
de la division de x3 par n. Par exemple f(2489991) = 1981394214 puisque
2489913 = 5881949859 × n + 1981394214.
§Calculer f(x) est relativement facile, mais la réciproque est plus difficile ;
c'est-à-dire étant donné un reste rx, trouver la valeur x telle que
x3 = rx mod n.
H. Laanaya
Fonctions de hachage
124
Fonctions de hachage
§Une fonction de hachage est une fonction qui convertit une chaîne de
caractères de longueur quelconque en une chaîne de caractères de taille
fixe (souvent de taille inférieure, cette chaîne est appelée empreinte). Ainsi,
l'on peut appliquer le même algorithme de cryptage aux données, ou encore
envoyer le message en plusieurs parties, réduisant le risque de pertes de
données au cours de la transmission.
H. Laanaya
Fonctions de hachage
125
§Une fonction de hachage à sens unique est une fonction de hachage qui
est aussi une fonction à sens unique ; il est aisé de calculer l'empreinte à
partir de la chaîne d'entrée mais il est difficile d'engendrer des chaînes qui
ont une certaine empreinte.
§On ne peut pas faire cela pour des fonctions de hachage à sens unique.
Avec une bonne fonction de hachage à sens unique, il est aussi difficile de
§
produire deux chaînes ayant la même empreinte.
H. Laanaya
Fonctions de hachage
126
Résumé
§Ainsi,
le haché représente l'empreinte digitale (en anglais finger print) du
document è Assure l'intégrité du message.
H. Laanaya
Fonctions de hachage
127
Vérification d'intégrité
§Lors
de la réception du message, il suffit au destinataire de calculer le
haché du message reçu et de le comparer avec le haché accompagnant le
document. Si le message (ou le haché) a été falsifié durant la
communication, les deux empreintes ne correspondront pas.
H. Laanaya
Fonctions de hachage
128
§L'utilisation
d'une fonction de hachage permet de vérifier que l'empreinte
correspond bien au message reçu, mais rien ne prouve que le message a
bien été envoyé par celui que l'on croit être l'expéditeur.
H. Laanaya
Fonctions de hachage
129
H. Laanaya
130
H. Laanaya
Les courbes elliptiques
131
Introduction
§ Les spécialistes en cryptographie font de plus en plus appel à une
technique qui s'appuie sur des courbes elliptiques, proposée
indépendamment par Victor Miller et Neal Koblitz en 1985. La théorie
des courbes elliptiques en général est un domaine riche et a donné de
nombreux résultats, dont la preuve du dernier théorème de Fermat par
Andrew Wiles.
§ Une courbe elliptique est un objet très simple mais qui a des propriétés
tout à fait surprenantes. Elles ont normalement la forme suivante:
y 2 +a1xy+a3y = x 3 +a2x 2 +a4x+a6
H. Laanaya
Les courbes elliptiques
132
Définition
§On appelle courbe elliptique E(a,b) sur R toute courbe plane d'équation
y 2 = x 3 + a x + b,
H. Laanaya
Les courbes elliptiques
133
Exemple
§Unexemple typique de courbe elliptique E(-5,3) (discriminant=257≠0) est
donné sur la figure ci-dessous. Son équation est y 2 = x 3 - 5x + 3.
H. Laanaya
Les courbes elliptiques
134
H. Laanaya
Les courbes elliptiques
135
§ La chose surprenante est que cette opération "+" possède toutes les
propriétés de l'addition des nombres. C'est-à-dire que l'on peut faire tous
les calculs de type addition, soustraction et division avec un reste entier
que nous faisons sur la droite des nombres réels sur cet objet tordu que
constitue une courbe elliptique.
H. Laanaya
Les courbes elliptiques
136
H. Laanaya
Les courbes elliptiques
137
y 2 mod p = x 3 + a x + b mod p.
§On reconnaît l'équation déjà vue ci-dessus, sauf que l'on travaille modulo
p. Le nombre p doit être un nombre premier. Lors des calculs, il arrive
parfois que l'on doive faire une division par 0. Quand cela arrive, le point
résultat sera appelé "infini".
H. Laanaya
Les courbes elliptiques
138
H. Laanaya
Les courbes elliptiques
139
§On
remarque que pour calculer k, on doit trouver l'inverse d'un nombre
modulo p. Pour trouver cet inverse, on utilise l'algorithme d'Euclide étendu.
§Il
est possible, comme l'ont démontré Miller et Koblitz, de coder avec cette
opération bizarre au lieu de travailler avec l'addition usuelle. Il en résulte
une plus grande complexité des calculs qui fait dire aux spécialistes que le
chiffrement par la méthode des courbes elliptiques avec une clef de 192 bits
assure le même niveau de sécurité qu'une clef de 1024 bits pour la
méthode RSA.
§Il
est donc probable que cette méthode sera de plus en plus utilisée pour
transmettre les clefs.
H. Laanaya
Les courbes elliptiques
140
H. Laanaya
Les courbes elliptiques
141
§Calculons
maintenant 3P :
D'après la règle 4, 2·P+P=(8,4)+(4,2)=(x3,y3)=3·P,
H. Laanaya
Les courbes elliptiques
143
Échange de clefs
§Aïcha et Brahim se mettent d'accord (publiquement) sur une courbe
elliptique E(a,b,p), c'est-à-dire qu'ils choisissent une courbe elliptique
y2 mod p = (x3+ax+b) mod p.
§Ils
se mettent aussi d'accord, publiquement, sur un point P situé sur la
courbe.
Transmission de messages
§On suppose que Aïcha et Brahim ont suivi le protocole d'échange de clés
expliqué ci-dessus.
§Aïcha veut envoyer à Brahim un message: ils se sont mis d'accord sur la
façon de transformer un texte en suite de points de la courbe elliptique.
§Elle
choisit (secrètement) un nombre d, et envoie à Brahim le couple (dP,
M+dkBP).
H. Laanaya
Les courbes elliptiques
145
§Brahim, lui, multiplie dP par kB (sa clé secrète), puis retranche dkBP à M
+dkBP : il retrouve M.
§Nous avons passé sous silence une des difficultés majeures : l'algorithme
pour transformer un texte en points de la courbe elliptique est loin d'être
trivial; il n'est pas toujours facile de trouver un point sur la courbe elliptique.
H. Laanaya
Les courbes elliptiques
146
Sécurité
§Si Chihab a espionné leurs échanges, elle connaît E(a,b,P), P, dAP et dBP.
§C'est ce que l'on appelle résoudre le logarithme discret sur une courbe
elliptique.
H. Laanaya
Les courbes elliptiques
147
Inconvénients
§Il
n'est pas exclu que des trappes permettent de contourner le problème du
logarithme discret.
H. Laanaya
148
FIN
H. Laanaya