Professional Documents
Culture Documents
1
Istorija
2
Prve metode kriptovanja Julije Cezar kada je
slao poruke svojim vojskovođama.
šifrovao je tako što je pojedina slova u tekstu
pomerao za tri, četri ili više mesta u abecedi,
tako da su mogli da dešifruju samo oni koji su
poznavali pravilo pomeranja.
Prva poznata studija o kriptografiji 1467
godine a napisao je italijanski arhitekta Leone
Batista
3
U toku drugog svetskog rata na Nemačkoj
mašina koja je šifrovala poruke – Enigma.
saveznici su uspeli da razbiju poruke
šifrovane Enigmom
Pojavom računara kriptografija se naglo
razvija.
računari su sve brži i brži, pa je vreme
“probijanje” šifara sve kraće.
razvoj novih, sigurnijih i komplikovanijih šema
za šifrovanje
4
Termini
Kriptografija se oslanja na matematiku i omogućava
čuvanje važnih podataka kao i njihov prenos preko
računarske ili telekomunikacione mreže a da pri tome
niko ne može da ih pročita osim korisnika kome su
namenjeni
Kriptoanaliza je nauka o otkrivanju odnosno
"razbijanju“ kriptovanih poruka.
Kriptografski protokoli se upotrebljavaju za
uspostavljanje sigurne komunikacije preko
nepouzdanih globalnih mreža i distribuiranih sistema.
Oslanjaju se na kriptografske metode zaštite
5
Kodiranje i šifrovanje
Kodiranje – transformacija izvornog teksta na
osnovu obimne „knjige“ kodova, u kojoj se
reči i fraze zamenjuju slučajnim nizom
znakova
Šifriranje radi na nivou pojedinačnih slova,
malih grupa slova, ili na pojedinačnim
bitovima.
Umesto “knjige” kodova koriste algoritme koji
su formirani nekom matematičkom formulom.
6
Kriptografija – zadatak
Osnovni zadatak je omogućavanje dvema osobama
(pošiljalac i primalac) da komuniciraju preko nesigurnog
komunikacionog kanala (telefonska linija, kompjuterska
mreža, ...) tako da ostali ne mogu razumeti njihove
poruke.
Poruku koju pošiljalac želi poslati primaocu je otvoreni
tekst (plaintext).
Pošiljalac transformiše otvoreni tekst koristeći unapred
dogovoreni ključ. Taj postupak se zove šifrovanje, a
dobijeni rezultat šifrat (engl. ciphertext) ili kriptogram.
7
Kriptografski algoritam ili šifra
• matematička funkcija koja se koristi za funkcije
šifriranje: argumenti su ključ i otvoreni tekst
dešifriranje: argumenti su ključ i šifrat
ključ ključ
šifrat
otvoren Originalni primalac
šifriranje dešifriranje
pošiljalac tekst otvoren tekst
protivnik 8
Ključ
Ključ Ključ
KA-B KA-B
šifrat
otvoren šifriranje Originalni Primalac
Pošiljalac dešifriranje
tekst, m otvoren tekst B
A
14
Vižnerova šifra
francuski diplomata, Blez De Vižner, živeo u XVI veku
ona umesto jednog ili dva, koristi onoliko šifrovanih
alfabeta (abeceda, azbuka) koliko slova ima jezik na
kojem se šifruje.
Prvi korak u šifrovanju je crtanje tzv. Vižnerovog kvadrata
koji se sastoji od početnog alfabeta i 26 šifrovanih
alfabeta, od kojih je svaki pomeren za jedno slovo u
odnosu na prethodni.
Korišćenje Vižnerove šifre podrazumeva da se za
šifrovanje različitih slova iz poruke koriste različiti redovi
Vižnerovog kvadrata.
Recimo, šifruje se prvo slovo prema redu 5, drugo prema
redu 12, treće prema redu 23 itd. 15
Načini šifriranja
blokovne šifre, kod kojih se obrađuje jedan po
jedan blok elemenata otvorenog teksta
koristeći jedan te isti ključ K
ASCII metoda koristi osam bitova za
reprenzetaciju jednog karaktera, odnosno za
šifarski blok koji se sastoji od 8 karaktera,
protočne šifre (engl. stream cipher) kod kojih
se elementi otvorenog teksta obrađuju jedan
po jedan koristeći pritom niz ključeva (engl.
keystream) koji se paralelno generiše
16
Primer stream
Ključ je 1000110 a izvorni tekst 1100101
Pravilo da ukoliko je jedinica u okviru ključa treba promeniti
bit u okviru izvornog teksta koji je na istoj poziciji.
dobija se šifrovani niz 0100011.
isti ključ dva puta ponovo se dobija izvorni tekst. Postupak
dešifrovanja identičan procesu šifrovanja.
Operacija zamene bitova odgovara XOR funkciji
Ci = Pi XOR Ki,
Ci kodiran tekst, Pi izvorni tekst i Ki ključ koji se formira
kao slučajno definisana vrednost, koja je poznata samo
pošiljaocu i primaocu poruke.
17
Dobra strana stream šifrovanja je da ukoliko do
odredišta stigne pogrešna informacija, nakon
dešifrovanja doći će do gubitka samo onih bitova
izvornog teksta koji su izmenjeni u prenosu.
Znači ovaj način šifrovanja nije podložan
greškama u prenosu podataka usled povećanog
nivoa šuma.
povoljno za korišćenje u okviru GSM mobilnih
mreža
velika brzina šifrovanja/dešifrovanja i laka
implementacija 18
Blok šifrovanje
za šifrovanje kratkih poruka kao što su
ključevi, lozinke, potpisi ili autentifikacije
korisnika.
izvorni podatak se deli u blokove simbola
određene veličine koji se individualno i
nezavisno kodiraju u cilju formiranja
šifrovanog bloka podataka
primenjeno u sledećim algoritmima:
LUCIFER, DES, FEAL, IDEA, RC5,
SKIPJACK, BLOWFISH, TWOFISH, AES
(RIJNDAEL), itd.. 19
Osobine
Svaki blok simbola se šifruje uvek na isti način, nezavisno
od mesta koje zauzima u poruci
Jednake poruke, šifrovane sa istim ključem, uvek daju
jednake šifrovane poruke
operiše nad blokovima stalne dužine (npr. 64 ili 128 bita)
koristeći ključ preslikava blok bitova iz otvorenog koda u
blok bita šifrata jednake veličine (128 bita otvorenog teksta
u 128 bita šifrata)
kad je otvoreni tekst duži od 128 bita različiti načini rada
u nekim načinima rada funkcioniše kao stream cypher
• algoritmi
20
DES: Data Encryption Standard
22
DES simetrični algoritam za kriptovanje
blokovskog tipa
Kao ulaz u algoritam se koristi blok od 64-bita izvornog
teksta i 56-bitni ključ.
Izlaz iz algoritma je 64-bitni kriptovan tekst koji se dobija
nakon 16 iteracija koje se sastoje od identičnih operacija.
Ključ od 56 bita se formira od inicijalnog 64-bitnog ključa
informacije ignorisanjem svakog 8 bita, tj. odsecanjem
bitovi ulaznog bloka dužine 64 bita permutuju se
početnom permutacijom
Permutovan ulazni blok deli na dva dela od po 32 bita,
Nad desnim se obavlja funkcija f(R0,K1), K1 48-bitni ključ.
Ova funkcija generiše 32-bitni rezultat. Nad dobijenim
rezultatom funkcije f i L0 vrši se operacija XOR.
Rezultat XOR je nova 32-bitnu vrednost R1 a levi deo L1
je vrednost R0 iz prethodne iteracije
Simetrična kriptografija:
DES
DES operacije
Inicijalna permutacija
16 identičnih “rundi”
promene bloka,
svaki koristi
zaseban 48 bitni
ključ
Završna permutacija
24
8-24
Koliko je siguran DES?
produženje ključa
Trostruki DES (3-DES) algoritam
Unapređeni DES i najviše se koristi u okviru aplikacija koje
se baziraju na internetu.
koristi dva ili tri različita DES ključa.
Prvi ključ K1 za kriptovanje bloka podataka izvorne poruke
P pomoću standardnog DES algoritma.
Tako kriptovana poruka se dekriptuje drugim ključem K2. i
dobija se nova šifrovana poruka.
Sad se rezultat dekriptovanja opet kriptuje, trećim ključem
K3 ili opet prvim K1 i dobija se kriptovana poruka C.
Naizmeničnim korišćenjem različitih ključeva povećava se
dužina ključa na 168 bita, a tako i broj kombinacija za i
probijanje 26
AES: Advanced
Encryption Standard
64-bit input
Promena
64-bit scrambler
jednog
ulaznog bita
utiče na 8 64-bit output
izlaznih bita
Rekurzivni algoritmi: svaki ulazni bit utiče na sve
izlazne bite
Block ciphers: DES, 3DES, AES
28
Prednosti i nedostaci simetričnog
kriptovanja
kratko vreme kriptovanja poruka zbog kratkih ključeva,
pa se koristi za kriptovanje, tj. dekriptovanje poruka
velike dužine.
Oba korisnika moraju posedovati jedinstveni simetrični
ključ, a kako su često fizički razdvojeni moraju da koriste
zaštićen kanal što je teško
veliki broj potrebnih ključeva, za N ljudi koji žele da
koriste ovu metodu treba N(N – 1)/2 simetričnih ključeva
Zbog toga se moraju koristiti duži ključevi, a dužina
ključa od 56 bita je danas na granici dovoljnog s obzirom
na to da savremeni računari mogu relativno brzo da
otkriju ključ te dužine.
29
Asimetrični kriptosistemi
Tvorci asimetrične kriptografije su Whitefield
Diffie i Martin Hellman koji su 1976. godine
opisali ideju kriptografije koja se temelji na
dva ključa, privatnom (ili često zvanim tajnim)
i javnom ključu.
asimetričnog kriptovanja ili asymmetric-key ili
public-key kriptovanje
30
Kriptografija javnog ključa
Pošiljalac i primalac nemaju isti tajni ključ
Javni ključ je poznat svima
Privatni ključ za dešifrovanje poznat je samo primaocu
Javni ključ
K+B (m)
Privatni ključ
K-B (m)
šifrat
otvoren šifriranje Originalni Primalac
Pošiljalac dešifriranje
tekst, m otvoren tekst B
A
K+B (m)
m=K-B (K+B (m))
Algoritmi asimetričnih kriptosistema zasnivaju se na
određenim svojstvima brojeva.
Pri kriptovanju se izvorni tekst tretira kao niz prirodnih
brojeva koji se odabranom funkcijom kriptovanja i ključem
Kb preračunavaju u kriptovani niz teksta.
Funkcija kriptovanja mora biti takva da se iz kriptovanog
teksta ne može odrediti izvorni tekst, čak ako je poznat i
ključ za kriptovanje.
Međutim, ukoliko se zna ključ dekriptovanja Kd moguće je
lako računanje izvornog teksta.
Svaki od sagovornika mora posedovati dva ključa (javni i
tajni). Iako su različiti, ključevi su međusobno povezani
određenim transformacijama 32
nedostatak ovog načina kriptovanja je
njegova sporost i neprikladnost za kriptovanje
velikih količina podataka.
pitanje autentičnosti poruke, odnosno kako
da osoba B bude sigurna da je poruku koju je
primila uistinu poslala osoba A.
Najčešće se koriste sledeći asimetrični
algoritmi: RSA (eng. Rivest-Shamir-
Adleman), Diffie-Hellman, ElGamal, Eliptic
Curves, Rabin i drugi.
33
RSA algoritam
Za generisanje javnog i tajnog ključa se koriste prosti
brojevi.
Tajni ključ predstavlja uređeni par brojeva (N,d).
Javni ključ je takođe uređeni par brojeva (N,e).
Treba uočiti da je broj N zajednički za oba ključa.
Osoba koja šalje poruku vrši kriptovanje pomoću
sledeće jednačine :
C = Pe mod N
P, izvorni tekst koji je prikazan u obliku broja;
C, broj koji predstavlja kriptovan tekst;
brojevi e i N su komponente javnog ključa.
34
Kada se poruka primi potrebno je dekriptovati
pomoću sledeće jednačine:
P = Cd mod N
P i C isto kao i u predhodnoj formuli, a N i d
predstavljaju komponente tajnog ključa
Osnovni problem kod RSA algoritma je kako
izvršiti izbor brojeva N, d i e (veoma velike
vrednosti dužine od 1024 do 2048), a da
ujedno zadovoljavaju formule algoritma.
koristi teoriju prostih brojeva i sledeću
35
proceduru
RSA: Izbor ključeva
Magic d
m = (m e mod n) mod n
happens!
c
37
RSA primer:
letter m me c = me mod n
encrypt:
l 12 1524832 17
d
decrypt:
c c m = cd mod n letter
17 481968572106750915091411825223071697 12 l
38
RSA: važna osobina
- + + -
K (K (m)) = m = K (K (m))
B B B B
Rezultat je isti!
39
Prednosti i nedostaci asimetričnih
algoritama
rešava nedostatake deljenja ključa kod simetričnih
algoritama prilikom komunikacije
svaka osoba kreira po dva ključa, tajni koji osoba
čuva, i javni koji se razmenjuje sa drugima.
Svaki od entiteta je nezavistan i svoj par ključeva
može koristiti u komunikaciji sa bilo kime
smanjenju broja ukupno potrebnih ključeva. U
sistemu od milion korisnika, potrebno je samo 2
miliona ključeva, dok bi u slučaju korišćenja
simetričnog kriptovanja bilo potrebno bar 500
milijardi ključeva. 40
Najveći nedostatak je kompleksnost algoritama koji se
koriste prilikom kriptovanja. Ako se želi efektno
kriptovanje to povlači da algoritam koristi ogromne
ključeve prilikom rada, pa nisu preporučljivi za rad sa
velikim izvornim podacima
Komunikacija između dve strane i javni ključ moraju
verifikovati. Kako osoba A šalje svoj javni ključ osobi B
putem elektronske pošte, osoba B na neki način mora
biti sigurna da je dobijeni ključ upravo poslat od strane
osobe A.
41
Simetrična i asimetrična kriptografija
• način rada: • način rada:
– isti algoritam i isti ključ – jedan algoritam i par
koriste se i za šifriranje i za ključeva: jedan za šifriranje,
dešifriranje jedan za dešifriranje
– pošiljatelj i primatelj dijele – primatelj i pošiljatelj moraju
algoritam i ključ imati po jedan od uparenih
• sigurnost: ključeva
– očuvati tajnost ključa • sigurnost:
– nemoguće ili nepraktično – jedan od dva ključa mora
dešifrirati poruku ostati tajan
– poznavanje algoritma i – nemoguće ili nepraktično
dijelova šifrata mora biti dešifrirati poruku
nedovoljno za rekonstrukciju – poznavanje algoritma,
ključa jednog ključa i dijelova
• 100-1000 puta brži šifrata mora biti nedovoljno
za rekonstrukciju ključa
22.6.2018. Sigurnost mreža, usluga i aplikacija 42
Hibridni sistemi
dobre strane simetričnih algoritama:
100-1000 puta brži od asimetričnih
manje računalno zahtjevni
dobre strane asimetričnih algoritama:
upravljanje ključevima, distribucija i tajnost
hibridni pristup:
asimetričnu kriptografiju koristiti za razmjenu
simetričnog ključa
Secure Sockets Layer – SSL, Pretty Good Privacy – PGP,
GNU Privacy Guard - GPG
43
Izvorni tekst se prvo kriptuje upotrebom ključa
(ponekad nazvan i session ključ), a zatim se taj
ključ zajedno sa kriptovanom porukom pakuje i
ponovo kriptuje sa javnim ključem osobe kojoj se
šalje poruka.
Postupak dekripcije cele poruke se ostvaruje
obrnutim redosledom operacija: Osoba koja je
primila poruku prvo dekriptuje istu sa svojim tajnim
kljucem, pronalazi zapakovani session ključ i
koristi ga da bi pročitala izvornu poruku
44
Za generisanje session ključa koristi se
generator pseudo-slučajnog broja u
kombinaciji sa raznim korisnikovim unosima u
toku procesa generisanja.
Asimetrično se kriptuje samo kratak simetrični
ključ, a ne cela, velika poruka.
45
PGP (eng. Pretty Good Privacy) programski paket za
kriptovanje podataka
46
Proces dekriptovanja obrnutim redosledom. Kada primi
kriptovanu poruku osoba B upotrebljava svoj tajni ključ i
dekriptuje poruku koja sadrži session ključ.
Korišćenjem session ključa osoba B dekriptuje poruku a
kasnije je i dekompresuje da dobiije izvornu poruku.
PGP program nudi nekoliko stepeni zaštite:
niski koristi 512-bitni ključ,
visoki 768-bitni
vojni koristi 1024-bitni ključ.
PGP algoritam nudi još sigurnosnih mera: za generisanje
ključeva se ne koristi generator ključeva već algoritam traži
od korisnika da unese neke podatke pomoću tastature, a za
to vreme meri razmake između vremena udaraca i na
osnovu njih generiše ključeve.
Isto tako PGP nudi potpisivanje poslatih dokumenata u cilju
47
dokazivanja autentičnosti.