Kriptografija i Kriptoalgoritmi
-
Upload
vukmiljkovic -
Category
Documents
-
view
99 -
download
19
description
Transcript of Kriptografija i Kriptoalgoritmi
Bezbednost u račnarskim mrežama
Kriptografija Kriptografija ii kriptografski algoritmi kriptografski algoritmi
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
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)
Š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
• 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
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
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
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.
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
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.
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.
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
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
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
Klasične tehnike šifriranja
Supstitucione tehnike
To su tehnike kod kojih se slova zamenjuju drugim slovima ili brojevima ili simbolima
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
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
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.
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!
{ifra: YLGLPR VH X SHWDN
Kju~: 1 xkfkoq ug w rgvcm2 wjejnp tf v qfubl3 vidimo se u petak4 uhcln rd s odszj
...25
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
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
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
Učestanost pojavljivanja slova u engleskom jeziku
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
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
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.
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.
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
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)
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
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.
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:
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
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.
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,….
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
Š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
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.
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}
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.
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
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
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
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