Kriptoanaliza

27
Kriptoanal iza Darko Poljak

description

Kriptoanaliza. Darko Poljak. Kriptiranje. Dekriptiranje. Alice. Bob. Eve. Osnovn a komunikacij a. Ključ kriptiranja. Ključ dekriptiranja. kriptirani tekst. otvoreni tekst. Suparnička strana. Mallory Oscar. Eve-ini ciljevi. - PowerPoint PPT Presentation

Transcript of Kriptoanaliza

Page 1: Kriptoanaliza

Kriptoanaliza

Darko Poljak

Page 2: Kriptoanaliza

Osnovna komunikacija

Kriptiranje Dekriptiranje Alice Bob

Eve

Ključ kriptiranja Ključ dekriptiranja

otvoreni tekst

kriptiranitekst

Suparnička stranaMallory Oscar

Page 3: Kriptoanaliza

Mallory je aktivni napadač koji pokušava postići 3. i 4.

Eve-ini ciljevi

1. pročitati poruku

2. otkriti ključ kojeg koristi Alice i pročitati sve kriptirane poruke

3. modificirati poruku

4. lažno se predstaviti kao Alice

Oscar je pasivni napadač koji pokušava postići 1. i 2.

Page 4: Kriptoanaliza

4. izmišljanje

Glavne prijetnje sigurnosti

1. prekidanje

2. presretanje

3. modifikacija

Page 5: Kriptoanaliza

Vrste napada

•napad s odabranim kriptiranim tekstom

•napad s odabranim otvorenim tekstom

•napad s poznatim otvorenim tekstom

•napad s poznatim kriptiranim tekstom

Page 6: Kriptoanaliza

Pretraživanje prostora

•pretraživanje cijelog prostora: dekriptiranje teksta sa svim mogućim ključevima

•pretraživanje pola prostora: kriptosustavi sa svojstvom simetričnosti C = E(P, K), C' = E(P', K')

Page 7: Kriptoanaliza

Linearna kriptoanaliza

• Matsui, EUROCRYPT ’93 kao napad na DES

• razbijanje DES-a sa 243 poznatih tekstova

• linearna aproksimacija S-kutija: odnos između podskupa ulaza u S-kutiju i podskupa izlaza iz S-kutije

• proširenje na funkciju F => linearni izraz za svaku aproksimaciju.

• spajanje linearnih izraza => linearna aproksimacija kriptosustava (vrijedi uz neku vjerojatnost)

• izračunavanje broja otvorenih tekstova

• traženje linearne aproksimacije + napad s poznatim otvorenim tekstom

Page 8: Kriptoanaliza

Linearna kriptoanaliza

• linearni izraz je oblika: Xi1 xor Xi2 xor...xor Xiu xor Yj1 xor...xor Yjv = 0

Xi i-ti bit ulaza X=[X1, X2,...], Yj j-ti bit izlaza Y=[Y1, Y2,...]

plus neka vjerojatnost da izraz vrijedi

• što je vjerojatnost dalje od ½ potreban je manji broj poznatih otvorenih tekstova

Page 9: Kriptoanaliza

Linearna kriptoanalizaOtkrivanje bitova ključa

• jedan bit ključa:

T:= broj otvorenih tekstova (od njih N) takvih da je lijeva strana jednadžbe (xori P) xor (xorj C) = xork K (i bitova otvorenog teksta

se xor-a sa j bitova kriptiranog teksta i izjednači sa xor-om k bitova podključa, gdje su bitovi koji se xor-aju neki bitovi

otvorenog, kriptiranog teksta i podključa) jednaka 0.

ako je T > N/2 tada pretpostavi xork K = 0 (kada je p > 1/2) ili 1 (inače)

inače pretpostavi xork K = 1 (kada je p > 1/2) ili 0 (inače)

Page 10: Kriptoanaliza

Linearna kriptoanalizaOtkrivanje više bitova ključa

• više bitova ključa:

za svaki kandidat podključa Ki od K činiti Ti := broj otvorenih tekstova (od njih N) takvih da je lijeva strana linearne aproksimacije jednaka 0krajTmax := max {Ti}Tmin := min {Ti}ako je |Tmax – N/2| > |Tmin – N/2| tada

primijeni kandidat podključa koji odgovara Tmax-u i pretpostavi xork K = 0 (kada je p > 1/2) ili 1 (inače)kraj

ako je |Tmax – N/2| < |Tmin – N/2| tadaprimijeni kandidat podključa koji odgovara Tmin-u i pretpostavi

xork K = 1 (kada je p > 1/2) ili 0 (inače)kraj

Page 11: Kriptoanaliza

Diferencijalna kriptoanaliza

• prvi put Murphy u napadu na FEAL-4

• Biham i Shamir na CRYPTO '90 kao napad na DES

• napad odabranim otvorenim tekstom

• oslanja se na analizu razlika (operacija xor) između dva otvorena teksta kriptiranim istim ključem

Page 12: Kriptoanaliza

Ostali napadi• Diferencijalno-linearna kriptoanaliza

• XSL napad• rješavanje preodređenog sustava jednadžbi (broj jednadžbi veći

od broja nepoznanica)

• Modulo n kriptoanaliza• vrijednost ulaza u posljednju rundu modulo n u nekom odnosu na

vrijednost otvorenog teksta modulo n • aproksimacija rotacija i zbrajanja modulo 232

• Meet-in-the-middle• uključuje dvije funkcije f1 i f2, za koje postoje dva ulaza, a i b,

tako da je f1(a)=f2(b);cilj je naći a i b

Page 13: Kriptoanaliza

Kolizije u hash funkcijama

Sigurnost hash funkcije H() - svojstva:

1. jednosmjernost: za bilo koji ulaz h, računski nije moguće naći ulaz x takav da je H(x)=h

2. slaba otpornost na koliziju: Za bilo koji ulaz x, računski nije moguće naći drugi ulaz y¹x takav da je H(x)=H(y)

3. jaka otpornost na koliziju: Računski je nemoguće naći par (x, y) takve da je H(x)=H(y)

4. domenska otpornost (eng. pre-image resistance): za dani izlaz y=h(x) (ali nije dan odgovarajući ulaz x) praktično je nemoguće pronaći x

5. druga domenska otpornost (eng. 2nd pre-image resistance): za dani izlaz y=h(x) i odgovarajući ulaz x praktično je nemoguće pronaći drugi ulaz z takav da je h(z)=h(x)

6. svojstvo slučajnog predviđanja: funkcija h() se ponaša kao slučajno odabrana funkcija

Page 14: Kriptoanaliza

Kolizije u hash funkcijama• Birthday napad• paradoks rođendana: ako se u sobi nalaze 23 osobe tada je

vjerojatnost da su barem dvije rođene isti dan 50%; za 60 i više ljudi, vjerojatnost je veća od 99%

osobe = ulaz u hash funkcijurođendani = hash vrijednostidvije osobe imaju rođendan na isti dan = dva ulaza u hash funkciju imaju istu hash vrijednost

• Pollardova ro metoda• periodičnu sekvenca; ponavljanje sekvence hi = fi(fi-1(...(f1(x))))

dovoljno dugo, učinit će je periodičnompostoje brojevi i > j gdje je hi=hj

Page 15: Kriptoanaliza

• Metoda razlikovnih točaka

• Multikolizijski napadi• multikolizija:

skup elemenata čije su izlazne vrijednosti jednake

• Multidomenski napad• za dani slučajni y iz {0,1}n, pronađe se podskup C={x1,..,xr}

veličine r (>=1) takav da je H(x1)=...=H(xr)=y

Kolizije u hash funkcijama

Page 16: Kriptoanaliza

Kriptoanaliza asimetričnih kriptosustava

• Sigurnost:• problem diskretnog logaritma

p prim broj

za dane a i b, potrebno je naći x takav da je

ax = b (mod p)

• problem faktoriziranja velikih cijelih brojeva

Page 17: Kriptoanaliza

Problem diskretnog logaritmaMetode rješavanja

• Shank-ova “baby-steps, giant-steps” medota (osnovni napad)

• Pollardova metoda

• index-calculus metoda

Page 18: Kriptoanaliza

Problem faktorizacijeAlgoritmi faktorizacije

• Eulerova metoda • Fermatova faktorizacija • Metoda isključivanja (excludent)• Dixonova metoda • Pollardova ro metoda • Brentova metoda • Pollardova p-1 metoda• Faktorizacija kvantionskom algebrom

Page 19: Kriptoanaliza

Linearna kriptoanaliza 3-round DES-a

• DES reduciran na 3 runde

• linearna aproskimacija (Matsui):

Pl [15] xor Ph [7,18,24,29] xor Cl [15] xor Ch [7,18,24,29] = K1 [22] xor K3 [22]

• vjerojatnost da gornji izraz vrijedi iznosi p = 0.70

• za uspjeh od 99.8% potrebno 50 poznatih otvorenih tekstova (2|p-1/2|-2)

Page 20: Kriptoanaliza

• extern bit LHS;- vrijednost lijeve strane linearne aproksimacije (Pl [15] xor Ph [7,18,24,29] xor Cl [15] xor Ch [7,18,24,29] )

• extern bit k1_22; extern bit k3_22; - prave vrijednosti bitova podključeva (K1 [22], K3 [22]) za koje se određuje linearna aproksimacija (za provjeru rezultata)

• bit lin_analysis_DES_1bit (void (*next_plain_cipher) (string*, string*,const string&), int ptxtcnt, const string& key, float p);

- maximum likelihood algoritam - next_plain_cipher - sljedeći par otvorenog i kriptiranog teksta;- ptxtcnt - broj poznatih otvorenih tekstova; - key - ključ kriptiranja (u pravom napadu nije poznat); - p - vjerojatnost da linearna aproksimacija vrijedi

Linearna kriptoanaliza 3-round DES-avarijable i funkcije

Page 21: Kriptoanaliza

keySchedule();k1_22=_subkey[0][47-22]; k3_22=_subkey[2][47-22];

computeIP(_plain,IP);LHS=IP[63-15]^IP[31-7]^IP[31-18]^IP[31-24]^IP[31-29];splitBlock(IP,64,L,R);for(int round=0;round<3;++round) {

for(int j=0;j<32;++j) {temp[j]=L[j]; L[j]=R[j];

}computeF(R,_subkey[round],F);for(int j=0;j<32;++j) {

R[j]=temp[j] ^ F[j];}

}concatBlock(R,L,32,RL);LHS = LHS^RL[63-15]^RL[31-7]^RL[31-18]^ RL[31-24]^RL[31-29];computeIPInv(RL,_cipher);

Linearna kriptoanaliza 3-round DES-avarijable i funkcije

Page 22: Kriptoanaliza

inicijaliziraj brojač T=0;za svaki Pi i odgovarajući Ci (0 <= i < N) činiti { neka je t evaluacija lijeve strane linearne aproksimacije, tj. implementirane jednadžbe t <- Pl [15] xor Ph [7,18,24,29] xor Cl [15] xor Ch[7,18,24,29]; ako je t = 0 povećaj brojač T;}ako je vjerojatnost linearne aproksimacije veća od 1/2 (npr. P = 0.70){ ako je T > N/2 tada pretpostavi da je vrijednost desne strane aproksimacije 0, tj. K1 [22] xor K3 [22] = 0; ako je T <= N/2 tada pretpostavi da je vrijednost desne strane aproksimacije 1, tj. K1 [22] xor K3 [22] = 1;}ako je vjerojatnost linearne aproksimacije manja od ½{ ako je T > N/2 tada pretpostavi da je vrijednost desne strane aproksimacije 1; ako je T <= N/2 tada pretpostavi da je vrijednost desne strane aproksimacije 0;}

Linearna kriptoanaliza 3-round DES-amaximum likelihood algoritam

Page 23: Kriptoanaliza

• Primjer 1.Real Key:

01234567890123456789012345678901234567890123456789

11010111100000111010000110010001011100010000001010

01234567890123

11101010010011

Real bits K1[22] = 1; K3[22] = 1

3-round DES linear analysis (1 key bit) result:

Pl[15] xor Ph[7,18,24,29] xor Cl[15] xor Ch[7,18,24,29] =

K1[22] xor K3[22] = 0

Linearna kriptoanaliza 3-round DES-aRezultat

Page 24: Kriptoanaliza

• Primjer 2.Real Key:

01234567890123456789012345678901234567890123456789

11110100101001011111001010100111110000110000011000

01234567890123

1110100100000

Real bits K1[22] = 0; K3[22] = 1

3-round DES linear analysis (1 key bit) result:

Pl[15] xor Ph[7,18,24,29] xor Cl[15] xor Ch[7,18,24,29] =

K1[22] xor K3[22] = 1

Linearna kriptoanaliza 3-round DES-aRezultat

Page 25: Kriptoanaliza

• paritet dva bita ključa koji odgovaraju K1[22], K3[22] određen s vjerojatnošću 0.7

• linearni izraz koristi se u reduciranoj iscrpnoj pretrazi ključa

• umjesto svih 56 traži se 55 bitova

• smanjenje iscrpne pretrage za faktor 2

• dodatno smanjenje iscrpne pretrage: jos neka aproksimacija

Linearna kriptoanaliza 3-round DES-aRezultat

Page 26: Kriptoanaliza

Linearna kriptoanaliza 3-round DES-aRezultat

• svojstvo komplementa DES-a:C = DES(P, K)C’ = DES(P’, K’)

• linearna aproksimacija može se ugraditi u algoritam pretraživanja pola prostora

• linearnim izrazom ispravi se određeni bit ključa

• simetrija linearnog izraza može se iskoristiti za dobivanje dodatne linearne aproksimacije

Page 27: Kriptoanaliza

Siguran kriptosustav?

• kriptosustav za koji se smatra da je nemoguće probiti: one-time pad

1. ključ mora biti istinski slučajan; ne generira se algoritmima koji kao ulaz koriste kraći ključ; mora biti bez biasa: vjerojatnost svih simbola mora biti jednaka

2. ključ mora biti jednake duljine kao i poruka; znakovi u poruci i ključu moraju biti iz iste abecede jednake veličine

3. ključ se na poruku mora primijeniti tako da su za dane simbole otvorenog teksta, svi simboli kriptiranog teksta jednako mogući, te obrnuto

4. osim za kriptiranje poruke, ključ se ne koristi u druge svrhe