Kriptoanaliza
-
Upload
chaim-olson -
Category
Documents
-
view
42 -
download
0
description
Transcript of Kriptoanaliza
Kriptoanaliza
Darko Poljak
Osnovna komunikacija
Kriptiranje Dekriptiranje Alice Bob
Eve
Ključ kriptiranja Ključ dekriptiranja
otvoreni tekst
kriptiranitekst
Suparnička stranaMallory Oscar
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.
4. izmišljanje
Glavne prijetnje sigurnosti
1. prekidanje
2. presretanje
3. modifikacija
Vrste napada
•napad s odabranim kriptiranim tekstom
•napad s odabranim otvorenim tekstom
•napad s poznatim otvorenim tekstom
•napad s poznatim kriptiranim tekstom
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')
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
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
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)
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
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
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
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
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
• 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
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
Problem diskretnog logaritmaMetode rješavanja
• Shank-ova “baby-steps, giant-steps” medota (osnovni napad)
• Pollardova metoda
• index-calculus metoda
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
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)
• 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
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
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
• 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
• 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
• 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
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
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