You are on page 1of 47

Kriptografija

1
Istorija

 Kriptografija ili šifrovanje je naična disciplina koja se


bavi metodama očuvanja tajnosti informacija, posebno
prilikom prenosa .
 Reč je grčkog porekla i znači tajno pisanje.
 Spartanci u 5. veku p. n.e. upotrebljavali spravu za
šifrovanje, skital: drveni štap sa namotanom trakom od
pergamenta, na klju se vodoravno pisala poruka. Kad se
odmota na njoj su izmešani znakovi koje je mogao pročitati
samo onaj ko je imao štap jednake debljine.

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č

 matematički algoritam koji određuje kako se


šifrira otvoreni tekst
 ključ dužine n bitova generiše prostor
ključeva od 2n mogućih vrednosti
 matematički algoritmi
 tajni
 javni

22.6.2018. Sigurnost mreža, usluga i aplikacija 9


Vrste algoritama
 Simetrični ili konvencionalni kriptosistemi (tajni ključ)
 ključ za dešifrovanje se može izračunati poznavajući ključ
za šifrovanje i obratno, najčešće su ovi ključevi identični.
 Sigurnost ovih kriptosistema leži u tajnosti ključa.

 Kriptosistemi s javnim ključem ili asimetrični


 ključ za dešifrovanje se ne može (bar ne u nekom
razumnom vremenu) izračunati iz ključa za šifrovanje.
 bilo ko može šifrovati poruku pomoću njega, ali samo
osoba koja ima odgovaraju ključ za dešifrovanje
(privatni ili tajni ključ) može dešifrovati tu poruku.
10
Simetrična kriptografija
 za šifriranje i dešifriranje koristi se isti ključ
 tajni ključ
 uglavnom zasnovanii na logičkoj operaciji XOR
 model:
 M je poruka (message), K je ključ
 šifriranje (encription): EK (M)  C (C = šifrat,
cyphertext)
 dešifriranje (decription): DK (C)  M
 napadač bez znanja ključa K ne može iz šifrata C
saznati sadržaj poruke M
Simetrična kriptografija

Pošiljalac A i primalc B poseduju identičan (simetričan)


ključ: KA-B

Ključ Ključ
KA-B KA-B

šifrat
otvoren šifriranje Originalni Primalac
Pošiljalac dešifriranje
tekst, m otvoren tekst B
A

KA-B (m) m=KA-B (KA-B (m))


One-time pad
• izmišljen 1917., patentiran kasnije Gilbert Sandford
Vernam, Joseph Mauborgne
• razmeni se slučajno generisani ključ K (pad)
• otvoreni tekst se šifrira s K u modularnoj aritmetici (XOR)
– EK(M) = K  M = C (bit po bit)
• šifrat se dešifrira s istim K u modularnoj aritmetici
– DK (C) = C  K = M (bit po bit)
• dobre strane:
– teoretski jednostavan
– neprobojan (Claude Elwood Shannon, 1949.)
• mane:
– ključ K mora biti jednako dug kao otvoreni tekst M
– slučajno generisan
Modeli šifriranja
 supstitucione šifre u kojima se svaki element
otvorenog teksta (bit, slovo, grupa bitova ili
slova) preslikava u neki drugi element,
 transpozicijske šifre u kojima se elementi
otvorenog teksta permutiraju, rotira se
pozicija slova.

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

 šezdesitih godina prošlog veka, IBM istraživački projekat u


cilju zaštite podataka Lucifer.
 1971. godine i Lucifer je bio prvi šifrat sa blokovima veličine
64 bita koji je koristio ključ od 128 bita.
 Kompanija je kasnije komercijalizovala ovaj način kodiranja i
nazvala ga DES (eng. Data Encryption Standard).
 1976 godine DES je prihvaćen kao federalni standard za
enkripciju podataka i korišćen je u komunikacijama
Američke vlade.
 narednih dvadesetak godina bio najviše korišćeni standard
na svetu.
21
 Nasledio ga je 2001. god. AES (eng.
Advanced Encryption Standard), takođe
poznat pod nazivom Rijndael algoritam.
 napredniji po pitanju sigurnosti podataka.
 Danas, DES algoritam i dalje koristi veliki broj
organizacija u svetu za zaštitu u mrežnim
komunikacijama, skladištenjima podataka,
lozinkama i sistemima za kontrolu pristupa

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?

 Totalnom pretragom (brute force) se može “razbiti” za 4


meseca – uz odgovarajuće računarske resurse
 DES algoritam koristi 56-bitni ključ za kriptovanje što
znači ukupno 72.057.594.037.927.936 mogućnosti za
osobu koja hoće da probije tkz. brutalnim napadom tekst
kriptovan sa DES-om.
 1999. god. objedinjene grupe EFF i Distributed.net kao
DES Cracker uz pomoć 100.000 PC računara na
Internetu, probili su DES za 22 sata i 15 minuta. Pritom je
brzina pretraživanja bila 245 biliona ključeva/sekundi
 DES dodatna sigurnost:
 Trostepena primena (3-DES) 25

 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

 Novi (Nov. 2001.) simetrični šifarski algoritam,


NIST standard, zamenio je DES
 Obrađuje podatke u blokovima dužine 128
bita
 128, 192, ili 256 bita – dužina ključa
 Brute force napad (ispitivanje svih ključeva) je
mnogo teži nego za DES
 1 sec za DES, odgovara 149 triliona godina za
AES
27
Blok algoritmi

64-bit input

8bits 8bits 8bits 8bits 8bits 8bits 8bits 8bits


loop for
n rounds
T1 T T T T T T T
2 3 4 5 6 7 8

8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits

 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

1. Choose two large prime numbers p, q.


(e.g., 1024 bits each)

2. Compute n = pq, z = (p-1)(q-1)

3. Choose e (with e<n) that has no common factors


with z. (e, z are “relatively prime”).

4. Choose d such that ed-1 is exactly divisible by z.


(in other words: ed mod z = 1 ).

5. Public key is (n,e). Private key is (n,d).


+ -
KB KB 36
RSA: šifrovanje i
dešifrovanje

0. Given (n,e) and (n,d) as computed above

1. To encrypt bit pattern, m, compute


e e
c = m mod n (i.e., remainder when m is divided by n)

2. To decrypt received bit pattern, c, compute


d
m = c d mod n (i.e., remainder when c is divided by n)

Magic d
m = (m e mod n) mod n
happens!
c
37
RSA primer:

Bob chooses p=5, q=7. Then n=35, z=24.


e=5 (so e, z relatively prime).
d=29 (so ed-1 exactly divisible by z.

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

Prvo se primeni Prvo se primeni


javni ključ, a privatni ključ, a
zatim privatni zatim javni

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

kompresovana poruka M’ se kriptuje pomoću nekog od simetričnih


algoritama (DES ili slično) i session ključa. Na taj način se dobija
kriptovana poruka C.
Zatim se vrši kriptovanje session ključa pomoću nekog od asimetričnih
algoritama (RSA) i javnog ključa osobe B. Tako nastaje kriptovana poruka
S’ koja se šalje osobi B zajedno sa porukom C

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.

You might also like