Bezbednost informacionih sistema
Predavanje 3
Kriptografija
Terminologija
Antičke šifre
Skitale (Sparta, 500. p. n. e.): Jedan od najranijih poznatih uređaja. Traka pergamenta bila je obmotana oko štapa određenog prečnika i ispisana na njoj.
Odmotana, poruka je bila zbrka slova. Samo neko sa štapom istog prečnika mogao je da je pročita.
Ovo je rani oblik transpozicione šifre (slova su preuređena).
Antičke šifre
Srednji vek
Viženerova šifra (16. vek): Ovo je bio veliki skok! To je polialfabetska šifra, što znači da koristi više supstitucionih alfabeta. Koristi ključnu reč da bi odredila pomeranje za svako slovo.
Zašto je bila važna: Pobedila je jednostavnu frekventnu analizu jer je isto slovo u otvorenom tekstu moglo biti šifrovano kao različita slova u šifrovanom tekstu (npr. „E“ šifrovano različitim delom ključne reči postaje „J“, pa „P“ itd.). Ovo se vekovima smatralo „neprobojnom šifrom“ (le chiffre indéchiffrable).
Drugi svetski rat
Enigma (Nemačka, Prvi i Drugi svetski rat): Složeni elektromehanički uređaj. Operator bi otkucao slovo, a električna struja bi prolazila kroz skup rotora i razvodnu ploču da bi osvetlila šifrovano slovo. Jezgro njene bezbednosti bio je stalno promenljivi ključ – podešavanja rotora su se menjala sa svakim pritiskom na taster.
Koncept bezbednosti: Ovo je učinilo napade grubom silom (isprobavanje svakog mogućeg ključa) praktično nemogućim sa tehnologijom tog vremena. Broj mogućih početnih podešavanja bio je astronomski veliki.
DES
Standard za šifrovanje podataka (DES) - 1977: Vođena potrebom za komercijalnim standardom, vlada SAD je, uz pomoć IBM-a, kreirala DES. Bio je to algoritam sa simetričnim ključem (isti ključ za šifrovanje i dešifrovanje).
Zašto je bio važan: Bila je to prva moderna, javno dostupna šifra koja je široko usvojena. Pokazala je da jaku kriptografiju mogu standardizovati i da je svi mogu koristiti.
Njen pad: Njegov ključ od 56 bita je na kraju postao prekratak. Specijalizovane mašine su mogle da ga dešifruju grubom silom do kraja 1990-uh.
Kriptografija javnog ključa
Problem sa simetričnim ključevima: Kako se dve osobe koje se nikada nisu srele dogovore oko tajnog ključa, a da ih neko ne prisluškuje?
Rešenje: Vitfild Difi, Martin Helman i (odvojeno) Ralf Merkl predložili su ideju: koristiti par ključeva. Javni ključ koji svako može da koristi za šifrovanje poruke i privatni ključ koji samo vlasnik koristi za njeno dešifrovanje. Moženo dati svoj javni ključ bilo kome, poput broja telefona navedenog u imeniku.
RSA (1977): Ron Rivest, Adi Šamir i Leonard Adleman stvorili su prvi praktični kriptosistem sa javnim ključem, zasnovan na matematičkoj težini faktorisanja velikih prostih brojeva. Ovo je osnova za najbezbedniju internet komunikaciju danas (SSL/TLS, digitalni potpisi)
AES
Napredni standard šifrovanja (AES) - 2001: Svetsko takmičenje za zamenu DES-a.
To je algoritam sa simetričnim ključem koji je brži i mnogo bezbedniji od DES-a, sa veličinama ključeva od 128, 192 ili 256 bita.
To je ono što i danas koristimo da zaštitimo sve, od WhatsApp poruka do onlajn bankarstva
Algoritmi šifrovanja
Simetrični algoritmi
E(p,k)
D(c,k)
p
c
p
k
Asimetrični algoritmi
E(p,k1)
D(c,k2)
p
c
p
k1
k2
Napadi na šifrate
Čemu napadač ima pristup:
Cilj napadača:
Metod rada:
Poznat otvoren tekst known plaintext
Čemu napadač ima pristup:
Cilj napadača:
Tehnika:
Poznat otvoren tekst known plaintext
Čemu napadač ima pristup:
Cilj napadača:
Kako to rade:
Chosen-Ciphertext
Čemu napadač ima pristup:
Cilj napadača:
Metod:
Chosen-Ciphertext
Tipovinapada
Tip napada | Šta napadač zna | Primer |
Ciphertext-Only | Samo šifrovanu poruku | Elektronsko izviđanje |
Known-Plaintext | Neke parove poruka-šifrat | Presretanje para poruka-šifrat |
Chosen-Plaintext | Ispravan i kompletan šifrat bilo koje poruke | Poturanje poruke protivniku da je šifruje |
Chosen-Ciphertext | Dešifrovane verzije raznih poruka, osim željene | Poturanje modifikovanog teksta protivniku |
Klasični kriptosistemi
Transpozicioni sistemi
KRIPTOGRAFIJA
KITGAIA
RPORFJ
KITGAIARPORFJ
Permutacije
Supstitucioni sistemi
Cezarova šifra
Gaius Iulius Caesar
otvoreni tekst 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
šifrat 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
CAESAR
FDHVDU
Cezarova šifra
Ek(x)=(x+k) mod n
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Numerička reprezentacija slova engleskog alfabeta
n=26
Cezarova šifra
Dk(y)=(y-k) mod n
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Numerička reprezentacija slova engleskog alfabeta
n=26
Aritmetika analognog časovnika
„Ako je sada 10 sati, koliko će sati biti za 4 sata?“
Ne kažemo „10 + 4 = 14 sati“. Kažemo „2 sata“.
„Ako je sada 5 sati, koliko je sati bilo pre 7 sati?“
Ne kažemo „5 - 7 = -2 sata“. Brojimo unazad oko sata i stignemo do „10 sati“.
Postupak
Moduo („broj sati na satu“): Ovo je tačka u kojoj se ciklus ponavlja. Na standardnom satu, moduo je 12. U kriptografiji koristimo ogromne brojeve.
Izračunavanje („rezultat“): Uvek pronalazimo ostatak nakon deljenja modulom
Cezarova šifra
ek(x)=(x+k) mod n
ek(x)=(x+13) mod 26
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
CACAK
2,0,2,0,10
ek(2)=(2+13) mod 26=15 mod 26 = 15
ek(0)=(0+13) mod 26=13 mod 26 = 13
ek(10)=(10+13) mod 26=23 mod 26 = 23
Principi kriptografije
Poverljivost (tajnost): Ovo je najočigledniji cilj. Poruka treba da bude nerazumljiva svakome ko ne poseduje ključ. To osigurava da samo ovlašćene strane mogu da pročitaju informacije.
Integritet: Sistem treba da obezbedi način da se otkrije da li je poruka izmenjena, slučajno ili zlonamerno, tokom prenosa ili skladištenja.
Autentifikacija: Sistem treba da proveri identitet pošiljaoca i primaoca. Moramo biti sigurni sa kim komuniciramo.
Principi kriptografije
Neporicanje: Pošiljalac ne bi trebalo da bude u mogućnosti da kasnije porekne da je poslao poruku. To pruža pravni dokaz o poreklu podataka.
Kerckhoffs's Principle - Kerhofovo načelo
„Bezbednost kriptosistema mora zavisiti samo od tajnosti ključa, a ne od tajnosti algoritma.“
Zašto je to ključno:
Principi kriptoanalize
Kriptoanalitičari ne isprobavaju samo nasumične ključeve; oni sistematski traže slabosti.
Napadi o kojima smo ranije govorili (samo šifrovani tekst, poznati otvoreni tekst itd.) definišu koje informacije napadač koristi, dok principi u nastavku definišu kako ih koriste.
Iskorišćavanje algoritamskih mana
Iskorišćavanje algoritamskih mana: Ovo je najdirektniji napad.
Kriptoanalitičar traži matematičku slabost ili pomoćna vrata (backdoor) u samom algoritmu koja mu omogućavaju da povrati ključ ili otvoreni tekst bez isprobavanja svih mogućnosti.
Mane u implementaciji eksploatacije:
Mane u implementaciji eksploatacije: Algoritam može biti savršen, ali način na koji je izgrađen ili korišćen je manjkav. Ovo je veoma čest izvor proboja u praksi
Primeri:
Iskorišćavanje ljudskog faktora
Iskorišćavanje ljudskog faktora (najslabija karika): U potpunosti zaobilaženje kriptografije zloupotrebom ljudi koji koriste sistem.
Primeri:
Gruba sila
Gruba sila (poslednje utočište): Sistematsko isprobavanje svakog mogućeg ključa dok se ne pronađe ispravan.
Bezbedan sistem je onaj gde je broj mogućih ključeva toliko astronomski veliki (npr. 2256 za AES-256) da je ovaj napad računski neizvodljiv bilo kojom tehnologijom koju možemo predvideti
Sumirani principi kriptoanalize
Pretpostavimo da je na snazi Kerhofov princip: Dešifrant radi pod pretpostavkom da poznaje algoritam. Njihov ceo fokus je na pronalaženju ključa ili greške u njegovoj primeni.
Potražimo obrasce i neslučajnost: Cilj šifrovanja je da podaci izgledaju potpuno slučajno. Bilo koji statistički obrazac ili pristrasnost u šifrovanom tekstu je potencijalna ranjivost koja se može iskoristiti. Frekvencijska analiza je klasičan primer za to.
Radimo na osnovu onoga što znamo: Koristimo sve dostupne informacije – poznati otvoreni tekst, izabrani otvoreni tekst, strukture protokola, jezičku statistiku – da bismo ograničili problem i suzili skup za moguće ključeve.
Skup Zn
Aritmetika po modulu n
Grupa
Grupa
Nije grupa
Grupa
Jeste grupa
Prsten
(R,+,*) sastoji se od skupa R i operacija “+” i “*”
Prsten
a*b=1
onda za b kažemo da je
inverzni element elmenta a
Prsten
za svako a, b iz R važi a*b = b*a
Polje
Kongruencija
a≡b (mod n)
Kongruencija
(a1 + a2) ≡ (b1 + b2) (mod n)
(a1 − a2) ≡ (b1 − b2) (mod n)
(a1a2) ≡ (b1b2) (mod n).
a∙x ≡1 (mod n)
x označavamo sa a-1
ima inverzni element akko je NZD(a,n)=1, tj
a i n su međusobno prosti
Afina šifra
ek(x)=(ax+b) mod n
ek(x)=(ax+b) mod 26
dk(x)=a-1(y-b) mod 26
a-1
Multiplikativni inverzni element u prstenu Z26
Svi računi u modulu 26
Primeri
Problem množenja u modularnoj aritmetici
Problem:
Ako x pomnožim ga sa 3 i dobijem 3 mod 26, koji je x?
Mogao bi biti 1, jer je 1 × 3 = 3.
Ali može biti i 27!
Hajde da proverimo: 27 × 3 = 81. Koliko je 81 mod 26?
81 / 26 = 3 ostatak 3. Dakle, da, 81 je takođe 3 mod 26
Rešenje
Rešenje: Magični broj (multiplikativna inverzna vrednost po modulu)
Za dati broj a (mod 26), njegov „magični broj“ ili multiplikativna inverzna vrednost je broj kojim množimo taj broj da bismo dobili 1 mod 26.
a × magic_number = 1 (mod 26)
Primer
Koji je magični broj za 3? Potrebno nam je 3 × m = 1 (mod 26).
Hajde da testiramo: 3×1=3, 3×2=6, ... 3×9=27. Koliko je 27 mod 26?
(27 - 26 = 1).
3 × 9 = 1 (mod 26). Magični broj za 3 je 9.
Primer
Koji je magični broj za 5? Potrebno nam je 5 × m = 1 (mod 26).
Hajde da testiramo:
5×1=5, 5×2=10, 5×3=15, 5×4=20, 5×5=25. Sledeći je 5×6=30. Koliko je 30 mod 26? 30 - 26 = 4.
Ovo postaje teško...
Osobine magičnih brojeva
Evo tajne: NEMAJU SVI BROJEVI MAGIČNI BROJ!
Za afinu šifru koristimo samo brojeve koji imaju magični broj po modulu 26. Ovi brojevi moraju biti relativno prosti s brojem 26, što znači da nemaju zajedničke delioce sa 26 osim broja 1.
Faktori broja 26 su 1, 2, 13, 26.
Dakle, NE MOŽEMO koristiti brojeve koji su parni (2, 4, 6...) ili 13.
„Dobri“ brojevi za afinu šifru su:
1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25
Broj (a) | a-1 (da dobijemo 1 mod 26) | (a × a-1 ) |
1 | 1 | 1 × 1 = 1 ✔️ |
3 | 9 | 3 × 9 = 27 ≡ 1 ✔️ |
5 | 21 | 5 × 21 = 105. 105 ÷ 26 = 4 ost 1 ✔️ |
7 | 15 | 7 × 15 = 105 ≡ 1 ✔️ |
9 | 3 | 9 × 3 = 27 ≡ 1 ✔️ |
Euklidov algoritam
Služi da se nađe najmanji zajednički delilac brojeva a i b
Naći
gcd(a, b), gde je a > b
gcd(a, b) = gcd(b, a MOD b)
a MOD b je ostatak pri deljenju a sa b
Primer
Naći gcd(2011, 1534)
Prošireni Euklidov algoritam
Sada rešimo ovaj problem
ax + by = gcd(a, b) = 1
Što je zapravo isto kao:
ax=1 mod b
Prošireni Euklidov algoritam
Daklee: -11 × 7 + 3 × 26 = 1
Multiplikativni inv. el. 7 je -11 ≡ 15 (mod 26)
Afina šifra
a | 1 | 3 | 5 | 7 | 9 | 11 | 15 | 17 | 19 | 21 | 23 | 25 |
a-1 | 1 | 9 | 21 | 15 | 3 | 19 | 7 | 23 | 11 | 5 | 17 | 25 |
Primer
Primer
Primer
Problem!
Vigenereova šifra
Vigenereova šifra
ključ B R O J B R O J B R O J
otvoreni tekst K R I P T O L O G I J A
šifrat L I W Y U F Z X H Z X J
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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Vigenereova šifra sa autoključem
ključ B R O J K R I P T O L O
otvoreni tekst K R I P T O L O G I J A
šifrat L I W Y D F T D Z W U O
Tabula recta
https://pages.mtu.edu/~shene/NSF-4/Tutorial/VIG/Vig-Base.html
Playfairova šifra
P L A Y F
IJ R B C D
E G H K M
N O Q S T
U V W X Z
Playfairova šifra
Playfairova šifra
P L A Y F
IJ R B C D
E G H K M
N O Q S T
U V W X Z
OC postaje SR
Playfairova šifra
Algoritam XOR
XOR | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 0 |