BIS - Simetrični kriptosistemi.
Kriptografija
Potiče od grčke reči kriptos što znači tajna.
Proučava tehnike korišćene za šifrovanje i zaštitu komunikacije.
Koristi se za zaštitu sledećih bezbednosnih ciljeva:
Poverljivost podataka
Integritet podataka
Autentičnost
Uračunljivost
Primeri korišćenja kriptografije
VPN (virtual private network)
E-komerc
Siguran prenos email-a
Sigurni web sajtovi
Sigurne sesije
Blockchain (kriptovalute)
Šifre i ključevi
Šifre
Predstavljaju skup pravila ili algoritam po kome se obavlja šifrovanje ili dešifrovanje neke poruke uz pomoć ključa.
Postoje stotine javno poznatih šifri, a ima i vlasničkih za posebne namene.
Ključevi
Simetrični: Isti ključ se koristi i za šifrovanje i za dešifrovanje.
Asimetrični: Koriste se različiti ključevi za šifrovanje i dešifrovanje.
Ključevi mogu biti i jednokratni (OTP – one time pad).
Podela kriptografije
Prema vrsti operacije koja se koristi za šifrovanje
Supstitucija (zamena)
Polialfabetik (zamena grupe slova drugom grupom)
Transpozicija (permutacija)
Prema broju upotrebljenih ključeva
Simetričan (jedan ključ-tajni)
Asimetričan (dva ključa – jedan javni, jedan privatni)
Prema načinu obrade otvorenog teksta
Blok šifra
Protočna šifra
Princip rada
Bezbedni kanal
Izvor ključa
Izvor poruke
Odrediste
Kryptanalitičar
Simetrični kriptosistemi
Princip simetričnog šifrovanja
Za simetrično šifrovanje neophodni su:
Otvoreni tekst
Algoritam šifrovanja
Tajni ključ
Šifrat
Algoritam dešifrovanja
Šifarski sistemi
Šifarski sistem tajnim ključem je familija parova funkcija za svaki ključ $k$ iz skupa ključeva $K$, definisana na sledeći način:
M i X su skupovi otvorenih tekstova i šifrata, respektivno.
Za svaki otvoreni tekst $m$ iz $M$ važi:
Da bi se koristio ovakav sistem, korisnici A i B se dogovore da uzmu tajni ključ $k$ iz $K$. Ako A želi da pošalje poruku $m$ iz $M$ korisniku B, šifruje je pomoću funkcije $Ek$, i rezultat $c$ se šalje korisniku B. Da bi rekonstruisao originalnu poruku, B dešifruje primljeni šifrat $c$ pomoću funkcije $Dk$:
Problemi u kriptografiji sa tajnim ključevima
Distribucija ključeva: Dva korisnika moraju da izaberu tajni ključ pre početka komunikacije i da za njegovo prenošenje koriste siguran kanal. Ovakav siguran kanal nije uvek na raspolaganju.
Manipulacija ključevima: U mreži sa $n$ korisnika, svaki par korisnika mora da ima svoj sopstveni tajni ključ, što čini ukupno ključeva za tu mrežu.
Nemogućnost realizacije procedure digitalnog potpisa: U šifarskim sistemima sa tajnim ključevima nema mogućnosti, u opštem slučaju, za digitalno potpisivanje poruka, tako da onaj koji prima poruku ne može da bude siguran da je onaj koji mu je poslao poruku zaista njen autor.
Kriptoanaliza
Proces otkrivanja otvorenog teksta ili ključa.
Klasična kriptoanaliza
Analiza učestanosti
Računanje podudaranja
Kasiski ispitivanje
Simetrična kriptoanaliza
Vrste napada:
Poznat otvoren tekst
Određeni (odabrani) otvoreni tekst
Samo šifrat
Odabrani šifrat
Skup izabranih ključeva
Simetrični algoritmi
Koriste isti tajni ključ i za šifrovanje i za dešifrovanje.
Podaci koji se prenose VPN-om šifruju se simetričnim algoritmom.
Simetrični algoritmi su mnogo brži i manje koriste procesor od asimetričnih algoritama.
Tipične dužine ključa su od 112 do 256 bita (duži ključ – veća sigurnost).
128 bita je minimalna dužina ključa za koju se smatra da je šifrovanje prilično pouzdano.
Blok šifre i protočne šifre
Algoritmi za šifrovanje mogu obrađivati bite, bajtove ili blokove podataka.
Blok šifre koriste simetrični ključ i obrađuju grupe bita (blokove), generišući blokove šifrovanog teksta. Ako u poslednjem bloku nema dovoljno podataka, dodaje se tzv. padding.
Protočne šifre takođe koriste simetrični ključ (kao strim, npr. pseudoslučajni niz), ali obrađuju bit po bit, generišući šifrovani strim.
Simetrični blokovski algoritmi šifrovanja
DES
3DES
AES
IDEA
RC2, RC4, RC5, RC6
Blowfish
DES – simetrični blok algoritam
Data Encryption Standard
Radi sa blokovima podataka od 64 bita i ključem od 56 bita.
Početni ključ – 16 podključeva.
Koristi Feistelove šifre.
Problem: distribucija tajnog ključa.
DES - šifrovanje
Blok običnog teksta $X$ se izloži inicijalnoj permutaciji $IP$.
Blok se deli na dve polovine (levi i desni blok), koje na kraju runde menjaju mesta.
U okviru jedne runde vrši se šifrovanje bloka običnog teksta pomoću jednog podključa.
Postupak se ponavlja 16 puta (ima 16 rundi) sa različitim podključevima.
Posle prolaska kroz 16 koraka ceo blok podataka se podvrgava inverznoj permutaciji i dobija se šifrovani blok podataka $Y$.
DES - i-ti korak u šifrovanju
R{i} = L{i-1} igoplus f(R{i-1}, K{i})
Funkcija F(Ri-1, Ki)
Funkcija u osnovi vrši sabiranje po modulu 2.
Pre toga radi se linearna ekspanzija niza od 32 bita na 48, koliko ima i svaki podključ.
Nakon sabiranja vrši se nelinearna kompresija na 32 bita.
Na kraju vrši se permutacija izabrana tako da difuzija bita u bloku bude maksimalna.
Funkcija desne polovine niza i podključa
$X$: Ulazni blok od 32 bita
$E$: Ekspanzija od 32 do 48 bita
$K$: Ključ od 48 bita
Suma po modulu 2 bit za bit sa ključem (48 bita).
DES - dešifrovanje
Redosled procesiranja podključeva je obrnut: $i=16, 15, 14, \ldots, 1$.
L{i-1} = R{i} igoplus f(L{i},K{i})
Osnovne osobine DES-a
Međusobna zavisnost simbola: Svaki bit šifrata je jedna složena funkcija svih bita i svih bita otvorenog teksta.
Promena ulaznih bita: Promena jednog bita poruke prouzrokuje promenu približno 50% bita bloka šifrata.
Promena bita ključa: Promena jednog bita ključa prouzrokuje promenu približno 50% bita bloka šifrata.
Nedostaci DES-a
Slabi ključevi: Postoje četiri slaba ključa koji omogućavaju lako dekriptovanje šifrovane poruke, zato što su u slučaju upotrebe tih ključeva svi podključevi $K1$ do $K{16}$ međusobno jednaki.
Postoji 28 “delimično slabih" ključeva koji omogućavaju lako dekriptovanje šifrovane poruke, zato što su u slučaju upotrebe tih ključeva samo dva ili četiri podključa međusobno različita.
Greška pri prenosu dela šifrata prostire se na ceo blok u kome je taj deo.
Dužina ključa od 56 bita je nedovoljna za trenutno stanje tehnologije.
Postoje specijalni napadi na blok šifre, kao što su linearna i diferencijalna kriptoanaliza.
3DES algoritam
3DES algoritam radi sa trostrukim ključem ukupne dužine 168 bita (3 x 56 bita).
$K1$, $K2$, $K3$ – Tri različita početna ključa.
- izraz za dobijanje šifrovanog teksta $C$.
- izraz za dobijanje dešifrovanog teksta $P$.
Dešifrovanje u drugoj fazi 3DES šifrovanja omogućava kompatibilnost sa DES sistemima ($K1 = K2 = K3 = K$).
3DES - osobine
Dužina ključa od 168 bita efektivno onemogućava napade grubom silom.
Generalno otporan na kriptoanalitičke napade, ali je glavni nedostatak tromost algoritma u softverskoj varijanti (projektovan za implementaciju hardverom i ne daje efikasan softverski kod).
3DES je tri puta sporiji od DES.
Poželjna je veća dužina bloka podataka (radi sa blokom od 64 bita) zbog efikasnosti i bezbednosti.
AES (Rijndael)
Zbog slabosti DES-a, u SAD su odlučili da ga zamene novom blok-šifrom, nazvanom AES (Advanced Encryption Standard).
Konačna verzija algoritma AES bila je izabrana između 5 kandidata – izabran je algoritam rijndael (2001).
Rijndael
Iterativna blok-šifra sa dužinom bloka od 128 bita.
Dužina ključa je promenljiva i može biti 128, 192 i 256 bita.
Osnovni element ove šifre se naziva Stanje (State), što je matrica sa 4 vrste i $Nb$ kolona, gde je $Nb$ jednako dužini bloka podeljenoj sa 32 (za blok od 128 bita $Nb=4$).
Ključ je takođe dat matricom sa 4 vrste i $Nk$ kolona, gde je $Nk$ jednako dužini ključa podeljenoj sa 32.
Broj rundi $Nr$ zavisi od vrednosti $Nb$ i $Nk$: $Nr$ uzima različite vrednosti u zavisnosti od dužine ključa: 128 - 10 rundi, 192 – 12 rundi i 256 – 14 rundi.
Transformacija u okviru jedne runde
Sastoji se od 4 koraka:
Nelinearna supstitucija bajtova (ByteSub).
Ciklični pomeraji u vrstama matrice State (ShiftRow).
Množenje kolona matrice State fiksnim polinomom po modulu (MixColumn).
Sabiranje ključa runde sa matricom State (RoundKey) - XOR.
Slabi, kao i delimično slabi ključevi ne mogu da se pojave kod Rijndael-a, pošto algoritmi šifrovanja i dešifrovanja koriste različite komponente.
Ova šifra je otporna na linearnu i diferencijalnu kriptoanalizu, kao i na neke druge publikovane napade na blok-šifre.
Područja primene blok šifara
Blok-šifre su pogodne za šifrovanje kratkih poruka – ključevi, identifikacioni podaci, potpisi, lozinke, itd.
Nisu pogodne za šifrovanje velikih količina podataka, kao što su formatirani tekstovi, listinzi programa, tabele i naročito grafičke datoteke, pošto se struktura takvih dokumenata lako određuje.
Načini rada blok šifara – kriptografski modovi rada
Elektronska kodna knjiga (Electronic Codebook, ECB)
Ulančavanje šifrovanih blokova (Cipher Block Chaining, CBC)
Šifrat u povratnoj sprezi (Cipher Feedback, CFB)
Izlazni niz u povratnoj sprezi (Output Feedback, OFB)
Brojački režim rada (Counter mod, CTR)
Elektronska kodna knjiga
Može se zamisliti džinovska knjiga šifara u kojoj za svaki uzorak otvorenog teksta postoji odgovarajući šifrat.
Isti blok otvorenog teksta daće uvek isti šifrat.
Ako poruka sadrži blokove koji se sukcesivno ponavljaju, to je moguće prepoznati pri kriptoanalizi.
Ulančavanje šifrovanih blokova
Ulaz algoritam šifrovanja je rezultat operacije XOR tekućeg bloka poruke (otvorenog teksta) i prethodnog bloka šifrata.
Za sve blokove koristi se isti ključ.
Na početku se u pomerački registar uvodi n bita inicijalnog vektora (IV), koji ne mora da se deži u tajnosti, ali je bitno da se generiše na slučajan način.
Jednake poruke se šifruju na različite načine promenom sadržaja registra u povratnoj sprezi.
Šifrat u povratnoj sprezi
Na početku se u pomerački registar uvodi n bita inicijalnog vektora (IV) koji ne mora da se drži u tajnosti, ali je pogodno da se generiše na slučajan način.
Otvoreni tekst se deli na blokove od po $m$ bita. Blokovi se sabiraju po modulu 2, bit za bit, gde $m$ može da varira između 1 i n.
Pomerački registar dužine n bita se pomera ulevo $m$ bita posle šifrovanja svakog bloka.
U ovom načinu rada blok-šifra se pretvara u sekvencijalnu šifru, jednake poruke se mogu šifrovati na različite načine promenom vektora IV, ograničava se propagacija grešaka u prenosu.
Brojački režim rada
Koristi se brojač jednak veličini bloka poruke.
Vrednost brojača mora da bude različita za svaki blok poruke.
Nema ulančavanja i može se raditi paralelno na više blokova.
Sadržaj brojača se šifruje ključem, pa se na šifrovan sadržaj i blok poruke primeni XOR.
Sekvencijalni šifarski sistemi
Poseduju generatore pseudoslučajnih brojeva – deterministički algoritmi, ili nizovi simbola koje oni generišu imaju slične osobine kao i slučajni nizovi.
Koriste kratke ključeve radi započinjanja procesa generisanja.
Izlazni niz generatora se sabira po modulu 2 sa nizom otvorenog teksta i na taj način se dobija niz šifrata.
Zahtevi koje svaki šifarski niz mora da zadovolji
Period šifarskog niza mora da bude bar jednake dužine kao i dužina niza koji se šifruje.
U praksi, generišu se nizovi čiji je period mnogo redova veličine veći od dužine niza koji se šifruje.
Primer sekvencijalnog algoritma: RC4
RC4 algoritam koristi tablicu S-box dužine 256 bajtova.
Za generisanje slučajnog broja $K$ treba uraditi sledeće:
$i=0$, $j=0$
$i=(i+1) ext{mod} 256$
$j=(j+S_i) ext{mod} 256$
$Si$ i $Sj$ zamene mesta.
$K=S_t$.
Dobijeni bajt $K$ se koristi za XOR-ovanje sa otvorenim tekstom za dobijanje šifrata.
RC4 – Inicijalizacija S-box
Inicijalizacija S-box je jednostavna. Prvo se linearno napuni tako da je: $S0=0, \ldots, S{255}=255$.
Zatim se generiše niz od 256 bajtova ključa (ponavljanjem).
Tada se S-box popunjava na sledeći način:
$j=0$;
Za $i=0$ do 255: $j=(j + Si + Ki) ext{mod} 256$; $Si$ i $Sj$ zamene mesta.