Professional Documents
Culture Documents
Predavanja Racunalna Sigurnost
Predavanja Racunalna Sigurnost
3 4
5 6
♦1
Tipovi kriptografskih algoritama Simetrični kriptosustavi
♦ simetrični ♦ Kerckhoffov princip:
e = d = K (simetrični, sjednički ili tajni ključ) Kriptosustav mora biti siguran i onda kada su
sve informacije o kriptosustavu javno poznate,
(DES, 3-DES, IDEA, AES, Blowfish, RC6, osim tajnog ključa.
GOST, Mars, Serpent, Loki, CAST...)
♦ asimetrični (algoritmi s javnim ključem)
♦ temelje se na jednostavnoj logičkoj operaciji
e ≠ d (P - javni i S - privatni ključ) isključivo ILI (XOR):
(RSA, Diffie-Hellman, RPK, ECES, C=P⊕K P=C⊕K
ElGamal, LUC, Blum Goldwaser...) P=(P⊕K)⊕K
7 8
♦2
Supstitucijske tablice
DES: funkcija F
♦3
Napredni kriptosustav (AES)
Konačno polje GF(28)
♦ natječaj za napredni kriptosustav (AES –
Advanced Encryption Standard) je raspisao NIST ♦ elementi polja su polinomi oblika:
(National Institute of Standards and Technology) a7x7 + a6x6 + ... + a1x + a0, ai {0, 1}
12.9.1997. godine
♦ svaki bajt a7a6a5a4a3a2a1a0 (niz od 8 bitova)
♦ 3DES je proglašen kao privremeni standard
je predstavljen odgovarajućim polinomom
♦ na natječaj su se mogli prijaviti samo algoritmi sa
sljedećim svojstvima:
– simetrični blok algoritmi s javnim izvornim tekstom ♦ zbrajanje - isključivo ILI
programa
♦ množenje - binarno množenje polinoma
– blok podataka koji se kriptira je minimalne veličine 128
bita modulo fiksni ireducibilni polinom
– veličina ključa od 128, 192 i 256 bita g(x) = x8 + x4 + x3 + x + 1 ≡ 11BH
19 20
posljednji korak
podključ[Nr]
pomiješaj stupce
♦ množi se stupac po stupac bloka (tako da se svaki stupac
kriptirani
Zamijeni
znakove
Posmakni
redove blok
promatra kao četveročlani polinom) s fiksnim polinomom
a(x) = 03Hx3 + 01Hx2 + 01Hx + 02H modulo x4+1
23 24
♦4
Načini kriptiranja: ECB - Electronic Codebook Načini kriptiranja: Cipher Block Chaining (CBC)
25 26
27 28
Napadi na kriptosustave
Counter (CTR)
– uvod u kriptoanalizu
♦ IV je rastuća vrijednost ili neka druga funkcija
♦ cilj: doznati tajni ključ K
♦5
Pretraživanje cijelog prostora rješenja Pretraživanje pola prostora rješenja
♦ napadač pokušava dekriptirati kriptirani tekst sa svim ♦ može se ostvariti kod mnogih kriptosustava za koje vrijedi
mogućim ključevima simetrija:
♦ najjednostavnija i najsporija vrsta napada C = DES (M, K) i C' = DES (M', K')
♦ nije moguće spriječiti ovaj napad (X' oznaka za bitovni komplement vrijednosti X)
♦ uspješnost svih napada na kriptosustave mjeri se
♦ fiksno se postavi jedan bit ključa u '0'
usporedbom s pretraživanjem cijelog prostora
♦ napad koji ima veću složenost od složenosti pretraživanja ♦ za svaki K se uspoređuje dobiveni kriptirani tekst C'' sa C i
cijelog prostora smatra se neuspješnim C' i ukoliko vrijedi jednakost, radi se o K odnosno K'
♦ Pretpostavka: napadač ili već ima na raspolaganju čisti ♦ ušteda je vrlo blizu 50%
tekst ili pretpostavlja da čisti tekst ima neku standardnu ♦ vrijedi i za DES!
strukturu koju je moguće prepoznati. Inače, u slučaju
♦ zaštita od napada pretraživanjem pola prostora: koristiti
dekriptiranja poruke bez prepoznatljive strukture, napadač
nema nikakve šanse da pretraživanjem cijelog prostora kriptosustav za koji ne vrijedi navedeni tip simetrije ☺
sazna koji je pravi ključ.
31 32
♦ neka je aproksimacija nekog algoritma dana izrazom: ♦ ukoliko izrazi nemaju ovisnosti o bitovima čistog teksta P,
već samo o kriptiranom tekstu C i ključu K => napad s
P [1, 4, 13] ⊕ C [1, 2, 3, 4, 6, 9, 11] = K [5, 6, 8] poznatim kriptiranim tekstom.
♦ neka aproksimacija ima vjerojatnost p = 100% ♦ učinkovitost algoritma raste s │p – 0.5│ i s rastom broja
♦ paritet 5., 6. i 8. bita ključa jednoznačno je određen poznatih tekstova
paritetom pojednih bitova čistog i kriptiranog teksta ♦ najbolja linearna aproksimacija DES-a reduciranog na 3
runde:
♦ duljina ključa se efektivno smanjila za 1 bit
PR [15] ⊕ PL [7, 18, 24, 29] ⊕ CR [15] ⊕ CL [7, 18, 24, 29] = K1 [22] ⊕ K3 [22]
35 36
♦6
Asimetrični kriptosustavi Prosti ili prim brojevi
ili sustavi s javnim ključem a >1 koji nema faktora (ima samo djelitelje 1 i a )
1 1
ϕ (n ) = n (1 − )(1 − ) = ( p − 1)(q − 1).
p q Primjer 11.2.
Dokaz za n = p je trivijalan: Neka je n = 15 = 3 × 5 ⇒ p = 3 i q = 5.
Zp = {0, 1, 2, …, p - 1 } ⇒ Zp* = { 1, 2, …, p - 1 } Z15 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }
Z15* = { 1, 2, 4, 7, 8, 11, 13, 14 }
Dokaz za n = p × q
Z15* = 8 , jer je ϕ (15 ) = (5 - 1)(3 - 1) = 8 .
Zn = {0, 1, 2, …, p × q - 1 } ima ukupno p × q elemenata:
{0 } s 1 elementom,
{p, 2 ×p , …, (q-1) × p } s q -1 elemenata,
{q, 2 ×q , …, (p-1) × q } s p -1 elemenata,
Zn * s Zn* elemenata.
♦7
Primjer 11.3. Modularno potenciranje Primjer 11.4.
Potenciranje s velikim eksponentima prikladno je obaviti Neka su:
uzastopnim kvadriranjem. a = 635 ⇒ a = 1001111011(2)
Želimo izračunati d = b a mod n . n = 734
d = 1;
Neka je am , am-1 , am-2 ,…, a1 , a0 binarni prikaz od a . b=5 i = m;
dok je (i >=
> 0) {
d = (d * d) mod n;
ako je (a[i] == 1) {
d = 1; d = (d*b) mod n;
i = m; }
dok je (i >=
> 0) { i --;
d = (d * d) mod n; }
ako je (a[i] == 1) {
d = (d*b) mod n;
} Postupak izračunavanja b a mod n :
i --; i 9 8 7 6 5 4 3 2 1 0
}
a[i] 1 0 0 1 1 1 1 0 1 1
d 5 25 625 685 261 29 535 699 253 21
43 44
Fermatov teorem
Primjer 11.5. a p-1 ≡ 1 (mod p ) Ako Zn* ima osnovni korijen onda Zn* čini cikličku grupu.
Neka je p = 11 . a ≡ a (mod p )
p
Dokazano je da je Zn* ciklička grupa za:
i 0 1 2 3 4 5 6 7 8 9 10 11 n = 2, 4, p e, 2p e ,
gdje su p prosti brojevi i e prirodni brojevi.
2 i mod 11 1 2 4 8 5 10 9 7 3 6 1 2
5 i mod 11 1 5 3 4 9 1 5 3 4 9 1 5
Diskretni logaritam ili indeks
7 i mod 11 1 7 5 2 3 10 4 6 9 8 1 7
Kod nekih nizova potencija ne pojavljuju svi elementi Zp* . Neka je a osnovni korijen od Zn* i b ∈Zn* . Broj x je
diskretni logaritam ili indeks broja b (mod n ) u
Za a = 5 potencije generiraju podskup {1, 3, 4, 5, 9 }.
odnosu na bazu a, ako vrijedi:
Taj podskup ima 5 članova: ord11(5) = 5.
a x ≡ b (mod n )
♦8