Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
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
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
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
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 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