1 of 85

Bezbednost informacionih sistema

Predavanje 3

2 of 85

Kriptografija

  • Nauka o tajnom pisanju
  • Poznata od antike

3 of 85

4 of 85

Terminologija

  • Kriptosistem čine:
    • Otvoreni tekst (plaintext)
    • Šifrovani tekst (ciphertext)
    • Ključ (key)
    • Funkcija šifrovanja (encryption function)
    • Funkcija dešifrovanja (decryption function)

5 of 85

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).

6 of 85

Antičke šifre

7 of 85

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).

8 of 85

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.

9 of 85

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.

10 of 85

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)

11 of 85

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

12 of 85

Algoritmi šifrovanja

  • simetrični
  • asimetrični

13 of 85

Simetrični algoritmi

E(p,k)

D(c,k)

p

c

p

k

14 of 85

Asimetrični algoritmi

E(p,k1)

D(c,k2)

p

c

p

k1

k2

15 of 85

Napadi na šifrate

  • “Samo šifrat” ciphertext-only
  • Poznat otvoren tekst known plaintext
  • Odabran otvoreni tekst chosen plaintext
  • Odabrani šifrat chosen ciphertext
  • Ostali metodi

16 of 85

  • “Samo šifrat” ciphertext-only

Čemu napadač ima pristup:

  • Samo jednom ili većem broju delova šifrovanog teksta (šifrovane poruke). Nemaju pojma šta piše u originalnom otvorenom tekstu.

Cilj napadača:

  • Da otkriju ključ ili barem otvoreni tekst jedne ili više presretnutih poruka.

Metod rada:

  • Analiza frekvencije: Kod klasičnih šifri (kao što su Cezar ili zamena), analiziraju frekvenciju slova ili simbola. U modernim sistemima traže obrasce u binarnim podacima.

17 of 85

  • “Samo šifrat” ciphertext-only

  • Primer iz prakse

  • Prisluškivač presreće šifrovani imejl. Nema kontekst za ono što je unutra, ali ipak pokuša da razbije šifru.
  • Ako se sistem može razbiti samo sa ovim informacijama, smatra se potpuno razbijenim.

18 of 85

Poznat otvoren tekst known plaintext

Čemu napadač ima pristup:

  • Jedan ili više parova (obični par: tekst-šifrovani tekst). Tačno znaju kako se određena šifrovana poruka dešifruje.

Cilj napadača:

  • Da nađu ključ koji je korišćen za šifrovanje, što im omogućava da dešifruju sve buduće poruke šifrovane tim ključem.

Tehnika:

  • Primena reverznog inženjetrstva: kreću unazad od poznatih parova. Ako znaju da P šifruje u C, mogu da testiraju potencijalne ključeve ili algoritme da bi pronašli onaj koji se podudara.

19 of 85

Poznat otvoren tekst known plaintext

  • Primeri iz prakse
  • U Drugom svetskom ratu, Englezi u Blečli parku imali su „pretpostavke“ – nagađanja o delovima nemačkih poruka (npr. standardni izveštaji o vremenu ili „Hajl Hitler“). Ovi poznati otvoreni tekstovi bili su ključni za razbijanje dnevnih podešavanja Enigme.

  • Napadač dobija javno saopštenje za štampu kompanije (otvoreni tekst) i takođe uspeva da presretne šifrovanu verziju istog saopštenja poslatog partnerskoj kompaniji.

20 of 85

  • Odabrani otvoreni tekst chosen plaintext

Čemu napadač ima pristup:

  • mašini za šifrovanje kao „crnoj kutiji“. Mogu joj uneti P po svom izboru i dobiti C. Ovo mogu više puta da rade.

Cilj napadača:

  • Da dešifruju ključ analizirajući odnos između svojih posebno izrađenih otvorenih tekstova i rezultujućih šifrovanih tekstova.

Kako to rade:

  • Oni biraju otvorene tekstove koji otkrivaju obrasce ili slabosti u algoritmu za šifrovanje. Na primer, mogu šifrovati sve nule, sve jedinice ili tekst sa specifičnim strukturama da bi videli kako se algoritam ponaša.

21 of 85

  • Odabrani otvoreni tekst chosen plaintext

  • Primer iz prakse
  • Primer „Midveja“ iz Drugog svetskog rata: Amerikanci su sumnjali da Japanci planiraju napad na lokaciju nazvanu „AF“. Imali su probijenu šifru. Da bi potvrdili, američka vojska na Midveju (sumnjalo se da je „AF“) poslala je lažnu, nešifrovanu poruku u kojoj se navodi da im je prečišćivač vode pokvaren. Ubrzo nakon toga, presreli su japansku šifrovanu poruku u kojoj se navodi da „AF ima problema sa vodom“. Ovo je potvrdilo cilj. U ovom slučaju, Amerikanci su izabrali otvoreni tekst (poruku o nestašici vode) i posmatrali rezultujući šifrovani tekst od neprijatelja.

22 of 85

Chosen-Ciphertext

Čemu napadač ima pristup:

  • Imaju pristup mašini za dešifrovanje. Mogu da joj dostave bilo koji šifrovani tekst C (osim određenog ciljnog šifrovanog teksta koji žele da razbiju) i da dobiju odgovarajući otvoreni tekst P.

Cilj napadača:

  • Da dešifruju ključ ili otvoreni tekst ciljnog šifrovanog teksta koji nisu poslali na dešifrovanje.

Metod:

  • Uzimaju ciljni šifrovani tekst, malo ga modifikuju na proračunati način i šalju modifikovanu verziju mašiniza dešifrovanje. Videvši kako se dešifruje njihova modifikovana verzija, mogu da nauče dovoljno da dešifruju originalni tekst.

23 of 85

Chosen-Ciphertext

  • Primer iz prakse
  • Ovo je manje uobičajeno u fizičkom ratovanju, ali je veoma relevantno za digitalne sisteme.
  • Zamislimo server za onlajn bankarstvo koji će dešifrovati svaku transakciju koju mu pošaljemo (da bi je obradio), osim jedne specifične, transakcije velike vrednosti koja je presretnuta (cilj)
  • Mogli bismo poslati varijacije te transakcije da bismo videli kako server reaguje, na kraju učeći kako da dešifruje ili falsifikuje original.

24 of 85

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

25 of 85

Klasični kriptosistemi

  • Simetrični sistemi
  • Transpozicioni sistemi
  • Supstitucioni sistemi

26 of 85

Transpozicioni sistemi

  • Rail fence

KRIPTOGRAFIJA

KITGAIA

RPORFJ

KITGAIARPORFJ

Permutacije

27 of 85

Supstitucioni sistemi

  • Monoalfabetska zamena
    • Cezarova šifra, afina šifra (bijekcija P→C)
  • Polialfabetska zamena
    • Playfairova šifra, Vigenerova šifra (1:n P→C)
  • Poligramska zamena
    • Playfairova šifra, Hillova šifra, bijekcija P→C, ali ne znak po znak, već blok po blok

28 of 85

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

29 of 85

Cezarova šifra

  • Formalizacija Cezarove šifre:

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

30 of 85

Cezarova šifra

  • Formalizacija Cezarove šifre:

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

31 of 85

Aritmetika analognog časovnika

32 of 85

„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“.

33 of 85

34 of 85

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

35 of 85

Cezarova šifra

  • Primer: k=13, šifrovati tekst CACAK

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

36 of 85

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.

  • U praksi: Šifrovanje transformiše otvoreni tekst u šifrovani tekst pomoću ključa.

Integritet: Sistem treba da obezbedi način da se otkrije da li je poruka izmenjena, slučajno ili zlonamerno, tokom prenosa ili skladištenja.

  • U praksi: Ovo se često postiže kriptografskim heš funkcijama i kodovima za autentifikaciju poruka (MAC), koji deluju kao „pečat koji sprečava neovlašćeno otvaranje“ za podatke.

Autentifikacija: Sistem treba da proveri identitet pošiljaoca i primaoca. Moramo biti sigurni sa kim komuniciramo.

  • U praksi: Digitalni potpisi i sertifikati se koriste za autentifikaciju strana.

37 of 85

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.

  • U praksi: Digitalni potpisi su primarni alat, jer je samo pošiljalac mogao da kreira važeći potpis svojim privatnim ključem

38 of 85

Kerckhoffs's Principle - Kerhofovo načelo

„Bezbednost kriptosistema mora zavisiti samo od tajnosti ključa, a ne od tajnosti algoritma.“

  • Šta to znači: Trebalo bi da pretpostavimo da neprijatelj tačno zna kako naš metod šifrovanja funkcioniše. Sva bezbednost treba da leži u ključu.

Zašto je to ključno:

  • Veoma je teško čuvati algoritam u tajnosti ako se široko koristi (npr. u softveru).
  • Javni algoritmi mogu biti (i jesu) rigorozno testirani od strane stručnjaka širom sveta kako bi pronašli slabosti. „Tajni“ algoritam će verovatno biti slab i na kraju će se probiti kroz obrnuti inženjering („bezbednost pomoću komplikacije“ je zabluda). Ako je ključ ugrožen, može se generisati novi. Ako je algoritam ugrožen, ceo sistem je loš i mora se zameniti.

39 of 85

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.

40 of 85

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.

41 of 85

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:

  • Napadi sporednim kanalom: Merenje potrošnje energije ili vremena potrebnog za dešifrovanje radi izvlačenja informacija o ključu.
  • Loše generisanje slučajnih brojeva: Ako ključevi nisu zaista slučajni, oni su predvidljivi i lakše ih je pogoditi.
  • Softverske greške: Programska greška koja slučajno izaziva curenje ključa u memoriji

42 of 85

Iskorišćavanje ljudskog faktora

Iskorišćavanje ljudskog faktora (najslabija karika): U potpunosti zaobilaženje kriptografije zloupotrebom ljudi koji koriste sistem.

Primeri:

  • Socijalni inženjering: Navođenje korisnika da otkrije svoju lozinku ili ključ.
  • Loše upravljanje ključevima: Zapisivanje ključeva na papiriće, ponovna upotreba ključeva ili nebezbedno deljenje ključeva.

43 of 85

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

44 of 85

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.

45 of 85

Skup Zn

  • Skup koji reprezentuje alfabet
  • Zn={0,1,2,...,n-1}
  • Uvedimo pravilo: operacije sabiranja, oduzimanja, množenja i deljenja uvek imaju rezultat unutar skupa
  • Dva slučaja:
    • rezultat je manji od n, ili
    • Tražimo ostatak pri deljenju sa n

Aritmetika po modulu n

46 of 85

Grupa

  • Algebarska struktura (G, •) je grupa ako važi:
    • Zatvorenost za binarnu operaciju (a,b)->a∙b
    • Asocijativnost (a•b)•c= a•(b•c)
    • Postojanje neutralnog elementa a•e= e•a=a
    • Postojanje inverznog elementa a•a-1=e
  • Ako važi i a•b= b•a (komutativnost)
    • Grupa je Abelova

47 of 85

Grupa

  • Primer: skup celih brojeva i operacija množenja
    • Zatvorenost za binarnu operaciju (a,b)->a∙b OK
    • Asocijativnost (a•b)•c= a•(b•c) OK
    • Postojanje neutralnog elementa a•e= e•a=a OK
    • Postojanje inverznog elementa a•a-1=e NE

Nije grupa

48 of 85

Grupa

  • Primer: skup celih brojeva i operacija sabiranja
    • Zatvorenost za binarnu operaciju (a,b)->a∙b OK
    • Asocijativnost (a•b)•c= a•(b•c) OK
    • Postojanje neutralnog elementa a•e= e•a=a OK
    • Postojanje inverznog elementa a•a-1=e OK

Jeste grupa

49 of 85

Prsten

  • Prsten je algebarska struktura sa svojstvima:

(R,+,*) sastoji se od skupa R i operacija “+” i “*”

    • (R,+) je Abelova grupa sa neutralnim elementom 0
    • operacija “*” je asocijativna
    • za svako a iz R postoji neutralni element 1 za “*”
    • Operacija “*” je distributivna u odnosu na “+”:
      • a*(b+c) = (a*b)+(a*c)

50 of 85

Prsten

  • Ako za element a iz prstena R postoji takvo b da je:

a*b=1

onda za b kažemo da je

inverzni element elmenta a

51 of 85

Prsten

  • Komutativni prsten R je onaj za koji vredi:

za svako a, b iz R važi a*b = b*a

  • Komutativni prsten u kome svaki element (osim 0) ima multiplikativni inverzni element naziva se polje

52 of 85

Polje

  • Zn je polje akko je n prost broj

53 of 85

Kongruencija

  • a, b su celi brojevi
  • Ako a i b daju isti ostatak pri deljenju sa n, onda su a i b kongruentni po modulu n
  • Piše se:

a≡b (mod n)

54 of 85

Kongruencija

  • Ako a1 ≡ b1 (mod n) i a2 ≡ b2 (mod n), onda:

(a1 + a2) ≡ (b1 + b2) (mod n)

(a1 − a2) ≡ (b1 − b2) (mod n)

(a1a2) ≡ (b1b2) (mod n).

55 of 85

  • Zn={0,1,2,...,n-1}
  • Ako operacije sabiranja i oduzimanja obavljamo po modulu n, onda je inverzni element elementa a takav x da:

a∙x ≡1 (mod n)

x označavamo sa a-1

56 of 85

  • Element a je invertibilan, odnosno

ima inverzni element akko je NZD(a,n)=1, tj

a i n su međusobno prosti

57 of 85

Afina šifra

  • Funkcija šifrovanja:

ek(x)=(ax+b) mod n

  • Funkcija šifrovanja, za engleski alfabet:

ek(x)=(ax+b) mod 26

  • Funkcija dešifrovanja, za engleski alfabet:

dk(x)=a-1(y-b) mod 26

a-1

Multiplikativni inverzni element u prstenu Z26

58 of 85

Svi računi u modulu 26

59 of 85

Primeri

  • 18 + 5 = 23
  • 18 + 10 = 28, 28 > 25! 28 - 26 = 2 18 + 10 = 2 (mod 26)
  • 25 + 1 = 0 (mod 26)
  • 25 + 3 = 2 (mod 26) (25->0->1->2)

60 of 85

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

61 of 85

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)

62 of 85

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.

63 of 85

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...

64 of 85

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

65 of 85

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 ✔️

66 of 85

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

67 of 85

Primer

Naći gcd(2011, 1534)

68 of 85

69 of 85

Prošireni Euklidov algoritam

Sada rešimo ovaj problem

ax + by = gcd(a, b) = 1

Što je zapravo isto kao:

ax=1 mod b

70 of 85

Prošireni Euklidov algoritam

  • 26 = 3 × 7 + 5
  • 7 = 1 × 5 + 2
  • 5 = 2 × 2 + 1
  • 2 = 2 × 1 + 0�GCD(26, 7) = 1 ✓

  • Iz 5 = 2 × 2 + 1, sledi: 1 = 5 - 2 × 2
  • Iz 7 = 1 × 5 + 2,sledi: 2 = 7 - 1 × 5
  • Zamenimo: 1 = 5 - 2 × (7 - 1 × 5) = 5 - 2 × 7 + 2 × 5 = 3 × 5 - 2 × 7
  • Iz 26 = 3 × 7 + 5, sledi: 5 = 26 - 3 × 7
  • Zamenimo: 1 = 3 × (26 - 3 × 7) - 2 × 7 = 3 × 26 - 9 × 7 - 2 × 7 = 3 × 26 - 11 × 7

Daklee: -11 × 7 + 3 × 26 = 1

Multiplikativni inv. el. 7 je -11 ≡ 15 (mod 26)

71 of 85

Afina šifra

  • Element a mora imati multiplikativni inverzni element u prstenu Z26
  • To znači da a i 26 moraju biti međusobno prosti

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

72 of 85

Primer

  • Za K=(7,3) šifrovati tekst KRIPTOGRAFIJA

73 of 85

Primer

  • Za K=(7,3) dešifrovati tekst VSHEGXTSDMHOD

74 of 85

Primer

  • Za K=(4, 5) šifrovati tekst DAN, pa zatim dešifrovati rezultat

Problem!

75 of 85

Vigenereova šifra

76 of 85

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

77 of 85

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

78 of 85

Tabula recta

https://pages.mtu.edu/~shene/NSF-4/Tutorial/VIG/Vig-Base.html

79 of 85

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

80 of 85

Playfairova šifra

  • Pravila:
    • Otvoreni tekst delimo na digrafske blokove
    • Ako su oba slova u istom redu, pomeramo jedno mesto desno (ciklički)
    • Ako su oba slova u istoj koloni, pomeramo jedno mesto dole (ciklički) i
    • treći slučaj(dva slova nisu u istom redu niti u istoj koloni)!

81 of 85

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

82 of 85

Playfairova šifra

  • Primer: šifrovati tekst CACAK, ključna reč je PLAYFAIR

83 of 85

Algoritam XOR

XOR

0

1

0

0

1

1

1

0

84 of 85

85 of 85