Вы находитесь на странице: 1из 19

Prelegerea 6

Modalit
ati de atac asupra DES
In aceasta prelegere trecem n revista principalele modalitati de criptanaliza dezvoltate
cu scopul de a sparge sistemul DES. Ele si-au largit ulterior aria de aplicabilitate, fiind
considerate astazi mijloace de atac standard, carora trebuie sa le reziste orice sistem nou
de criptare, pentru a putea fi luat n considerare.

6.1

Compromisul spatiu - timp al unui atac

Vom studia aici un compromis ntre spatiu si timp ntr-un atac cu text clar ales. Aici
Oscar va dispune de o pereche (, ) cu = eK (), si cauta sa determine cheia K.
Nu vom folosi o structura particulara de implementare a sistemului DES; stim numai
ca textele clare si cele criptate sunt de 64 biti, iar cheia are 56 biti.
O cautare exhaustiva consta n a ncerca toate cele 256 chei posibile. Aceasta operatie
nu necesita memorie, dar sunt necesare n medie 255 chei pentru a o gasi pe cea buna. Sau,
fiind dat un text clar , Oscar poate forma anterior un tabel cu 256 perechi (k , K), astfel
ca K = eK (), trierea urmand a fi facuta dupa K . Cand Oscar obtine textul criptat
din textul clar , el va cauta n tabela si va afla imediat cheia K. Astfel, aflarea cheii va
necesita un timp de calcul neglijabil (complexitate logaritmica), dar un spatiu de memorie
gigantic si un timp de precalcul important. Aceasta varianta nu aduce nici un avantaj
din punct de vedere al timpului total, pentru aflarea unei singure chei. Avantajul apare
atunci cand este necesara cautarea mai multor chei, deoarece atunci tabela precalculata
a fost construita o singura data.
Compromisul spatiu - timp permite obtinerea unui timp de calcul (precalculul nu se
include) inferior celui unei cautari exhaustive, cu un spatiu de memorie inferior celui
necesar retinerii tuturor cheilor. Algoritmul foloseste o functie de reducere R, care reduce
o secventa de 64 biti la una de 56 biti (de exemplu, R poate sterge pur si simplu 8 biti
din secventa initiala).
Fie un text clar de 64 biti; se defineste g(K0 ) = R(eK0 ()) pentru orice secventa K0
1

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

de 56 biti (rezultatul g(K0 ) este de asemenea de lungime 56).


Algoritmul mai foloseste doi parametri ntregi pozitivi m, t. In faza de precalcul, Oscar
defineste m secvente arbitrare de 56 biti fiecare, notate X(i, 0), 1 i m. Apoi, folosind
relatia de recurenta
X(i, j) = g(X(i, j 1)), 1 i m, 1 j t
Oscar determina valorile X(i, j), 1 j t, formand cu ele o matrice Xm0 timest . Din
aceste valori, Oscar pastreaza ntr-o tabela T numai 2m perechi (X(i, 0), X(i, t)) 1 i
m (deci sunt memorate numai prima si ultima coloana a matricii X).
In momentul atacului, Oscar obtine textul criptat al textului clar ales de el. El
va cauta cheia K n cele t coloane ale matricii X, consultand tabloul T . Sa presupunem
K = X(i, t j) pentru un j (1 j t) dat (K este n una din cele t coloane ale lui X).
Vom avea g j (K) = X(i, t), si
g j (K) = g j1 (g(K)) = g j1 (R(eK ())) = g j1 (R()).
Sa calculam sirul j (1 j t) definit de relatia de recurenta
(

j =

R()
g(j1 )

daca j = 1
daca 2 j t

Daca K = X(i, t j), vom avea j = X(i, t). De remarcat ca reciproca nu este adevarata:
nu este suficient ca j = X(i, t) pentru a avea K = X(i, tj), deoarece functia de reducere
R nu este injectiva (R reduce un spatiu de 264 n unul de 256 valori, deci fiecare valoare
provine n general din 28 = 256 valori). Trebuie deci verificat ca = eX(i,tj) () pentru
a decide ca X(i, t j) este ntr-adevar cheia. Valoarea X(i, t j) nu este disponibila n
memorie, dar ea se poate recalcula n t j pasi, plecand de la X(i, 0).
Oscar va folosi deci urmatorul algoritm:
1. 1 R()
2. for j := 1 to t do
2.1. if i cu j = X(i, t) then
2.1.1. calculeaza X(i, t j) = g tj (X(i, 0))
2.1.2. if = eX(i,tj) () then K X(i, t j), ST OP
2.2. j+1 g(j )
Analizand probabilitatea de succes a algoritmului, se poate arata ca daca mt2 N =
2 , atunci probabilitatea ca sa avem cheia K n cele t coloane ale matricii X este de circa
0, 8mt/N . Coeficientul 0, 8 provine din faptul ca valorile X(i, t) pot sa nu fie distincte. O
sugestie este de a alege m t N 1/3 si de a construi N 1/3 tabele, fiecare cu alta functie
de reducere R. Astfel, spatiul de memorie necesar este de 112 N 2/3 biti (trebuie pastrati
2N 2/3 valori de 56 biti). Timpul de precalcul este liniar O(N ).
56

6.2. ATACUL MEET-IN-THE-MIDDLE

Timpul de calcul al atacului este mai dificil de evaluat. De remarcat ca pasul 2.1
poate fi implementat n cel mai rau caz ntr-un timp O(log m), utilizand arbori binari de
cautare. Daca acest pas esueaza (deci nu se gaseste nici o valoare), timpul de calcul este
O(N 2/3 ). Ceilalti pasi care urmeaza cresc acest timp doar cu un factor constant.

6.2

Atacul meet-in-the-middle

Este un atac cu text clar ales, dezvoltat n 1981 de Merkle si Hellman ca raspuns la ideea
unei duble criptari cu doua chei diferite, conform schemei
K1
?

K2
x

?
-

Lema 6.1 Pentru un sistem de criptare bloc, o dubl


a criptare poate fi atacat
a folosind
n
n
O(2 ) operatii si O(2 ) spatiu de memorie, unde n este lungimea cheii.
Demonstratie: Fie (m, y) o pereche (text clar, text criptat) obtinuta pe baza schemei de
mai sus.
1. Pentru fiecare din cele 2n chei posibile se calculeaza xi = eKi (m);
2. Se stocheaza (xi , Ki ) sortate (sau indexate) dupa xi .
3. Pentru fiecare din cele 2n chei posibile:
(a) Se calculeaza xj = dKj (y);
(b) Se cauta in lista creata la pasul anterior o pereche (xi , Ki ) cu xi = xj ;
4. O pereche de chei posibile este (Ki , Kj );
(deoarece eKi (m) = dKj (y), deci eKj (eKi (m)) = y).
Algoritmul se reia cu alte perechi (m, y), pana ce perechea de chei folosite este determinata
n mod unic.
Exemplul 6.1 Un atac direct asupra unei duble cript
ari cu DES ar necesita un timp de
ordin 2112 si un spatiu neglijabil. Dac
a se foloseste un atac meet-in-the-middle, timpul va
fi 256 iar spatiul 256 . Strategii complementare de genul compromisului spatiu - timp pot
duce la variante de genul: 2p spatiu, 2q timp, unde p + q = 112 ([1]).
Vom mai ntalni frecvent acest atac la protocoalele de stabilire a cheilor de sesiune.

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

6.3

Criptanaliza diferential
a

Unul din atacurile cele mai cunoscute ale DES-ului este criptanaliza diferential
a, introdusa de Biham si Shamir n 1991. Este un atac cu text clar cunoscut. Cu toate ca nu
da o modalitate practica de spargere a functiei DES n 16 tururi, ea furnizeaza atacuri
eficace pentru variantele de DES cu un numar redus de runde. De exemplu, un DES cu
8 runde poate fi spart n cateva minute cu un P C obisnuit.
Intr-un astfel de atac se ignora permutarea initiala IP si inversa sa (ele nu joaca nici
un rol n criptanaliza). Ne vom margini la un DES restrans pe n (n 16) runde. Deci
textul clar este L0 R0 si Ln Rn textul criptat (vom ignora de asemenea inversarea finala
dintre Ln si Rn ).
Criptanaliza diferentiala considera doua texte clare L0 R0 , L0 R0 si textele criptate
corespunzatoare Ln Rn respectiv Ln Rn . Ea va efectua studii asupra mesajelor L0 0 R0 0 =
L0 R0 L0 R0 si Ln 0 Rn 0 = Ln Rn Ln Rn .
Definitia 6.1 Fie Sj (1 j 8) o S - cutie din sistemul DES. Pentru orice pereche
(Bj , Bj ) de siruri de 6 biti, vom defini XOR-ul de intrare pentru Sj prin Bj 0 = Bj Bj ,
iar XOR-ul de iesire prin Sj (Bj ) Sj (Bj ).
De remarcat ca un XOR de intrare este o secventa de 6 biti, iar un XOR de iesire este
o secventa de 4 biti.
Definitia 6.2 Pentru orice Bj 0 Z26 se noteaz
a (Bj 0 ) multimea perechilor (Bj , Bj ) care
0
prin XOR dau B j .
Observatia 6.1
O multime (Bj 0 ) contine 26 = 64 elemente;
(Bj 0 ) = {(Bj , Bj Bj 0 )| Bj Z26 }.
Pentru fiecare pereche din (Bj 0 ) vom calcula XOR-ul de iesire al lui Sj si construim
o tabela de distributii ale valorilor obtinute (sunt 64 iesiri pe un spatiu de 24 = 16 valori
posibile). Pe aceasta tabela se va baza atacul de criptanaliza diferentiala.
Exemplul 6.2 Sa consideram prima S - cutie S1 si XOR-ul de intrare 110100. Vom
avea:
(110100) = {(000000, 110100), (000001, 110101), . . . , (111111, 001011)}.
Pentru fiecare pereche din (110100) vom calcula XOR-ul de iesire al lui S1 . De exemplu,
S1 (000000) = E16 = 1110, S1 (110100) = 916 = 1001 deci XOR-ul de iesire S1 al perechii
(000000, 110100) este 0111.
Efectu
and acest calcul pentru toate cele 64 perechi din (110100), vom obtine distributia urm
atoare a XOR-urilor de iesire pentru S1 :


6.3. CRIPTANALIZA DIFERENT
IALA

0000 0001 0010 0011 0100 0101 0110 0111


0
8
16
6
2
0
0
12
1000 1001 1010 1011 1100 1101 1110 1111
6
0
0
0
0
8
0
6
In Exemplul 6.2 au aparut numai 8 din cele 16 valori de iesire posibile. In general, daca
se fixeaza o S-cutie Sj si un XOR de intrare diferit de 000000, se constata ca vor apare
numai 75 80 % din valorile posibile de iesire.
Definitia 6.3 Pentru 1 j 8 si secventele Bj 0 , Cj 0 de 6 respectiv 4 biti, definim
INj (Bj 0 , Cj 0 ) = {Bj Z26 | Sj (Bj ) Sj (Bj Bj 0 ) = Cj 0 ,
Nj (Bj 0 , Cj 0 ) = card(INj (Bj 0 , Cj 0 )).
Distributia data n Exemplul 6.2 da valorile N1 (110100, C1 0 ), C1 0 Z24 . Toate aceste
valori se gasesc n Tabelul urmator:
XOR de iesire
0000
0001
000011, 001111,
0010
000100, 000101,
100000, 100101,
0011
000001, 000010,
0100
010011, 100111
0101
0110
0111
000000, 001000,
101100, 110100,
1000
001001, 001100,
1001
1010
1011
1100
1101
000110, 010000,
1110
1111
000111, 001010,

intrari posibile
011110,
001110,
010110,
010101,

011111,
010001,
101110,
100001,

101010,
010010,
101111,
110101,

101011, 110111, 111011


010100, 011010, 011011
110000, 110001, 111010
110110

001101, 010111, 011000, 011101, 100011, 101001


111001, 111100
011001, 101101, 111000, 111101

010110, 011100, 100010, 100100, 101000, 110010


001011, 110011, 111110, 111111

Pentru fiecare din cele 8 S-cutii exista 64 XOR-uri de intrare posibile; deci n total vor fi
512 date de distribuit, lucru usor de realizat cu un calculator.
Reamintim ca intrarea ntr-o S-cutie la turul i este B = E J, unde E = E(Ri1 ) este
rezultatul expandarii lui Ri1 , iar J = Ki este un subsir reordonat al cheii K. XOR-ul
de intrare (al celor 8 cutii) este deci
B B = (E J) (E J) = E E .

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

De remarcat ca XOR-urile de intrare nu depind de sub-cheia J, pe cand XOR-urile de


iesire depind.
Sa detaliem pe grupuri de cate 6 biti, cuvintele cu care se lucreaza;
B = B1 B2 B3 B4 B5 B6 B7 B8 ,

E = E1 E2 E3 E4 E5 E6 E7 E8 ,

J = J1 J2 J3 J4 J5 J6 J7 J8

In mod similar se scriu B si E . Sa presupunem acum ca se stiu valorile Ej si E pentru


j
un j (1 j 8) dat, precum si valoarea XOR de iesire Cj 0 = Sj (Bj ) Sj (Bj ) a lui Sj .
Vom avea
Ej Jj INj (Ej 0 , Cj 0 )
unde Ej 0 = Ej Ej .
Sa presupunem ca se defineste multimea testj astfel:
testj (Ej , Ej , Cj 0 ) = {Bj Ej | Bj INj (Ej 0 , Cj 0 )}
(s-au luat toate XOR-urile lui Ej cu elemente din INj (Ej 0 , Cj 0 )). Din aceste consideratii
rezulta imediat teorema:
Teorema 6.1 Daca Ej , Ej sunt subsecvente construite pentru intrarea n S-cutia Sj , iar
Cj 0 este XOR-ul de iesire al lui Sj , atunci bitii cheii Jj apar n multimea testj (Ej , Ej , Cj 0 ).
Cum se poate remarca, exista exact Nj (Ej 0 , Cj 0 ) secvente de 6 biti n testj (Ej , Ej , Cj 0 );
valoarea corecta Jj este una din acestea.
Exemplul 6.3 Sa consideram E1 = 000001, E1 = 110101, C1 0 = 1101. Deoarece
N1 (110100, 1101) = {000110, 010000, 010110, 011100, 100010, 101000, 110010} are 8 elemente, exista 8 secvente posibile pentru J1 , cumulate n test1 (000001, 110101, 1101) =
{000111, 010001, 010111, 011101, 100011, 100101, 101001, 110011}.
Dac
a se ia un alt triplet (E1 , E1 , C1 0 ), vom obtine alt test1 cu valori pentru J1 , deci
valoarea corecta se va gasi n intersectia lor.

6.3.1

Atac pe trei runde

Sa vedem cum se aplica aceste idei pentru un DES construit pe 3 runde. Vom ncepe cu
o pereche de texte clare L0 R0 si L0 R0 , criptate n L3 R3 respectiv L3 R3 . Vom avea
R3 = L2 f (R2 , K3 ) = R1 f (R2 , K3 ) = L0 f (R0 , K1 ) f (R2 , K3 ).
Constructia pentru R3 este similara. Deci
R3 0 = L0 0 f (R0 , K1 ) f (R0 , K1 ) f (R2 , K3 ) f (R2 , K3 ).
Sa presupunem ca s-a ales R0 = R0 , deci R0 0 = 00 . . . 0. Atunci f (R0 , K1 ) = f (R0 , K1 )
si deci R3 0 = L0 0 f (R2 , K3 ) f (R2 , K3 ).
R3 0 se poate calcula pe baza textelor criptate, iar L0 0 pe baza textelor clare; deci se
poate determina f (R2 , K3 ) f (R2 , K3 ) = R3 0 L0 0 .


6.3. CRIPTANALIZA DIFERENT
IALA

Avem f (R2 , K3 ) = P (C), f (R2 , K3 ) = P (C ) unde C respectiv C sunt iesirile corespunzatoare din cele 8 S-cutii (reamintim, P este o permutare fixata din descrierea sistemului DES). Deci P (C) P (C ) = R3 0 L0 , de unde
C 0 = C C = P 1 (R3 0 L0 0 )
Acesta este XOR-ul de iesire din cele opt S-cutii dupa a treia runda.
R2 = L3 si R2 = L3 sunt cunoscute (componente ale textelor criptate); deci se poate
calcula
E = E(L3 ), E = E(L3 )
folosind functia de expansiune E. Aceste valori sunt intrarile n S-cutii la runda a treia.
Se cunosc deci E, E , C 0 la a treia runda si se poate trece asa cum am vazut la
constructia multimilor test1 , test2 , . . . , test8 de valori posibile pentru J1 , J2 , . . . , J8 .
Un algoritm pentru aceasta metoda este formalizat mai jos. Atacul foloseste mai multe
triplete E, E , C 0 . Se utilizeaza opt tabele de valori si se determina astfel cei 48 biti ai
subcheii K3 de la a treia runda. Cheia de 56 biti se calculeaza apoi printr-o cautare
exhaustiva a celor 28 = 256 posibilitati a celor 8 biti necunoscuti.
Intrare: L0 R0 , L0 R0 , L3 R3 , L3 R3 cu R0 = R0 .
1. C 0 P 1 (R3 0 L0 0 )
2. E E(L3 ), E E(L3 )
3. for j := 1 to 8 do testj (Ej , Ej , Cj ).

6.3.2

Atacul pe sase runde

Sa extindem ideile precedente n cazul unui atac probabilist asupra unui sistem de criptare
DES de 6 runde. Ideea este de a alege o pereche de texte clare cu un XOR bine ales si de
studia comportamentul probabilist al evolutiei acestui XOR de-alungul ntregii operatii
de criptare. Pentru aceasta este necesar sa introducem o noua notiune.
Definitia 6.4 Fie n 1 un numar ntreg. O caracteristic
a de n runde este un sir de
forma
L0 0 , R0 0 , L1 0 , R1 0 , p1 , . . . , Ln 0 , Rn 0 , pn
care verifica conditiile:
1. Li 0 = Ri1 0 pentru 1 i n;

2. Pentru 1 i n se aleg Li1 Ri1 si Li1 Ri1


astfel ca Li1 Li1 = Li1 0 si

Ri1 Ri1
= Ri1 0 ; daca Li Ri si Li Ri sunt calculate la a i-a rund
a DES cunosc
and
0
0
Li1 Ri1 , probabilitatea de a obtine relatiile Li Li = Li 0 , Ri Ri = Ri 0 este pi
(probabilitatea se extinde pentru toate subcheile posibile J1 , J2 , . . . , J8 ).

Probabilitatea caracteristicii este produsul p = p1 p2 . . . pn .

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

Observatia 6.2
Dac
a L0 R0 si L0 R0 sunt alese astfel ca L0 L0 = L0 0 , R0 R0 = R0 0 , nu se
poate afirma ca probabilitatea ca pentru orice i = 1, 2, . . . , n s
a avem Li Li =
0

Li , Ri Ri = Ri este p1 p2 . . . pn . Intr-adev
ar, procesul de diversificare
a cheilor nu genereaza distributia independent
a a sub-cheilor K1 , . . . , Kn . Totusi,
probabilitatea p1 p2 . . . pn furnizeaz
a o estimare destul de precis
a a probabilit
atii
reale.
Probabilitatile pi sunt inserate n caracteristica pentru o pereche de texte clare oarecare, avand un XOR dat, pentru o distibutie de 48 biti ai sub-cheii. Criptanalistul
caut
a o cheie fixata necunoscut
a. De aceea el va utiliza texte clare aleatoare (cu
XOR-ul cerut), sperand ca distributia obtinut
a de XOR-urile de la a n-a rund
a sa
coincida cu cea descrisa de o cheie aleatoare, deci cu p1 , p2 , . . . , pn .
Exemplul 6.4 O caracteristica pe o rund
a care forma baza atacului pe 3 runde este
(n notatie hexazecimala):
L0 0 = oarecare
L1 0 = 0000000016

R0 0 = 0000000016
R1 0 = L0 0

p=1

O alt
a caracteristica poate fi de exemplu:
L0 0 = 0000000016
L1 0 = 6000000016

R0 0 = 6000000016
R1 0 = 0080820016

p = 16/64

a ntai
Intr-adev
ar, n calculul lui f (R0 , K1 ) si f (R0 , K1 ), functia de expansiune opereaz
asupra lui R0 si R0 ; XOR-ul rezultatelor este 001100 . . . 0. Deci XOR-ul de intrare al lui
S1 este 001100, iar pentru celelalte S - cutii este 000000. La iesire XOR - ul este 0000
la aceste cutii si 1110 pentru S1 ; deoarece N( 001100, 1110) = 14 (se poate verifica), vom
avea probabilitatea 14/64.
Se obtine deci C 0 = 11100000000000000000000000000000 cu probabilitate 14/64.
Aplic
and P , vom avea
P (C) P (C ) = 00000000 10000000 10000010 00000000,
ceea ce d
a 00808200 n hexazecimal. Dup
a calculul XOR-ului cu L0 0 se obtine valoarea
0
lui R1 cu probabilitate 14/64. Vom avea binenteles L1 0 = R0 0 .
Atacul asupra DES-ului n 6 runde este bazat pe caracteristica celui pe 3 runde n modul
urmator:
L0 0
L1 0
L2 0
L3 0

= 4008000016
= 0400000016
= 0000000016
= 0400000016

R0 0
R1 0
R2 0
R3 0

= 0400000016
= 0000000016
= 0400000016
= 4008000016

p = 1/4
p=1
p = 1/4


6.3. CRIPTANALIZA DIFERENT
IALA

Se ncepe cu o pereche de texte clare (L0 R0 , L0 R0 ) cu proprietatea L0 0 = 4008000016 ,


R0 0 = 0400000016 si cu perechea de texte criptate corespunzatoare (L6 R6 , L6 R6 ). Vom
avea
R6 = L5 f (R5 , K6 ) = R4 f (R5 , K6 ) = L3 f (R3 , K4 ) f (R5 , K6 ).
In mod similar se exprima R . Atunci
6
R6 0 = L3 0 f (R3 , K4 ) f (R3 , K4 ) f (R5 , K6 ) f (R5 , K6 )
()
R6 0 este cunoscut. Dupa caracteristica, avem L3 0 = 0400000016 si R3 0 = 4008000016
cu probabilitate 1/16. Daca s-a obtinut ntr-adevar asa, se poate calcula XOR - ul de
intrare al S - cutiilor la a patra runda, dupa expansiune:
00100000 00000000 01010000 0000.
XOR - urile de intrare pentru S2 , S5 , S6 , S7 , S8 sunt deci 000000, de unde rezulta ca
XOR - ul de iesire este n toate aceste cazuri 0000. Rezulta ca se poate calcula XOR ul de iesire al acestor cinci S - cutii la runda a sasea, pe baza relatiei (). Deci se poate
calcula
C1 0 C2 0 C3 0 C4 0 C5 0 C6 0 C7 0 C8 0 = P 1 (R6 0 0400000016 )
unde fiecare Ci 0 are lungimea 4. C2 0 , C5 0 , C6 0 , C7 0 si C8 0 sunt respectiv XOR - urile de
iesire ale cutiilor S2 , S5 , S6 , S7 , S8 cu probabilitate 1/16. Intrarile E2 , E5 , E6 , E7 , E8 si
E2 , E5 , E6 , E7 , E8 n aceste cutii se pot calcula cu relatiile
E1 E2 E3 E4 E5 E6 E7 E8 = E(R5 ) = E(L6 )
E1 E2 E3 E4 E5 E6 E7 E8 = E(R5 ) = E(L6 )
plecand de la textele criptate, conform algoritmului:
Intrare: L0 R0 , L0 R0 , L6 R6 , L6 R6 cu L0 0 = 4008000016 , R0 0 = 0400000016 .
1. C 0 P 1 (R6 0 4008000016 )
2. E E(L6 ), E E(L6 )
3. for j = 2, 5, 6, 7, 8 do testj (Ej , Ej , Cj 0 )
Ar fi ideal de determinat cei 30 biti din J2 , J5 , J6 , J7 , J8 ca la atacul asupra DES ului n 3 runde. Problema este ca aici valorile XOR - ului de iesire la a 6 - a runda sunt
adevarate cu probabilitate 1/16. Deci n circa 15/16 din cazuri se obtin valori aleatoare
fara interes pentru criptanaliza, valori are trebuiesc eliminate. Ce este interesant este
faptul ca acest lucru este deseori posibil.
Definitia 6.5 Fie L0 E0 = E0 0 , R0 R0 = R0 0 . Spunem c
a perechea de texte clare
(L0 R0 , L0 R0 ) este o pereche buna pentru caracteristica dat
a, dac
a pentru orice i (1 i

0
n) avem Li Li = Li , Ri Ri = Ri . Altfel, avem o perechea rea.
Strategiile de calcul pentru Ej , Ej , Cj 0 si testj pentru j = 2, 5, 6, 7, 8 a fost descrisa anterior. Daca avem o pereche buna, valoarea ei apare n testj . Pentru o pereche rea, valoarea
lui Cj 0 este incorecta si se poate presupune ca toate multimile testj au un continut aleator.
O pereche rea se poate recunoaste astfel: daca pentru un j avem card(testj ) = 0,
perechea este sigur rea. Fiind data o pereche rea, probabilitatea de a avea card(testj ) = 0

10

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

pentru un anumit j, este cam 1/5 (card(testj ) = Nj (Ej 0 , Cj 0 ) si Nj (Ej 0 , Cj 0 ) = 0 ntr-o


cincime din cazuri). Probabilitatea ca cinci multimi testj sa fie nevide este 0, 85 0, 33,
deci probabilitatea ca cel putin un testj sa fie vid este 0, 67. Se pot elimina astfel cam 2/3
din perechile rele prin acest test simplu, numit operatie de filtrare. Proportia perechilor
rele care raman dupa filtrare este ce circa (15/16) (1/3) = 5/16. Rezulta ca proportia
perechilor bune ramse dupa filtrare este de 1/6.
Exemplul 6.5 Sa presupunem ca dispunem de urm
atoarele perechi:
text clar
86F A1C2B1F 51D3BE
C6F 21C2B1B51D3BE

text criptat
1E23ED7F 2F 553971
296DE2B687AC6340

Se verific
a imediat ca L0 0 = 4008000016 , R0 0 = 0400000016 . Intr
arile si iesirile din S cutii la turul 6 se determina astfel:
j
2
5
6
7
8

Ej
111100
111101
011010
101111
111110

Ej
010010
111100
000101
010110
101100

C 0j
1101
0001
0010
1100
1101

Cele cinci multimi testj vor fi atunci:


j
testj
2 14, 15, 26, 30, 32, 33, 48, 52
5
6
7, 24, 36, 41, 54, 59
7
8
34, 35, 48, 49
Deoarece test5 = test7 = , perechea este rea si va fi eliminat
a prin operatia de filtrare.
Sa presupunem acum ca avem o pereche cu proprietatea testj 6= pentru j = 2, 5, 6, 7, 8,
deci care va ramane dupa operatia de filtrare. Spunem ca secventa de 30 biti J2 J5 J6 J7 J8
este sugerata de pereche, daca j {2, 5, 6, 7, 8}, Jj testj . Numarul de secvente
sugerate este
Y
card(testj ).
j{2,5,6,7}

Adesea, numarul de lanturi sugerate este destul de mare (de ordinul miilor).


6.4. CRIPTANALIZA LINIARA

11

Sa presupunem ca se construieste tabela tuturor secventelor sugerate de N perechi


ramase dupa filtrare. Pentru fiecare pereche buna, secventa corecta J2 J5 J6 J7 J8 este sugerata; deci ea va fi sugerata de n/6 ori. O secventa incorecta va fi sugerata de un numar
aleator de ori, deci adesea mai putin, comparabil cu numarul lanturilor (230 ).
Este extrem de dificil de pastrat ca spatiu tabela celor 230 numere; de aceea se va
folosi un algoritm care sa foloseasca un spatiu mai mic. Astfel, se codifica fiecare multime
testj ntr-un vector Tj de lungime 64, n care a i - a coordonata (0 i 63) este 1 daca
secventa de 6 biti care reprezinta pe i n binar este n testj , 0 n caz contrar.
Pentru fiecare pereche numarul i (1 i N ) ramasa, se construiesc vectorii Tji (j =
2, 5, 6, 7, 8). Daca I {1, . . . , N }, spunem ca I este admisibil
a, daca pentru orice j
{2, 5, 6, 7, 8} exista o coordonata egala cu card(I) n vectorul
X

Tji

iI

Daca perechea i este buna pentru orice i I, atunci I este admisibila. Deci, speram sa
avem o multime admisibila de marime aproximatic N/6, ceea ce sugereaza sigur o valoare
unica de 30 biti pentru cheie. Multimile admisibile I pot fi generate cu un simplu algoritm
recursiv.

6.4

Criptanaliza liniar
a

Criptanaliza liniara este un atac cu text clar cunoscut care seamana destul de mult cu
criptanaliza diferentiala; principala diferenta consta n faptul ca aici comparatia se face
ntre bitii de intrare si cei de iesire ai aceluiasi mesaj, nu ntre diferentele a doua mesaje
la intrare respectiv iesire.
Pe scurt, principiul este urmatorul ([2]): sa presupunem ca putem afla o relatie liniara
statistica ntre o submultime de biti din textul clar si o submultime de biti de stare
care preced imediat substitutiile din ultimul rund de criptare. Altfel spus, exista un set
de biti al caror XOR se determina aproape determinist (de exemplu ia valoarea 1 cu o
probabilitate mult peste 1/2). Sa consideram acum ca Oscar detine un numar relativ
mare de perechi (text clar, text criptat) pentru care s-a folosit aceeasi cheie de criptare
K. Pentru fiecare astfel de pereche se ncearca decriptarea folosind toate cheile posibile la
ultimul rund de criptare. In acest calcul se determina valorile bitilor implicati n relatia
liniara presupusa, verificand veridicitatea ei. Daca relatia se verifica, se incrementeaza
un contor corespunzator acestei chei. La sfarsitul procesului, cheia al carui contor este
(mult) peste 50% din numarul perechilor verificate, va contine valorile bitilor determinate
de relatia data.
Sa formalizam aceasta idee.
Fie X1 , X2 , . . . variabile aleatoare independente care iau valori din multimea {0, 1} si
p1 , p2 , . . . [0, 1] numere reale definite prin
P r[Xi = 0] = pi ,

i = 1, 2, . . .

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

12

Evident,
P r[Xi = 1] = 1 pi , i = 1, 2 . . .
Daca i 6= j, independenta variabilelor Xi , Xj conduce la relatiile
P r[Xi = 0, Xj = 0] = pi pj ,
P r[Xi = 0, Xj = 1] = pi (1 pj ),
P r[Xi = 1, Xj = 0] = (1 pi )pj , P r[Xi = 1, Xj = 1] = (1 pi )(1 pj ).
Fie acum variabila aleatoare discreta Xi Xj ; se verifica usor faptul ca probabilitatea ei
de distributie este
P r[Xi Xj = 0] = pi pj + (1 pi )(1 pj )
P r[Xi Xj = 1] = pi (1 pj ) + (1 pi )pj
Pentru a simetriza formulele, introducem o noua variabila numita tendint
a
1
i = pi ,
2
Atunci
P r[Xi = 0] =

1 1
i ,
2 2

1
+ i ,
2

definita

P r[Xi = 1] =

1
i
2

Lema 6.2 Fie X1 , X2 , . . . Xn variabile aleatoare independente si pentru 1 i1 < i2 <


. . . < ik n, fie i1 ,i2 ,...ik tendinta variabilei aleatoare Xi1 Xi2 . . . Xik . Atunci
i1 ,i2 ,...ik = 2k1

k
Y

ij .

j=1

Demonstratie: Prin inductie dupa k. Pentru k = 1 egalitatea este banala. Pentru k = 2


se verifica usor relatia i1 ,i2 = 2i1 i2 .
Presupunem egalitatea adevarata pentru k = p si sa o aratam pentru k = p + 1. Din
faptul ca tendinta lui Xi1 . . . Xip este 2p1

p
Y

ij rezulta

j=1
p
Y
1
p1
ij si
P r[Xi1 . . . Xip = 0] = + 2
2
j=1
p
Y
1
P r[Xi1 . . . Xip = 1] = 2p1
ij
2
j=1
De aici putem calcula
P r[Xi1 . . .
Xip Xip+1 =
0] =





p
p
p+1
Y
Y
Y
1
1
1
1
1
p1

+ 2p1
ij
+ ip+1 +
2
ij
ip+1 = + 2p
ij .
2
2
2
2
2
j=1
j=1
j=1

Corolarul 6.1 Fie i1 ,i2 ,...,ik tendinta variabilei aleatoare Xi1 . . . Xik . Dac
a j cu ij = 0
atunci i1 ,i2 ,...,ik = 0.
1

bias n englez
a


6.4. CRIPTANALIZA LINIARA

6.4.1

13

Aproxim
ari liniare ale S-cutiilor

Fie S-cutia S : {0, 1}m {0, 1}n si X = (x1 , x2 , . . . , xm ) un m-tuplu de intrare,


ales arbitrar: matematic, aceasta nseamna ca fiecare coordonata xi defineste o variabila
aleatoare Xi cu valori 0 sau 1, avand tendinta i = 0. Cele m variabile aleatoare sunt
independente.
Iesirea se poate reprezenta ca un n-tuplu Y = (y1 , y2 , . . . , yn ) unde fiecare yi defineste
o variabila aleatoare Yi de valori 0, 1. In general, aceste n variabile aleatoare sunt dependente de intrari sau ntre ele. Are loc formula

P r[X1 = x1 , . . . , Xm = xm , Y1 = y1 , . . . , Yn = yn ] =

0
daca (y1 , . . . , yn ) 6= S (x1 , . . . , xm )
m
2
daca (y1 , . . . , yn ) = S (x1 , . . . , xm )

Observatia 6.3 Ultima parte a relatiei se bazeaz


a pe faptul c
a
m
P r[X1 = x1 , . . . , Xm = xm ] = 2
si
P r[Y1 = y1 , . . . , Yn = yn |X1 = x1 , . . . , Xm = xm ] = 1 dac
a (y1 , . . . , yn ) = S (x1 , . . . , xm )

Cu aceasta formula se poate calcula tendinta unei variabile aleatoare de tipul


Xi1 . . . Xik Yj1 . . . Yjp .

Exemplul 6.6 Sa consideram o S-cutie S : {0, 1}4 {0, 1}4 definit


a
0 1 2 3 4 5 6 7 8 9 A B C D E F
x
S (x) E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
unde toate valorile au fost exprimate n hexazecimal. Sunt deci opt variabile aleatoare
X1 , . . . , X4 , Y1 , . . . , Y4 care pot lua valorile reprezentate pe liniile tabelului de pe pagina
urm
atoare.
S
a consideram acum variabila aleatoare X1 X4 Y2 . Probabilitatea ca ea sa ia
valoarea 0 poate fi determinata numar
and liniile din tabel unde X1 X4 Y2 = 0 si apoi
mp
artind la 16 (numarul total de linii).
1
1
Se obtine P r[X1 X4 Y2 = 0] = , de unde rezult
a P r[X1 X4 Y2 = 1] = .
2
2
Tendinta acestei variabile aleatoare este deci 0.

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

14

X1 X2 X3 X4
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1

Y 1 Y 2 Y 3 Y4
1 1 1 0
0 1 0 0
1 1 0 1
0 0 0 1
0 0 1 0
1 1 1 1
1 0 1 1
1 0 0 0
0 0 1 1
1 0 1 0
0 1 1 0
1 1 0 0
0 1 0 1
1 0 0 1
0 0 0 0
0 1 1 1

In general n Exemplul 6.6 sunt 28 = 256 variabile aleatoare de acest gen. Pentru
fiecare din ele se poate da o reprezentare uniforma de tipul:
4
M

ai Xi

i=1

4
M

b i Yi

i=1

unde ai , bi {0, 1}, (1 i 4). Vectorii binari (a1 , a2 , a3 , a4 ) numiti sume de intrare si
(b1 , b2 , b3 , b4 ) (sume de iesire) vor fi codificati prin cifre hexazecimale. Astfel, fiecare din
cele 256 variabile aleatoare se va scrie n mod unic ca o pereche de doua cifre hexazecimale.
Exemplul 6.7 Variabila X1 X4 Y2 va avea suma de intrare (1, 0, 1, 0) care este 9 n
hexazecimal, iar suma de iesire este (0, 1, 0, 0), care este 4 n hexazecimal. Deci perechea
atasat
a variabilei este (9, 4).
Pentru o variabila aleatoare de suma de intrare a = (a1 , a2 , a3 , a4 ) si suma de iesire
b = (b1 , b2 , b3 , b4 ), fie NL (a, b) numarul octetilor binari (x1 , x2 , x3 , x4 , y1 , y2 , y3 , y4 ) cu proprietatile
1. (y1 , y2 , y3 , y4 ) = S (x1 , x2 , x3 , x4 )
2.

4
M
i=1

ai Xi

4
M

b i Yi = 0

i=1

Tendinta unei astfel de variabile aleatoare este


(a, b) =

NL (a, b) 8
.
16

6.5. EXERCIT
II

15

Exemplul 6.8 Variabila din Exemplul 6.7 are NL (9, 4) = 8, deci (9, 4) = 0. Se poate
cosntrui o tabela cu toate valorile NL numit
a tabela de aproximare liniar
a:
a/b 0 1 2 3 4 5 6
0 16 8 8 8 8 8 8
1
8 8 6 6 8 8 6
8 8 6 6 8 8 6
2
3
8 8 8 8 8 8 8
8 10 8 6 6 4 6
4
5
8 6 6 8 6 8 12
6
8 10 6 12 10 8 8
7
8 6 8 10 10 4 10
8 8 8 8 8 8 8
8
9
8 8 6 6 8 8 6
A 8 12 6 10 4 8 10
B 8 12 8 4 12 8 12
C 8 6 12 6 6 8 10
D 8 10 10 8 6 12 8
E 8 10 10 8 6 4 8
8 6 4 6 6 8 10
F

7
8
14
6
8
8
10
10
8
8
6
6
8
8
10
10
8

8 9 A B C D E
8 8 8 8 8 8 8
10 10 8 8 10 10 8
8 8 10 10 8 8 2
10 2 6 6 10 10 6
8 6 8 10 10 4 10
6 8 4 10 8 6 6
8 6 10 12 6 8 8
6 8 10 8 12 10 8
6 10 10 6 10 6 6
4 8 6 10 8 12 10
10 10 8 8 10 10 8
8 8 8 8 8 8 8
10 8 10 12 9 10 8
4 6 10 8 10 8 8
6 8 8 6 4 10 6
8 6 12 6 6 8 10

F
8
8
10
6
8
8
6
10
2
6
8
8
6
10
8
8

Pe baza unei astfel de tabele se construieste strategia de criptanaliza liniara prezentata


la nceputul sectiunii.

6.5

Exercitii

6.1 Fie X1 , X2 , X3 variabile aleatoare independente cu valori n {0, 1} de tendinte 1 , 2


respectiv 3 . Demonstrati ca X1 X2 si X2 X3 sunt indepedente dac
a si numai daca
1 = 0, 3 = 0 sau 2 = 1/2.
6.2 Pentru fiecare din cele opt S-cutii DES calculati tendinta variabilei aleatoare X2
Y1 Y2 Y3 Y4 .
6.3 S-boxul DES S4 are cateva propriet
ati specifice:
a) Ar
atati ca a doua linie din S4 poate fi obtinut
a din prima linie folosind operatia
(y1 , y2 , y3 , y4 ) (y2 , y1 , y4 , y3 ) (0, 1, 1, 0)
b) Ar
atati ca orice linie din S4 poate fi transformat
a n orice alt
a linie printr-o operatie
similar
a.

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

16

6.4 Fie S : {0, 1}m {0, 1}n o S-cutie. Demonstrati c


a:
a) NL (0, 0) = 2m ;
b) NL (a, 0) = 2m 1, a [0, 2m 1];
n

c) b [0, 2 1],

m 1
2X

NL (a, b) = 22m1 2m1 ; ???????????

a=0

d)

m 1 2n 1
2X
X

a=0

NL (a, b) {2n+2m1 , 2n+2m1 + 2n+m1 }.

b=0

6.5 O S-cutie S : {0, 1}m {0, 1}n este balansat


a dac
a
|s1 (y)| = 2nm
pentru orice y {0, 1}n . Demonstrati urm
atoarele afirmatii despre NL pentru o S-cutie
balansat
a:
a) NL (0, b) = 2m 1, b [0, 2n 1];
m

b) a [0, 2 1],

n 1
2X

NL (a, b) = 2m+n1 2n1 + i2n

b=0

unde i este un numar ntreg din intervalul [0, 2mn ].


6.6 Fie S-cutia definita:
x
0 1 2 3 4 5 6 7 8 9 A B C D E F
S (x) 8 4 2 1 C 6 3 D A 5 E 7 F B 9 0
Determinati tabela ei de aproximatie liniar
a;
6.7 Fie un sistem de criptare P = C = K care asigur
a confidentialitate perfect
a; deci,
din eK () = eK1 () rezulta K = K1 . Not
am P= Y = {1 , 2 , . . . , N }. Fie un bloc de
text clar fixat. Definim functia g : Y Y prin g() = e (). Definim un graf orientat
av
and a noduri Y si ca arce (i , g(i )) (1 i N ).
1. Ar
atati ca este o reuniune de cicluri orientate disjuncte.
2. Fie T un parametru de timp fixat. Consider
am o multime Z = {1 , . . . , m } Y ,
astfel ca pentru orice i Y, i este ntr-un ciclu de lungime cel mult T , sau
exist
a un element j 6= i astfel c
a distanta de la i la j (n ) este cel mult T .
Demonstrati ca exista o astfel de multime cu card(Z) 2N/T (deci card(Z) este
de complexitate O(N/T ).
3. Pentru fiecare j Z, definim g 1 (j ) ca fiind acel element i astfel c
a g T (
i) = j , unde g T este functia g aplicat
a de T ori. Cosntruiti tabela X a perechilor
1
(j , g (j )), ordonate dupa prima coordonat
a.
Un algoritm care gaseste K astfel c
a = eK () este urm
atorul:

6.5. EXERCIT
II

17

1. 0 ;
2. f lag T rue;
3. while g() 6= 0 do
3.1. if j = j and f lag then
3.1.1. g 1 (j )
3.1.2. f lag F alse
else
3.1.3. g();
3.2. K = .
Ar
atati ca el determina K n maxim T etape (compromisul spatiu - timp este deci
O(N )).
4. Dati un algoritm care construieste o multime Z n timp O(N T ), f
ar
a a folosi tablouri
de m
arine N .

18

I DE ATAC ASUPRA DES


PRELEGEREA 6. MODALITAT

Bibliografie
[1] Menezes, A, Oorschot, P, Vanstome, S - Handbook of Applied cryptography
[2] Stinton, D - Cryptography, Theory and Practicce, Chapman & Hall/CRC, 2002

19

Вам также может понравиться

  • cr2 8 PDF
    cr2 8 PDF
    Документ12 страниц
    cr2 8 PDF
    fansoc
    Оценок пока нет
  • Cheie Publica
    Cheie Publica
    Документ15 страниц
    Cheie Publica
    cristian
    Оценок пока нет
  • Criptografie
    Criptografie
    Документ11 страниц
    Criptografie
    pablo escobar
    Оценок пока нет
  • cr2 7 PDF
    cr2 7 PDF
    Документ12 страниц
    cr2 7 PDF
    fansoc
    Оценок пока нет
  • c11 PDF
    c11 PDF
    Документ17 страниц
    c11 PDF
    fansoc
    Оценок пока нет
  • cr2 2
    cr2 2
    Документ15 страниц
    cr2 2
    pralyna
    Оценок пока нет
  • cr2 5 PDF
    cr2 5 PDF
    Документ14 страниц
    cr2 5 PDF
    fansoc
    Оценок пока нет
  • cr2 6 PDF
    cr2 6 PDF
    Документ14 страниц
    cr2 6 PDF
    fansoc
    Оценок пока нет
  • Protocoale de Distributie
    Protocoale de Distributie
    Документ11 страниц
    Protocoale de Distributie
    Ivan Brook Boianov
    Оценок пока нет
  • Semnatura Digit
    Semnatura Digit
    Документ19 страниц
    Semnatura Digit
    stavgheorghe
    Оценок пока нет
  • Generatoare Aleatoare
    Generatoare Aleatoare
    Документ11 страниц
    Generatoare Aleatoare
    deyuu007
    Оценок пока нет
  • c4 PDF
    c4 PDF
    Документ13 страниц
    c4 PDF
    fansoc
    Оценок пока нет
  • El Gamal
    El Gamal
    Документ15 страниц
    El Gamal
    ovidiu_amigo
    Оценок пока нет
  • C 10
    C 10
    Документ15 страниц
    C 10
    Muntean Ionel
    Оценок пока нет
  • c8 PDF
    c8 PDF
    Документ13 страниц
    c8 PDF
    fansoc
    Оценок пока нет
  • Aes Explicat Pas Cu Pas
    Aes Explicat Pas Cu Pas
    Документ17 страниц
    Aes Explicat Pas Cu Pas
    Simona Cîrciu-Ceacîru
    Оценок пока нет
  • Metode Criptografice Bazate Pe Substitutie
    Metode Criptografice Bazate Pe Substitutie
    Документ15 страниц
    Metode Criptografice Bazate Pe Substitutie
    Peta Dragos Andrei
    Оценок пока нет
  • C 1
    C 1
    Документ13 страниц
    C 1
    Sashaalex
    Оценок пока нет
  • c3 PDF
    c3 PDF
    Документ11 страниц
    c3 PDF
    fansoc
    Оценок пока нет