introduction a la cryptologie · chi rement par bloc i un chi rement par bloc e: fn 2 k! fn 2 tel...

79
Introduction ` a la cryptologie I La cryptologie est la science du secret. I La cryptographie est la branche de la cryptologie qui s’int´ eresse ` a la conception des ´ ecritures secr` etes. I La cryptanalyse est la branche de la cryptologie qui s’int´ eresse ` a l’analyse des ´ ecritures secr` etes. 1

Upload: others

Post on 05-Jun-2020

3 views

Category:

Documents


0 download

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

SolutionChiffrement

Alice

Bob

Eve

D m

Em

K

K′

EK(m)

EK(m)

EK(m)

3

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

CryptanalyseType

I Attaque a chiffre seul

I Attaque a clair connu

I attaque a clair choisi

25

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

Modes Operatoires

Comment chiffrer des longs messages ?

37

Electronic CodeBook (ECB)

Ek

m1

c1

Ek

m2

c2

Ek

ci

mi

Chiffrement

38

Electronic CodeBook (ECB)

Dk

c1

m1

Dk

mi

Dk

cic2

m2

Dechiffrement

39

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)

Ek

VI

m1

c1

Ek

m2

c2

Ek

ci

mi

Chiffrement

42

Cipher-Block Chaining (CBC)

VI

Dk

c1

m1

Dk

m2

c2

Dk

ci

mi

Dechiffrement

43

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)

Ek

VI

c1

Ek

c2

Ek

ci

m2

mi

m1

Chiffrement

45

Output feedback (OFB)

Ek

VI

Ek

m1 m2

Ek

mi

c2 ci

c1

Dechiffrement

46

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)

Ek Ek

VI

Ek

m1 m2 mn

cn

50

Cipher feedback (CFB)

Ek

VI

c1

Ek

m1

c2

m2

Ek

ci

mi

Dechiffrement

51

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)

VI

Ek

f

EkEk

c1

m1

m2

mi

cic2

Chiffrement

53

CounTeR (CTR)

c2 ci

c1

VI

Ek

m2

f

Ek

mi

Ek

m1

Dechiffrement

54

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

Attaque de HellmanEn pratique

68

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

T

m

k 1=0

k1=1

k1 =

2 `−1

...c

k2 =

0

k2 =

1

k 2=2` −

1

...

76

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

Reseau de permutation/substitution

I AES (Advanced Encryption Standard) :• publie in 2001.

• SPN avec n = {128, 192, 256}.• ` = {128, 192, 256}• Le nombre tour depend de n et `.

HHHHH

HHHHHH

HHHHH

n

`128 192 256

128 10 12 14

192 12 12 14

256 14 14 14

79