cryptographie - ensiwiki.ensimag.fr4mmcsr... · cryptographie i introduction : chi rement sym...

64
Cryptographie I Introduction : chiffrement sym´ etrique I Registre ` a r´ etroaction lin´ eaire Principes et exemples, Propri´ et´ es statistiques, Algorithme de Berlekamp-Massey, Connexion avec les corps finis. I Cryptanalyse Lin´ earisation, Attaque par corr´ elation, Exemples. 1

Upload: others

Post on 18-Sep-2019

15 views

Category:

Documents


0 download

TRANSCRIPT

Cryptographie

I Introduction : chiffrement symetrique

I Registre a retroaction lineaire– Principes et exemples,

– Proprietes statistiques,

– Algorithme de Berlekamp-Massey,

– Connexion avec les corps finis.

I Cryptanalyse– Linearisation,

– Attaque par correlation,

– Exemples.

1

IntroductionChiffrement

Alice

Bob

Eve

m

m

Canal

c

c

m?

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).

3

Chiffrement symetrique

I On a : K = K ′.

I Il existe 2 types de chiffrement symetrique :

– chiffrement par bloc,

– chiffrement par flot.

I La securite d’un algorithme de chiffrement repose

uniquement sur le secret de la clef !

4

Comparaison

I Chiffrement par flot :– opere sur n’importe quelle taille de texte clair ;

– etat interne ;

– E = D ;

– modele de securite : one-time pad.

I Chiffrement par bloc :– opere sur des blocs de taille fixe (padding + mode) ;

– sans etat interne ;

– modele : diffusion et confusion.

5

Exemples

I Chiffrement par bloc :

– DES,

– AES.

I Chiffrement par flot :

– RC4 (WEP,SSL),

– E0 (Bluetooth),

– Crypto-1 (MiFare).

6

Chiffrement par flot

mn m2 m1

ktpt ct

miIV

clef

Seed

φ

f

• Principe :– Machine a etats finis

• Composants :– n bits d’etat ;

– f transition ;

– φ filtrage.

Questions :• Combien de choix possibles pour φ ?

• Combien de choix possibles pour f ?

7

Registre a retroaction lineaire

m1mn mn−1

c1 c2 cn−1

m0

cn

I Fonction de retroaction :

mn = mnc1 ⊕mn−1c2 ⊕ · · ·m1cn

I Tous les coefficients ci sont binaires.

I La longueur du registre est n.

8

Definitions

I Les bits (m0, · · · ,mn−1) determinent entierement

la suite produite. C’est l’etat initial du registre(graine).

I La suite (sp)p≥0 produite par un registre de longueur

n est donc une suite a recurrence lineaire homogene

d’ordre n. Inversement, ce type de suite peut toujours

etre produite par un registre lineaire.

I Question : combien existe t’il de fonctions lineaires ?

9

Definitions

I Une telle suite est ultimement periodique, c’est-a-

dire qu’il existe une pre-periode p0 telle que la suite

(sp)p≥0 est periodique.

I La suite s est ultimement periodique, de periode

T ≤ 2n − 1

(i.e. il existe un entier i0 tel que si = si+T pour tout

i > i0). Si, de plus, cn = 1, la suite s est periodique

(i.e. si = si+T pour tout i ≥ 0).

10

Demonstrations

I On note Mi = (si, si+1, · · · , si+n−1) l’etat du i-eme

registre. Celui-ci determine completement les reg-

istres ulterieurs. Ce registre peut prendre au plus 2n

etats.

I L’etat 0 = (0, · · · , 0) est un point fixe.

11

Demonstrations

I Si aucun Mi n’est nul parmi [M0,M1, ...,M2L−1], au

moins deux registres sont identiques. Supposons que :

Ri0 = Ri0+T ;

alors la suite des registres [Ri0, Ri0+1, ..., Ri0+T−1] se

repete indefiniment.

On a donc :

si = si + T pour tout i ≥ i0 avec T ≤ 2n − 1.

12

Complexite lineaire

I Associons a la suite (sp)p≥0 la serie generatrice definie

par :

s(X) =∑p≥0

spXp

I Soit un registre defini par la relation :

mn = mnc1 ⊕mn−1c2 ⊕ · · ·m1cn.

Son polynome de retroaction f est le polynome de

F2[X] :

f(x) = 1 + c1X + c2X2 + · · ·+ cnX

n.

13

Fraction rationnelle

I La suite (sn)n≥0 est produite par un registre ayant

pour polynome de retroaction f(x) si et seulement

si son developpement en serie formelle s(X) =∑p≥0 spX

p s’ecrit :

s(X) =g(X)

f(X).

14

Fraction rationnelle

I g est un polynome de F2[X] tel que deg(g) < deg(f).

I g est defini par l’etat initial du registre :

g(X) =

n−1∑i=0

X ii∑

j=0

ci−jmj.

I Demonstration – On a g(X) = s(X)f(X).

∀i ≥ 0, gj =i∑

j=0

ci−jmj

15

Complexite lineaire

I Afin d’obtenir une forme canonique de la serie

generatrice de (sp)p≥0, on definit le polynome de

retroaction minimal de la suite (ou du registre)

I Le polynome de retroaction minimal est un diviseurde f(X), qui de plus est le polynome de plus bas

degre parmi les polynomes de retroaction de tous les

registres possibles qui generent (sp)p≥0.

16

Complexite lineaire

I Soit (sp)p≥0 une suite binaire a retroaction lineaire

d’ordre n dont l’etat initial est non nul. Son polynome

de retroaction minimal est l’unique polynome uni-taire f0 de F2[X] tel qu’il existe g0 ∈ F2[X], avec

deg(g0) < deg(f0) et pgcd(g0, f0) = 1, verifiant :

s(x) =g0(X)

f0(X).

17

Complexite lineaire

I La complexite lineaire d’un registre produisant la

suite (sp)p≥0, notee Λ(s), est alors au degre de f0.

I En d’autre terme, la complexite lineaire d’un registre

produisant une suite (sp)p≥0 est la longueur du plus

petit registre permettant d’engendrer (sp)p≥0.

18

Exemple

000001 1 1 10

Questions :• Calculer f(X).

• Calculer g(X).

• Calculer Λ(s).

19

Exemple

I f(X) = X10 +X7 +X4 +X3 +X + 1

I Pour g(X), on a :

g(X) =

9∑i=0

X ii∑

j=0

ci−jmj

= X7 +X + 1

20

Exemple

I Calcul de Λ(s) :

s(X) =g(X)

f(X)

=X7 +X + 1

X10 +X7 +X4 +X3 +X + 1

=1

X3 + 1

I On a donc f0(X) = X3 + 1, Λ(s) = 3

21

Periode maximale

I Un polynome P appartenant a F2[X] est dit

irreductible s’il est de degre positif et si tout di-

viseur de P est une constante ou est produit de P

par une constante.

I Soit P un polynome de F2[X]. Son ordre, note

ord(P ), est le plus petit entier t tel que X t ≡1 mod P (X).

I Soit P un polynome irreductible de F2[X], de degre

m. Il est dit primitif s’il est d’ordre 2m − 1.

22

Periode maximale

I Si le polynome de retroaction minimal d’un registre

est primitif et que son etat initial est non nul, alors

la suite produite (sp)p≥0 est de periode maximale

2Λ(s) − 1 et est dite suite de longueur maximale.

23

Vision matricielle

A =

0 1 0 0 · · · 0

0 0 1 0 · · · 0... ... . . . . . . . . . ...

0 0 · · · 0 1 0

0 0 · · · 0 0 1

cn cn−1 · · · c3 c2 c1

I En considerant les etats successifs Ri du registre

comme des vecteurs colonnes, on a

Ri+1 = ARi.

24

Vision matricielle

I On remarque que l’on a :

Ri+n = AnRi.

I Le polynome caracteristique de A est defini par :

f(X) = det(Id−AX).

I De plus, on a : f(X) = Xnf(X−1).

25

Proprietes statistiques

I Demontrees par Golomb en 1982 :

– la sequence est equilibree ;

– les series sont equitables reparties ;

– la fonction d’autocorrelation prend 2 valeurs.

I Attention ces proprietes ne garantissent aucunement

la securite de la sequence !

26

Equilibre

I Dans chaque periode, le nombre de 0 est approxima-

tivement egal au nombre de 1 :∣∣∣∣∣T−1∑i=0

(−1)si ≤ 1

∣∣∣∣∣ .I Dans une suite de longueur maximale 2n − 1, toute

suite (si, si+1, · · · , si+n−1) de n elements non tous

nuls apparaıt une et une seule fois par periode.

27

Equilibre

I La demonstration est simple : un registre donne

Ri = (si, si+1, · · · , si+n−1) ne peut apparaıtre qu’une

fois par periode. Or il y a 2n− 1 etats par periode et

les registres prennent au plus 2n− 1 valeurs. Donc ils

prennent toutes les valeurs une fois.

I Question : combien y a t’il d’etats ayant la valeur

si a 1. Meme question pour 0. Conclusion ?

28

Serie

I Une serie (de 0 ou de 1) est une succession de

bits identiques, maximale (i.e. encadree par des bits

opposes).

I Soit S l’ensemble des series. Dans chaque periode, si

2k ≤ |S| < 2k+1, on trouve |S|/2 series de longueur

1, |S|/4 series de longueur 2, . . . , |S|/2k series

de longueur k, et pour chaque longueur, autant de

series de 0 que de series de 1.

29

Serie

I Demonstration. Comptons le nombre d’occurence

d’une serie d’exactement k zeros. Cela revient a

compter les occurences de (1, 0, · · · , 0︸ ︷︷ ︸k

, 1). Comme

tous les etats Ri = (si, si+1, · · · , si+n−1) apparaissent

une et une seule fois, un registre compose de

(1, 0, · · · , 0︸ ︷︷ ︸k

, 1, si+k+2 · · · , si+n−1),

apparaıt 2n−k−2.

30

Correlation

I La fonction d’autocorrelation s’ecrit :

C(τ) =T−1∑i=0

(−1)sisi+τ .

Questions :• Demontrer la propriete d’autocorrelation

• Exploiter la propriete d’equilibre pour cela.

31

Cryptanalyse

I Les attaques par recouvrement de clef, qui visent

a retrouver la clef secrete du generateur a partir

de la connaissance d’un certain nombre de bits de sa

sortie.

I Attaque la plus puissante !

32

Cryptanalyse

I Les attaques par recouvrement de l’etat ini-tial, dont l’objectif est de retrouver l’initialisation

du generateur (ou de facon equivalente un etat in-

terne complet).

I La connaissance de la clef secrete suffit naturellement

pour retrouver l’initialisation, mais la reciproque n’est

pas necessairement vraie.

33

Cryptanalyse

I Les attaques par prediction du bit suivant con-

sistent a partir de la connaissance des n premiers

bits de la suite engendree par le generateur pour une

certaine clef, a predire la valeur du bit suivant

34

Cryptanalyse

I Les attaques par distingueur determinent si une

suite de n bits correspond a la sortie du generateur

pseudo-aleatoire considere ou s’il s’agit d’une suite

veritablement aleatoire.

35

CryptanalyseComplexite

I Temps : duree d’execution de la cryptanalyse.

I Memoire : memoire necessaire pour l’attaque.

I Donnees : quantite de donnees necessaires a l’at-

taque.

I On parle de compromis temps/memoire/donnee

(TMD).

36

Algorithmique et TMD

unsigned int v;

unsigned int c;

for (c = 0; v; c++)

{

v &= v - 1;

}

Questions :• Que fait cette algorithme ?

• Quel est sa complexite ?

37

Algorithmique et TMD

unsigned int v;

unsigned int c;

c = T[v & 0xff] +

T[(v >> 8) & 0xff] +

T[(v >> 16) & 0xff] +

T[v >> 24];

Questions :• Que fait cette algorithme ?

• Quel est sa complexite ?

38

Algorithmique et TMD

unsigned int v;

unsigned int c;

v = v-((v>>1)&0x55555555);

v = (v&0x33333333)+((v>>2)&0x33333333);

c = ((v+(v>>4)&0xF0F0F0F)*0x1010101)>>24;

Questions :• Que fait cette algorithme ?

• Quel est sa complexite ?

39

Algorithme de Berlekamp Massey

I A partir d’un certain nombre de bits de (sp)p≥0,

l’algorithme de Berlekamp-Massey retrouve le

polynome minimal f(X) d’un registre qui le genere.

I Supposons que le polynome f a un degre plus petit

que n. Il est necessaire de connaıtre 2n bits de la

sequence pour trouver f .

I L’algorithme de Berlekamp-Massey a une complexite

O(n2). Il est possible d’utiliser un algorithme plus

simple mais dont la complexite est O(n3).

40

Reconstruction par elimination de Gauss

I On peut construire le systeme suivant :

sn = c1sn−1 ⊕ c2sn−2 ⊕ · · · ⊕ cns0

sn+1 = c1sn ⊕ c2sn−1 ⊕ · · · ⊕ cns1

sn+2 = c1sn+1 ⊕ c2sn ⊕ · · · ⊕ cns2

... ... ...

s2n−1 = c1s2n−2 ⊕ c2s2n−1 ⊕ · · · ⊕ cnsn−1

I Question : Donner la complexite de cette methode.

41

Berlekamp-Massey

I Entree : sequence de bits (s0, s1, · · · ) generes par un

registre lineaire.

I Sorties : n et les c0, c1 · · · cn tels que :

c0st = c1st−1 + · · ·+ cnst−n.

42

43

Berlekamp-MasseyExercice

I Pour le prochain cour, executez cet algorithme pour

la sequence (0, 1, 1, 1, 1, 0, 0).

I Correction et explications au prochain cours

44

Connexion avec les corps finis

I Un corps (K,+, ·, ”0”, ”1”) est defini par :– deux operations internes : + et ·.– associatives et distributivite.

– Elements neutres : ”0” pour +, ”1” pour x.

– Chaque u ∈ K a un oppose pour la loi + : −u tel

que u− u = 0.

– Chaque u ∈ K? a un inverse pour · : u−1 tel que

u · u−1 = 1.

I Les corps finis sont appeles corps de Galois.

45

Les corps finis

I Exemples de corps finis :

– Fp = Z/pZ avec p premier,

– F2 = (0, 1,⊕, ·),

– F256 = F28.

I Conseil de lecture : Finite Fields for Computer

Scientists and Engineers de Robert J. McEliece

46

Extension de corps finis

I Soit P un polynome primitif de F2[X] defini par :

P (X) = Xm + am−1Xm−1 + · · ·+ a1X + 1.

Si on note α une racine de P , alors α engendre le

sous-groupe multiplicatif d’ordre 2m − 1 de F?2m.

I On peut donc definir F2m comme le quotient

F2[X]/P (X).

47

Extension de corps finis

I On voit Fm2 comme un espace vectoriel (Fm2 ).

I La construction de la base polynomiale consiste a

prendre comme elements de la base les puissances

successives de α :

1, α, α2, · · · , αm−1.

48

Multiplication dans la base polynomiale

I Pour realiser une multiplication, on remarque que :

αns = α(α(α(. . . (α︸ ︷︷ ︸n

s))).

I L’expression de s dans la base polynomiale

(1, α, α2, · · · , αm−1) est donnee par :

s = sm−1αm−1 + · · ·+ s1α+ s0,

avec si ∈ F2 les coordonnees de s dans la base

polynomiale.

49

Multiplication dans la base polynomiale

I Le produit αs peut s’exprimer comme :

αs = sm−1αm + sm−2α

m−1 + · · ·+ s1α2 + s0α.

I Comme α est une racine de P , on obtient l’expression

du produit :

αs = (sm−1am−1 + sm−2)αm−1 + · · ·

+ (sm−1a1 + s0)α+ sm−1.

50

Multiplication dans la base polynomiale

I Si on note (αs)i les coordonnees du produit αs alors

on a :

(αs)i = sm−1ai + si−1 si 0 < i < m;

(αs)0 = sm−1.

sm−1sm−2s2s1s0

am−2 am−1a1 a2

51

Exemple

I Soit P (X) = X4 + X + 1 un polynome tel que

F16 = F2[α] avec P (α) = 0.

I Les coordonnees du produit αs sont donnees par :

s0 = s3

s1 = s0 + s3

s2 = s1

s3 = s2

52

n ` s0 s1 s2 s3

0 15 1 0 0 1

1 14 1 0 0 0

2 13 0 1 0 0

3 12 0 0 1 0

4 11 0 0 0 1

5 10 1 1 0 0

6 9 0 1 1 0

7 8 0 0 1 1

8 7 1 1 0 1

9 6 1 0 1 0

10 5 0 1 0 1

11 4 1 1 1 0

12 3 0 1 1 1

13 2 1 1 1 1

14 1 1 0 1 1

15 0 1 0 0 1

n ` s0 s1 s2 s3

0 15 1 0 0 1

1 14 1 0 1 1

2 13 1 1 1 1

3 12 0 1 1 1

4 11 1 1 1 0

5 10 0 1 0 1

6 9 1 0 1 0

7 8 1 1 0 1

8 7 0 0 1 1

9 6 0 1 1 0

10 5 1 1 0 0

11 4 0 0 0 1

12 3 0 0 1 0

13 2 0 1 0 0

14 1 1 0 0 0

15 0 1 0 0 1

53

Division corps finis

I Les coordonnees (α−1s)i de la division sont donnees

par :

(s/α)i = s0ai + si+1 si 0 < i < m;

(s/α)m−1 = s0.

sm−1sm−2s2s1s0

am−2 am−1a1 a2

I A faire en exercice !

54

Multiplication dans la base duale

I La base duale (β0, β1, · · · , βm−1) de la base polyno-

miale est definie par :

Tr(βiαj) =

{1 si i = j

0 si i 6= j,

I La trace de F2m dans F2 d’un element a ∈ F2m est

definie par :

Tr(a) = a+ a2 + a4 + · · ·+ a2m−1.

55

Operateur Trace

I Pour tout a et tout b de F2m, on a :

• Tr(a+ b) = Tr(a) + Tr(b) ;

• Tr(a2) = Tr(a) ;

• Tr(λa) = λTr(a) avec λ ∈ F2.

I Exemple : soit P (X) = X5 + X2 + 1 un polynome

tel que F32 = F2[X]/P(X) avec P (α) = 0. La base

(α4+α2+α+1, α4+α3+1, α3+1, α4+α2+α, α3+α+1)

est la base duale de la base polynomiale

(1, α, α2, α3, α4).

56

Multiplication dans la base duale

I Considerons l’expression d’un element s de F2m dans

la base duale :

s = s?m−1βm−1 + · · ·+ s?1β1 + s?0β0.

avec s?j les coordonnees de s dans la base duale. On

a alors :

s?j = Tr(sαj) , j = 0, · · · ,m− 1.

57

Multiplication dans la base duale

I Les coordonnees (αs)?j du produit αs sont donc

definies par :

(αs)?j = Tr(sαj+1).

I On obtient alors :

(αs)?j = s?j+1 , j = 0, 1, · · · ,m− 2

(αs)?m−1 = Tr(sαm) = am−1s?m−1 + · · ·+ a1s

?1 + s?0

58

Multiplication dans la base duale

s⊥m−2

am−1 am−2 a2 a1

s⊥m−3s⊥m−1 s⊥0s⊥1

I Ca doit vous rappeler quelque chose. . .

59

Exemple

I Soit P (X) = X4 +X + 1 le polynome tel que F16 =

F2[α] avec P (α) = 0. La base (α3 + 1, α2, α, 1) est

la base duale de la base polynomiale (1, α, α2, α3).

I La valeur s dont les coordonnees s?j dans la base

duale sont definies par :

s?i = Tr(sαi)

=∑m−1

j=0 sjTr(αi+j)

avec sj les coordonnees de s dans la base polynomi-

ale.

60

Exemple

I De plus on a : Tr(1) = 0, T r(α) = 0, T r(α2) =

0 et Tr(α3) = 1.

I On obtient les formules de changement de base suiv-

antes :s?0 = s3,

s?1 = s2,

s?2 = s1,

s?3 = s0 + s3

61

n ` s?3 s?2 s?1 s?00 15 1 0 0 1

1 14 1 1 0 0

2 13 0 1 1 0

3 12 1 0 1 1

4 11 0 1 0 1

5 10 1 0 1 0

6 9 1 1 0 1

7 8 1 1 1 0

8 7 1 1 1 1

9 6 0 1 1 1

10 5 0 0 1 1

11 4 0 0 0 1

12 3 1 0 0 0

13 2 0 1 0 0

14 1 0 0 1 0

15 0 1 0 0 1

n ` s?3 s?2 s?1 s?00 15 1 0 0 1

1 14 0 0 1 0

2 13 0 1 0 0

3 12 1 0 0 0

4 11 0 0 0 1

5 10 0 0 1 1

6 9 0 1 1 1

7 8 1 1 1 1

8 7 1 1 1 0

9 6 1 1 0 1

10 5 1 0 1 0

11 4 0 1 0 1

12 3 1 0 1 1

13 2 0 1 1 0

14 1 1 1 0 0

15 0 1 0 0 1

62

Equivalence

I Configuration de Fibonacci :

y0 y1 y2 y3

I Configuration de Galois :

x1x0 x2 x3

63

Equivalence

I Soit (ut)t≥0 la suite produite par le dernier bit d’une

configuration de Galois definie par le polynome P et

initialisee par x.

I Soit (vt)t≥0 la suite produite par le dernier bit d’une

configuration de Fibonacci definie par le polynome P

et initialise par y. Soit x =∑m−1

i=0 xiαi ou α est une

racine de P . Soit y =∑m−1

i=0 yiβi ou (β0, β1, · · · , βm)

est le base duale de (1, α, · · · , αm−1).

I (ut)t≥0 et (vt)t≥0 sont egales si et seulement si :

y = βm−1 × x.

64