Crypt an Stream
Transcript of Crypt an Stream
-
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)