Upload
massi2962
View
24
Download
0
Embed Size (px)
Citation preview
Cryptanalyse : chiffrement par flot
Pierre-Alain FouqueDpartement dInformatiqueEcole normale suprieure
Plan
Technique gnrale: Piling up lemma birthday paradox (et gnralisation) distingueur
Attaques gnrales de streams: recherche exhaustive et compromis temps/mem attaque par corrlation (rapide)
Attaques spcifiques de streams: A5, RC4,..
Piling-Up Lemma
Th: Soit n VA binaires indpendantes X1,...,Xn de biais i, ie tq Pr(Xi=1)=1/2(1+i). Alors le biais de i=1n Xi est (-1)ni=1n i.
Preuve: Rcurrence sur n. Pr(X=1)=Pr(i=1n-1 Xi=1)Pr(Xn=0)+Pr(i=1n-1
Xi=0)Pr(Xn=1)=1/4(1+(-1)n-1i=1n-1 i)(1-n) + 1/4(1-(-1)n-1i=1n-1 i)(1+n)=1/2-2n-1i=1n i.
Paradoxe des anniversaires
Si on choisit indpendamment et au hasards N lments dans D, alors Pr(collision)>1/2 si N>D.
Etant donn 2 listes L1, L2, dlments choisis uniformment et indpendamment dans {0,1}n, trouver x1L1 et x2L2 tq
x1x2=0n. Pr(solution x1 et x2)=|L1||L2|/2n
Paradoxe des anniversaires
Version gnralise: tant donn k listes Li, trouver i,
xiLi tq i=1n xi=0n.
Existence dune solution si i=1n|Li|=2n.
Cas n=4. Existence solution si |Li|2n/4. Trouver une telle solution peut se faire en temps et mmoire 2n/3.
Construire 4 listes de 2n/3 l. chacune et un arbre de collision: apparier les n/3 bits de L1 et L2 dans L1 et ceux de L3 et L4 dans L2. |Li|2n/3. Donc, collision entre ces deux listes sur 2n/3 bits avec proba. 1/2.
Distingueur
Test dhypothse: H={1,2} Observation X dans ensemble E Deux distributions: eE, Di(e)=P(X=x|H=i)
eE Di(e)=1, EE, Di(E)= eE Di(e)
Rgle de dcision: A distingueur dfini par E1= domaine dacceptation o A retourne 1
psucc(A)=p1xE1P(X=x|H=1)+p2xE2P(X=x|H=2)
psucc(A)=p1D1(E1)+p2D2(E2)
Distingueur optimal
Lemme de Neyman Pearson: S={xE|p1D1(x)>p2D2(x)}
Distingueur optimal (Aopt): E1=S A, psucc(A)psucc(Aopt)
Rapport de vraisemblance: D1(x)/D2(x)>? o =p2/p1.
Si =1, Aopt retourne 1 si D1(x)>D2(x) Si p1=0.9, A retourne toujours 1, psucc(A)=0.9
Expriences multiples
M-uplet au lieu dune valeur D1M et D2M les deux distributions On peut montrer que si elles sont proches:
si on fait M=d/xE (D1(x)-D2(x))2/D1(x)
tirages, alors la proba de distinguer est psucc=1-1/2-d/2 exp(-u2/2) du.
Si E={0,1}, et D2 dist. uniforme, D1(1)=0.5(1+), est le biais et on va mq M-2 pour distinguer
Approximation gaussienne
Si D2M uniforme sur {0,1}M, D2M(e)=1/2M. T VA nombre dindices i de e tq ei=1. Si T=t,
D1M(e)=1/2M(1+)t(1-)M-t Et lensemble des M-uplet tq T=t, D1M(T=t)=D1M(Et)=CtM1/2M(1+)t(1-)M-t
D2M(T=t)=CtM1/2M
Pour M grand, D1M se comporte comme gaussienne, Esp=M/2(1+), M/2.
Gaussienne (suite)
De mme pour D2M(T) centre en M/2. Elles sont approches par
P(Tt)=1/(2)-t exp(-1/2(x-Esp)2/)dx P(TEsp+n)=1/(2)-n exp(-1/2u2)du Distingueur optimal: si p1=p2=0.5, alors
n=M/2, psucc=1-1/2erfc(n/2), o psucc(n)=0.5 (n=0), 0.84134 (n=1), 0.97723(n=2), 0.99999 (n=5), donc il faut prendre M-2.
11
Stream Cipher
GPA
Clair P Chiffr C
Cl K
Gnrateur Pseudo-Alatoire (GPA)Traitement bit bit des donnes
Pseudo-ala
12
Stream Cipher
Suite binaire pseudo-alatoireGPA(K) = s1 s2 sn
ClairP = p1 p2 pn
ChiffrC = c1 c2 cn
On a : i, ci = pi si
Vigenre
cl: mot de passe key chiffrement: Ekey(BONJOUR)=(B+k,O+e,N
+y,J+k,O+e,U+y,R+k) Attaque shift: i=025 pi2 0.065 sur le clair qi proba de la i-me lettre dans le chiffr Si la cl est k, on attend que qi+k soit
environ pi pour tout i Ij=i=025 pi.qi+j pour j{0,...,25}, Ik0.065
13
14
Commentaires
Le pseudo-ala gnr est de mme taille que le message chiffrer
Pour la cryptanalyse, on se place toujours clair connu
Lattaquant connat les sorties du GPA
15
But de lattaque
GPA
Clair P Chiffr C
Cl K
Pseudo-ala
1 Trouver K partir du Pseudo-ala
2 Distinguer le Pseudo-ala de vrai ala
16
Qualit de lala
Si le pseudo-ala gnr nest pas bon :Proba[si = 0] = 0.5 +
Alors le chiffr fait fuir de linformation sur le clair :
ci = si piProba[ci = pi] = 0.5 +
17
Diffrentes attaques
Attaques gnriques Recherche exhaustive Compromis Temps / Mmoire
Attaques par Corrlation Attaques ddies contre certains
algorithmes
18
Attaques gnriques Recherche exhaustive Compromis Temps / Mmoire
Attaques par Corrlation Attaques ddies contre certains
algorithmes
Attaques gnriques
19
Attaques gnriques
Cl de k bits 2k cls possibles
56 256 Cycles/an processeur 2 Ghz
56 256 Taille de cl DES
64 264 Calcul distribu (07/2002)
72 272 Calcul distribu en cours
128 2128 Taille de cl standard AES
20
Recherche exhaustive
Est-ce toujours possible ? Il faut une condition pour identifier la bonne cl (ex : clair + chiffr correspondant)
Pour un stream cipher, il faut connatre k bits de pseudo-ala pour avoir une bonne chance de succs
21
Recherche exhaustive
On cherche une cl inconnue Kvraie
On suppose connus s1 sm
for Kcandidate = 1 to 2k
Calculer GPA(Kcandidate) = s1 sm
Si (s1 sm) == (s1 sm), on prdit que
Kvraie = Kcandidate
21
Recherche exhaustive
On cherche une cl inconnue Kvraie
On suppose connus s1 sm
for Kcandidate = 1 to 2k
Calculer GPA(Kcandidate) = s1 sm
Si (s1 sm) == (s1 sm), on prdit que
Kvraie = KcandidateProbabilit de fausse alerte = 2-t
Nombre de fausses alertes 2k 2-t
Ds que t>k, on a de bonnes chances de succs
22
tat interne du GPA
tat interneEi du GPA
Fonctiondvolution
Fonctionde sortie
Bit de sortie si(Pseudo-ala)
Ltat internecontient t casesmmoires de 1 bit
En gnral E0 est quivalent la cl
23
tat interne du GPA
La sorties du GPA pour i i0 (notes si) ne dpendent que de ltat interne Ei linstant i
On peut donc effectuer une recherche exhaustive sur Ei en vrifiant le bon candidat grce aux {si}ii0
Cela cote 2t oprations
24
Conclusion
Il faut que La cl K Ltat interne du GPA
soient assez grands pour se protger de la recherche exhaustiveTypiquement
t k 128
25
Compromis Temps / Mmoire
On sautorise faire un prcalcul (pendant un temps P) stocker des donnes en mmoire lissue du
prcalcul (M bits de stockage) Est-il alors possible de rduire le temps T = 2t
pass dans une attaque ?
26
Compromis en 2t/2
E1 E2 Ei
Supposons que lon connaisse m bits de sortie
s1 s2 si
Ei+t-1
si+t-1
Em
sm
26
Compromis en 2t/2
E1 E2 Ei
Supposons que lon connaisse m bits de sortie
s1 s2 si
Ei+t-1
si+t-1
(Ei) = fentre de t bits
Dfinissons la fonction :
: {0,1}t {0,1}t Ei (si, , si+t-1)
Em
sm
27
Compromis en 2t/2
associe un tat interne de t bits, la fentre des t prochains bits de pseudo-ala gnrs
nest pas forcment inversible !
Toutefois, pour une fentre donne, il ny a en moyenne que 1 antcdent par
28
Ide
On prcalcule limage par de 2t/2 tats internes quelconques
On connat limage par de m = 2t/2 tats internes diffrents (pseudo-ala connu)
2t/2 2t/2 = 2t
On sattend donc une collision (identifiable en regardant les sorties du GPA)
29
Compromis en 2t/2
Prcalcul Choisir 2t/2 tats internes x1, , x2t/2 au hasard
Calculer yi = (xi) pour tout les i
Stockage Stocker (tableau T) les paires (xi, yi) tries selon yi
Attaque Pour i=1 m, chercher identifier la fentre de sortie
connue (si, , si+t-1) avec un lment ya de T
Retourner Ei = xa
30
Analyse
Temps de prcalcul 2t/2 oprations
Mmoire utilise 2t/2 bits
Temps de lattaque 2t/2 oprations
31
Conclusion
Il faut toujours prendre un tat interne plus grand que le niveau de scurit attendu
En gnral
t 2 k
32
Remarque
Autre compromis possible :T = 22t/3
P = 22t/3
M = 2t/3
avec m = 2t/3 bits de sortie connusAmlioration du compromis de Hellman
33
Attaques par corrlation
Attaques gnriques Recherche exhaustive Compromis Temps / Mmoire
Attaques par Corrlation Attaques ddies contre certains
algorithmes
34
Attaques par corrlation
Attaques ddies contre les algorithmes bass sur des Linear Feedback Shift Registers (LFSR)
35
Les LFSR
Linear Feedback Shift Register (LFSR) Registre Dcalage Rtroaction Linaire
(RDRL) Trs utiliss dans les algorithmes de
chiffrement par flot
36
Combinaison
LFSR numro 1
LFSR numro 2
LFSR numro n
.
.
.F Pseudo-ala
37
Combinaison
LFSR numro 1
LFSR numro 2
LFSR numro n
.
.
.F Pseudo-ala
La fonction F nest pas parfaite
38
Corrlation ou Biais
F
X1
X2
Xn
Y = F(X1,,Xn)
On suppose :Proba[Y = X1] = 0.5 +
39
Modlisation
LFSR numro 1
Pseudo-ala
X1
FLFSR numro 2
LFSR numro n
.
.
.
X2
Xn
Y = F(X1,,Xn)
39
Modlisation
LFSR numro 1
Pseudo-ala
X1
FLFSR numro 2
LFSR numro n
.
.
.
X2
Xn
Y = F(X1,,Xn)
Canal bruit :Y = X1
avec probabilit 0.5 +
40
Ide de lattaque
LFSR numro 1X1
Canalavec
bruit Pseudo-alaY
Recherche exhaustive sur ltat du LFSR
On teste si les suites produites sont corrles avecle pseudo-ala observ
41
Attaque
Taille de LFSR1 = L bits (tat initial E0)
On connat les sorties (s1, , sm) du GPA
pour E0 = 1 2L
Calculer les sorties (s1, , sm) du LFSR initialis avec E0 Calculer p = #{i tel que si = si}
41
Attaque
Taille de LFSR1 = L bits (tat initial E0)
On connat les sorties (s1, , sm) du GPA
pour E0 = 1 2L
Calculer les sorties (s1, , sm) du LFSR initialis avec E0 Calculer p = #{i tel que si = si}
Bon E0 p 0.5 +
Mauvais E0 p 0.5
42
Analyse
En pratique, il faut gnralement m > -2
Ltat initial E0 fournit de linfo sur la cl
On peut rpter lattaque sur LFSR2, etc
On parle d attaque par corrlationT = m 2L
43
Exemple : Geffe
LFSR numro 1
LFSR numro 2
LFSR numro 3
F Pseudo-ala
X1
X2
X3
L1
L2
L3
43
Exemple : Geffe
LFSR numro 1
LFSR numro 2
LFSR numro 3
F Pseudo-ala
X1
X2
X3
If (x1 == 1)Then x2Else x3
L1
L2
L3
43
Exemple : Geffe
LFSR numro 1
LFSR numro 2
LFSR numro 3
F Pseudo-ala
X1
X2
X3
If (x1 == 1)Then x2Else x3
Quel biais a-t-on ?
L1
L2
L3
44
Rponse
Y = If(X1) then (X2) else (X3)
X2 = Y avec probabilit
X3 = Y avec probabilit
Donc on retrouve ltat initial du registre 2 (resp. 3) avec complexit 2L2 (resp. 2L3)
Au total, attaque en
T = 2L1 + 2L2 + 2L3
45
Extension
Extension Proba[C.L.(X1, , Xn) = Y] = 0.5 +
Extension en attaque chiffr seul quand le clair est biais Proba[pi = 0] = 0.5 +
On attaque chiffr seul en utilisant le biais ./4 (Piling-up lemma)
Correlation-immune
Df: X1, X2, ..., Xn n VA indpendante valeur 0,1 avec proba. 1/2. f(x1,...,xn) est m-order correlation-immune si sous-ensemble
Xi1,..., Xim de m bits, Z=f(X1,...,Xn) est statistiquement indpendant de (Xi1,...,Xim).
Par exemple, le XOR est (n-1) immune. Si f est m-order immune (m
47
Attaques par Corrlation Rapides
Lorsquon prend des registres suffisamment grands (de taille L 128 bits), lattaque prcdente est trop coteuse !
Cas du Filtrage LFSR (L bits)
FPseudo-ala
48
Modle
tat initial du LFSR = cl = (k1, , kL)
tat linstant i = (x1(i), , xL(i))
Sortie du GPA = zi = F (x1(i), , xL(i))
Hypothse :F est biaise : C.L. telle que :
Proba[C.L.(x1(i), , xL(i)) = zi] = 0.5 +
49
Modle
LFSR tat = (x1(i), , xL(i))
F
Pseudo-ala
49
Modle
LFSR tat = (x1(i), , xL(i))
F
Pseudo-ala
C.L.(x1(i), , xL(i))
zigalit avecprobabilit
0.5 +
50
Lien avec la cl
Les xj(i) dpendent linairement de la cl
(x1(i), , xL(i)) = i(k1, , kL)
o est la fonction dvolution du LFSR
Proba[(C.L. i) (k1, , kL) = zi] = 0.5 +
quation linaire biaise
51
Fonction dvolution
quation de rebouclage du LFSR
x1(t+1) = 1 x1(t) + + L xL(t)xi(t+1) = xi-1(t) pour i>1
=
52
quations
i=0 (C.L. ) (k1, , kL) = z0 proba = 0.5+
i=1 (C.L. 1 ) (k1, , kL) = z1 proba = 0.5+
i=m (C.L. m) (k1, , kL) = zm proba = 0.5+
Comment exploiter ces quations ?
53
Dcodage
rsoudre un systme dquations linaires biaises
Proche des problmes de dcodage Problme difficile dans le cas gnral
54
Rsolution
Ide : construire des mots (i.e. des combinaisons dquations) de poids faible
Appliquer un algorithme de dcodage pour prdire la valeur de chaque bit de cl
55
Parity Checks
Combinaison des quations t.q.
i ai (C.L. i)(k1, , kL) = k1 Dans ce cas on montre que
i ai zi = k1
avec probabilit 0.5(1 + (/2)h)
h = #{ai = 1}
valuation de k1 grce aux sorties
56
Attaque
Attaque en plusieurs phases Construire M parity checks (phase
indpendante du pseudo-ala observ)
Observer le pseudo-ala {zi} produit par le GPA
valuer les M parity checks grce aux zi La valeur majoritaire est la valeur de k1
57
Parity checks
Recherche de multiples creux (h petit) du polynme de rebouclage.
Trs coteux mais plus facile si le polynme est dj creux
Il faut en obtenir M > (/2)-2h
58
Synthse
Les attaques par corrlation sont un outil puissant contre les LFSR
Ltude des proprits de la fonction F sont essentielles dans ces constructions
59
Autres Attaques
Attaques gnriques Recherche exhaustive Compromis Temps / Mmoire
Attaques par Corrlation Attaques ddies contre certains
algorithmes
60
A5/1 et A5/2
Norme de tlphonie GSM Algorithmes utiliss pour le chiffrement
A5/1 : stream cipher A5/2 : stream cipher A5/3 : block cipher KASUMI en mode OFB
A5/1 et A5/2 longtemps rests confidentiels (jusquen 1999)
61
A5/1
Algorithme minimaliste (contrainte de surface matrielle)
Taille de cl = 64 bits tat interne = 64 bits Combinaison de LFSR avec contrle de
lhorloge
62
A5/1
LFSR 1
LFSR 2
LFSR 3
Pseudo-ala
62
A5/1
LFSR 1
LFSR 2
LFSR 3
Pseudo-ala
Majorit LFSR i est clockssi bi = majorit
b1
b2
b3
63
Attaques contre A5/1
Compromis Temps/Mmoire T 242
M 221
Reconstruction de ltat interne Recherche exhaustive sur 10 bits/registre
Prdiction des sorties pour quelques tours Algbre linaire pour retrouver la cl
Attaques ralisables en temps rel ?
64
A5/2
LFSR 1
LFSR 2
LFSR 3
Pseudo-ala
Majorit
Majorit
Majorit
64
A5/2
LFSR 1
LFSR 2
LFSR 3
Pseudo-ala
Majorit
Majorit
Majorit
LFSR 4
Majorit
LFSR i est clockssi bi = majorit
b0 b1 b2
65
A5/2
tat interne plus grand que A5/1 (81 bits) Calcul non-linaire des sorties (F de degr 2) Registre auxiliaire de contrle
Faiblesse potentielle ? Structure plus simple
66
Cryptanalyse de A5/2
Recherche exhaustive sur ltat initial de LFSR 4 Complexit 216
Toutes les avances sont connues
Les sorties du GPA sont des fonctions quadratiques de la cl (Majorit)
67
Attaque algbrique
Cl = k1, , k64 Sorties du GPA = polynme en les ki :
Monmes de degr 0 : 1 Monmes de degr 1 : k1, , k64 Monmes de degr 2 : ki kj
Nombre de monmes NN = 1 + 64 + (64*63)/2 = 2081
68
Attaque algbrique
En fait, on a N = 656 monmes Linarisation :
Chaque monme = nouvelle variable
656 bits de sortie du GPA connus Systme linaire
656 quations 656 inconnues
69
Synthse
La rsolution cote environ 6563 227 oprations (algorithme de Gauss)
Au totalT = 216 227 243
70
Amlioration
Systme Ax = b
Bits de sortie du GPAMatrice connue 656x656
Inconnue
70
Amlioration
Systme Ax = b
Bits de sortie du GPAMatrice connue 656x656
Inconnue
Prcalculer la matrice inverse A-1
71
En pratique
Attaque quasi instantane < seconde Prcalcul de 4 heures sur un PC
Possibilit de changer dalgorithme mauvais protocole de ngociation
Cl A5/2 = Cl A5/1 = Cl A5/3
Attaque chiffr seul clair connu grce au code correcteur CRC
72
Autres Cryptanalyses
Attaques algbriques Linarisation Bases de Grbner
Attaques pour les LFSR avec contrle de lhorloge
Attaques contre RC4
RC4 S: tat interne de 256 octets et i, j: 2 indices=octet
KSA: initialiser S[i]=i
for i=0 255 do j=j+S[i]+K[i mod k] mod 256 swap(S[i],S[j])
j=0
PRGA: i=i+1 mod 256, j=j+S[i] mod 256
swap(S[i],S[j]) et return S[S[i]+S[j] mod 256]73
Finney states
S grand et PRGA a de grands cycles Existe petite classe dtats internes avec
priode 256*255: j=i+1 et S[j]=1 Jamais atteint par le KSA
74
1 X YX 1 YX Y 1
0 1 2 3
Output: S[X+1]Output: S[Y+1]
i
j
ji j
Biais statistique
Le second octet de sortie est biais: 0 avec proba 2-7 au lieu de 2-8
Si ltat aprs KSA: S[2]=0 et S[1]2 Pr[z2=0]=1/256+1/256*(1-1/256)1/27
75
X 0 YY 0 XY X 0
0 1 2 X
Output: S[X+Y]Output: S[X+0]=0
i
j
ji j
i j
IV mode et WEP
RC4 avec IV KSA: i crot de faon rgulier et j alatoir Une fois que i a avanc, avec forte proba.
les premiers lments de S ne sont pas changs
Premier octet est S[S[1]+S[S[1]]] et dpend de S[1] et S[S[1]]
Comment prdire ces 2 valeurs ?76
WEP Attack
IV de 3 mots ajout avant la cl secrte On connat les A premiers octets K[3],...,K[A
+2] et IV forme (A+3,-1,X) pour X alatoire
77
0 1 2 A+3A+3 1 2 0
0 2 1
0 1 2 A+3
S[1]=0; S[S[1]]=A+3i j
i j
i j
On peut calculer les A+3 premires tapes et on jette si S[1] ou S[0] est modifi
WEP attack (suite)
Ltape suivante i=A+3 et S[A+3] dpend seulement de K[A+3]
Si ces 3 lments ne sont pas modifis par KSA, le premier octet de sortie donne suffisamment dinfo pour calculer K[A+3]
Pour protger de cette attaque, quipement WIFI vrifie les IVs de la forme (A+3,-1,X)
Ceci non suffisant car tout IV tq aprs 3 tapes S[1]+S[S[1]]=A+3 permet dattaquer
78
Toyocrypt
LFSR de 128 bits et fonction de filtrage: f(s0,...,s127)=s127+i=062 sisi+s10s23s32s42+s1s2s9s12s18s20s23s25s26s28s33s41s42s51s53s59+i=062si avec i{63,...,125}.
Trouver g tq fg de petit ordre: g(s)=(s23-1) ou g(s)=(s42-1) et les quations f(s)=bt deviennent f(s)s23-f(s)=bt(s23-1). (s23s42 divisent les monmes de degr 4, 17 et 63.)
79
Toyocrypt (suite)
f(s)s23-f(s)=s127s23+s23i=0,2362sisi=bt(s23-1) Equations de degr 3 vraie avec proba 1. Mme chose pour 42. Pour chaque bit de sortie, on a 2 quations de
degr 3 en les bits de la cl ki (tat du LFSR). Relinarisation: C1283 monmes de degr 3 218.4 et si on a cette quantit de bits, syst.
linaire rsoudre en temps 249. car on a 2 eq.
80
81
Synthse
De nombreuses techniques de cryptanalyse pour les stream ciphers Attaque gnrique Attaque ddies contre certains algorithmes
Peu de primitives sres (projet europens NESSIE, ECRYPT)