introduction a la cryptologie · chi rement par bloc i un chi rement par bloc e: fn 2 k! fn 2 tel...
TRANSCRIPT
Introduction a la cryptologie
I La cryptologie est la science du secret.
I La cryptographie est la branche de la cryptologie qui
s’interesse a la conception des ecritures secretes.
I La cryptanalyse est la branche de la cryptologie qui
s’interesse a l’analyse des ecritures secretes.
1
IntroductionConfidentialite
Alice
Bob
Eve
m
m m
m
m
Canal
I Comment preserver la confidentialite des messages
entre Alice et Bob ?
2
Chiffrement
I E est un algorithme de chiffrement : c = EK(m);
I D est un algorithme de dechiffrement : m =
DK′(c);
I K est la clef de chiffrement (Alice) ;
I K ′ est la clef de dechiffrement (Bob).
I m est le texte clair ;
I c est le texte chiffre (ou simplement chiffre).
4
Symetrique ou asymetrique
• K = K ′ (chiffrement symetrique) :
� Alice et Bob doivent echanger la clef K ;
� Il y a autant de clefs que de correspondants
pour Bob.
• K 6= K ′ (chiffrement asymetrique) :
� K est la clef publique de Bob ;
� K ′ est la clef secrete de Bob ;
� La clef K est commune a tous les corres-
pondants de Bob ;
� Une autorite de confiance certifie l’associa-
tion (K, Bob) ;
5
Systeme de chiffrement
Definition 1. Un systeme de chiffrement est un quin-
tuplet (P, C,K, E,D) definit par :
— P un ensemble fini de textes clairs.
— C un ensemble fini de textes chiffres.
— K l’espace des clefs.
— E l’algorithme de chiffrement.
EK : P → C.
— D l’algorithme de dechiffrement associe a E.
DK : C → P.
6
Systeme de chiffrementRemarque 1
I La fonction EK est forcement injective :
∀(x, y) ∈ P2, x 6= y ⇒ EK(x) 6= EK(y).
I En effet, si c’est condition n’est pas verifiee, le chif-
frement est ambigu.
I De meme, la fonction DK est forcement injective :
∀(x, y) ∈ C2, x 6= y ⇒ DK(x) 6= DK(y).
7
Systeme de chiffrementRemarque 2
I La fonction EK est forcement inversible sinon la
fonction DK n’est pas definie pour tous les elements
de C. On doit avoir :
EK ◦Dk = Id.
I La fonction EK est bijective de reciproque DK.
I Si P = C, EK est une permutation.
8
PermutationDenombrement
I Soit A un ensemble fini non vide et de cardinal n.
On dispose de :n choix pour permuter le premier element
n− 1 choix pour permuter le second element
n− 2 choix pour permuter le troisieme element...
1 choix pour permuter le dernier element
I Il existe n! permutations
9
PermutationRepresentation
I On considere le groupe de permutation de P. On
attribue de facon deterministe un numero a chaque
permutation.
I La taille des nombres associes a chaque permuta-
tion est log2(n!). En utilisant la formule d’Euler-
Maclaurin, on a comme approximation :
log2(n!) ≈ n log2(n)− n+O(log2(n))
10
PermutationRepresentation
I Pour chiffrer un message, on choisit au hasard
une permutation. On tire un nombre au hasard de
n log2(n) bits. Ce nombre sera notre clef K.
I Cela risque de prendre beaucoup de memoire.
I Pour generer une permutation aleatoirement, il va
falloir utiliser l’algorithme de Knuth-Fisher-Yates.
11
Exemples de chiffrementSubstitution
Definition 2. Dans un chiffre a substitution chaque
caractere du texte clair est remplace par un ca-
ractere correspondant dans le texte chiffre.
I Il existe 4 grandes familles de chiffres par substitution.
12
Substitution simple
I La regle de substitution est la suivante :
clair : A B C D · · · X Y Z
chiffre : D E F G · · · A B C
I On a par exemple :clair : VIVEMOI
chiffre : YLYHPRL
I On choisit de travailler sur une famille particuliere de
permutation : les permutations circulaires.
13
Substitution a representation multiple
I Carre de Polybe
1 2 3 4 5
1 α ζ λ π φ
2 β η µ ρ χ
3 γ θ ν σ ψ
4 δ ι ξ τ ω
5 ε κ o υ
I Le texte chiffre suivant correspond au texte clair :chiffre : 32 11 25 41 15 52
clair : µ α ξ δ φ κ
14
Substitution par polygramme
I Au lieu de travailler sur des caracteres isoles, on
effectue le chiffrement sur des blocs de caracteres.
I Par exemple : ABC sera chiffre en ZUG et ABR en RZT.
15
Substitution polyalphabetique
I Il s’agit de la composition de plusieurs substitu-tions simples. Le choix de la substitution simple a
employe peut dependre de la position dans le texte
ou d’une clef.
I Chiffre de Vigenere
16
Chiffre de Vigenere
A
B
C
D
E
F
G
H
I
0
0
B
C
D
E
F
G
H
I
A
1
1
C
D
E
F
G
H
I
A
B
2
2
D
E
F
G
H
I
A
B
C
3
3
E
F
G
H
I
A
B
C
D
4
4
F
G
H
I
A
B
C
D
E
5
5
G
H
I
A
B
C
D
E
F
6
6
H
I
A
B
C
D
E
F
G
7
7
I
A
B
C
D
E
F
G
H8
8
17
Chiffre de Vigenere
I La table contient tous les permutations circulaires
possibles.
I On a par exemple :clair : SICSEMPERTYRANNIS
clef : CESARCESARCESARCE
chiffre : UMUSVOTWRKAVSNEKW
18
Chiffre par transposition
Definition 3. Dans un chiffre par transposition chaque
caractere du texte clair reste inchange mais leurs po-
sitions sont modifiees.
I Exemple :C E D R I C D
O T L A U R A
D O U X A T I
N R I A D O T
F R
19
Principes de Kerchkoff(1883)
I Le systeme doit etre materiellement, sinon
mathematiquement indechiffrable.
I C’est le critere le plus difficile a comprendre qui traite
de la securite du chiffrement.
I Nous verrons ce que l’on peut vraiment faire au
troisieme cours pour la securite.
20
Principes de Kerchkoff(1883)
I Il faut qu’il n’exige pas le secret, et qu’il puisse sans
inconvenient tomber dans les mains de l’ennemi.
I La securite du systeme ne repose pas sur la securitedes algorithmes !
I Critere que les industriels ont tendance a oublier et
qui engendre des grandes catastrophes
I La securite du systeme repose uniquement sur le
secret de la clef !
21
Principes de Kerchkoff(1883)
I La clef doit pouvoir etre communiquee et retenue
sans le secours de notes ecrites, et etre changee ou
modifiee au gre des correspondants.
I Il faut qu’il soit applicable a la correspondance
telegraphique.
I Adapte au mode de communication.
22
Principes de Kerchkoff(1883)
I Il faut qu’il soit portatif et que son maniement ou son
fonctionnement n’exige pas le concours de plusieurs
personnes.
I Enfin, il est necessaire, vu les circonstances qui en
commandent l’application, que le systeme soit d’un
usage facile, ne demandant ni tension d’esprit, ni la
connaissance d’une longue serie de regles a observer.
23
CryptanalyseEvaluation
I Temps : temps d’execution de l’attaque.
I Memoire : memoire consommee par l’attaque.
I Donnee : couple clair/chiffre necessaire a l’at-
taque.
24
Attaque a chiffre seul
Definition 4. Dans une attaque a chiffre seul, Eve ne
dispose que des textes chiffres pour retrouver la clef
utilisee ou les messages echanges.
I Scenario le plus simple en sniffant le canal radio avec
Wireshark, on peut obtenir des messages chiffres.
26
Attaque a clair connu
Definition 5. Dans une attaque a clair connu, Eve
dispose des textes clairs et des chiffres correspondants
pour retrouver la clef utilisee ou les messages echanges.
I Messages predictibles comme les bulletins meteo (se-
conde guerre mondiale).
27
Attaque a clair choisi
Definition 6. Dans une attaque a clair choisi, Eve
choisit les messages qu’Alice va chiffrer et envoyer
a Bob.
I Influencer Alice (seconde guerre mondiale).
28
Recherche exhaustive
I Eve effectue une attaque a texte clair choisi. Elle
obtient la valeur c = EK(m) en ecoutant Alice.
I Eve calcule EKi(m) avec Ki ∈ K jusqu’a trouver la
valeur correspondante a c.
I Qu’elle est la quantite de travail effectuee par Eve ?
29
Recherche exhaustive
I C’est un probleme de tirage avec une urne contenant
|K| = 2n − 1 boules blanches et une boule noire.
I Eve gagne quand elle tire la boule noire. Les ti-
rages sont sans remise. Soit X une variable aleatoire
correspondant au numero du tirage de la boule noire.
Pr(X = 1) =1
2n
Pr(X = 2) =2n − 1
2n× 1
2n − 1
Pr(X = k) =1
2n
30
Recherche exhaustive
I On peut directement en deduire l’esperance.
E(X) =
2n∑1
i ·Pr(X = i)
=1
2n
2n∑1
i
=1
2n· 2
n(2n + 1)
2≈ 2n−1.
Il faut en moyenne E(X) = 2n−1 essais.
31
Dictionnaire
I Pour un texte clair donne m, Eve calcule toutes les
valeurs EKi(m) avec Ki ∈ K.
I Elle range dans un dictionnaire les |K| valeurs obte-
nues en associant EKi(m) a Ki.
I L’index pour le dictionnaire sera les valeurs EKi(m).
32
Dictionnaire
I Eve effectue une attaque a texte clair choisi. Elle
obtient la valeur c = EK(m) en ecoutant Alice.
I Eve effectue une recherche dans le dictionnaire de
la valeur c.
I Eve retrouve la clef K correspondant a c.
33
Chiffrement par bloc
I Modes operatoires
I Attaque de Hellman (compromis temps/memoire)
I Data Encryption Standard
I Renforcement : attaque meet-in-the-middle
I Advanced Encryption Standard
34
Chiffrement par bloc
I Un chiffrement par bloc E : Fn2 × K → Fn2 tel que
pour toutes clefs k ∈ K, Ek(m) est une fonctioninversible de Fn2 vers Fn2 .
I Un chiffrement aleatoire est un chiffrement
implementant toutes les permutations de 2n
elements. Malheureusement pour decrire une clef du
chiffrement aleatoire il faut log2(2n!) bits.
35
Chiffrement par bloc
I Dans un systeme par bloc, chaque texte clair est
decoupe en blocs de meme longueur et chiffre bloc
par bloc.
I La longueur ` des cles doit etre suffisante pour que la
recherche exhaustive consistant a dechiffrer le chiffre
avec toutes les cles possibles jusqu’a l’obtention du
clair, soit irrealiste (` ≥??).
36
ResultatSource : Wikipedia
I Le mode ECB ne permet pas de cacher la structure
des donnees qui sont chiffrees !
40
Chiffrement rendu aleatoire
I Un chiffrement rendu aleatoire permet en utilisant
une valeur aleatoire de chiffrer plusieurs fois un meme
message et d’obtenir des textes chiffres differents.
I On introduit un nonce dans le chiffrement.
Comment implementer un nonce ?
• avec un compteur ;
• avec un timestamp ;
• avec un nombre aleatoire ;
• combinaison des 3 precedents.
41
Cipher-Block Chaining (CBC)
I Si on a une erreur sur un bloc de texte chiffre ci alors
l’erreur sera propagee sur mi et mi+1. De la meme
facon, si on perd un bloc ci, on perd mi et mi+1 mais
pas mi+2.
I Le chiffrement est sequentiel.
I Le dechiffrement est parallele.
44
Output feedback (OFB)
I Une personne utilise le mode OFB avec une clef
secrete et un vecteur d’initialisation secret mais qu’il
ne change jamais.
I Montrer qu’il existe une attaque permettant de
dechiffrer n’importe quel message de cette per-
sonne. Est il possible de faire la meme attaque pour
CBC.
47
Output feedback (OFB)
I On note k1, k2 · · · kn la suite chiffrante definie par
∀i > 0 et ∀mi, ci = mi ⊕ ki.
I Si on realise une attaque a clair connu, on peut re-
trouver les k1, k2 · · · kn en calculant ki = ci⊕mi. Une
fois que l’on connaıt ces valeurs on peut dechiffrer
n’importe quel message !
I Faire tres attention aux vecteurs d’initialisation !
48
Output feedback (OFB)
I Si on a une erreur sur un bloc de texte chiffre ci alors
l’erreur sera propagee sur mi . Par contre si on perd
un bloc ci, on ne peut plus dechiffrer la suite car
on ne sait plut aligner les textes chiffres et la suite
chiffrante.
I Le chiffrement est sequentiel.
I Le dechiffrement est sequentiel.
49
Cipher feedback (CFB)
I Que se passe-t-il si on a une erreur sur un bloc de
texte chiffre ?
I Que se passe-t-il si on perd un bloc de texte chiffre ?
I Le chiffrement et le dechiffrement sont ils paralleles ?
52
CounTeR (CTR)
I Que se passe-t-il si on a une erreur sur un bloc de
texte chiffre ?
I Que se passe-t-il si on perd un bloc de texte chiffre ?
I Le chiffrement et le dechiffrement sont ils paralleles ?
55
Chiffrement par bloc
F F F F
K1 K3K2 Kr
r tours
cm
I Le principe general d’un chiffrement iteratif par blocs
est le suivant : pour chaque bloc, on itere r fois une
fonction interne F .
I Comme on veut que le chiffrement soit inversible
(pour pouvoir dechiffrer), il faut que les fonctions
FKisoient bijectives.
56
Diffusion et confusion
Definition 1. La diffusion doit permettre a chaque bit
de texte clair d’avoir une influence sur une grande partie
du texte chiffre. Ce qui signifie que la modification d’un
bit du bloc d’entree doit entraıner la modification de
nombreux bits du bloc de sortie correspondant.
I Effet avalanche : la modification d’un bit de l’entree,
on modifie un bit de la sortie avec probabilite 12.
Definition 2. La confusion doit cacher les structures
algebriques et statistiques du texte clair.
57
Attaque de HellmanRappel
I Temps : temps d’execution de l’attaque.
I Memoire : memoire consommee par l’attaque.
I Donnee : couple clair/chiffre necessaire a l’at-
taque.
58
Attaque de Hellman
Cryptanalyse Temps Memoire Donnee
Recherche exhaustive 2` 1 1
Dictionnaire 1 (2`) 2` 1
Attaque de Hellman ? ? ?
I L’attaque de Hellman est entre la recherche exhaus-
tive et l’attaque par dictionnaire.
59
Chaıne de chiffres
EsK1
E EK2
EKt
e
m m m m
Une chaıne de chiffres est definie par :K0 = s
Ki = EKi−1(m), 0 < i ≤ te = Kt
60
Attaque de HellmanPre-calcul
I On construit n chaınes de chiffres avec n points de
depart differents (s1, s2, · · · , sn).
E E E E
m m m m
s1 e1
m
E EEE
m m m
s2 e2
E
m
E
m
E
m
E
m
ensn
61
Attaque de HellmanPre-calcul
I On obtient n couples (si, ei).
I On choisit n et t tel que n× t = 2`.
I Le cout memoireM de notre pre-calcul est M = 2n.
I Le cout en temps T de notre pre-calcul est T =
n× t.
62
Attaque de HellmanPhase en ligne
I L’attaquant effectue une attaque a clair choisi m et
obtient le texte chiffre c = EK(m).
I On recherche le couple (sj, ej) qui contient K.
1. si c = ej alors K = K(j)t−1
2. si c 6= ej, ∀1 ≤ j ≤ n alors
on calcule
{K ′1 = Ec(m)
K ′i = EK′i−1(m)
jusqu’a obtenir K ′i = ej.
On a alors K = K(j)t−i−1.
63
Attaque de HellmanPhase en ligne
E E E
m m m
sj E
m
E ej
m
E
m m
E E
m
cE
m
I Dans le pire cas, on recalcule K = K(j)t−i−1 en partant
de sj en t− 1 operations.
64
Attaque de HellmanAnalyse
I On choisit n = 2`/2 et t = 2`/2
I Recapitulatif :
Cryptanalyse Temps Memoire Donnee
Recherche exhaustive 2` 1 1
Dictionnaire 1 (2`) 2` 1
Hellman (idealise) 2`/2 (2`) 2`/2 1
65
Attaque de HellmanEn pratique
I On a fait l’hypothese que les chaınes sont parfaites :
Toutes les chaınes sont distinctes et couvrent n × tclefs possibles.
I Dans la pratique, les chaınes fusionnent !
I Hellman a montre que du fait des collisions la relation
optimale entre `, M et T est donnee par :
2`+1 = T ×M 2.
66
Attaque de HellmanConstruction complete
I Au lieu d’avoir une table composee de n chaınes de
longueur t, on construit t tables.
I On a alors :
• T = t× t,•M = 2n× t.
I Hellman a propose de prendre t = m = 2`3
67
Recapitulatif
Cryptanalyse Temps Memoire Donnee
Recherche exhaustive 2` 1 1
Dictionnaire 1 (2`) 2` 1
Hellman (idealise) 2`/2 (2`) 2`/2 1
Hellman (reel) 22`/3 (2`) 22`/3 1
I Il existe plusieurs ameliorations a l’attaque d’Hell-
man :
• points distinguees de Rivest,
• rainbow table de Oeschlin,
• donnees multiples de Shamir (D > 1).
69
Attaque de HellmanEn pratique
I Il arrive que la taille des blocs chiffrees soit plus
grande que `. On doit alors utiliser une fonction de
reduction r :
Ex(m)
r(y)
r : {0, 1}n → {0, 1}`
70
DES (Data Encryption Standard)
I Caracteristiques :• Inspire de Lucifer (Horst Feistel).
• Concu par le NIST et mise en service en 1973.
• Schema de Feistel avec n = 64.
• ` = 56 bits (7 octets).
• r = 16.
I Premiere cryptanalyse : 1997.
71
Data Encryption Standard
I Juin 1997 : 96 jours (Deschall project, 78 000 PC)
I Fev. 98 : 39 jours (distributed.net, 8 millions de PC)
I Juil. 98 : 56 h (EFF DES cracker, $250 000)
I Janv. 99 : 22h15 (EFF DES cracker)
I Mars 07 : 6 jours (Copacobana, 9 000 Euros)
I DES n’est plus sur !
72
Renforcement du DES
I Puisque la principale faiblesse du DES est la taille
trop faible de ces clefs, on a essaye de composer
plusieurs DES pour rallonger la clef.
I Plusieurs strategies :• double-DES
• triple-DES
• modes operatoires composes
I Nouvelle cryptanalyse : attaque meet-in-the middle.
73
Double-DES
I Soient E et D respectivement un algorithme de
chiffrement et de dechiffrement :{E : {0, 1}` × {0, 1}n→ {0, 1}nD : {0, 1}` × {0, 1}n→ {0, 1}n
I Pour doubler la taille de la clef de E, on effectue
l’operation suivante :
c = Ek2(Ek1(m))
avec k1, k2 ∈ {0, 1}`. On attend une securite de 22`.
74
Attaque meet-in-the-middleDiffie et Hellman
I On effectue une attaque a clair connu : l’atta-
quant connaıt deux couples (m, c = Ek2(Ek1(m)))
et (m′, c′ = Ek2(Ek1(m′))).
I On observe la relation suivante :
c = Ek2(Ek1(m))
Dk2(c) = Dk2(Ek2(Ek1(m))
= Ek1(m)
75
Attaque meet-in-the-middle
I Etape 1 : on stocke Ek1(m) pour toutes les valeurs
possibles de k1.
I Etape 2 : on calcule Dk2(c) pour toutes les valeurs
possible de k2 et teste s’il existe Dk2(c) = Ek1(m).
I Etape 3 : on obtient des couples k′1, k′2 pour trouver
le bon, on cherche k′1, k′2 tel que c′ = Ek′2
(Ek′1(m′)).
77
Analyse
I Probabilite d’avoir Dk2(c) = Ek1(m) : 2m
2`.
I Cout de l’etape 1 : T = 2` et M = 2`
I Cout de l’etape 2 : T = 2` et M = 1
I Cout de l’etape 3 : T = 1 et M = 1
I Cout final : T = 2` + 2` et M = 2`
78