Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

TEHNOLOGIJE U KRIPTOGRAFSKIM

SISTEMIMA
Asimetrični sistemi kriptovanja

Disclaimer: The European Commission support for the production of this website does not constitute an
endorsement of the contents which reflects the views only of the authors, and the Commission cannot be
held responsible for any use which may be made of the information contained therein.

15-09-2019
Fare clic per modificare lo stile del titolo
UVOD
▸ Koncept kriptografije sa asimetričnim ključevima ili kriptografije sa javnim
ključem evoluirao je iz pokušaja da se riješe dva osnovan problema koji
postoje kod simetričnih enkripcija:

▸ Distribucija ključeva: simetrični sistemi zahtijevaju centar za distribuciju


ili da se unaprije d razmijene ključevi.

▸ Digitalni potpis: potvrda da je neka osoba potpisala dokument.

▸ Whitfield Diffie i Martin Hellman u svojoj publikaciji "New Directions in


Cryptography" predstavili su ideju kriptografije bazirane na javnom i
privatnom ključu.

▸ Osnova sigurnosti asimetričnih algoritama baizira se na nemogućnosti


izračunavanja privatnog ključa iz javnog ključa;

▸ Asimetrični algoritmi se zasnivaju na različitim ključevima za unkripciju i


dekripciju

2
Fare clic per modificare lo stile del titolo
Primjena asimetričnih sistema kriptovanja
javni ključevi privatni ključ

X šifrirani tekst X
Otvoreni tekst Enkripcija Dekripcija Otvoreni tekst
Y
Y=E(PUB,X) X=D(PRB,Y)
PUB je javni PRB je privatni
Osoba A ključ osobe B ključ osobe B Osoba B

Enkripcija sa javnim ključem

javni ključevi
privatni ključ

X šifrirani tekst X
Otvoreni tekst Enkripcija Dekripcija Otvoreni tekst
Y
Y=E(PRA,X) X=D(PUA,Y)
PRA je privatni PUA je javni
Osoba A ključ osobe A ključ osobe A Osoba B
Enkripcija sa privatnim ključem
u ovom slučaju obzbijeđena je autentifikacija ali svako može pročitati poruku

U ovom sistemu kriptovanja važno je da osobe čuvaju svoj privatni ključ.

3
Fare clic per modificare lo stile del titolo
Primjena asimetričnih sistema kriptovanja
Osoba A Osoba B

Otvoreni X Y Z Y X Otvoreni
Enkripcija Enkripcija Dekripcija Dekripcija
tekst tekst
PRB
PUB
PRA Izvor para
ključeva

PUA
Izvor para Z=E(PUB, E(PRA,X))
ključeva
X=D(PUA, D(PRB,Z))

Na ovaj način obezbijeđena je i autentifikacija i tajnost poruke.

4
Fare clic per modificare lo stile del titolo
Primjena asimetričnih kriptosistema
▸ Postoje javni i privatni ključ svakog učesnika u komuniakciji i u ovisnosti kako se
koriste imamo tri kategorije primjene ovih sistema:

▸ Enkripcija/Dekripcija - pošiljaoc kriptuje poruku sa javnim ključem primaoca

▸ Digitalni potpis - pošiljaoc potpisuje poruku sa privatnim ključem pošiljaoca.


Ovdje se koriste hash funkcije.

▸ Razmjena ključeva

Algoritam Enkripcija/ Digitalni potpis Razmjena


Dekripcija ključeva
RSA Da Da Da
Elliptic Curve Da Da Da
Diffie-Helman Ne Ne Da
DSS Ne Da Ne

5
Fare clic per modificare lo stile del titolo
Usporedba simetričnih i asimetričnih sistema

Simetrični sistemi Asimetrični sistemi


Implementacija Implementacija
• Algoritam sa istim ključevima se koristi • jedan algoritma se koristi za enkripcijui
za enkripciju i dekripciju povezan je sa algoritmom za dekripciju
• Osobe moraju razmijeniti informacije o preko para ključeva
algoritmu i ključ • Pošiljalac i primalac moraju imati jedan od
ključeva iz para
Potreba za tajnošću Potreba za tajnošću
• Ključ mora ostati tajan • Jedan od dva ključa mora ostati tajan
• Mora biti nemoguće ili nepraktično • Mora biti nemoguće ili praktično
dekriptovati poruku bez poznatog ključa neizvodivo dekriptovati poruku ako je
• Poznavanje algoritma i uzorka jedan ključ ostao tajan
šifrovanog teksta mora biti nedovoljno • Poznavanje algoritma, jednog ključa i
za određivanje ključa uzorka šifrovanog teksta mora biti
nedovoljno za određivanje drugog ključa

6
Fare clic per modificare lo stile del titolo
Kriptoanaliza

PRB
Kriptoanaliza ∧ Osoba B
Osoba A X
Otvoreni X X Otvoreni
Enkripcija Dekripcija
tekst tekst
Y=E(PUB,X)
X=D(PRB,Y)
PRB

PUB
Izvor para
ključeva

U ovom slučaju napadaču su na raspolaganju javna šifra i kriptovani tekst


a cilj je na osnovu toga otkriti otvoreni tekst i privatnu šifru primaoca.

7
Fare clic per modificare lo stile del titolo
Kriptoanaliza

PRA
Osoba A Kriptoanaliza Osoba B

Otvoreni X X Otvoreni
Enkripcija Dekripcija
tekst tekst
Y=E(PRA,X)
X=D(PUA,Y)

PRA

PUA
Izvor para
ključeva
U ovom slučaju napadaču su na raspolaganju javna šifra pošiljaoca i kriptovani
tekst se lako može dobiti na osnovu poznate javne šifre pošiljaoca a cilj je na
osnovu toga otkriti privatnu šifru pošiljaoca.
Ovo je slučaj autentifikacije.

8
Fare clic per modificare lo stile del titolo
Modularna aritmetika
▸ Nekoliko važnih algoritama za enkripciju koristi modularnu aritmetiku. Rezultat
izračunavanja je uvijek u području od 0 do m pri čemu je m modul.

▸ Da biste izračunali vrijednost n mod m, oduzimate što više multipla m dok ne dobijete
odgovor između 0 i m.

▸ Primjeri:

▸ 17 mod 5 = 2  7 mod 11 = 7

▸   20 mod 3 = 2  11 mod 11 = 0

▸   -3 mod 11 = 8  -1 mod 11 = 10

▸   25 mod 5 = 0  -11 mod 11 = 0

▸ 9 - 2 mod 10 = 9 + 8 mod 10 = 7

▸ 4 - 6 mod 10 = 4 + 4 mod 10 = 8

▸ Ako je n negativan broj, u tom slučaju dodajete m sve dok se ne dobije odgovor u
opsegu od 0 do m.

9
Fare clic per modificare lo stile del titolo
Modularna aritmetika: sabiranje

+ 0 1 2 3 4 5 6 7 8 9

0 0 1 2 3 4 5 6 7 8 9

1 1 2 3 4 5 6 7 8 9 0

2 2 3 4 5 6 7 8 9 0 1

3 3 4 5 6 7 8 9 0 1 2

4 4 5 6 7 8 9 0 1 2 3

5 5 6 7 8 9 0 1 2 3 4

6 6 7 8 9 0 1 2 3 4 5

7 7 8 9 0 1 2 3 4 5 6

8 8 9 0 1 2 3 4 5 6 7

9 9 0 1 2 3 4 5 6 7 8

10
Fare clic per modificare lo stile del titolo
Modularna aritmetika: osobina kongruentnosti
▸ 1.a ≡ b (mod n) ako je n|(a-b)

▸ 2.a ≡ b (mod n) implicira b ≡ a (mod n)

▸ 3.a ≡ b (mod n) i b ≡ c (mod n) implicira a ≡ c (mod n)

▸ Primjer

▸ 23 ≡ 8 (mod 5) because 23 -8 =15 = 5x3

▸ -11 ≡ 5 (mod 8) because -11-5 =-16 = 8x(-2)

▸ 81 ≡ 0 (mod 27) because 81-0=81 = 27x3

11
Fare clic per modificare lo stile del titolo
Modularna aritmetika: osobine
▸ [(a mod n) + (b mod n)] mod n = (a + b) mod n

▸ [(a mod n) - (b mod n)] mod n = (a - b) mod n

▸ [(a mod n) x (b mod n)] mod n = (a x b) mod n

▸ Primjeri

▸ 11 mod 8 = 3; 15 mod 8 = 7

▸ [(11 mod 8 ) + (15 mod 8)] mod 8 = 10 mod 8 = 2

▸ (11 + 15) mod 8 = 26 mod 8 = 2

▸ [(11 mod 8 ) - (15 mod 8)] mod 8 = -4 mod 8 = 4

▸ (11 - 15) mod 8 = -4 mod 8 = 4

▸ [(11 mod 8 ) x (15 mod 8)]  mod 8= 21 mod 8 = 5

▸ (11 x 15) mod 8 = 165 mod 8 = 5

12
Fare clic per modificare lo stile del titolo
Modularna aritmetika: množenje po mod 10

· 0 1 2 3 4 5 6 7 8 9

0 0 0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7 8 9

2 0 2 4 6 8 0 2 4 6 8

3 0 3 6 9 2 5 8 1 4 7

4 0 4 8 2 6 0 4 8 2 6

5 0 5 0 5 0 5 0 5 0 5

6 0 6 2 8 4 0 6 2 8 4

7 0 7 4 1 8 5 2 9 6 3

8 0 8 6 4 2 0 8 6 4 2

9 0 9 8 7 6 5 4 3 2 1

13
Fare clic per modificare lo stile del titolo
Modularna aritmetika: množenje
▸ Primjer: poruka m = 3, tajni ključ K = 7

▸ Enkripcija: c = m · K = 3 · 7 = 21 mod 10 = 1

▸ Dekripcija: m = c · K-1 = 1 · 7-1 = 1 · 3 = 3 mod 10 = 3

▸ Multiplikativni inverzni broj (multiplicative inverse) modulo n broja X (pisano


X-1 ) je broj za koji vrijedi:

▸ X · X-1 = 1 mod n, (npr., n = 10)

▸ U nasem primjeru (prethodna tablica) samo brojevi 1, 3, 7 ili 9 imaju


multiplikativne inverzne brojeve modulo 10

▸ Napomena: za vrlo velike brojeve n (npr. 100 znamenkasti broj) racunanje


inverza “brute-force” metodom neizvedivo

▸ Euclid’s Algorithm - efikasan algoritam za racunanje inverznih brojeva

14
Fare clic per modificare lo stile del titolo
Modularna aritmetika: množenje
▸ Zasto su stupci 1 i 5, 2 i 6, 3 i 7 isti?

▸ Zbog zanimljivog svojstva f(n) funkcije: xy mod n = x( y mod f(n) ) mod


n

▸ U slučaju n = 10, {1, 3, 7, 9} su relativno prosti -> f(n) = 4. Stoga su


stupci s te s + 4 jednaki.

▸ Ovo svojstvo f(n) funkcije vrijedi za sve primarne brojeve n, te za


sve n = pq, gdje su p i q razliciti prosti brojevi.

▸ Za nas (RSA) je interesantan specijalan slučaj: y = 1 mod f(n)

▸ U ovom slučaju, za svaki x imamo: xy = x( 1 mod f(n) ) = x mod n

15
Fare clic per modificare lo stile del titolo
Modularna aritmetika: stepenovanje
▸ Stepenovanje je u osnovi ponavljanje množenja kao i u klasičnoj
aritmetici.

▸ Za nalaženje 117 mod 13 radimo sljedeće

▸ 117 = 121 ≡ 4 (mod 13)

▸ 114 = (112 )2 ≡ 42 ≡ 3 (mod 13)

▸ 117≡ 11 ⋅ 4 ⋅ 3 ≡ 132 ≡ 2 (mod 13)

16
Fare clic per modificare lo stile del titolo
Modularna aritmetika: stepenovanje (mod 10)

x 0 1 2 3 4 5 6 7 8 9 10 11 12

0 - 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 1 2 4 8 6 2 4 8 6 2 4 8 6

3 1 3 9 7 1 3 9 7 1 3 9 7 1

4 1 4 6 4 6 4 6 4 6 4 6 4 6

5 1 5 5 5 5 5 5 5 5 5 5 5 5

6 1 6 6 6 6 6 6 6 6 6 6 6 6

7 1 7 9 3 1 7 9 3 1 7 9 3 1

8 1 8 4 2 6 8 4 2 6 8 4 2 6

9 1 9 1 9 1 9 1 9 1 9 1 9 1

17
Fare clic per modificare lo stile del titolo
Modularna aritmetika: stepenovanje
• Brojevi 1, 3, 7 i 9 su relativno prosti (relatively prime) brojevi u odnosu na broj
10

• Nemaju zajednickih faktora sa brojem 10 (osim naravno 1)

• Euler-ova f(n) funkcija (totient function)

• Označava broj relativno prostih brojeva, u odnosu na n, koji su manji od n

• Veličina funkcije f(n)

• Ako je n prost broj onda  f(n) = n – 1.

• oAko je n produkt dva razlicita prosta broja p i q, onda f(n) = (p-1)(q-1). Q: Je li


n prost broj? Izvedite izraz za f(n).

18
Fare clic per modificare lo stile del titolo
Uslovi koje trebaju ispunjavati asimetrični algoritmi
▸ Jednostavno je računski od strane B da generiše par ključeva: javni PUB i privatni PUA.

▸ Računski je jednostavno za pošiljaoca A, poznavajući javni ključ i poruku da kriptuje poruku M


generišući šifrovani tekst: C = E(PUB, M )

▸ Računski je jednostavno za primaoca B da dekriptuje šifrovani tekst koristeći privatni ključ:


M = D(PRB, C ) = D(PRB, E(PUB, M ))

▸ Računski je neisplativo za napadača poznajući javni ključ PUB da odredi privatni ključ PRB

▸ Računski je neisplativo za napadača, poznajući javni ključ PUB i šifrovani tekst C za dobijanje
izvorne poruke M.

▸ Dva ključa se mogu koristiti u bilo kojem rdoslijedu:


M = D(PUB, E(PRB, M )) = D(PRB, E(PUB, M ))

▸ Ovi algoritmi leže na jednosmjernim funkcijama:

▸ Y = f (X ) jednostavno

▸ X = f −1(Y ) neisplativo

19
Fare clic per modificare lo stile del titolo
RSA algoritam - uvod
▸ 1978. god. definisan je prvi asimetrčni algoritam, koji se označava
sa RSA (Rivest, Shamir i Adleman)

▸ RSA šema je šifrator u kojem su otvoreni tekst i šifrovani tekst


cijeli brojevi od 0 do n-1 za neko n.

▸ Tipična vrijednost za n=1024 bita ili 309 decimalnih cifri.

▸ RSA povlači korištenje izraza sa eksponentima. Otvoreni tekst se


kriptuje u blokove sa svakim blokom koji ima binarnu vrijednost
manju od nekog broja n. To je veličina bloka koja mora biti manja
od ili jednaka log2(n + 1)

▸ U praksi, veličina bloka je i bita gdje je 2i < n ≤ 2i+1

20
Fare clic per modificare lo stile del titolo
RSA algoritam
▸ Enkripcija i dekripcija se realiziraju u obliku:

▸ C = M emod n

▸ M = C d mod n = (M e)d mod n = M ed mod n

▸ pri čemu je M otvoreni tekst i C blok kriptovanog teksta.

▸ Pošiljaoc i i primaoc moraju poznavati vrijednost n. Pošiljaoc poznaje vrijednost e i samo


primalac poznaje vrijednost d.

▸ Ovo je asimetrični sistem kod kojeg je javni ključ PU={e,n} a privatni ključ PR={d,n}.

▸ Da bi ispunio zahtjeve asimetričnog kriptovanja mora ispuniti sljedće zahtjeve:

▸ moguće je naći vrijednosti e,d i n tako da je M ed mod n = M za svako M < n

▸ relativno je jednostavno izračunati M emod n i C d mod n za sve M < n

▸ neisplatiivo je određivanje d za dato e i n.

21
Fare clic per modificare lo stile del titolo
RSA algoritam
▸ Potrebno je naći vezu oblika

▸ M ed mod n = M

▸ Ova veza važi ako su e i d multiplikativno inverzni modulu ϕ(n) gdje je ϕ(n) Eulerova
funkcija. Eulerova funkcija označava broj relativno prostih brojeva u odnosu na n koji
su manji od n.

▸ Ako su p i q prosti brojevi tada je: ϕ(pq) = (p − 1)(q − 1).

▸ Veza između e i d se može izraziti kao: ed mod ϕ(n) = 1

▸ Ekvivalentno imamo:

▸ ed ≡ 1 mod ϕ(n)

▸ d ≡ e −1mod ϕ(n)

▸ e id su multiplikativno inverzni mod ϕ(n) Ovo je ispunjeno samo ako su d (i prema tome e)
relativno prosti brojevi u odnosu na ϕ(n).

22
Fare clic per modificare lo stile del titolo
RSA algoritam
▸ RSA šema sadrži:

▸ p, q dva prosta broj (privatni, izabrani)

▸ n =p⋅q (javni izračunati)

▸ e sa gcd (ϕ(n), e) = 1 ; 1 < e < ϕ(n) (javni izabrani)

▸ d ≡ e −1(mod ϕ(n)) (privatni, izračunat)

▸ Privatni ključ čine {d,n} a javni ključ {e,n}.

▸ Primjer:

▸ Korisnik A je objavio svoj javni ključ i korisnik B želi da pošalje poruku M ka


korisniku A.

▸ B izračunava C = M emod n i šalje C ka A.

▸ A izračunava porukuM primjenom izraza: M = C d mod n

23
Fare clic per modificare lo stile del titolo
RSA algoritam
▸ Procedura za dobijanje ključeva:

▸ Izabrati dva prosta broja p i q

▸ Izračunati N = p ⋅ q

▸ Izabrati e (mora biti manje od N) tako da e i proizvod (p – 1)(q


– 1) budu uzajamno prosti (da nemaju zajedničkog djelitelja
osim 1).

▸ Odrediti broj d tako da zadovoljava jednačinu (e x d) mod [(p


– 1)(q – 1)] = 1

24
Fare clic per modificare lo stile del titolo
RSA algoritam - primjer generisanje ključa
1. Izabrati dva prosta broja: p=17 i q=11.

2. Izračunati n = p ⋅ q = 17 ⋅ 11 = 187

3. Izračunati ϕ(n) = (p − 1) ⋅ (q − 1) = 16 * 10 = 160

4. Izabrati e tako da je e relativno prost broj u odnosu na ϕ(n) = 160 i manji od ϕ(n).
Izaberimo e=7.

5. Odrediti d tako da je d ≡ 1 mod 160 i d<160. Dobija se d=23 jer je


23 ⋅ 7 = 161 = (1 ⋅ 160) + 1

6. d se može izračunati korištenjem proširenog Eujklidovog algoritma .

7. Ključ je:

1. javni PU={e,n}={7,187}

2. privatni PR={d,n}={23, 187}

25
Fare clic per modificare lo stile del titolo
RSA algoritam - primjer
▸ Kao ilustracija formiranja para ključeva data je sledeća procedura:

▸ izabrati proste brojeve p = 2357, q = 2551;

▸ izračunati N = p x q = 6012707;

▸ izračunati (p – 1)(q – 1) = 6007800;

▸ bira se slučajni broj e = 3113390;

▸ računa se d = 3674911.

26
Fare clic per modificare lo stile del titolo
Diffie-Hellman algoritam razmjene ključeva
▸ Razvili su Diffie i Hellman 1976 godine.

▸ Protokol omogućava dvojici korisnika da tajno izmijene dijeljeni


ključ preko nepouzdanog kanala bez slanja ovog ključa.

▸ Ovaj algoritam izmjene ključeva radi sa bilo kojim ključem bilo da


je to jani ključ, privatni ključ ili ključ za sesiju.

▸ Protokol se bazira na šemi eksponencijalne razmene tajnog


ključa, i nije predviđen za razmene poruka.

▸ Protokol ima dva sistemska parametra p i g. Oba su javna i mogu


biti korištena of strane svih korisnika u sistemu.

27
Fare clic per modificare lo stile del titolo
Diffie-Hellman algoritam razmjene ključeva
• Osoba A i Osoba B se dogovaraju oko
Osoba A Osoba B
primitivnog broja p i primitivnog korijena g.
• Osoba A generiše slučajni broj X i izračuna
gip A=gX mod p
gip
dogovoreno i to šalje osobi B.
dogovoreno
• Osoba B generiše slučajni broj Y i izračuna
B=gY mod p
generisanje generisanje i to šalje osobi A.
X Y • Dijeljeni ključ je: gXY mod p
• Bilo koji napadač zna brojeve: g, p, A i B ali
ne zna X i Y.
A=gX mod p • Ukoliko neka osoba C želi da dođe u posjed
B=gY mod p
zajedničkog tajnog ključa, znajući A, g i p,
prinuđena je da koristi diskretni logaritam.
• Sigurnost razmjene ključeva leži u činjenici
BX=gXY mod p AY=gXY mod p da iako je relativno lako naći eksponente po
modulu prostog broja, jako je teško naći
diskretne logaritme.
• Posebno dolazi do izražaja za velike proste
Tajni ključ Tajni ključ brojeve.

28
Fare clic per modificare lo stile del titolo
Primjer

Osoba A Osoba B

g= 3 i p=353 g= 3 i p=353

X=97 Y=233

A=397 mod 353 B=3233 mod 353


A=40 B=248

BX=gXY mod p AY=gXY mod p


K=BX mod p K=AY mod p

K=24897 mod 353 K=40233 mod 353


K=160 K=160

29
Thank you !

www.project-benefit.eu

You might also like