Kriptografija i Kriptoalgoritmi

46
Bezbednost u račnarskim mrežama Kriptografija Kriptografija i i kriptografski algoritmi kriptografski algoritmi

description

racunarske mreze - kriptografija

Transcript of Kriptografija i Kriptoalgoritmi

Page 1: Kriptografija i Kriptoalgoritmi

Bezbednost u račnarskim mrežama

Kriptografija Kriptografija ii kriptografski algoritmi kriptografski algoritmi

Page 2: Kriptografija i Kriptoalgoritmi

Definicije

KriptografijaKriptografija – nauka o tajnom – nauka o tajnom pisanju pisanju (zapisivanju(zapisivanju),), nauka koja se bavi metodama očuvanja tajnosti informacijanauka koja se bavi metodama očuvanja tajnosti informacija Kriptografski algoritamKriptografski algoritam je postupak kojim se je postupak kojim se čitljiv tekst čitljiv tekst

P P transformitransformišeše u nečitljiv tekst Cu nečitljiv tekst C KriptoanalizaKriptoanaliza – nauka o dobijanju čitljivog teksta P (ili – nauka o dobijanju čitljivog teksta P (ili

ključeva, ...)ključeva, ...) NapadNapad – pokušaj kriptoanalize – pokušaj kriptoanalize

3.2

Page 3: Kriptografija i Kriptoalgoritmi

Ciljevi kriptografije PoverljivostPoverljivost (tajnost) (tajnost) – prevencija od neautorizovanog – prevencija od neautorizovanog

pristupa informacijama (obezbeđuje privatnost za poruke)pristupa informacijama (obezbeđuje privatnost za poruke) IntegritetIntegritet – prevencija od neautorizovanog menjanja – prevencija od neautorizovanog menjanja

informacija (obezbeđuje potvrdu da poruka ostaje informacija (obezbeđuje potvrdu da poruka ostaje nepromenjena)nepromenjena)

RaspoloživostRaspoloživost – prevencija od neautorizovanog – prevencija od neautorizovanog onemogućavanja pristupa informacijama ili resursimaonemogućavanja pristupa informacijama ili resursima

AutentifikacijaAutentifikacija – prevencija od lažnog predstavljanja – prevencija od lažnog predstavljanja (identifikacija izvora poruke i verifikacija identiteta osobe (identifikacija izvora poruke i verifikacija identiteta osobe

NeporicanjeNeporicanje – prevencija od lažnog poricanja slanja date – prevencija od lažnog poricanja slanja date poruke/dokumenta (može se dokazati da poruka/dokument poruke/dokumenta (može se dokazati da poruka/dokument dolazi od datog entiteta iako taj entitet to poriče)dolazi od datog entiteta iako taj entitet to poriče)

Page 4: Kriptografija i Kriptoalgoritmi

Šema šifrovanja ima 5 komponenti:

a) Tekst koji se šifruje (plaintext)

b) Algoritam šifrovanja

c) Tajni ključ

d) Šifrovani tekst (ciphertext)

e) Algoritam dešifrovanja

Page 5: Kriptografija i Kriptoalgoritmi

• Algoritam je postupak kojim se defini{e kako se od plaintexta dolazi do {ifrovanog teksta

• Klju~ je vrednost koja je nezavisna od teksta koji se {ifrira.

• Isti algoritam }e generisati razli~it izlaz u zavisnosti od klju~a koji se koristi

Page 6: Kriptografija i Kriptoalgoritmi
Page 7: Kriptografija i Kriptoalgoritmi

Ako je X tekst koji treba {ifrirati, K klju~ za {ifriranje, E algoritam za {ifriranje, tada proces {ifriranja mo`emo predstaviti kao

Y=Ek(X),Gde je Y {ifrovani tekst, a proces de{ifrovanja kao

X=Dk(Y)gde je D algoritam za de{ifrovanja

Page 8: Kriptografija i Kriptoalgoritmi

Podela kriptografskih sistema u odnosu na 3 kriterijuma

I) U odnosu na tip operacija koje se koriste za {ifriranje:a) Supstitucija - svaki element plaintexta (bit, slovo, grupa bitova ili slova) se preslikava (zamenjuje) u drugi elementb) transpozicija - preuredjenje elemenata u plaintextuc) supstitucija I transpozicija

Page 9: Kriptografija i Kriptoalgoritmi

II) U odnosu na broj klju~eva koji se koriste:

a)simetri~ni (konvencionalni) sistemi -obe strane (i po{iljalac i primalac) koriste isti klju~. Po{iljalac za {ifriranje a primalac za de{ifriranje

b)Asimetri~ni sistemi (ili sistemi 2-klju~a, sistemi sa javnim klju~em)- po{iljalac i primalac koriste razli~ite klju~eve. Klu~ za {ifriranje mo`e biti javni, tj. Dostupan svima, dok je klju~ za de{ifriranje tajni (privatni). Javni i privatni klju~ ~ine par.

Page 10: Kriptografija i Kriptoalgoritmi

III) Na~in procesiranja (obrade) plaintexta:

a){ifriranje blokova- u jednom trenutku se ceo blok {ifrira

b){ifriranje niza (stream)- {ifrira se svaki element (bit, bajt ili re~) sekvencijalno

Page 11: Kriptografija i Kriptoalgoritmi

Kriptoanaliza

To je poku{aj da se otkrije izvorni tekst, X, ili klju~, K, ili obe stvai.Strategije koje se koriste u kriptoanalizi zavise od {eme koja se koristi za {ifriranje i od informacija kojima se raspola`e.

Page 12: Kriptografija i Kriptoalgoritmi

a)Najte`i problem je ako je poznat samo {ifrovani tekst. Unekim slu~ajevima ni algoritam {ifriranja nije poznat, ali u op{tem slu~aju se mo`e uzeti da je kriptoanaliti~aru poznat algoritam {ifriranja.

• Jedan od mogu}ih napada (poku{aja) je proba svih mogu}ih klju~eva. Ako je broj mogu}ih klju~eva veliki, ovaj prilaz postaje neupotrebljiv.

Page 13: Kriptografija i Kriptoalgoritmi

b) Poznati je neki {ifrovani tekst i odgovaraju}i plaintext, pa da se na osnovu toga zaklju~i koji se klju~ za {ifriranje koristi i eventualno otkrije klju~ za de{ifriranje

Page 14: Kriptografija i Kriptoalgoritmi

Dobar algoritam za {ifriranje treba da zadovolji jedan ili oba od slede}ih kriterijuma:

• cena razbijanja {ifriranog teksta prevazilazi vrednost {ifrirane informacije;

• vreme potrebno za razbijanje {ifre je du`e od vremena va`enja informacije

Page 15: Kriptografija i Kriptoalgoritmi

Vreme potrebno za razbijanje {ifre (tj. Pronala`enje klju~a) za razli~ite veli~ine klju~eva

Velicina kljuca Velicina kljuca u bitovimau bitovima

Broj mogucih Broj mogucih kljuceva(tj. kljuceva(tj. kombinacijakombinacija

Vreme potrebno za Vreme potrebno za nalazenje kljuca pri nalazenje kljuca pri 1enripciji/ 1enripciji/ s s

3232 223232=4.33x10=4.33x1099 223131s=35.8mins=35.8min

5656 225656=7.2x10=7.2x101616 225555s=1142gods=1142god

128128 22128128=3.4x10=3.4x103838 22127127s=5.4x10s=5.4x102424 godgod

Page 16: Kriptografija i Kriptoalgoritmi

Klasične tehnike šifriranja

Supstitucione tehnike

To su tehnike kod kojih se slova zamenjuju drugim slovima ili brojevima ili simbolima

Page 17: Kriptografija i Kriptoalgoritmi

CEZAROV šifrator

Gaj Julije Cezar• Najstariji i najjednostavniji šifrator koji koristi supstituciju.• svako slovo alfabeta se zamenjuje slovom koje je 3 pozicije u desno udaljeno od njega

Npr. plaintext: vidimo se u petak{ifrovani tekst: YLGLPR VH X SHWDN

Page 18: Kriptografija i Kriptoalgoritmi

kod supstitucije slova vr{i se cikli~no pomeranje za 3 mesta u desno, tako da iza Z dolazi A

Plain: a b c d e f g h i j k l m n o p q r s t u v w x y z{ifra:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Page 19: Kriptografija i Kriptoalgoritmi

Ako svakom slovu dodelimo numeri~ki ekvivalent shodno poziciji u alfabetu, tj. A=0, b=1,…, z=25, tada algoritam mo`emo opisati slede{om formulom:

C=E(P)=(P+3)mod26Vrednost pomeraja mo`e biti bilo koja veli~ina k, tako da op{ti Cezarov algoritam mo`emo opisati sa

C=E(P)=(P+k)mod26,pri ~emu je 1 k 25.

Page 20: Kriptografija i Kriptoalgoritmi

Algoritam de{ifrovanja se mo`e opisati slede}om formulom:

P=D(C)=(C-k)mod26Ako se zna da je tekst {ifrovan Cezarovim algoritmom, tada se kriptoanaliza metodom svih poku{aja lako sprovodi: jednostavno treba ispitati svih 25 klju~eva!

Page 21: Kriptografija i Kriptoalgoritmi

{ifra: YLGLPR VH X SHWDN

Kju~: 1 xkfkoq ug w rgvcm2 wjejnp tf v qfubl3 vidimo se u petak4 uhcln rd s odszj

...25

Page 22: Kriptografija i Kriptoalgoritmi

Za uspe{no de{ifrovanje ovog teksta tri stvari su ovde bile bitne:

1. Algoritmi {ifriranja i de{ifriranja su nam bili poznati;

2. Ima samo 25 mogu}ih klju~eva;3. Jezik plaintexta je poznat

Page 23: Kriptografija i Kriptoalgoritmi

Sa samo 25 ključeva, Cezarov šifrator nije bezbedanSa samo 25 ključeva, Cezarov šifrator nije bezbedan

Umesto da se samo koristi translacija slova za odredjeni broj Umesto da se samo koristi translacija slova za odredjeni broj mesta, svako slovo može biti zamenjeno proizvoljnim drugim mesta, svako slovo može biti zamenjeno proizvoljnim drugim slovomslovom

Svako slovo izvornog teksta (plaintext) se zamenjuje slučajno Svako slovo izvornog teksta (plaintext) se zamenjuje slučajno odabranim drugim slovomodabranim drugim slovom Pod ovim uslovima dužina ključa je 26Pod ovim uslovima dužina ključa je 26 Broj različitih ključeva je 26!Broj različitih ključeva je 26!

NprNpr

Plain: a b c d e f g h i j k l m n o p q r s t u v w x y zšifrašifra: : DD KK VV QQ FF II BB JJ WW PP EE SS CC XX HH TT MM YY AA UU OO LL RR GG ZZ NN

Izvorni tekst: sutrajepetakIzvorni tekst: sutrajepetakŠifrovani tekst: AOUYDPFTFUEŠifrovani tekst: AOUYDPFTFUE

Page 24: Kriptografija i Kriptoalgoritmi

Sada postoji 26! Različitih ključevaSada postoji 26! Različitih ključeva Sa toliko mnogo ključeva sistem može izgledati bezbednoSa toliko mnogo ključeva sistem može izgledati bezbedno POGREŠNO!!POGREŠNO!! Problem leži u karakteristikama jezikaProblem leži u karakteristikama jezika Sva slova u jeziku se ne koriste sa istom učestanošćuSva slova u jeziku se ne koriste sa istom učestanošću

Npr u engleskom jeziku slovo E se pojavljuje najčešće, Npr u engleskom jeziku slovo E se pojavljuje najčešće, zatim slede slova zatim slede slova T,R,N,I,O,A,S T,R,N,I,O,A,S , dok se slova , dok se slova Z,J,K,Q,XZ,J,K,Q,X veoma retko javljajuveoma retko javljaju

Za svaki jezik postoje tablice koje govore o učestanosti Za svaki jezik postoje tablice koje govore o učestanosti pojavljivanja slova , parova slova, trojki slova u jezikupojavljivanja slova , parova slova, trojki slova u jeziku

Analizom učestanosti pojavljivanja slova u šifrovanom tekstu Analizom učestanosti pojavljivanja slova u šifrovanom tekstu lako se može otkriti kom slovu plaintexta odgovara slovo, jer lako se može otkriti kom slovu plaintexta odgovara slovo, jer monoaalfabetski šifratori ne menjaju relativnu učestalost monoaalfabetski šifratori ne menjaju relativnu učestalost pojavljivanja slovapojavljivanja slova

Page 25: Kriptografija i Kriptoalgoritmi

Učestanost pojavljivanja slova u engleskom jeziku

Page 26: Kriptografija i Kriptoalgoritmi

Playfair-ov šifrator Po baronu Playfair-u, 1854god. Korišćen u Britanskom ministarstvu inostranih poslova Bezbednost monoalfabetskog šifratora se ne može znatnije

poboljšati korišćenjem većih ključeva (kao u prethodnom primeru)

Jedan način za poboljšanje bezbednosti šifratora je šifriranje više slova odjednom

PLayfairov šifrator vrši supstituciju parova slova u plaintextu parom slova u šifrovanom tekstu

algoritam se zasniva na korišćenju matrice slova dimenzija 5x5 konstruisane na osnovu neke ključne reči

Page 27: Kriptografija i Kriptoalgoritmi

Primer: Ako je klju`na re~ MONARCHY tada matrica ima slede}I izgled

MM OO NN AA RR

CC HH YY BB DD

EE FF GG I/JI/J KK

LL PP QQ SS TT

UU VV WW XX ZZ

Page 28: Kriptografija i Kriptoalgoritmi

Pravila supstitucije kod Playfarovog šifratora

Tekst se deli na parove slova; ista slova koja bi se našla u jednom paru se

razdvajaju dogovorenim slovom, npr. x. Na primer, reč balloon se deli na ba lx lo on

Par slova koji se javi u istoj vrsti matrice se zamenjuje slovom koje se nalazi desno, ciklično. (npr. u prethodnom primeru ar se zamenjuje sa rm.

Page 29: Kriptografija i Kriptoalgoritmi

Pravila supstitucije kod Playfarovog šifratora

3. Par slova koji se nalazi u istoj koloni se zamenjuje slovom ispod, pri čemu se poslednje slovo u koloni zamenjuje prvim (ciklično pomeranje naniže). Npr. u prethodnom primesu se mu zamenjuje sa cm.

4. U ostalim slučajevima svako slovo teksta se zamenjuje slovom koje se nalazi u preseku vrste u kojoj se nalazi odgovarajuće slovo iz para i kolone u kojoj se nalazi drugo slovo iz para. Npr. ea se zamenjuje sa im (ili jm, po želji),

ili hs postaje bp.

Page 30: Kriptografija i Kriptoalgoritmi

MM OO NN AA RR

CC HH YY BB DD

EE FF GG I/JI/J KK

LL PP QQ SS TT

UU VV WW XX ZZ

Primer: re~ balloon se deli na ba lx lo on i bila bi {ifrovana kao IBSUPMNA.Ovaj algoritam {ifriranja je kori{}en U Britanskoj vojsci za vreme I sv. Rata i veoma ~esto u Ameri~koj vojsci za vreme II sv.rata

Page 31: Kriptografija i Kriptoalgoritmi

Hillov šifrator

• Razvio ga je matemati~ar Lester Hill 1929. God. • Algoritam {ifriranja uzima m uzastopnih slova teksta i zamenjuje ih sa m slova {ifrovanog teksta

• supstitucija je definisana sa m linearnih jedna~ina u kojima je svakom karakteru (slovu) dodeljena numeri~ka vrednost (a=0, b=1,…,z=25)

Page 32: Kriptografija i Kriptoalgoritmi

Primer: za m=3 sistem se mo`e opisati na slede}i na~in:

C1 = (k11p1+k12p2+k13p3)mod26C2 = (k21p1+k22p2+k23p3)mod26C3 = (k31p1+k32p2+k33p3)mod26

U matri~nom obliku se ovo mo`e napisati kao

3

2

1

333231

232221

131211

3

2

1

p

p

p

kkk

kkk

kkk

c

c

c

Page 33: Kriptografija i Kriptoalgoritmi

Ili, C=KP , gde je P plaintext (3 slova), C- {ifrovani tekst (3 slova), K matrica dimenzija 3x3 koja predstavlja klju~ za {ifriranje.

Sve operacije se izvode po mod26.

Page 34: Kriptografija i Kriptoalgoritmi

Primer: Neka je tekst koji treba {ifrirati “paymoremoney” i klju~

1922

211821

51717

K

Prva tri slova teksta koji treba da se {ifrira predstavljena su vektorom [15 0 24]T, a {ifrovani tekst dobijamo na slede}o na~in:

Page 35: Kriptografija i Kriptoalgoritmi

S

N

L

c

c

c

18

13

11

26mod

486

819

375

24

0

15

1922

211821

51717

3

2

1

Nastavljaju}i ovaj postupak dobijamopaymoremoney LNSHDLEWMTRW

Page 36: Kriptografija i Kriptoalgoritmi

Da bi se izvr{ilo de{ifrovanje teksta, potrebno je na}i inverznu matricu matrice K, tj. K-1 , jer je

P= K-1 C

K

adjKK

det1

Sva izra~unavanja se obavljaju po mod26.

Page 37: Kriptografija i Kriptoalgoritmi

Neke osobine moduo aritmetike

• moduo daje ostatak celobrojnog deljenja jednog broja drugim.

Primer: 0mod5=0; 1mod5=1; 2mod5=2; 4mod5=4; 5mod5=0; 6mod5=1; 7mod5=2; 8mod5=3; 9mod5=4; 10mod5=0; 11mod5=1,….

Page 38: Kriptografija i Kriptoalgoritmi

Neke osobine moduo aritmetike

1. [(a mod n)+(b mod n)]mod n=(a+b)mod n2. [(a mod n)-(b mod n)]mod n=(a-b) mod n3. [(a mod n)*(b mod n)]mod n= (a*b)mod n4. (-a )mod n=(n-a)mod n (npr. –3mod5= (5-3)mod5=2

Page 39: Kriptografija i Kriptoalgoritmi

Šta je sa deljenjem u mod aritmetici?

1

1 1mod ( ) mod ( mod mod ) mod

1mod ( ) mod

broj se zove multiplikativna inverza broja .

ako je multiplikativna inveza boroja , tada važi

( ) mod 1

1mod je moguće uvek naćisamo

an a n a n n n

b b b

z n b nb

z b

z b

z b n

z nb

ako je prost broj!

1mod je moguće naći i kada nije prost broj,ali su i uzajamno prosti.

dva broja i su uzajamno prosta ako je ( , ) 1.

n

z n n b nb

x y NZD x y

Page 40: Kriptografija i Kriptoalgoritmi

Euklidov algoritam za nalaženje NZD

Tražimo NZD(x,y), gde su x i y celi brojeviTražimo NZD(x,y), gde su x i y celi brojevi

1.1. m:=x, n:=y, r:=m mod n (ili r:=m-(m/n)*n)m:=x, n:=y, r:=m mod n (ili r:=m-(m/n)*n)

2.2. ako je rako je r≠0 preći na korak 3, inače preći na ≠0 preći na korak 3, inače preći na korak 5.korak 5.

3.3. m:=n; n:=r; r:=m mod n;m:=n; n:=r; r:=m mod n;

4.4. preći na korak 2preći na korak 2

5.5. kraj izračunavanja kraj izračunavanja NZD(x,y):=n. NZD(x,y):=n.

Page 41: Kriptografija i Kriptoalgoritmi

Nalaženje multiplikativne inverze

Nalaženje broja z=(bNalaženje broja z=(b-1-1)mod n, tj broja z za )mod n, tj broja z za koji važi da je koji važi da je

(z*b)mod n=1(z*b)mod n=1 se svodi na nalaženje celobrojnog rešenja se svodi na nalaženje celobrojnog rešenja

jednačine jednačine

• s*n + z*b=1s*n + z*b=1 u skupu u skupu {0, 1, …, n-1}{0, 1, …, n-1}

Page 42: Kriptografija i Kriptoalgoritmi

Modifikovani Euklidov algoritam

Zadatak naći z=(bZadatak naći z=(b-1-1)mod n)mod n AlgoritamAlgoritam

r1:=n; r2:=b; t1:=0; t2:=1;r1:=n; r2:=b; t1:=0; t2:=1;while (rwhile (r22 > 0) do> 0) doqq:=r1/r2; r:=r1 – q*r2;:=r1/r2; r:=r1 – q*r2;r1:=r2; r2:=r;r1:=r2; r2:=r;t:= t1 – q*t2;t:= t1 – q*t2;t1:= t2; t2:= t;t1:= t2; t2:= t;enddoenddoif (r1 = 1) then z:=t1.if (r1 = 1) then z:=t1.

Page 43: Kriptografija i Kriptoalgoritmi

Izračunavanje u modifikovanom Euklidovom algoritmu se može tabelarno predstaviti na sledeći način

q=r1/r2q=r1/r2 r1:=n, r2:=br1:=n, r2:=b r:=r1- q*r2r:=r1- q*r2 t1:=0, t2:= 1t1:=0, t2:= 1 t:=t1 –q*t2t:=t1 –q*t2

qq r1 r2r1 r2 rr t1 t2t1 t2 tt

qq r1 r2r1 r2 r r t1 t2t1 t2 tt

qq r1 r2r1 r2 00 t1 t2t1 t2 tt

r1 0r1 0 t1 t2t1 t2

treba da je r1=1 z:=t1 - traženo rešenje

Page 44: Kriptografija i Kriptoalgoritmi

Primer: naći 1

mod 2611

q=q=[r1/r2][r1/r2] r1:=n, r2=br1:=n, r2=b r=r1-q*r2r=r1-q*r2 t1=0, t2 =1t1=0, t2 =1 t= t1 = q*t2t= t1 = q*t2

q=[26/11]=2q=[26/11]=226 11 26 11

26-2*11 = 426-2*11 = 4 0 10 1 0 – 2*1 = -2 0 – 2*1 = -2

q=[11/4]=2q=[11/4]=2 11 411 4 33 1 -21 -2 55

q=[4/3]=1q=[4/3]=1 4 34 3 11 -2 5-2 5 -7 -7

q=[3/1]=3q=[3/1]=3 3 13 1 00 5 -7 5 -7 2626

1 01 0 -7 26-7 26

kontrola x=t1=(-7)mod26 ==(26-7)mod 26 = 19

(11*19)mod26 = 204 mod 26 =1

Page 45: Kriptografija i Kriptoalgoritmi

Primer: Ako je matrica kojom se vrši šifriranje

38

175K

Naći matricu kojom se vrši dešifriranje ako se sve operacije obavljaju po mod26

Page 46: Kriptografija i Kriptoalgoritmi

Rešenje

152

19

26mod1554

27926mod

518

93326mod

518

93

9

1

518

9326mod

58

173adj,

317

85

926mod)121(26mod)17*83*5(det

,38

175

adjdet

1

1

1

1

K

K

KK

K

K

KK

K

T