56
Sadržaj Uvod ........................................................................................................................................... 2 Klasična kriptografija ................................................................................................................. 4 Povijest kriptografije.............................................................................................................. 4 Skital ...................................................................................................................................... 5 Cezarova ili supstitucijska šifra ............................................................................................. 6 Vigenèreova ili polialfabetska šifra ....................................................................................... 7 Transpozicija........................................................................................................................ 10 Izmjenična transpozicija.................................................................................................. 11 Transpozicija sa obilaskom ............................................................................................. 11 Stupčasta transpozicija .................................................................................................... 11 Kriptoanaliza u klasičnoj kriptografiji ................................................................................. 12 Strojevi za šifriranje.................................................................................................................. 15 Enigma ................................................................................................................................. 15 Povijest ............................................................................................................................ 15 Konstrukcija .................................................................................................................... 16 Razbijanje Enigme .......................................................................................................... 18 Računalna kriptografija ............................................................................................................ 20 Simetrični sustavi za kriptografiju ....................................................................................... 20 DES algoritam ................................................................................................................. 22 AES algoritam ................................................................................................................. 27 Asimetrični sustavi za kriptografiju..................................................................................... 29 Razvoj asimetričnog sustava ........................................................................................... 29 Problem distribucije ključa ............................................................................................. 30 Razvoj asimetričnog sustava, nastavak ........................................................................... 31 RSA ................................................................................................................................. 33 Infrastruktura javnog ključa ................................................................................................. 36 Logičke komponente infrastrukture javnog ključa ......................................................... 38 Rizici infrastrukture javnog ključa .................................................................................. 39 Kvantna kriptografija ........................................................................................................... 41 Protokoli .......................................................................................................................... 42 Zaključak .................................................................................................................................. 44 Dodatak 1: Implementacija šifriranja skitalom u PHP-u .......................................................... 45 Dodatak 2: Cezarova šifra izvedena u C++ programskom jeziku ............................................ 46 Dodatak 3: Primjer uporabe DES algoritma u JAVA-i ............................................................ 47 Dodatak 4: Primjer uporabe AES-a u C♯ programskom jeziku ............................................... 49 Rječnik ...................................................................................................................................... 51 Popis slika................................................................................................................................. 54 Popis tablica.............................................................................................................................. 55 Popis literature .......................................................................................................................... 56

Racunalna Kriptografija

Embed Size (px)

Citation preview

Page 1: Racunalna Kriptografija

Sadržaj

Uvod ........................................................................................................................................... 2 Klasična kriptografija ................................................................................................................. 4

Povijest kriptografije .............................................................................................................. 4 Skital ...................................................................................................................................... 5 Cezarova ili supstitucijska šifra ............................................................................................. 6 Vigenèreova ili polialfabetska šifra ....................................................................................... 7 Transpozicija ........................................................................................................................ 10

Izmjenična transpozicija.................................................................................................. 11 Transpozicija sa obilaskom ............................................................................................. 11 Stupčasta transpozicija .................................................................................................... 11

Kriptoanaliza u klasičnoj kriptografiji ................................................................................. 12 Strojevi za šifriranje.................................................................................................................. 15

Enigma ................................................................................................................................. 15 Povijest ............................................................................................................................ 15 Konstrukcija .................................................................................................................... 16 Razbijanje Enigme .......................................................................................................... 18

Računalna kriptografija ............................................................................................................ 20 Simetrični sustavi za kriptografiju ....................................................................................... 20

DES algoritam ................................................................................................................. 22 AES algoritam ................................................................................................................. 27

Asimetrični sustavi za kriptografiju ..................................................................................... 29 Razvoj asimetričnog sustava ........................................................................................... 29 Problem distribucije ključa ............................................................................................. 30 Razvoj asimetričnog sustava, nastavak ........................................................................... 31 RSA ................................................................................................................................. 33

Infrastruktura javnog ključa ................................................................................................. 36 Logičke komponente infrastrukture javnog ključa ......................................................... 38 Rizici infrastrukture javnog ključa .................................................................................. 39

Kvantna kriptografija ........................................................................................................... 41 Protokoli .......................................................................................................................... 42

Zaključak .................................................................................................................................. 44 Dodatak 1: Implementacija šifriranja skitalom u PHP-u .......................................................... 45 Dodatak 2: Cezarova šifra izvedena u C++ programskom jeziku ............................................ 46 Dodatak 3: Primjer uporabe DES algoritma u JAVA-i ............................................................ 47 Dodatak 4: Primjer uporabe AES-a u C♯ programskom jeziku ............................................... 49 Rječnik ...................................................................................................................................... 51 Popis slika ................................................................................................................................. 54 Popis tablica .............................................................................................................................. 55 Popis literature .......................................................................................................................... 56

Page 2: Racunalna Kriptografija

- 2 -

Uvod

Riječ kriptografija je izvedenica iz grčkog pridjeva κρυπτός kriptós (što znači skriven) i glagola γράφω gráfo (što znači pisati) i njome nazivamo znanost o zakrivanju1 podataka. Kriptoanaliza se bavi istraživanjem metoda za otkrivanje zakrivenih podataka bez poznavanja ključa ili metode kojom je taj podatak zakriven. To su dva aspekta iste znanosti, kriptologije. Kriptologija se kroz kriptografiju, koristeći rezultate kriptoanalize, bavi otkrivanjem novih metoda za zakrivanje podataka od neželjenih, odnosno usputnih pogleda. Istovremeno, kriptologija se kroz kriptoanalizu, koristeći rezultate kriptografije, bavi otkrivanjem novih metoda otkrivanja zakrivenih podataka.

Kako bismo što bolje razumjeli kriptologiju, potrebno je poznavati i pojmove poput šifriranje, dešifriranje i ključ. Šifriranje predstavlja metodu skrivanja podataka i njihovo transformiranje u neprepoznatljiv sadržaj. Sa druge strane, dešifriranje predstavlja obrnuti proces, odnosno konverziju iz nečeg neprepoznatljivog ili šifriranog oblika u ponovno čitljiv i razumljiv sadržaj. Ključ u kriptologiji predstavlja podatak koji korisniku omogućava šifriranje i/ili dešifriranje određenog sadržaja, stoga sam ključ predstavlja jedan ili više podataka koji uz poznati algoritam vode od početnog do zakrivenog sadržaja i obrnuto.

Slika 1. Prve tri skupine od ukupno sedam hrvatskog standarda za brajicu (izvor: http://www.centar-vinko-bek-zg.skole.hr/)

Šifriranje treba razlikovati od kodiranja. Kod kodiranja se informacija prevodi u drugi oblik, ne da bi se sačuvala tajnost, nego iz nekih drugih razloga. Za primjer možemo uzeti 1 Zakriti (se) – zakloniti (se) od pogleda nečim što se postavlja kao zapreka

Page 3: Racunalna Kriptografija

- 3 -

Brailleovo pismo namijenjeno slabovidnim ili slijepim osobama, koje je 1821. godine osmislio Louis Braille. Svako slovo Brailleovog pisma (brajice) sastoji se iz šest točaka organiziranih u dva stupca po tri točke (koje su udubljene ili ispupčene, vidi sliku 1), a svakom slovu abecede odgovara određena kombinacija reljefnih točaka.

Cilj završnog rada je da jednog dana posluži kao osnova materijala za predavanje iz predmeta koji će se baviti kriptografijom i kriptoanalizom. Kako se radi o studiju informacijskih znanosti potrebno je studente uputiti i dati im osnove iz kriptografije, ne da bi jednog dana mogli uspješno zakrivati određeni sadržaj već da nauče kako je kriptografija postala sastavni dio naših života. Danas ne možemo zamisliti sigurnu komunikaciju bez uporabe bilo kakvog načina šifriranja, a svaki korisnik mobilnog telefona posjeduje svoj ključ kojim se šifrira promet od mobilnog uređaja do glavnog komunikacijskog centra davatelja usluge i obrnuto. Šifriran je i promet koji putuje od računala do poslužitelja u banci kada obavljamo Internet bankarstvo ili kada gledamo satelitski/kablovski TV program za koji plaćamo posebnu pretplatu. Drugim riječima, koristi se svugdje gdje je potreban sigurni tijek podataka od izvora prema odredištu za koji ne želimo da je dostupan svakome.

Praktični dio završnog rada je računalni program koji prikazuje šifriranje putem Rijndael algoritma, odnosno AES šifriranje kako se danas naziva. Primjenom i promjenom određenih postavki otvoreni tekst možemo na više načina zakriti i tako povećati, odnosno smanjiti sigurnost šifre.

Page 4: Racunalna Kriptografija

- 4 -

Klasična kriptografija

Slobodno možemo tvrditi kako je kriptografija stara koliko i pismo, jer je u početku samo nekolicina ljudi znala čitati i pisati. Korištenjem pisma, svećenici i drugi poznavaoci imali su priliku sačuvati mnoge informacije bez da ih pamte, uz relativnu sigurnost da te informacije neće biti dostupne drugima. S vremenom, pismo je postajalo sve raširenije i sve se više ljudi počelo njime koristiti. Tako su uz svećenike, snagu poznavanja pisama upoznali kraljevi, generali, majstori, liječnici i drugi. Pismo je osim za čuvanje i razmjenu informacija imalo i drugu moć, a to je opstanak prvih zapisa do današnjeg dana.

Povijest kriptografije

Kada govorimo o kriptografiji, jedan od prvih kriptografskih zapisa potječe iz Starog Egipta sa početka vladavine XII dinastije (1919. do 1783. godine p.n.e.), a pronađeni su u gradu Menet Khufu u grobnici plemića Khnumhotepa II. Grobnica je iscrtana slikama tadašnjeg feudalnog života, a uz slike su pronađena 222 vertikalna zapisa hijeroglifa (vidi sliku 2). Za zapis su korišteni tada relativno novi i standardni hijeroglifi uz primjenu djelomične zamjene hijeroglifa drugima kako bi se dobio zakriveni zapis. Premda se lako dešifrira, osnovna je ideja bila zakrivanje pravog značenja grobničkog natpisa tadašnjim poznavaocima pisma, a kako je Khnumhotep II živio i umro u politički nemirnom vremenu, vjeruje se da je zapis bio poruka njegovim političkim istomišljenicima.

Slika 2. Prikaz života i šifrirani zapis u grobnici Khnumhotepa II (izvor: http://edoc3.bibliothek.uni-halle.de/lepsius/)

Page 5: Racunalna Kriptografija

- 5 -

Skital

Skital (grčki σκυτάλη, štap) predstavlja kriptografski uređaj, koji je šifrirao poruku koristeći transpoziciju (slovima se zamjene mjesta) kao algoritam za šifriranje. Prema zapisima koristili su ga Spartanci u staroj Grčkoj (oko 500. godine p.n.e.) u vojne svrhe, a koristio se na način da se oko štapa namota vrpca (pergament ili koža) na koju bi se zatim ispisala poruka. Poruka bi se bez štapa poslala primatelju, a on bi je namotao na štap istog promjera i pročitao. Ukoliko bi neprijatelj presreo poruku, morao je znati promjer štapa da ispravno pročita sadržaj poruke, u protivnom je imao vrpcu sa besmislenim nizom znakova. Kod ovog primjera štap je uređaj za šifriranje i dešifriranje, a promjer štapa je ključ, komad informacije potreban za šifriranje i dešifriranje. Slika 3 prikazuje izgled skitala, štapa, sa namotanom kožnom vrpcom i ispisanom porukom.

Slika 3. Skital (štap) sa namotanom kožnom vrpcom i porukom (izvor: http://en.wikipedia.org/)

Primjer 1:

Spartanac bi na vrpcu namotanu na štap ispisao slijedeću poruku:

POMOGNITE MI NALAZIM SE USRED NAPADA OD STRANE GRKA

na štapu je to izgledalo ovako:

P O M O G N I T E

M I N A L A Z I M

S E U S R E D N A

P A D A O D S T R

A N E G R K A

Grk koji je presreo poruku, dobio je vrpcu sa slijedećim sadržajem:

PMSPAOIEANMNUDEOASAGGLRORNAEDKIZDSATINTEMAR

Page 6: Racunalna Kriptografija

- 6 -

Kako se poruka na štap pisala bez upotrebe razmaka između slova, osoba koja je presrela poruku nije imala polazište gdje počinje i završava.

Primjer računalnog kôda, u PHP programskom jeziku, za šifriranje i dešifriranje skitalom možete pronaći u dodatku 1.

Cezarova ili supstitucijska šifra

U kriptografiji poznajemo dvije osnovne metode za zakrivanje sadržaja. Prva metoda je supstitucija ili zamjena gdje svako slovo mijenja identitet, ali zadržava svoje mjesto. Dok kod transpozicije ili premještanja, slovo zadržava identitet, ali mijenja mjesto u poruci.

Za početak, zadržavamo se na supstitucijskoj šifri, a jedan od prvih zapisa o ovoj metodi nalazimo u Kama Sutri (Kāmasūtra) koju je sabrao Mallanaga iz klana Vātsyāyana u 3. stoljeću. Kama sutra predstavlja određenu filozofiju u Indijskoj Hindu religiji, a govori kako bi žena za vrijeme svog života trebala naučiti određene vještine. Jedna od vještina je Mlecchita-Vikalpa, odnosno sposobnost tajnog pisanja koji bi ženi omogućio sakrivanje određenih detalja iz njihovih ljubavnih veza. Tako se u rukopisu preporučuje nasumično povezivanje slova abecede, nakon čega se slova izvorne poruke mijenjaju sa njihovim parom.

Primjer 2:

Otvoreni tekst: VSITE Supstitucija: V→G, S→E, I→R, T→M, E→A Šifrat: GERMA

Osim zamjene slova drugim slovom, zamjenu slova možemo izvršiti posebnim znakovima, ili brojevima, a moguće su i kombinacije kako bi se povećala kompleksnost šifre.

Primjer 3:

Otvoreni tekst: GERMANIKUS Supstitucija brojkama: 0123456789

U ovom primjeru slova riječi otvorenog teksta zamjenjujemo sa brojevima, kako bi kod pisanja poruke dobili zakriveni tekst. Ako želimo napisati riječ MATEMATIKA, potražimo da li postoji zamjena za slovo M i umjesto njega napišemo 3, tako i za slovo A te umjesto njega napišemo 4. Isto radimo i za slovo T, ali kako za njega ne postoji zamjena samo prepisujemo slovo, odnosno T.

U konačnici riječ MATEMATIKA prikazujemo na slijedeći način: 34T134T674

Prvi zapis o primjeni supstitucijske šifre u vojne svrhe pojavljuje se u Galskim ratovima Gaja Julija Cezara (1. stoljeće p.n.e.), kada je Cezar poslao poruku Ciceronu, spremnom na predaju, na način da je rimska slova zamijenio grčkima koja su neprijatelju bila nerazumljiva. Zapravo, najpoznatija Cezarova supstitucijska šifra je ona sa pomakom slova u abecedi za tri

Page 7: Racunalna Kriptografija

- 7 -

mjesta udesno. Kako svakom slovu otvorenog teksta odgovara jedinstveno slovo abecede koje ga zamjenjuje, ovaj tip šifre još nazivamo i monoalfabetska supstitucijska šifra.

Primjer 4:

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

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

3. X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

Ključ (K) = 3 1. red → 2. red = šifriranje 1. red → 3. red = dešifriranje

Otvoreni tekst: DISKRETNAMATEMATIKA Šifrat: GLVNUHWQDPDWHPDWLND

Računalno šifriranje možemo obaviti korištenjem modulo aritmetike, gdje slova supstitucijom zamijenimo brojevima, po principu 𝐴 = 0,𝐵 = 1, … ,𝑍 = 25, odnosno radi jednostavnosti uzimamo samo velika slova engleskog alfabeta, te nema mali slova, znamenki i posebnih znakova. Stoga šifriranje slova 𝑥 za pomak 𝑛 matematički možemo opisati na slijedeći način:

Š𝑛(𝑥) = (𝑥 + 𝑛) 𝑚𝑜𝑑 26

Dešifriranje se obavlja na obrnuti način:

𝐷𝑛(𝑥) = (𝑥 − 𝑛) 𝑚𝑜𝑑 26

Premda se radi o starom i prepoznatljivom načinu šifriranja mnogi ga koriste i danas za razmjenu poruka, a popularan je kod teenagera za zakrivanje sadržaja od roditelja ili prijatelja. Da supstitucijsku šifru ne koriste samo mladi, dokaz je uhićenje provedeno 2006. godine u Italiji kada je uhićen talijanski šef mafije Bernardo Provenzano prvenstveno iz razloga što je svoje poruke šifrirao Cezarovim kodom i jednostavnom supstitucijskom šifrom.

Dodatak 2 uključuje implementaciju Cezarove šifre u C++ programskom jeziku te operacije šifriranja i dešifriranja izvodi nad datotekom, a dodatak 3 uključuje drugu implementaciju napisanu u JAVA-i kao Java Applet.

Vigenèreova ili polialfabetska šifra

Pojavom kriptoanalize, a prvenstveno frekvencijske analize, supstitucijska šifra više nije bila sigurna kao prije, a nedostatak sigurnosti mogao je dovesti do tragedije, kao na primjer pogubljenje Marije I., kraljice Škotske. Do kraja 16. stoljeća vodeću ulogu u svijetu šifriranja imali su ljudi zaduženi za dešifriranje, a znanstvenici su bili primorani pronaći nove metode za šifriranje.

Page 8: Racunalna Kriptografija

- 8 -

Tako je nastala polialfabetska supstitucijska šifra gdje se svako slovo otvorenog teksta može preslikati u jedno od 𝑚 mogućih slova, gdje 𝑚 predstavlja duljinu korištenog ključa, u ovisnosti o svom položaju unutar otvorenog teksta.

Vigenèreova šifra predstavlja jednu od najznačajnijih kriptografskih metoda u povijesti. Ime je dobila po francuskom diplomatu Blaise de Vigenèreu koji je svoja istraživanja na polju kriptografije objavio 1586. godine u knjizi „Traicte de Chiffres“. Premda metoda nosi njegovo ime, Vigenère svoj rad temelji na ranijim radovima predstavnika talijanske renesanse 15. stoljeća Leona Albertija, njemačkog gvardijana Johannesa Trithemiusa (tvorac tablice tabula recta, vidi sliku 4), talijanskog znanstvenika Giovannia Porte, te talijanskog kriptografa Giovana Battiste Bellasa koji je 1553. godine napisao knjigu „La Cifra del Sig“.

Dobro poznata, jednostavna i razumljiva metoda, vrlo je često početnicima zadavala muke i mnogi su smatrali da je neprobojna, gdje iz navedenog razloga, šifra dobija pridjev le chiffre indéchiffrable (francuski, neprobojna šifra).

Slika 4. Vigenèreova tablica za šifriranje i dešifriranje, također poznata i kao tabula recta

Kao ključ koristi se niz od 𝑚 znakova. Ključ se potpisuje ispod otvorenog teksta i to tako da se ponavlja dok ne dođemo do kraja teksta riječi, koji se rasporedi u onoliko blokova koliko iznosi razlika broja slova otvorenog teksta i ključne riječi.

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 ZA 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 ZB 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 AC C D E F G H I J K L M N O P Q R S T U V W X Y Z A BD 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 CE 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 DF F G H I J K L M N O P Q R S T U V W X Y Z A B C D EG G H I J K L M N O P Q R S T U V W X Y Z A B C D E FH H I J K L M N O P Q R S T U V W X Y Z A B C D E F GI I J K L M N O P Q R S T U V W X Y Z A B C D E F G HJ J K L M N O P Q R S T U V W X Y Z A B C D E F G H IK K L M N O P Q R S T U V W X Y Z A B C D E F G H I JL L M N O P Q R S T U V W X Y Z A B C D E F G H I J KM M N O P Q R S T U V W X Y Z A B C D E F G H I J K LN N O P Q R S T U V W X Y Z A B C D E F G H I J K L MO O P Q R S T U V W X Y Z A B C D E F G H I J K L M NP P Q R S T U V W X Y Z A B C D E F G H I J K L M N OQ Q R S T U V W X Y Z A B C D E F G H I J K L M N O PR R S T U V W X Y Z A B C D E F G H I J K L M N O P QS S T U V W X Y Z A B C D E F G H I J K L M N O P Q RT T U V W X Y Z A B C D E F G H I J K L M N O P Q R SU U V W X Y Z A B C D E F G H I J K L M N O P Q R S TV V W X Y Z A B C D E F G H I J K L M N O P Q R S T UW W X Y Z A B C D E F G H I J K L M N O P Q R S T U VX X Y Z A B C D E F G H I J K L M N O P Q R S T U V WY Y Z A B C D E F G H I J K L M N O P Q R S T U V W XZ Z 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

Page 9: Racunalna Kriptografija

- 9 -

Kada koristimo računalo tad je ugodno slova kodirati brojevima od 0 do 25.

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

Tablica 1. Primjer kodiranja slova brojevima

Šifrat dobijemo tako da na svakom mjestu zbrojimo modulo 26 kod otvorneog teksta i kod ključa, a dešifriramo oduzimanjem modulo 26.

Primjer 5:

Otvoreni tekst: DISKRETNAMATEMATIKA Ključna riječ: GERMA

Šifrat: JMJWRKXEMMGXVYAZMBM

1: D I S K R E T N A M A T E M A T I K A

2: G E R M A G E R M A G E R M A G E R M

3: J M J W R K X E M M G X V Y A Z M B M

Tablica 2. Šifriranje pomoću Vigenèreove tablice

Tablica 2 ilustrira kako do rezultata dolazimo uporabom Vigenèreove tablice i to tako da ispod otvorenog teksta (1. red) ispišemo ključ koji se ponavlja do ukupne dužine otvorenog teksta (2. red). Šifrat dobijemo tako da u zaglavlju tablice potražimo prvo slovo otvoreno teksta, slovo D i spuštamo se dok ne naiđemo na slovo koje se nalazi u istom redu kao i prvo slovo ključa, slovo G na taj način dobijemo slovo šifrata, slovo J. Isti postupak ponovimo za ostala slova tako da za slijedeće slovo I, pod slovom E iz tablice dobijemo slovo M i tako redom. Ovdje možemo primijetiti da se slovo A, koje se više puta nalazi u otvorenom tekstu, svaki put bilo drugačije šifrira jer ovisi o slovima iz ključa.

𝐴 + 𝑀 → 𝑀

𝐴 + 𝐺 → 𝐺

𝐴 + 𝐴 → 𝐴

Stoga se ovaj način šifriranja kada za jedno slovo iz abecede dobijemo više mogućnosti nazivamo polialfabetska šifra.

1: 3 8 18 10 17 4 19 13 0 12 0 19 4 12 0 19 8 10 0

2: 6 4 17 12 0 6 4 17 12 0 6 4 17 12 0 6 4 17 12

3: 9 12 9 22 17 10 23 4 12 12 6 23 21 24 0 25 12 1 12

Tablica 3. Šifriranje kada slova kodiramo brojevima kao u Tablici 1

Page 10: Racunalna Kriptografija

- 10 -

Kada tablicu 3 iz primjera 5 gledamo matematički, primjećujemo da su slova od A od Z zamijenjena (kodirana) brojevima od 0 do 25, a zbrajanje je učinjeno uz pomoć modulo 26. Tada šifriranje Vigenèreovom šifrom 𝑉 korištenjem ključa 𝐾 možemo napisati,

𝐶𝑖 = 𝑉𝐾(𝑀𝑖) = (𝑀𝑖 + 𝐾𝑖) 𝑚𝑜𝑑 26

a dešifriranje 𝐷 korištenjem ključa 𝐾,

𝑀𝑖 = 𝐷𝐾(𝐶𝑖) = (𝐶𝑖 − 𝐾𝑖) 𝑚𝑜𝑑 26

gdje je otvoreni tekst predstavljen sa 𝑀 = 𝑀0 …𝑀𝑛, šifrat sa 𝐶 = 𝐶0 …𝐶𝑛, a korišteni ključ sa 𝐾 = 𝐾0 …𝐾𝑛.

Gledajući primjer 5, da bismo šifrirali slovo 𝐷 ≡ 3 sa slovom 𝐺 ≡ 6, rezultat prema gornjoj formuli iznosi 9 ≡ 𝐽.

9 = (3 + 6) 𝑚𝑜𝑑 26

Na isti način vršimo i dešifriranje slova 𝑀 ≡ 12 sa slovom 𝐸 ≡ 4, a rezultat iznosi 8 ≡ 𝐼.

8 = (12 − 4) 𝑚𝑜𝑑 26

Transpozicija

Predstavlja metodu šifriranja kod koje se premještanjem znakova (slova) otvorenog teksta dobiva anagram. Ako koristimo mali broj slova tada je navedena metoda nesigurna jer imamo mali broj kombinacija. Kod otvorenog teksta sa velikim brojem znakova dobivamo sigurnu metodu za šifriranje, jer je teška za dešifriranje, ne samo onome koji presretne poruku već i primatelju. Tako na primjer rečenicu od 35 znakova možemo posložiti na 35 faktorijela načina što je otprilike 1040 različitih načina, ako su svi znakovi različiti.

Primjer 6:

Otvoreni tekst: VSITE Broj mogućih transpozicija: 120

Evo nekih transpozicija: VSITE, VSIET, VSEIT, VESIT, EVSIT, EVSTI, EVTSI, ETVSI, TEVSI, TEVIS, TEIVS, TIEVS, ITEVS, ITESV, ITSEV, ISTEV, SITEV, SITVE, SIVTE, SVITE,…

Za razmjenjivanje dugačkih poruka potrebno je sa primateljem unaprijed dogovoriti transpozicijsku metodu po kojoj se transpozicionira otvoreni tekst. Kako postoji više metoda, primatelj mora znati koja je točno metoda korištena i koji je ključ.

Page 11: Racunalna Kriptografija

- 11 -

Izmjenična transpozicija

Kod ove se metode slova otvorenog teksta naizmjence pišu u gornji i donji redak, a na kraju se redci nadovežu jedan na drugi. Tako se otvoreni tekst transpozicionira u onoliko redaka koliko je definirano ključem. Sljedeći primjer prikazuje prepisivanje otvorenog teksta kada je ključ šifriranja 2, odnosno 𝐾𝑇 = 2.

Primjer 7:

Otvoreni tekst: RACUNALNAKRIPTOGRAFIJA Transpozicija: R.C.N.L.A.R.P.O.R.F.J. .A.U.A.N.K.I.T.G.A.I.A

Šifrat: RCNLARPORFJAUANKITGAIA

Transpozicija sa obilaskom

Kod ove se metode slova otvorenog teksta pišu u polje zadanih dimenzija, a šifrirani tekst dobijemo pomoću ključa koji opisuje obilazak polja. Prazna mjesta u polju možemo proizvoljno popuniti bilo kojom kombinacijom slova (u primjeru su korištena slova A i H).

Primjer 8:

Otvoreni tekst: OTKRIVENISMOODMAHNAPUSTITEPOZICIJU Transpozicija: ORESOAASTOCU TINMDHPTEZIA KVIOMNUIPIJH Ključ: spiralno prema unutra, obrnuto od kazaljke na satu, počevši iz

gornjeg desnog ugla Šifrat: UAHJIPIUNMOIVKTOREASOAASTOCIZETPHDMNI

Stupčasta transpozicija

Kod ove metode slova (znakove) otvorenog teksta zapisujemo u redke zadanih duljina, a zatim ih čitamo stupac po stupac. Duljina retka može biti simetrična s duljinom stupca pa tada govorimo o kvadratnoj transpoziciji budući da poruku od 60 znakova možemo napisati u polje dimenzija 8 × 8 znakova. Prazna mjesta popunimo null znakovima ili nekim smiješnim nizom kako bismo zavarali neprijatelja.

Duljinu redaka možemo odrediti ključnom riječi, na primjer UTORAK, a redoslijed čitanja stupaca određuje abecedni redoslijed slova ključne riječi. U našem slučaju redoslijed čitanja je: 6 5 3 4 1 2. Primatelj poruke mora znati koja je ključna riječ kako bi uspješno dešifrirao primljenu poruku.

Page 12: Racunalna Kriptografija

- 12 -

Primjer 9:

Otvoreni tekst: OTKRIVENISMOODMAHNAPUSTITEPOZICIJU Ključna riječ: U T O R A K Čitanje: 6 5 3 4 1 2 Transpozicija: O T K R I V

E N I S M O O D M A H N A P U S T I T E P O Z I C I J U X Y

Šifrat: IMHTZXVONIIYKIMUPJRSASOUTNDPEIOEOATC

Kod klasičnog šifriranja šifrat nije uključivao razmake, koji su dijelili riječi u otvorenom tekstu, kako strana koja presretne poruku ne bi znala koliko riječi ima poruka, te gdje počinje i završava pojedina riječ. Stoga je šifrat pisan bez razmaka ili su slova šifrata grupirana u grupe po nekoliko znamenki kako bi se povećala čitljivost, a time ne bismo otkrili broj te početak, odnosno završetak riječi.

Kriptoanaliza u klasičnoj kriptografiji

Kriptoanaliza je znanstvena disciplina koja proučava postupke otkrivanja otvorenog teksta bez poznavanja ključa, te postupke otkrivanja ključa uz poznavanje otvorenih i/ili šifriranih tekstova, ili uz poznavanje nekih informacija o otvorenim i/ili šifriranim tekstovima. Kriptoanaliza poznaje mnoge metode koje se primjenjuju, u ovisnosti o korištenoj metodi šifriranja.

Jedan od osnovnih postupaka u pokušaju razbijanja šifre je analiza frekvencije slova nekog jezika. Svaki jezik koji se danas koristi ima svoja pravila i određene učestalosti pojavljivanja riječi ili slova u nekom tekstu. U tablici 1 prikazana su najčešće korištena slova u nekim europskim jezicima, gdje su podaci za hrvatski jezik dobiveni analizom tekstova iz dnevnog tiska.

Jezik Slova abecede

engleski E T A O I N S H R

njemački E N R I T S D U A

talijanski E I A O R L N S T

francuski E N A I R S T U O

španjolski E A O S R I N L D

hrvatski A I E O N S T U R

Tablica 4. Najčešće korištena slova u hrvatskom i europskim jezicima

Page 13: Racunalna Kriptografija

- 13 -

Ako pogledamo hrvatski jezik, primjećujemo da uz samoglasnike imamo suglasnike N, S, T i R. Učestalost navedenih slova u postocima iznosi: A (11,43%), I (9,63%), E (9,36%), O (8,99%), N (5,46%), S (5,24%), T (4,61%), U (4,55%), R (4,53%).

Osim slova, u hrvatskom su jeziku dosta česti i bigrami, koji nam također mogu pomoći kod analize šifriranog teksta. Bigrami koji u hrvatskom jeziku imaju frekvenciju veću od 0.8%, gledano abecedno su: AK, AN, AS, AT, AV, CI, DA, ED, EN, IC, IJ, IN, IS, JA, JE, KA, KO, LI, NA, NE, NI, NO, OD, OJ, OS, OV, PO, PR, RA, RE, RI, ST, TA, TI, VA, ZA. Najfrekventniji bigram je JE (2,7%), te iako J nije među najfrekventnijim slovima, više od polovine pojavljivanja slova J otpada na bigram JE. Uz bigrame, imamo i trigrame, a najfrekventniji je IJE (0,6%), a slijede ga: STA, OST, JED, KOJ, OJE, JEN (oni su između 0,3% i 0,4%).

Prvi poznati zapis o analizi frekvencije slova, u svrhu kriptoanalize, možemo pronaći u rukopisu „Risalah fi Istikhraj al-Mu'amma“ (arapski, Rukopis o dešifriranju kriptografske poruke) iz 9. stoljeća, koji je napisao Ibrahim Al-Kadi i predstavljao je osnove kriptoanalize sve do 2. svjetskog rata. U svome rukopisu opisuje prve korake kod kriptoanalize, uključujući i neke za polialfabetske šifre, svrstavanje šifri u razrede, fonetiku i sintaksu arapskog jezika, i što je najznačajnije i daje prvi opis analize frekvencije, ali ne samo slova već i kombinacije slova u arapskom jeziku. Slika 5 prikazuje analizu frekvencije slova u arapskom jeziku. Da je kriptografija bila zanimljiva potvrđuje i arapski znanstvenik Ahmad al-Qalqashandi, koji je u svojoj 14 dijelnoj enciklopediji „Subh al-a 'sha“ (arapski, Zora za slijepe) posvetio dio o kriptografiji koji je uključivao metode supstitucijske šifre i transpozicije, te primjere kriptoanalize s tablicama frekvencije slova i kombinacijama slova koja se ne pojavljuju zajedno u jednoj riječi. Stoga stoji pretpostavka da su arapski lingvisti metodu analize frekvencije poznavali mnogo prije europskih, i svoja se saznanja nisu libili javno objavljivati.

Slika 5. Analiza frekvencije slova u arapskom jeziku (izvor: http://en.wikipedia.org)

U europskoj kriptografiji metodu analize frekvencija u kriptoanalizi prvi su počeli koristiti talijanski kriptografi u 15. stoljeću. Poznato je da su svoje poruke šifrirali na način da su najfrekventnija slova zamjenjivali s više različitih simbola te na osnovu toga možemo

Page 14: Racunalna Kriptografija

- 14 -

zaključiti da im je bilo poznato kako analiza frekvencija slova može dovesti do razbijanja supstitucijske šifre. Mnoge su tadašnje talijanske kneževine imale ljude plaćene za razbijanje šifriranih poruka (jedan od najpoznatijih je venecijanski „tajnik za šifre“ Giovanni Soro), a taj se posao često prenosio unutar obitelji.

Situaciju u kojoj praktički istovremeno do otkrića značajnih za kriptografiju dolaze znanstvenici koji žele što prije objaviti svoje rezultate i dobiti za njih priznanje, te ljudi iz obavještajnih ili komercijalnih institucija koji ne žele ili ne smiju odmah objaviti svoje rezultate, susrećemo često u povijesti kriptografije sve do današnjih dana. Još uvijek je otvoreno pitanje prvenstva kod otkrića diferencijalne kriptoanalize ili kriptosustava s javnim ključem.

Page 15: Racunalna Kriptografija

- 15 -

Strojevi za šifriranje

Enigma

Enigma danas predstavlja jedan od najzanimljivijih mehaničkih proizvoda koji se koristio za šifriranje i dešifriranje poruka. Najviše korištena prije i tijekom 2. svjetskog rata, Enigma je zadavala mnogo muka saveznicima, a svoju je svjetsku popularnost stekla nakon rata u raznim knjigama ili filmskim ekranizacijama fiktivnih ili stvarnih događaja u pokušaju razbijanja koda i pokušajima saveznika da se domognu primjerka mornaričke Enigme zajedno sa knjigom šifri.

Povijest

Godine 1918. njemački inženjer Arthur Scherbius osniva tvrtku i patentira elektro-mehanički uređaj s rotorima za šifriranje. Danski izumitelj Hugo Alexander Koch u nizozemskoj 7.10.1919. godine patentira uređaj s rotorima za šifriranje, a njegov patent broj 10,700 čuva se u Naamloze Vennootschap Ingenieursbureau Securitas u Amsterdamu. Kako se niti jedan uređaj nije izradio po njegovom patentu, 1927. godine prodaje patentna prava Arthuru Scherbiusu, koji je kupnjom želio zaštititi svoje patente.

Scherbiusov se rotorski uređaj, koji je nazvao Enigma, razlikovao od drugih sličnih uređaja po tome što su pomacima rotora upravljali zupčanici te se moglo postići da pomaci imaju nepravilan slijed. Početkom dvadesetih godina prošlog stoljeća kreirana je prva komercijalna Enigma, a prodaja je počela 1923. godine te se prvenstveno koristila u poslovne svrhe za komunikaciju s udaljenim uredima kako bi se spriječilo presretanje poruka od strane konkurencije.

Slika 6. Slika Enigme izložene u Nacionalnom muzeju za kriptologiju Maryland, SAD (izvor: http://www.nsa.gov)

Page 16: Racunalna Kriptografija

- 16 -

Njemačka je mornarica (Kriegsmarine) prva počela kupovati Enigmu koju su zatim modificirali prema vlastitoj specifikaciji, a istu su praksu slijedile kopnena vojska (Wehrmacht) i zrakoplovstvo (Luftwaffe). Tako je svaki rod njemačke vojske imao svoju inačicu Enigme koje međusobno nisu bile u potpunosti usklađene. Kako su nove modifikacije povećale broj mogućih kombinacija, Nijemci su stekli puno povjerenje u sigurnost Enigme, te su smatrali da bi razbijanje koda bio prevelik posao za njihove neprijatelje. Osim modifikacija, Nijemci su uveli određene procedure za korištenje, te je operater imao priručnik sa postavkama Enigme za svaki dan u godini.

Konstrukcija

Enigma se sastoji od četiri osnovne komponente, a to su:

1. tipkovnica –sastoji se od 26 tipki poput onih na pisačem stroju, 2. prespojna ploča – služi za prespajanje slova drugima i dodatno pojačavajući sigrnost i

kompleksnost korištene šifre, 3. zaslon – 26 žaruljica za prikaz šifriranog izlaza, i 4. rotori sa odbojnikom – tri ili četiri rotora i jedan odbojnik, broj rotora ovisno o inačici

Enigme.

Pritiskom na tipku kroz mrežu kontakata rotora i prespojne ploče, zatvorio bi se strujni krug i upalila bi se odgovarajuća žaruljica koja je označavala šifrirano slovo. Rotori su se sastojali od diskova sa 26 kontakata, a svaki je kontakt bio povezan s nekim drugim kontaktom na suprotnoj strani.

Osnovni model Enigme uključuje tri rotora koji su smješteni u ležište tako da se kontakti susjednih rotora međusobno dodiruju, odnosno izlaz sa prvog je ulaz na drugi, a izlaz sa drugog je ulaz na treći rotor. Izlaz trećeg, odnosno zadnjeg kod modela s više rotora, bio je povezan na odbojnik (reflektor) koji je imao prespojne kontakte samo na jednoj strani. Njegova je zadaća bila da električni signal šalje natrag kroz rotore, no drugim putem. Prvi se rotor nakon svakog šifriranog slova okretao za jedan kontakt, a kad bi učinio potpun krug, mehanička je poluga okretala sljedeći rotor za jedan kontakt.

Tri rotora s 26 kontakata daju 263 = 17.576 mogućih kombinacija, što nije dovoljno velik broj da bi dao zadovoljavajuću sigurnost šifre. Stoga je Scherbius povećao sigurnost povećavajući broj mogućih početnih postavki na dva načina. Prvo što je upotrijebio su izmjenjivi rotori koji su mehanički identični, ali nisu njihove električne spojne veze, te se njihovom zamjenom mijenja i način šifriranja stroja. Ukupni broj mogućih permutacija triju rotora je 3! = 6.

Page 17: Racunalna Kriptografija

- 17 -

Slika 7. Električna shema Enigme sa prikazom puta električnog signala od pritiska tipke A do osvjetljenja žaruljice D (izvor: http://www.matematiksider.dk)

Drugi dodatak sigurnosti je prespojna ploča, koja korisniku omogućuje da prespojnim kabelima izvrši zamjenu nekih slova prije ulaska u prvi rotor. Tako na primjer, možemo iskoristi kabel za zamjenu slova B i G, te kad korisnik pritisne tipku B, električni signal zapravo slijedi put kroz rotore koji bi bez prespojne ploče bio put slova G, i obrnuto.

Od 1939. godine standardizirano je korištenje 10 prespojnih kabela (do tada ih je bilo samo 6), što je davalo ukupno 150.738.274.937.250 mogućih kombinacija, te je napad ispitivanjem svih mogućih kombinacija postao nemoguć.

Page 18: Racunalna Kriptografija

- 18 -

Razbijanje Enigme

Ako bi čovjek bio u mogućnosti podesiti novi ključ svake minute, danju i noću, trebalo bi mu 4000 godina da isproba sve mogućnosti jednu za drugom.

Enigma reklamna brošura, sredina 1920. [6]

Premda je snimljeno mnoštvo filmskih uradaka na temu pribavljanja i razbijanja Enigma koda, prava je istina mnogo drugačija. Priča započinje početkom 1930. godina u Njemačkoj, točnije u Wermacht-ovom stožeru za kriptografiju gdje je bio zaposlen Hans-Thilo Schmidt koji po otpuštanju iz vojske stupa u kontakt sa francuskim tajnim agentom kojem prodaje upute i popis ključeva. Tako pribavljenim informacijama Francuzi, a potom i Britanci kojima su proslijedili kupljene dokumente, nisu imali uspjeha u razbijanju šifre. Francuzi kopije svojih dokumenta o Enigmi predaju svojim saveznicima, odnosno Poljacima, uključujući i podatak u dokumentima koji se odnosi na postupanje sa šifrantskim knjigama.

Dokumenti su sadržavali ključnu informaciju kako Nijemci uz svaku poruku zasebno šalju novi ključ poruke, odnosno isti spojevi na razvodnoj ploči i isti redoslijed rotora kao i tekući dnevni ključ, ali sa drugačijom orijentacijom rotora. Svaki se novi ključ utipkava dvaput zbog sigurnosti operatera, a što je predstavljalo ključnu pogrešku.

Slika 8. Bletchley Park, danas Nacionalni muzej za računalstvo (izvor: http://en.wikipedia.org)

Poljski glavni stožer organizira tečaj kriptografije sa 20 matematičara i na koncu zapošljava njih trojicu koji su tečno govorili njemački. To su bili Rejewski, Rozycki i Zygalski sa Poznanjskog sveučilišta koji su odabrani da rade u kriptologijskom odjelu stožera (Biuro Szyfrów). Nakon par godina rada, dana 31.12.1932. imali su dešifrirane signale njemačke Enigme. Za brz uspjeh zaslužan je Rejewski koji je kreirao elektromehaničku programabilnu mašinu koju je nazvao „Bombe“. Nekoliko godina kasnije, 25. lipnja 1939. godine Poljaci su Britancima uručili repliku Enigme zajedno sa crtežima i informacijama o Enigmi i „Bombe“ uređaja za dešifriranje. Britanci su u to vrijeme oformili veliku grupu kriptoanalitičara različitih profila u Bletchley Parku, a kako su imali znatno veći proračun od Poljaka konstruirali su napredniju inačicu „Bombe“ kao i druge strojeve pomoću kojih su pokušavali

Page 19: Racunalna Kriptografija

- 19 -

dešifrirati poruke šifrirane Enigmom. Zahvalujući Poljacima, grupa iz Bletchley Parka predvođena Alanom Turingom, uspijeva razviti naprednije ili nove metode za razbijanje šifri.

Jedna od slabosti uporabe Enigme bilo je korištenje "predvidljiivih ključeva" gdje su operateri često za ključ poruke koristili tri susjedna slova na tipkovnici. Pored toga, Turing je pronašao efikasan način za dešifriranje Enigme korištenjem metode vjerojatne riječi. Sve aktivnosti unutar Bletchley Parka bile su prekrivene velom tajnosti punih 30 godina. Tek je 1974. godine britanska vlada dozvolila objavljivanje prvih informacija vezanih uz britansko razbijanje Enigme i tada je Rejewski saznao da su Britanci uspjeli konstruirati „Bombu“, a da je Alan Turing kreirao izvedenice. Ono što je zaprepastilo Rejewskog, je činjenica da su Britanci zadnje dvije godine rata znali sve pojedinosti budućih napada njemačke vojske, ali nisu reagirali iz razloga da Nijemcima ne bi dali do znanja da su u stanju čitati njihove poruke. Mogli su biti spašeni mnogi životi, a je li se mogao promijeniti tijek rata, ostat će vječna enigma.

Page 20: Racunalna Kriptografija

- 20 -

Računalna kriptografija

Do sada smo upoznali klasične metode šifriranja koje su korištene kroz povijest sve do pojave računala i njihovog ulaska u široku uporabu. Klasične metode su svoju sigurnost zasnivale više na tajnosti metode šifriranja, odnosno algoritma kojim se otvoreni tekst zakrivao u šifrat, nego na tajnosti ključa. Kod računalne kriptografije, kriptografije pomoću računala situacija je obrnuta. Važnija je tajnovitost ključa od tajnovitosti postupka šifriranja.

Razvijene su dvije osnovne metode koje se razlikuju po tome kako koriste ključ za šifriranje. Tako imamo simetrične algoritme koji koriste isti ključ za šifriranje i za dešifriranje, te asimetrične algoritme koji koriste jedan ključ za šifriranje, a drugi za dešifriranje.

Simetrični sustavi za kriptografiju

Kako simetrični sustavi koriste isti ključ za šifriranje i dešifriranje, tajnost takvog sustava se zasniva na tajnosti korištenog ključa i zbog toga se sustav još naziva i sustav s tajnim ključem. Još ih nazivamo:

• Sustavi s dijeljenim ključem (Shared Key), • Sustavi s privatnim ključem (Private Key), • Sustavi s jednim ključem (Single Key, One Key).

Slika 9. Princip tajnosti ključa (izvor: http://luxsci.com/blog)

Negativna strana ovog sustava je što se i ključ mora prenijeti, pa postoji opasnost da ga se domogne treća osoba i tako neovlašteno pristupi sadržaju. Stoga se pojavilo pitanje provjere izvornosti, a ona je riješena tehnikom posebnih oznaka (kôdova), odnosno Message

Page 21: Racunalna Kriptografija

- 21 -

Authentication Codes (MAC) što predstavlja vjerodostojnu oznaku koja se dobije primjenom određenog algoritma na ključ i tekst poruke. Pozitivna strana sustava s tajnim ključem je brzina u odnosu na sustave s javnim ključem.

Simetrične sustave dijelimo na:

1. Šifre toka (Stream cipher) zakrivaju otvoreni tekst najčešće bit po bit i one generiraju nizovni ključ (key stream), odnosno slijed bitova koji se koristi kao ključ. Korisnik unosi ključ koji se koristi za generiranje neponavljajućeg ključa jednake duljine poput otvorenog teksta. Ova se funkcija obavlja primjenom generatora prividno slučajnih brojeva (pseudo random number generator) sa hash vrijednošću izvedenom iz korisnikova ključa. Generator prividno slučajnih brojeva je računalni algoritam koji stvara niz prividno slučajnih brojeva, odnosno niz brojeva koji približno odgovaraju svojstvima pravih slučajnih brojeva, a koji su u stvari unaprijed određeni i zato se zovu prividno ili pseudo-slučajni brojevi. Hash vrijednost je vrijednost dobivena hash funkcijom, odnosno transformacijom ulaznog teksta u niz znakova fiksne duljine. Šifriranje se vrši kombiniranjem nizovnog ključa i otvorenog teksta, najčešće operacijom ekskluzivna disjunkcija ili ekskluzivno ILI (XOR). Dešifriranje se vrši dodavanje nizovnog ključa na šifrat operacijom ekskluzivno ILI. Neki od algoritama koji koriste šifru toka za šifriranje su: A5, RC4 i SEAL.

Ključ Nizovni ključ

Šifra XOR

Otvoreni tekst

Šifrat

Slika 10. Shematski prikaz šifre toka (izvor: http://www.cisco.com)

2. Blok šifre (Block cipher) zakrivaju otvoren tekst u blokovima odnosno komadićima teksta unaprijed određene duljine, najčešće po 64 (DES) ili 128 bita (AES), ali može biti i više (192, 256 bita). Izlazni šifrirani blok iste je veličine kao i ulazni nešifrirani blok. Budući da su različiti blokovi otvorenog teksta preslikani u različite blokove zakrivenog teksta, blok šifra osigurava da permutiranjem prelazimo iz jedne permutacije u drugu. Permutacije su tajne jer su one funkcija tajnog ključa. Opisani način šifriranja je popularniji od šifre toka i razvijeno je više algoritama za šifriranje poput: DES, TDES, AES, Blowfish, IDEA, Twofish, Serpent i CAST-128.

Page 22: Racunalna Kriptografija

- 22 -

Ključ Nizovni ključ

Šifra XOR Šifrat Šifrat Šifrat

Otvoreni tekstOtvoreni tekstOtvoreni tekst

Otvoreni tekst

Slika 11. Shematski prikaz blok šifre (izvor: http://www.cisco.com)

DES algoritam

Krajem šezdesetih godina prošlog stoljeća došlo je do naglog razvoja računalnih financijskih transakcija, te se povećanjem broja transakcija postavilo i pitanje sigurnosti komunikacije među institucijama. Kako bi se zaštitio sadržaj transakcije pojavljuje se potreba za kriptografijom. Kako se kriptografija dotad koristila uglavnom u vojne i diplomatske svrhe, metode šifriranja su se razlikovale od institucije do institucije ili od zemlje do zemlje. Nije postojao unificirani sustav, pa se javlja potreba za uvođenjem kriptografskog standarda.

Američki Nacionalni biro za standarde (NBS, National Bureau of Standards) 1972. godine inicira program zaštite računalnih i komunikacijskih podataka, a godinu dana kasnije objavljuju javno nadmetanje za razvoj standardnog kriptografskog sustava sa slijedećim zahtjevima:

• visok stupanj sigurnosti; • potpuni opis i lako razumijevanje algoritma; • sigurnost ključa, a ne tajnost algoritma; • prilagodljivost algoritma različitim primjenama; • ekonomska isplativost implementacije u elektroničke uređaje; • mogućnost provjere, i • mogućnost izvoza algoritma zbog određenih restrikcija američkih zakona.

Od pristiglih prijedloga niti jedan nije zadovoljavao sve zahtjeve, stoga je natječaj ponovljen slijedeće godine kada je stigao prijedlog algoritma razvijenog od strane IBM-ovih kriptografa. Koristili su algoritam za šifriranje zasnovan na ideji koju je uveo Horst Feistel 1973. godine, a danas je koriste gotovo svi simetrični blokovni algoritmi. Kao ideju uzeo je alterniranu2

2 Alternácija – izmjenjivanje, dvaju (ili više) realizacija čega na istom mjestu.

Page 23: Racunalna Kriptografija

- 23 -

uporabu supstitucija i transpozicija kroz više iteracija3. Predloženi je algoritam prošao neke preinake u kojima je sudjelovala i Agencija za nacionalnu sigurnost SAD-a (NSA, National Security Agency). Konačno je 1976. godine prihvaćen kao standard i dobio je ime Data Encryption Standard (DES).

Opis DES algoritma DES šifrira otvoreni tekst duljine 64 bita, koristeći ključ 𝐾 duljine 56 bitova. Tako dobivamo šifrat koji ponovno ima 64 bita. Duljina ključa šifriranja je početnih 64 bita, ali svaki 8 bit (8, 16, 24, 32, 40, 48, 56, 64) otpada na provjeru pariteta te efektivna duljina ključa iznosi 56 bita.

Sam algoritam se sastoji od tri dijela:

1. Za zadani otvoreni tekst 𝑥, permutiranjem4 pomoću matrice fiksne inicijalne permutacije (IP) dobijemo 𝑥0. Zapišemo 𝑥0 = 𝐼𝑃(𝑥) u obliku 𝑥0 = 𝐿0𝑅0, gdje 𝐿0 sadrži prva (lijeva) 32 bita, a 𝑅0 zadnja (desna) 32 bita od 𝑥0. Tablica 2 prikazuje raspored bitova u matrici inicijalne permutacije.

IP

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

Tablica 5. Raspored bitova u matrici inicijalne permutacije (IP)

2. Određenu funkciju 16 puta iteriramo, te 𝐿𝑖𝑅𝑖, 1 ≤ 𝑖 ≤ 16 računamo po sljedećem pravilu:

𝐿𝑖 = 𝑅𝑖−1 𝑅𝑖 = 𝐿𝑖−1 ⨁ 𝑓(𝑅𝑖−1,𝐾𝑖)

3 Iteracija – mat. uzastopno izvođenje nekog postupka, tako da se pri svakom izvođenju primjenjuju rezultati iz prethodnog.

4 Permutácija, permutiráti – matematički postupak mijenjanja poretka elemenata određenog niza; izmijeniti/mijenjati oblik ili redoslijed, uzajamno zamijeniti/mijenjati elementima mjesta u poretku.

Page 24: Racunalna Kriptografija

- 24 -

Operator ⨁ označava operaciju ekskluzivnog ILI (XOR). Funkciju 𝑓 će biti kasnije opisana, a 𝐾1,𝐾2, … ,𝐾16 su nizovi bitova duljine 48, koji se dobivaju nakon permutacije nekih bitova iz 𝐾.

IP-1

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

Tablica 6. Inverzna permutacija bitova inicijalne permutacije (IP)

3. Primjenom inverzne permutacije (𝐼𝑃−1) nad 𝑅16𝐿16 dobijemo šifrat 𝑦. Stoga slijedi da je 𝑦 = 𝐼𝑃−1(𝑅16𝐿16). Iz ovoga možemo uočiti inverzni poredak od 𝐿16 i 𝑅16. Tablica 6 prikazuje raspored bitova u matrici inverzne permutacije.

Li-1 Ri-1

Li Ri

f

+

Ki

Slika 12. Blok dijagram DES algoritma

Funkcija 𝑓 za prvi argument ima niz bitova 𝐴 duljine 32, za drugi argument koristimo niz bitova 𝐽 duljine 48. Kao rezultat se dobiva niz bitova duljine 32. Funkcija se računa u sljedeća 4 koraka:

1. Argument 𝐴 proširimo do niza duljine 48 u skladu s fiksnom funkcijom proširenja 𝐸 (vidi tablicu 7). Dok se niz 𝐸(𝐴) sastoji od 32 bita permutiranih na određeni način iz 𝐴, s time da se 16 bitova pojavi dvaput.

Page 25: Racunalna Kriptografija

- 25 -

2. Izračunamo 𝐸(𝐴) ⨁ 𝐽, a rezultat zapišemo kao spoj od osam 6 bitnih nizova. 𝐵 = 𝐵1𝐵2𝐵3𝐵4𝐵5𝐵6𝐵7𝐵8

E

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

Tablica 7. Raspored bitova u matrici proširenja (E)

3. Dalje koristimo supstitucijske matrice 𝑆1, … , 𝑆8, odnosno supstitucijske kutije ili S-kutije. Svaka 𝑆𝑖 je fiksna 4 × 16 matrica čiji su elementi cijeli brojevi između 0 i 15. Ako imamo niz duljine 6, na primjer 𝐵𝑗 = 𝑏1𝑏2𝑏3𝑏4𝑏5𝑏6, tada 𝑆𝑗(𝐵𝑗) računamo na slijedeći način: dva bita 𝑏1𝑏6 određuju binarni zapis retka 𝑟 od 𝑆𝑗(𝑟 = 0, 1, 2, 3), a četiri bita 𝑏2𝑏3𝑏4𝑏5 određuju binarni zapis stupca 𝑐 od 𝑆𝑗(𝑐 = 0, 1, 2, … ,15). Sada je 𝑆𝑗�𝐵𝑗� po definiciji jednako 𝑆𝑗(𝑟, 𝑐), zapisano kao binarni broj duljine 4, te na ovaj način računamo 𝐶𝑗 = 𝑆𝑗�𝐵𝑗�, 𝑗 = 1,2, … ,8.

P

16 7 20 21

29 12 28 17

1 15 23 26

5 18 31 10

2 8 24 14

32 27 3 9

19 13 30 6

22 11 4 25

Tablica 8. Raspored bitova u završnoj matrici permutacije (P)

Page 26: Racunalna Kriptografija

- 26 -

4. Niz bitova 𝐶1𝐶2𝐶3𝐶4𝐶5𝐶6𝐶7𝐶8 duljine 32 permutiramo pomoću fiksne završne permutacije (P) i tako dobijemo 𝑃(𝐶), što je po definiciji 𝑓(𝐴, 𝐽).

A J

E

E(A)

+

B1 B3 B4 B5 B6 B7 B8

S1 S2 S3

B2

S4 S5 S6 S7 S8

C1 C2 C3 C4 C5 C6 C7 C8

P

F(A,J)

Slika 13. Detaljni prikaz DES algoritma

Kao što je prije spomenuto ključ 𝐾 se sastoji od 64 bita, od kojih samo 56 predstavlja ključ, a preostalih 8 bitova služi za provjeru pariteta. Bitovi na pozicijama 8, 16, … , 64 su definirani tako da svaki bajt (8 bitova) sadrži neparan broj jedinica. Kod računanja tablice ključeva 𝐾1,𝐾2, … ,𝐾16 iz ključa 𝐾, bitovi za provjeru pariteta se ignoriraju.

1. Zadani 64 bitni ključ 𝐾 permutiramo pomoću fiksne permutacije PC1 (vidi tablicu 9), te zapišemo 𝑃𝐶1(𝐾) = 𝐶0𝐷0, gdje 𝐶0 sadrži prvih 28, a 𝐷0 zadnja 28 bita od 𝑃𝐶1(𝐾).

2. Za 𝑖 = 1, 2, … , 16 računamo: 𝐶𝑖 = 𝐿𝑆𝑖(𝐶𝑖−1) 𝐷𝑖 = 𝐿𝑆𝑖(𝐷𝑖−1) 𝐾𝑖 = 𝑃𝐶2(𝐶𝑖𝐷𝑖)

𝐿𝑆𝑖 predstavlja ciklički pomak ulijevo za 1 ili 2 pozicije u ovisnosti od i. Ako je 𝑖 = 1, 2, 9 ili 16 tada je pomak za jednu poziciju, a u protivnom za dvije pozicije. PC2 (vidi tablicu 10) predstavlja još jednu fiksnu tablicu permutacije.

Page 27: Racunalna Kriptografija

- 27 -

PC1

57 49 41 33 25 17 9

1 58 50 42 34 26 18

10 2 59 51 43 35 27

19 11 3 60 52 44 36

63 55 47 39 31 23 15

7 62 54 46 38 30 22

14 6 61 53 45 37 29

21 13 5 28 20 12 4

Tablica 9. Fiksna tablica permutacije PC1

Na ovaj je način u potpunosti opisan postupak šifriranja, a za dešifriranje koristimo isti algoritam. Kod dešifriranja krenemo od šifrata 𝑦, ali tablicu ključeva koristimo u obrnutom redoslijedu: 𝐾16,𝐾15, … ,𝐾1, a kao rezultat dobivano otvoreni tekst 𝑥.

PC2

14 17 11 24 1 5

3 28 15 6 21 10

23 19 12 4 26 8

16 7 27 20 13 2

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Tablica 10. Fiksna tablica permutacije PC2

AES algoritam

Napredni kriptografski sustav, Advanced Encryption Standard (AES), također je simetrični sustav koji za zakrivanje otvorenog teksta u blokovima od 128 bita koristi ključeva duljine 128, 192 ili 256 bita. Inicijativu za razvoj AES-a potaknuo je NIST u siječnju 1997. godine, te su u rujnu iste godine pozvali javnost na natječaj za razvoj novog kriptografskog sustava koji bi zamijenio postojeći DES te postao njegov nasljednik kao standardni kriptografski sustav. Kako se tražio nasljednik DES-a za razdoblje od slijedećih 20 do 30 godina, provedba samog natječaja je bila duga i opsežna. Dan 15. lipanj 1998. godine bio je zadnji dan za prijavu na natječaj. U prvom krugu odabrano je 15 algoritama: CAST-256, CRYPTON, DEAL, DFC,

Page 28: Racunalna Kriptografija

- 28 -

E2, FROG, HPC-Medium, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish. Od navedenih 15 algoritama samo ih je 5 ušlo u drugi krug natječaja. A to su:

1. MARS – IBM 2. RC6 – RSA Laboratories 3. Rijndael – Joan Daemen i Vincent Rijmen 4. Serpent – Ross Anderson (VB), Eli Biham (Izrael) i Lars Knudsen (Norveška) 5. Twofish – Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall i

Niels Ferguson (svi iz SAD-a).

Pobjednik natječaja je objavljen u listopadu 2000. godine, a to je bio Rijndael algoritam. Nakon pet godina standardizacije, AES je službeno objavljen 26. listopada 2001., a kao standard je stupio na snagu 26. svibnja 2002. godine.

Rijndael algoritam su osmislili belgijanci Joan Daemen i Vincent Rijmen, a ime algoritma je složeno iz početna tri slova njihovih prezimena – RIJmen + DAEmen.

Iako je originalni Rijndael zamišljen kao algoritam koji će operirati s blokovima većim od 128 bita te ključevima većim od 128, 192 i 256 bita, to nije usvojeno u AES standardu. AES strogo operira s blokovima fiksne duljine od 128 bita i ključevima od 128, 192 i 256 bita. Ostale duljine nisu dozvoljene u ovom standardu. Na temelju toga može se reći da AES nije u potpunosti isto što i Rijdeal, nego je njegova standardizirana inačica. U praksi AES poprima nazive AES-128, AES-192 i AES-256.

Osnovna jedinica za rad u AES algoritmu je bajt (byte), blok od 8 bitova koji predstavlja zasebni entitet. Ulazni i izlazni blokovi otvorenog teksta te ključa obrađuju se kao polja bajtova koja nastaju dijeljenjem tih blokova u grupe po osam bitova. Kao i kod DES algoritma sve AES operacije se odvijaju u dvodimenzionalnom polju bajtova koje zovemo matrice.

Primjena AES standarda Danas je AES sveopće prihvaćeni standard koji nalazimo u gotovo svim proizvodima vezanim uz računala i računalnu tehniku, te se može pronaći kod:

• IBM System z9 Mainframe računala (AES-128) • IBM System z10 Mainframe računala (AES-192 i AES-256) • Sigurnost bežičnih mreža (802.11i / WPA2 – AES-128) • Intel mikroprocesora baziranih na Nehalem mikroarhitekturi (Clarkdale, Arrandale,

Westmere) • Alata za sažimanje sadržaja (RAR, PKZIP, Win ZIP) • Alata za zaštitu podataka na tvrdom disku (BitLocker) • Zaštite mrežnog prometa (Open SSL, IPSec) • Raznih aplikativnih implementacija (Microsoft Office 2007, MessageLock).

Page 29: Racunalna Kriptografija

- 29 -

Asimetrični sustavi za kriptografiju

Za razliku od simetričnih kriptografskih sustava sa jednim ključem, asimetrični sustavi ili sustavi s javnim ključem, kako se još nazivaju, su sustavi koji koriste dva ključa, od kojih je jedan javni, a drugi tajni. Tajni ključ je dostupan samo vlasniku, a javni je ključ izveden iz tajnog i javno dostupan svima koji primatelju žele poslati šifriranu poruku. Primatelj šifrirane poruke uporabom tajnog ključa, i zaporke, dešifrira takvu poruku.

Razvoj asimetričnog sustava

Dok kod simetričnih sustava imamo problem distribucije tajnog ključa, kod asimetričnog sustava tog problema nema. Na začetku moderne kriptografije, računala sposobna za izvršavanje složenih operacija imale su samo velike institucije poput vojske, banaka i velikih korporacija, stoga je slanje tajnog ključa moglo funkcionirati zbog malog broja ljudi kojima se taj ključ distribuirao, a i mali je broj ljudi mogao šifrirati ili dešifrirati poruku. Sve su institucije upošljavale pouzdane dostavljače koji su bili zaduženi za raznošenje ključeva od pošiljatelja do primatelja. Kako se razvijala računalna industrija i jačalo gospodarstvo, sve je veći broj korisnika dobivao mogućnost kupnje računala, koja su iz godine u godinu bivala sve brža i snažnija.

Slika 14. Princip šifriranja korištenjem tajnog i javnog ključa (izvor: http://www.data-processing.hk)

Tako su razne institucije počele iskorištavati situaciju te su automatizirali procese i time povećavali broj korisnika. Kako se povećavao broj korisnika tako je slanje povjerljivog dostavljača u međusobnom odnosu i odnosu s korisnicima postalo neizvedivo, a slanje ključa telefonom bilo je preopasno zbog mogućeg prisluškivanja. Tako je distribucija ključa postao

Page 30: Racunalna Kriptografija

- 30 -

ozbiljan problem među kriptografima u vremenu kada nije bilo Interneta već samo ARPANET koji su koristili odabrani.

Osim stručnjaka unutar vladinih organizacija i korporacija, bilo je slobodnih i onih na sveučilištima koji su predviđali da će doći do masovne elektroničke komunikacije među ljudima putem javno dostupnih mreža te će se time povećati problem distribucije ključa za sve uključene strane.

Jedan od stručnjaka u usponu bio je Whitfield Diffie, tada neovisni kriptograf, a kasnije viši inženjer u Sun Microsystems-u koji se počeo baviti strategijama napada na problem distribucije ključa. Tako je 1974. godine na jednom predavanju u IBM-u doznao za Martina Hellmana, predavača na kalifornijskom Sveučilištu Stanford, koji se također bavio istim problemom. Njihov je susret bio ključan za povijest moderne kriptografije, a kasnije im se pridružio i Ralph Merkle (vidi sliku 15).

Slika 15. Ralph Merkle, Whitfield Diffie i Mark Hellman (izvor: http://fsi.stanford.edu/)

Problem distribucije ključa

Ako želimo da dvoje ljudi razmijeni šifriranu poruku, tada je pošiljatelj mora šifrirati, a primatelj je mora moći dešifrirati. Za šifriranje poruke, u sustavu simetričnog ključa, pošiljatelj koristi tajni ključ kako bi poruka koju dostavlja primatelju ostala tajna. Osim poruke moraju razmijeniti i tajni ključ, a dostava tajnog ključa može biti prije, poslije ili za vrijeme razmjene tajne poruke. Istodobna razmjena poruke i ključa nema smisla jer se onda odmah u direktnom kontaktu može razmijeniti i poruka pa tajnost nema smisla. Stoga se tajni ključ razmjenjuje prije ili poslije razmjene poruke. Uglavnom se to obavlja prije jer se tada u jednom kontaktu može razmijeniti više ključeva za više narednih poruka. Ovo je izvedivo u odnosu jedan na jedan ili između malog broja ljudi. Što ako jedan od njih nije u mogućnosti doći na razmjenu ključeva? Što ukoliko u ovom procesu imamo mnogo sudionika?

Navedeni problem možemo prikazati putem odnosa troje zamišljenih likova Alice, Bob i Eve. Alice šalje poruku Bobu, a Eve je pokušava presresti i pročitati. Alice može poruku staviti u kutiju na koju stavi lokot i pošalje je Bobu koji ne može otvoriti kutiju ako ne dobije ključ ili kopiju ključa za taj lokot. Ključ se može kopirati više nego jednom pa je problem distribucije

Page 31: Racunalna Kriptografija

- 31 -

ključa očit. Jedno od rješenja je sljedeće: Alice zaključa kutiju i pošalje Bobu, ali ne i ključ. Bob na istu kutiju stavi svoj lokot i pošalje Alice bez ključa. Sad u igri imamo dva lokota odnosno ključa. Alice otključa svoj lokot i skine ga s kutije te vrati kutiju Bobu koji je konačno otključa svojim ključem. Bob otvara kutiju s ključem kojeg ima samo on.

Ovako pojednostavljeni prikaz problema naizgled pokazuje rješenje, ali prebacivanjem u kriptografsku shemu sve se ponovno zakomplicira. Ako je Bob svojim ključem šifrirao poruku koja je prethodno bila šifrirana ključem od Alice, onda Alice prvo mora dešifrirati poruku ključem od Boba, a ne svojim ključem!

Ovime uviđamo da je vrlo bitan redoslijed šifriranja i dešifriranja poruke, te on mora funkcionirati na LIFO (Last In, First Out) principu, odnosno „zadnju unutra, prvi van“, tj. zadnji se stupanj šifriranja mora prvi dešifrirati.

Razvoj asimetričnog sustava, nastavak

Diffie i Hellman tražili su ostvarljiv postupak kojim bi zaobišli distribuciju ključa, te su stoga morali pronaći cjelokupno rješenje. Diffie je došao do rješenja da umjesto korištenja jednog tajnog ključa i njegove problematične distribucije, dakle simetričnog sustava, koristimo dva različita ključa odnosno asimetrični sustav.

Ako Alice napravi dva ključa, jedan za šifriranje, a drugi za dešifriranje, onda jedan od ta dva ključa mora biti javni ključ kojim se šifriraju poruke i mora biti slobodno distribuiran svim ljudima koji žele slati poruke Alice i pomoću tog ključa bi ih šifrirali. Dešifriranje poruke bilo bi moguće putem drugog, tajnog ključa, koji ima samo Alice.

Preneseno u primjer s kutijom i lokotom, Alice napravi gomilu replika lokota (javni ključ) i podijeli ih svima koji su zainteresirani za slanje tajnih poruka prema Alice, a ključ za otključavanje (tajni ključ) ostavi samo sebi. Svatko od njih stavi poruku u kutiju i zatvori lokot. Kada bilo koja kutija dođe do Alice, ona je može otključati jer ima ključ za taj lokot. Lokot i njegovo zatvaranje pritiskom ekvivalent su javnom ključu, a ključ za otključavanje lokota ekvivalent je tajnom ključu.

Da bi se ovo ostvarilo u realnom kriptografskom svijetu, potrebno je pronaći funkciju koja tajni ključ lako prevodi u javni ključ na način da je iz javnog ključa praktično nemoguće dobiti tajni ključ. Takva bijektivna funkcija koja se praktično lako računa, a njen inverz je gotovo nemoguće praktično izračunati (u smislu složenosti algoritma) se naziva jednosmjernom (trapdoor5) funkcijom.

Stoga su Diffie, Hellman i Merkle zanimanje usmjerili prema jednosmjernim funkcijama, a područje matematike koje obiluje jednosmjernim funkcijama je modulo aritmetika. Ona radi s konačnim skupom brojeva poredanih u petlju, kao npr. sat na brojčanik. Ako počinjemo raditi u devet sati ujutro i radimo osam sati, onda kažemo da završavamo u pet sati, a ne u

5 Trapdoor - naziv za funkciju koja se koristi u kriptografiji, ali predstavlja i specijalnu informaciju koja omogućuje pronalaženje inverza bijektivne funkcije.

Page 32: Racunalna Kriptografija

- 32 -

sedamnaest. To znači da smo u glavi zbrojili 9 i 8 sa modulo 12, odnosno 9 + 8 = 17 →17 𝑚𝑜𝑑 12 = 5.

Primjer 10:

Želimo pomnožiti dva broja 11 i 9:

11 × 9 = 99

Dijeljenjem rezultata s 9 lako rekonstruiramo prvi faktor 11. U modulo aritmetici, ako želimo dobiti rezultat u 𝑚𝑜𝑑 𝑋, podijelimo rješenje s 𝑋 i zapišemo ostatak. Na primjer za 𝑋 = 13 je:

99 ÷ 13 = 7 𝑐𝑖𝑗𝑒𝑙𝑖ℎ 𝑖 8 𝑜𝑠𝑡𝑎𝑡𝑎𝑘𝑎

Odavde sijedi da je:

11 × 9 = 8 (𝑚𝑜𝑑 13)

Sad je iz rezultata 8 i jednog faktora 9 nešto teže odrediti drugi faktor 11.

Primjer 11:

U 𝑚𝑜𝑑 7, 3𝑥 = 1. Potrebno je pronaći takav 𝑋 da daje slijedeći rezultat:

35(𝑚𝑜𝑑 7) = 5

3 × 3 × 3 × 3 × 3 = 243

243 ÷ 7 = 34 𝑖 5 𝑜𝑠𝑡𝑎𝑡𝑘𝑎

jer je:

34 × 7 = 238 → 238 + 5 = 243

Ako pretpostavimo da je X=4, rezultat funkcije nije zadanih 1 već 4:

34(𝑚𝑜𝑑 7) = 4

Rješenje primjera daje X=6:

36(𝑚𝑜𝑑 7) = 1

3 × 3 × 3 × 3 × 3 × 3 = 729

729 ÷ 7 = 104 𝑖 5 𝑜𝑠𝑡𝑎𝑡𝑘𝑎

104 × 7 = 728 𝑖 1 𝑜𝑠𝑡𝑎𝑡𝑎𝑘

Page 33: Racunalna Kriptografija

- 33 -

U modulo aritmetici inverznu funkciju često možemo naći samo ako napravimo tablicu s rješenjima funkcije za mnoge vrijednosti od 𝑋 te po njoj tražimo rješenje. Kako se modulo aritmetika ponaša u odnosu prema normalnoj aritmetici, vidimo iz tablice:

𝑋 1 2 3 4 5 6

3x 3 9 27 81 243 729

3x(mod 7) 3 2 6 4 5 1

Tablica 11. Tablica izračunatih vrijednosti za neki 𝑿

Vidljivo je da u slučaju normalne aritmetike funkcija stalno raste, a kod modulo aritmetike funkcija nije stalna, stoga je izrada ovakve tablice jednostavna kada je riječ o malim brojevima. Kada su brojevi veliki, onda je izrada tablice dugotrajan i mukotrpan posao. Na primjer, kada iz rezultata 6393 treba izvesti vrijednost od 𝑋.

Međutim ovo nije bilo dovoljno za rješenje problema, ali su Diffie, Hellman i Merkle probudili svijet kriptografa, matematičara, zanesenjaka i uvjerili ostatak svijeta da je rješenje problema vrlo blizu. Bez obzira koliko su truda uložili u pronalaženje jednosmjerne funkcije koja rješava problem, nisu uspjeli. Bilo je bržih.

RSA

Nekih pet tisuća kilometara dalje, na istočnoj obali SAD-a, nalazila se druga trojka koja se uključila u utrku za asimetričnom šifrom. Stručnjak za računala i istraživač MIT-ova laboratorija za računalne znanosti Ron Rivest, zainteresirao se za znanstveni rad Diffiea i Hellmana u kojem su opisali svoju ideju. Sa svojim je kolegama Adi Shamirom, računalnim stručnjakom i Leonard Adlemanom, matematičarem, započeo pronalaženje rješenja. Nakon godinu dana rada nisu uspjeli doći do rješenja i počeli su gubiti nadu. Ali je zato jedne noći u travnju 1977. godine Ronu Rivestu sinula ideja i tijekom te noći razmišljao je o rješenju i došao do zaključka. Tako je ostatak noći proveo pišući znanstveni rad. Slijedeći je dan svoj rad predao Adlemanu na uobičajenu analizu, ali za razliku od prethodnih analiza, Adleman ovog puta nije mogao pronaći pogrešku, a sustav koji je opisao u znanstvenom radu nazvan je prema početnim slovima prezimena njegovih autora – RSA (Rivest, Shamir, Aldeman).

Srce RSA sustava leži u složenosti modulo aritmetike i složenosti izračunavanja velikih prim-brojeva. Sam algoritam se sastoji od sljedećih koraka:

1. Odabrati dva velika prim-broja: 𝑝 i 𝑞 2. Izračunati umnožak 𝑛 od 𝑝 i 𝑞; 𝑛 = 𝑝 × 𝑞 3. Izračunati 𝑧 prema formuli 𝑧 = (𝑝 − 1) × (𝑞 − 1) 4. Izabrati broj 𝑒 takav da su 𝑒 i 𝑧 relativno prosti6 i 2𝑒 > 𝑛.

6 Relativno prosti – brojevi 𝑑 i 𝑧 su relativno prosti ako je najveći zajednički djelitelj brojeva 𝑑 i 𝑧 jednak 1, tj. Brojevi 𝑑 i 𝑧 nemaju zajedničkih faktora osim 1. Na primjer: 4 i 15 su relativno prosti, a 4 i 14 nisu jer su oba djeljiva s 2.

Page 34: Racunalna Kriptografija

- 34 -

5. Pronaći 𝑑, takav da je 𝑒 × 𝑑(𝑚𝑜𝑑 𝑧) = 1 6. Privatni ključ čini par (𝑛,𝑑), a javni ključ čini par (𝑛, 𝑒)

Šifriranje poruke provodi se dijeljenjem poruke u blokove. Svaki blok poruke se kodira brojem 𝑀, takvim da je 𝑀 < 𝑛 (zbog velikog n ovaj uvjet je automatski ispunjen) i M je relativno prost s n (za velike n ovo je gotovo uvjek ispunjeno) – Šifriranje koda M se vrši korištenjem modulo aritmetike 𝐶 = 𝑀𝑒 𝑚𝑜𝑑 𝑛, a dešifriranje se provodi inverznom operacijom, ali pomoću tajnog ključa 𝑀 = 𝐶𝑑 𝑚𝑜𝑑 𝑛.

U našem zamišljenom odnosu između Alice i Boba, postupak bi izgledao ovako:

1. Alice izabire dva velika prim-broja 𝑝 i 𝑞 (od oko 100 znamenaka), a zbog jednostavnosti u našem primjeru ćemo koristiti 𝑝 = 17 i 𝑞 = 11. Ti brojevi moraju biti i ostati tajni.

2. Alice ih množi jedan s drugim i dobiva broj 𝑛 = 𝑝 × 𝑞 = 187. 3. Prema formuli 𝑧 = (𝑝– 1) × (𝑞– 1) dobiva da je 𝑧 = 160. 4. Odabire broj 𝑒, u našem primjeru 𝑒 = 23. 5. Alice objavljuje 𝑒 i 𝑛. 6. Bob šalje poruku Alice i poruku mora pretvoriti u broj 𝑀 tako da se znakovi pretvore

u binarni ili heksadecimalni oblik. Recimo da šalje znak X koji je binarno 1011000, a decimalno 88, 𝑀 = 88.

7. Da bi mogao šifrirati poruku, Bob potraži javni ključ i otkrije da je 𝑛 = 187 i 𝑒 = 23. Tako formula za enkripciju 𝐶 = 𝑀𝑒 𝑚𝑜𝑑 𝑛 glasi 𝐶 = 8823 𝑚𝑜𝑑 187 =11. Iz 𝐶 = 11 jako je teško dobiti početnu poruku 𝑀, stoga onaj koji presretne poruku, a to je Eve ne može je dešifrirati.

8. Alice je može dešifrirati jer raspolaže posebnim informacijama, a to su vrijednosti 𝑝 i 𝑞 i može izračunati broj 𝑑.

𝑒 × 𝑑 = 1 (𝑚𝑜𝑑 𝑧) 23 × 𝑑 = 1 (𝑚𝑜𝑑 160)

𝑑 = 7 9. Alice dešifrira poruku pomoću formule:

𝑀 = 𝐶𝑑 𝑚𝑜𝑑 𝑛 𝑀 = 117 (𝑚𝑜𝑑 187) =88

Iz primjera je vidljivo da se tajnost poruke osigurava tajnošću brojeva 𝑝 i 𝑞 te njihovom veličinom. Broj umnožak od 𝑝 i 𝑞, odnosno 𝑛 fleksibilna je sastavnica jednosmjerne funkcije, što je čini ireverzibilnom i stoga idealnom u ulozi asimetrične šifre. Ako je 𝑛 dovoljno velik, iz njega je vrlo teško, gotovo nemoguće izvesti 𝑝 i 𝑞. Stoga on služi kao javni ključ, odnosno informacija svima dostupna kako bi mogli šifrirati poruku. Brojevi 𝑝 i 𝑞 služe kao privatni ključ, odnosno specijalna informacija nužna za dešifriranje poruke, a dostupna samo primatelju. Svatko može kreirati svoj 𝑛 te tako imati svoj privatni i javni ključ pomoću kojih može tajno komunicirati.

Page 35: Racunalna Kriptografija

- 35 -

Slika 16. Tvorci RSA algoritma, s lijeva nadesno: Ron Rivest, Adi Shamir, Len Adleman (izvor: http://www.usc.edu/)

Uvijek postoji mogućnost da se kroz napredak u teoriji brojeva otkrije kako modulo aritmetika nije najbolji način za izračunavanje velikih prim-brojeva te da postoje još druge neotkrivene metode napada na RSA, što ovaj algoritam ne čini savršenim, ali već desetljećima odolijeva svim napadima. Napredak računalne tehnologije omogućava lakše napade na RSA, ali istovremeno raste i mogućnost korištenja sve većih ključeva. Mnogi su mišljenja da je množenje velikih prim-brojeva u kombinaciji s modulo aritmetikom dovoljno dobro da se ovaj algoritam i dalje koristi.

Vrste napada na RSA:

• napad primjenom sile (Brute Force Attack) • napad iskorištavanjem malog eksponenta • napad korištenjem odabranog šifriranog teksta (Chosen Ciphertext Attack) • napad baziran vremenski

Zanimljivost Prema izjavama britanske državne uprave, Diffie, Hellman i Merkle nisu prvi koji su osmislili kriptografiju javnoga ključa. U Cheltenhamu, tajnoj ustanovi nastaloj iz ostataka Bletchley Parka gdje su razbijali Enigmu, nastao je Državni komunikacijski stožer – GCHQ (Government Communications Headquaters) unutar kojeg se radilo na sigurnosti britanskih komunikacija. Godine 1965. tamo se zaposlio James Ellis, jedan od vodećih britanskih kriptografa. Njegove ideje bile su vrlo slične idejama trojke Diffie, Hellman, Merkle. Iako je bio nekoliko godina ispred njih, zbog tajnosti njegova rada za to nitko nije znao. I on je zapeo na pronalaženju jednosmjerne matematičke funkcije jer nije bio matematičar. Najbistriji umovi GCHQ-a sljedećih godina pokušavali su pronaći rješenje, ali nisu uspjeli. Tada se 1973. ekipi pridružio Clifford Cocks, čovjek koji je upravo diplomirao matematiku na Cambridgeu. On je kao polazište svojeg rješenja uzeo prim-brojeve i faktoriranje te otkrio matematičku funkciju koja je omogućila stvaranje kriptografije javnoga ključa, ali su i dalje ostale poteškoće s praktičnom primjenom.

Page 36: Racunalna Kriptografija

- 36 -

Početkom 1970-ih, računala su bila previše primitivna da bi mogla posao šifriranja obaviti u razumnom roku. Tada je Cocks svoj rad pokazao Malcolmu Williamsonu, nekadašnjem studentskom kolegi s kojim je 1968. predstavljao Britaniju na matematičkoj olimpijadi u Sovjetskom Savezu, a koji se nedavno zaposlio u GCHQ-u kao kriptograf. On je pokušao pronaći nepravilnosti u Cocksovom radu, ali nije uspio. Umjesto greške, on je otkrio protokol danas poznat kao Diffie-Hellman.Merkleove razmjene ključeva (zove se po njima jer su ga oni otkrili neovisno o Williamsonu i javnom području). Do 1975. Ellis, Cocks i Williamson otkrili su sve bitne aspekte kriptografije javnoga kljuca, ali su morali šutjeti pa je slava otišla Diffieu, Hellmanu, Merkleu, Rivestu, Shamiru i Adlemanu. GCHQ je s ovim izašao u javnost tek 1997. Clifford Cocks je dovršio važan znanstveni rad o RSA, ali je postojala opasnost da njegovo objavljivanje ugrozi tajnu. Tada je GCHQ ipak dopustio Cocksu da oda tajnu i on je 18. prosinca 1997. održao svoje izlaganje te na početku spomenuo doprinos GCHQ-a u razvoju kriptografije javnoga kljuca.

Infrastruktura javnog ključa

Infrastruktura javnog ključa je radni okvir (Framework) koji omogućava integraciju različitih kriptografskih servisa. Cilj infrastrukture javnog ključa, u nastavku PKI-a (Public Key Infrastructure) je osigurati:

• povjerljivost podataka, • integritet podataka, • kontrolu pristupa podacima, • provjera valjanosti podataka, • neodbijanje.

Neodbijanje je načelo prema kojemu primatelj poruke ne može tvrditi da poruku nije primio, niti pošiljatelj može tvrditi da poruku nije poslao. Provjera neodbijanja se vrši pomoću vremenskog pečata koji prati tijek poruke i pruža informaciju o vremenu kada je poruka poslana od strane pošiljatelja i vrijeme kada je poruka zaprimljena od strane primatelja.

Page 37: Racunalna Kriptografija

- 37 -

Slika 17. Dijagram infrastrukture javnog ključa (izvor: http://en.wikipedia.org)

PKI radni okvir se sastoji od operativnih i sigurnosnih pravila, sigurnosnih servisa i interoperabilnih protokola koji podržavaju korištenje kriptografije javnog ključa za upravljanje ključevima i certifikatima. Izradu, distribuciju i upravljanje javnim ključevima te pripadajućih certifikata vrše komponente sustava Certification Authorities (CA), Registration Authorities (RA) i directory services.

PKI omogućuje i pruža sigurnu razmjenu podataka, dokumenata i vrijednosti (monetarni instrumenti) u heterogenim nezaštićenim okruženjima poput Interneta, te omogućava uspostavu povjerljive hijerarhije, kontrolu i upravljanje rizicima.

U svakodnevnom životu, a posebno u poslu, uvijek postoje dvije strane koje bi trebale surađivati i razmjenjivati podatke. Kada se dvije strane poznaju tada ne postoji potrebno povjerenje koje bi omogućilo da zajedno uđu u poslovne, pravne, ugovorne i ostale transakcije. Uspostava i implementacija PKI radnog okvira uz korištenje CA osigurava potrebno povjerenje.

CA (Certification Authorities) radi na principu da entiteti koji se međusobno ne poznaju uspostavljaju povjerljivu vezu s CA. Tada CA ostvaruje određeni nivo provjere valjanosti entiteta prema pravilima zapisanim u CPS-u (Certificate Practices Statement) i svakom entitetu kreira digitalni certifikat. Do tada međusobno nepoznati entiteti sada mogu koristiti certifikate za uspostavu povjerenja jer vjeruju CA da je napravio odgovarajuću provjeru valjanosti.

Postoji nekoliko modela povjerenja:

• Hijerarhijski • Distribuirani (Web of Trust) • Direktni (Peer to Peer)

Page 38: Racunalna Kriptografija

- 38 -

Logičke komponente infrastrukture javnog ključa

Krajnji entiteti – svaki korisnik, ili stvar poput računala, koji imaju potrebu za digitalnim certifikatom koji će im služiti za odavanje identiteta. Entitet ima mogućnost kreiranja javnog ključa, a tajni ključ mora sigurno pohrani.

Certification Authorities (CA) – pouzdana treća strana, odnosno entitet koji izdaje digitalne certifikate tvrtkama i pojedincima nakon što provjere njihov identitet, a informacija koja potvrđuje identitet uključena je u sam certifikat. Također brine i o povlačenju certifikata ukoliko je došlo do povrede identiteta. Mnogi CA izdavatelji imaju uključene svoje korijenske certifikate u web preglednicima kako bi certifikati izdani sa njihove strane bili prihvaćeni od strane web preglednika. Također, korijenski certifikati služe kao javni ključ kada pristupamo stranicama koje koriste digitalni certifikat za provjeru valjanosti, te se time stvara krug povjerenja (chain of trust) između web stranice i web preglednika čime je osigurana sigurnost i povjerljivost podataka. Tako međusobno nepoznati entiteti koriste certifikate za uspostavu povjerenja između sebe, jer vjeruju CA da je napravio odgovarajuću provjeru valjanosti. CA funkcionira unutar cjelokupnog poslovnog pravila Certificate Policy (CP) i operativno funkcionira prema Certificate Practices Statement (CPS).

Certificate Policy (CP) – skup pravila koja osiguravaju principe kojima neka organizacija odobrava tko, kako i zašto smije rukovati sustavima i podacima. Određuje skup pravila koja određuju primjenjivost certifikata javnog ključa u određenoj zajednici ili klase aplikacija sa zajedničkim sigurnosnim zahtjevima.

Certificate Practices Statement (CPS) – izvještaj o praksama koje CA koristi u stvaranju certifikata javnog ključa. CPS definira proceduralne i operativne procese unutar PKI. Mora definirati sve procese koji se odvijaju unutar životnog ciklusa certifikata javnog ključa uključujući generiranje, izdavanje, upravljanje, pohranu, isporuku i povlačenje. Također mora specificirati provjeru valjanosti prvog entiteta, koji drugi entitet mora potvrditi kroz sudjelovanje u PKI.

Hardware Security Modules (HSM) – osnovna komponenta CA entiteta, koja omogućava uspostavu povjerenja ne samo s klijentima određenog CA, nego i svima koji ovise o certifikatima izdanih od krajnjih entiteta. Budući da povjerenje ovisi o sigurnosti i integritetu privatnih ključeva korištenih za potpisivanje javnih ključeva certifikata, neophodno je osigurati najveću razinu zaštite tih ključeva. CA pohranjuje i koristi privatne ključeve određene u HSM modulima, zvanim još i TRSM (Tamper Resistant Security Modules) moduli.

Javni ključ certifikata (Public Key Certificates) – služi kao potvrda povezivanja identiteta krajnjeg korisnika i njegovog javnog ključa. Sadrži dovoljno informacija kako bi drugi entitet mogao provjeriti i potvrditi identitet vlasnika certifikata. Osnovna građa certifikata uključuje:

• Ime entiteta • Informacije za provjeru identiteta entiteta

Page 39: Racunalna Kriptografija

- 39 -

• Vrijeme trajanja valjanosti certifikata • Javni ključ krajnjeg entiteta

Proširenja certifikata (Certificate Extensions) – pružaju dodatne informacije o certifikatu i dopuštaju njihovu uporabu za posebne potrebe organizacije. Entiteti moraju poznavati proširenja certifikata kako ne bi došlo do negativnog utjecaja. Informacije koje se nalaze u proširenju certifikata su:

• Politika (Policy) • Uporaba • Povlačenje

Registration Authority (RA) – provodi administrativne poslove u korist CA, i osigurava da se javni ključ poveže sa entitetom kojem je dodijeljen kako bi se osiguralo neodbijanje. Mora provesti sve procedure definirane u CP i CPS kako bi se provjerio zahtjev za certifikatom, te pritom provjerava ime, podatke za provjeru, javni ključ, proširenja certifikata i ostale informacije.

Spremnik certifikata (Certificate Depositories) – služi za distribuciju certifikata na način da je svaki objavljeni certifikat spremljen u spremnik koje kontrolira CA i RA. Time se proces distribucije pojednostavljuje, jer je prilikom izdavanja novog certifikata potrebno samo obnoviti zapise u spremniku.

Lista povučenih certifikata (Certificate Revocation List) – popis svih povučenih certifikata, kojeg obnavljaju RA i CA.

Iz ovoga je vidljivo kako je PKI složena infrastruktura koja donosi značajnu prednost svima onima koji trebaju takvu vrstu sigurnosti. Prije uvođenja PKI-a potrebno je napraviti detaljnu analizu radnog okruženja kako bi se točno odredilo gdje su potrebne mjere sigurnosti, kakve moraju biti i pruža li PKI sve to. Kod uvođenja ljučnu ulogu mora imati pažljivo planiranje s probnom okolinom koja osigurava uvid u operativne, sigurnosne i praktične aspkte interakcije PKI i radnog okruženja.

Međutim, danas je PKI jako rasprostranjen pa se uz šifriranje koristi i za potpisivanje poruka i dokumenata u svrhu dokazivanja identiteta pošiljatelja i kao zamjena za fizički potpis, za pristup računalima i za obavljanje bankarskih transakcija. Neke su zemlje, poput Belgije, uvele osobne iskaznice na pametnoj kartici (Smart Card) sa vlastitim digitalnim certifikatom koji vrijedi koliko i osobna iskaznica a kojim korisnik na Internetu potvrđuje svoj identitet kod elektroničkog glasovanja, preuzimanja osobnih dokumenata iz javnih servisa i dr.

Rizici infrastrukture javnog ključa

Računalna sigurnost je postala žrtva učestalih napada na pojedine komponente sustava. Tako smo imali viruse, trojanske konje, napade na vatrozide, napade na sustave za otkrivanje napada (Intrusion Detection Systems), a danas imamo na potvrdno tijelo, odnosno CA.

Page 40: Racunalna Kriptografija

- 40 -

Infrastruktura javnog ključa omogućuje primamljiv poslovni model za nula kuna, odnosno sve je poznato i ukoliko nekoga uvjerite da plati 25 kuna godišnje za digitalni potpis i to pomnožite sa populacijom Internet korisnika u Hrvatskoj dobijete pristojnu svotu samo za izdavanje certifikata. Djeluje primamljivo, posebno stoga što Vas nitko neće provjeravati, odnosno registrirana ste tvrtka za navedenu djelatnost sa vlastitim OIB-om i dokle god plaćate porez i doprinose za Vas nema straha. A što je sa korisnicima?

Stoga je u današnje vrijeme potrebno obratiti pozornost kod uzimanja certifikata ili provjere korijenskog certifikata:

1. Kome vjerujemo i zašto? – CA je definiran kao entitet od povjerenja, ali danas postoje mnoge tvrtke koje se bave izdavanjem digitalnih certifikata, te postoji mogućnost da jedna od njih svoje certifikate izdaje zbog potpuno drugačije primjene. Vjerujemo svim tvrtkama dokle god ne postoji neki pisani trag, ili dokaz da su certifikate koristili u neke neprimjerne svrhe.

2. Tko koristi moj ključ? – Jedan od najvećih rizika PKI-a je tajni ključ koji se koristi za potpisivanje poruke. Kako ga štitimo? Običan korisnik ne posjeduje računalo sa zaštićenim i sigurnim pristupom, sa TEMPEST i ostalim mogućim zaštitama. U pravilu korisnik svoj tajni ključ čuva na tvrdom disku računala i postaje meta virusima i ostalim malicioznim programima koji mogu pretraživati tvrdi disk u potrazi za tajnim ključevima. Čak i da korisnik posjeduje tehničku i fizičku zaštitu, sa zaporkom na računalu, uvijek postoji mogućnost da se dođe do podataka.

3. Koliko je sigurno računalo za provjeru? – Provjera certifikata se vrši uporabom javnog ključa i pritom se koriste korijenski javni ključevi. Ukoliko napadač doda svoje javne ključeve na listu „korijenskih“ ključeva, tada će moći izdavati svoje vlastite koji će biti tretirani kao legitimno izdani certifikati. Stoga je bitno da se provjera certifikata vrši na računalnim sustavima koji su zaštićeni od napada malicioznim kôdom ili fizičkog pristupa.

4. Koji Ivan Horvat? – U pravilu se javni ključ asocira sa imenom i prezimenom, na što mnogi ne obraćaju pažnju kao propust. Naime, u realnom svijetu ime i prezime ima smisla, ali što ako je neko prezime karakteristično za neku regiju ili naciju? Tada dolazimo do problema jer će sigurno biti više od jednog Ivana sa prezimenom Horvat i koji Ivan mi zapravo piše. Da li poruku koji sam dobio od Ivana Horvata stvarno pripada njemu ili je to samo neki njegov imenjak i prezimenjak. Kada su Diffie i Hellman predstavili šifriranje javnim ključem, predložili su da se uz ime, adresu i broj telefona u telefonskom imeniku objavljuje i javni ključ. Tada 1976. godine to ne bi bio problem, ali danas kada se broj korisnika Interneta broji u milijunima to predstavlja ogroman problem. Ono što je karakteristično za nas ljude je da od prvih poznanstava iz djetinjstva prvo što zapamtimo i što nas prati je ime osobe. Samim time odstupamo od logike računala i takvih sustava.

Page 41: Racunalna Kriptografija

- 41 -

Kvantna kriptografija

Za razliku od prethodno opisanih metoda šifriranja, ova metoda uspješno rješava problem sigurne distribucije ključa. Naime, dvije su strane povezane sa dva kanala, kvantnim i klasičnim javnim kanalom. Ključ se distribuira kvantnim kanalom, a nakon distribucije ključa, poruka se šalje klasičnim javnim kanalom. Ovakva distribucija ključa u kvantnoj kriptografiji naziva se QKD (Quantum Key Distribution) odnosno kvantna distribucija ključa, a predstavljena je osamdesetih godina prošloga stoljeća i počiva na teoremu o nekloniranju i Heisenbergovom principu neodređenosti izvedenom davne 1927. godine.

Heisenbergeov princip neodređenosti (Heisenberg uncertainty principle) kaže da tijekom mjerenja nekog fizikalnog stanja kvantnog sustava postoji granica preciznosti koja se može postići kod istovremenog određivanja položaja čestice i njezine količine gibanja u jednoj dimenziji. Što točnije želimo odrediti količinu gibanja (impuls) neke čestiče, to više gubimo na točnosti pri određivanju njezinog položaja i obrnuto.

Teorem o nekloniranju (No-cloning theorem) kaže da nepoznato stanje nije moguće klonirati. Odnosno, ako imamo dva sustava od kojih je prvi u nepoznatom stanju, nije moguće postići da prvi i drugi sustav budu u stanju u kojem se nalazio prvi sustav.

Kako se sigurnost kvantne kriptografije temelji na kvantnoj distribuciji ključa, bilo kakvo prisluškivanje kvantnog kanala uzrokuje promjenu u informacijama što korisnike upozorava na prisutnost treće strane, odnosno nekoga tko prisluškuje. Prisluškivač ne može uspješno prisluškivati komunikaciju jer će utjecati na nju i tako biti otkriven.

U kvantnoj kriptografiji poznajemo:

• Kvantni kanal – realizira se pomoću optičkog vlakna kroz koji putuju polarizirani fotoni.

• Kvant – fizikalna veličina sa svojstvom da može poprimiti samo određene vrijednosti, ali ne i međuvrijednosti.

• Foton – je kvant elektromagnetskog polja koji nema masu, ima impuls (količina gibanja) i energiju, a položaj mu nije moguće odrediti.

• Polarizacija fotona – je smjer titranja elektromagnetskog vala (gore-dolje, lijevo-desno, smjer titranja rotira u vremenu).

Polarizaciju fotona možemo obaviti pomoću jedne od tri ortogonalne baze. Ortogonalna baza je baza koja je sastavljena iz para pravokutnih vektora.

Imamo slijedeće ortogonalne baze polarizacije:

1. Linearna horizontalna – linearna uspravna 2. Dijagonalna pod kutem od 45° – dijagonalna pod kutem od 135° 3. Cirkularna lijeva – cirkularna desna

Bilo koje dvije polarizacije iz različitih baza su međusobno konjugirane i ne mogu se razlikovati samo jednim mjerenjem, odnosno polaritetom.

Page 42: Racunalna Kriptografija

- 42 -

Protokoli

Prvi protokol za kvantnu kriptografiju su osmislili Bennett i Brassard 1984. godine, pet godina kasnije konstruiraju i prvi uređaj za generiranje tajnog ključa koji implementira njihov BB84 protokol. Kao i kod svih kvantnih protokola, dvije su strane povezane s dva kanala i to kvantnim i klasičnim javnim kanalom. Kako je protokol dizajniran s pretpostavkom da će treća strana prisluškivati komunikaciju, niti jedan od dva kanala ne mora biti siguran. Sigurnost protokola proizlazi iz kodiranja informacija u neortogonalnim stanjima.

Slika 18. Postupak prijenosa podataka (izvor: Simon Singh – Code Book, The)

Primjer 12:

Alice i Bob odabiru dvije baze polarizacije koje će koristiti u komunikaciji. Uzmimo da su to linearna horizontalna – linearna vertikalna i dijagonalna pod 45° – linearna pod 135°.

Polarizacijama se dodijele vrijednosti 1 ili 0. Alice šalje Bobu tajni ključ preko kvantnog kanala. Za svaki od impulsa slučajno odabire jednu od dvije baze polarizacije. Bob ima detektor polarizacije. On ga može postaviti tako da mjeri jednu ili drugu polarizaciju. Kvantna mehanika brani mu da mjeri obje polarizacije odjednom jer mjerenje jedne polarizacije uništava mogućnost mjerenja druge polarizacije. Ako Bob ispravno postavi polarizator, registrirat će ispravnu polarizaciju. Ako ga postavi krivo, registrirat će neko slučajno stanje s jednakom vjerojatnošću. Budući da zakoni kvantne mehanike dopuštaju da se i fotoni čija polarizacija ne odgovara orijentaciji polarizatora prepoznaju kao ispravni, Bob ne može znati koje je bitove primio ispravnom orijentacijom, a koje pogrešnom.

Page 43: Racunalna Kriptografija

- 43 -

Nakon toga Bob uspostavlja komunikaciju s Alice putem klasičnog javnog kanala i javlja joj koju je orijentaciju polarizatora odabrao za detekciju, ali joj ne javlja kakve je rezultate mjerenja dobio. Alice mu odgovara koja je orijentacija bila ispravna i koja su od njegovih mjerenja ispravno detektirala fotone. Oboje zadržavaju samo ispravno detektirane bitove i ti bitovi čine tajni ključ. Bitovi kod kojih se nisu koristile iste baze s obje strane odbacuju se, iako medu njima možda ima onih koji su slučajno prepoznati kao ispravni.

Na ovaj način Alice i Bob mogu generirati onoliko bitova koliko im treba za generiranje ključa. U prosjeku, Bob pogađa ispravnu polarizaciju u 50% slučajeva. Ako bi Eve prisluškivala, ona mora postaviti svoj polarizator negdje na putu fotona i ona bi ispravnu polarizaciju pogodila također u 50% slučajeva. Budući da se ispravno mjerenje može izvršiti samo jednom, Bob bi uočio nejednakost u primljenim bitovima jer bi ih Eve svojim mjerenjem izmijenila.

Impulsi koje šalje Ana:

\ – | – / – / | \

Postavka Bobovog detektora polarizacije:

x + x + x x + x x +

Bob je dobio sljedeći rezultat:

\ | / – \ / – / / |

Nakon obavljenog razgovora, Alice i Bob ostavljaju samo ispravne polarizacije:

\ * * \ * / – / *

Protokol BB84 bio bi potpuno nesiguran kada bi Eve mogla napraviti bilo koju od ove dvije intervencije u kvantnom kanalu:

1. izmjeriti polarizaciju fotona kojeg šalje Alice pa producirati isto takav foton i poslati ga Bobu,

2. umnožiti fotone što ih šalje Alice.

U prvom slučaju Alice imala bi istu informaciju koju imaju Alice i Bob, pa bi na kraju procedure imala isti ključ. Međutim, Alice koristi fotone s konjugiranih baza, tj. ne postoji orijentacija polarizatora kojom bi Eve mogla nepobitno razlučiti polarizaciju fotona. U drugom slučaju Eve želi s nekoliko različito orijentiranih polarizatora nepobitno odrediti polarizaciju fotona. No umnažanje nepoznatog kvantnog stanja nije moguće (no-cloning teorem).

U kvantnoj kriptografiji se uz BB84 protokol još koriste i: B92, E91, SARG04 i protokol šest stanja (Six-State Protocol).

Page 44: Racunalna Kriptografija

- 44 -

Zaključak

Danas su računala postala sastavni dio naših života kako u poslovnom tako i u privatnom okruženju. Bez obzira kako ih koristili barem smo jednom imali doticaj sa kriptografijom, odnosno sa nekom metodom šifriranja. Svatko tko se barem jednom spajao na zaštićenu bežičnu mrežu morao je odabrati način šifriranja koji se koristi na toj mreži, što je u pravilu WEP (Wired Equivalent Privacy) ili WPA i WPA2 (Wi-Fi Protected Access). Dok prvi predstavlja jednostavan algoritam za šifriranje, drugi je napredniji jer koristi AES algoritam za kreiranje sigurne komunikacije. Ovisno o tome koju metodu izabrali, za vlastitu bežičnu pristupnu točku (Wireless Access Point), ovisi i nivo zaštite pristupu bežične mreže i podacima koji se nalaze na mreži.

Kriptografija ne staje na tome već se koristi kod pristupa Internet bankarstvu, u komunikaciji FM/AM radio uređajima, GSM terminalnom opremom, za zaštitu intelektualnog vlasništva u audio i video industriji, medicini i dr. Stoga je bitno da svatko to koristi takvu opremu bude upoznat sa osnovnim elementima kriptografije kako bi zaštitio sebe i svoje podatke. Kriptografija pomaže da naši podaci budu zakriveni od neželjenih pogleda i onemogućimo im pristup, ali se mi moramo pobrinuti da informacije potrebne za pristup zakrivenim informacijama ostanu tajne i u našem vlasništvu. Svaki gubitak tajnih podataka kojim otključavamo zakrivene podatke predstavlja potencijalni napad na naše podatke, sigurnost i identitet.

Premda je zapad već dobrano zakoračio u digitalno doba, hrvatski korisnici još uvijek nisu u potpunosti preuzeli sve blagodati digitalnog doba, a kada to učinimo morat ćemo znati kako svoje podatke čuvamo i štitimo. Dolazi doba kada će računalo biti samo terminalna oprema za pristup servisima, a naši će podaci biti pohranjeni u oblaku.

Stoga se postavlja potreba studente uputiti u osnovne elemente kriptografije, što ovaj rad dobrim dijelom obrađuje. Kriptografiju je potrebno poznavati od početka do modernih algoritama kako bi danas studenti, a sutra djelatnici, mogli s razumijevanjem ulaziti u problematiku sigurnosti uz primjenu kriptografije. Sve to omogućio bi predmet iz područja kriptografije i kriptoanalize, jer ona postaje važan element u nastavi na studijima informacijskih znanosti, a ovaj materijal bio bi polazišna osnova za izradu jednog kvalitetnog materijala za nastavu.

Page 45: Racunalna Kriptografija

- 45 -

Dodatak 1: Implementacija šifriranja skitalom u PHP-u // FUNKCIJA ZA SIFRIRANJE function encode($N,$poruka) // $N je broj zamotaja, odnosno redova poruke { // nacin na koji PHP transforima string u niz znakova $otvoreni = preg_split("//",$poruka, -1, PREG_SPLIT_NO_EMPTY); $M = count($otvoreni); $L = floor($M/$N); // Vraca vrijednost najmanjeg integera ukoliko je

// potrebno vrijednost zaokruziti if ($L*$N<$M) $L++; // Dodaje jedan ako dijeljenje nije parno $encoded = array(); for ($i=0; $i<$L; $i++) { for ($j=0; $j<$N; $j++) { if (isset($otvoreni[$i+$j*$L]))

{ // Dodaje slijedeci znak na kraj sifriranog stringa $encoded[] = $otvoreni[$i+$j*$L]; } else { $encoded[] = ' '; } } } $encoded[] ='*'; $poruka = join('',$encoded); // Kreira string iz niza znakova return $poruka; } // FUNKCIJA ZA DESIFRIRANJE function decode($N,$poruka) // $N je broj zamotaja, odnosno redova poruke { $encrypted = preg_split("//",$poruka, -1, PREG_SPLIT_NO_EMPTY)); $M = count($encrypted); $L = floor($M/$N); // Duljina retka na osnovu broja zamotaja if ($L*$N < $M) $L++; // dodaje jedan ako nedostaju 'razmaci' na kraju niza $decoded = array(); for ($i=0; $i<$N; $i++) { for ($j=0; $j<$L; $j++) { $decoded[] = $encrypted[$i+$j*$N]; } } return join('',$decoded); }

Page 46: Racunalna Kriptografija

- 46 -

Dodatak 2: Cezarova šifra izvedena u C++ programskom jeziku #include <iostream> #include <fstream> using namespace std; void main() { int pomak = 0; char tekst[1024] = {0}; // veličina datoteke najviše 1KB odnosno 1024 bajta cout << "Unesi vrijednost pomaka: "; cin >> pomak; if (pomak=0) pomak = 3; ifstream fin; ofstream fout; fout.open ("sifrat.txt"); fin.open ("poruka.txt",ios::in); if(!fout) { cout << "Ne mogu otvoriti izlaznu datoteku!" << endl; return; } if(!fin) { cout << "Ne mogu otvoriti ulaznu datoteku!" << endl; return; } fin.read (tekst,1024); cout << tekst << endl; cout << "Sifriranje obavljeno!" << endl; for(int i=0; tekst[i] != NULL; i++) { if(tekst[i] >= 'a' && tekst[i] <= 'z') { tekst[i] = (tekst[i] - 'a' + pomak) % 26 + 'a'; } if(tekst[i] >= 'A' && tekst[i] <= 'Z') { tekst[i] = (tekst[i] - 'A' + pomak) % 26 + 'A'; } } fout.write (tekst,sizeof(tekst)); cout << tekst << endl; fin.close(); fout.close(); }

Page 47: Racunalna Kriptografija

- 47 -

Dodatak 3: Primjer uporabe DES algoritma u JAVA-i import javax.crypto.*; import javax.crypto.spec.*; import java.security.spec.*; import java.io.*; public class DesSifriranje { Cipher sifriraj; Cipher desifriraj; DesSifriranje(SecretKey key) { try { sifriraj = Cipher.getInstance("DES"); desifriraj = Cipher.getInstance("DES"); sifriraj.init(Cipher.ENCRYPT_MODE, key); desifriraj.init(Cipher.DECRYPT_MODE, key); } catch (javax.crypto.NoSuchPaddingException e) { } catch (java.security.NoSuchAlgorithmException e) { } catch (java.security.InvalidKeyException e) { } } public String sifriraj(String str) { try { // Šifrira string u bitove koristeći UTF-8 kodiranje byte[] utf8 = str.getBytes("UTF8"); // Šifriraj byte[] enc = sifriraj.doFinal(utf8); // Kodira bitove u base64 da dobije string return new sun.misc.BASE64Encoder().encode(enc); } catch (javax.crypto.BadPaddingException e) { } catch (IllegalBlockSizeException e) { } catch (UnsupportedEncodingException e) { } catch (java.io.IOException e) { } return null; } public String desifriraj(String str) { try { // dekodira base64 da dobije bitove byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str); // Dešifriranje byte[] utf8 = desifriraj.doFinal(dec); // Dekodira koristeću UTF-8 return new String(utf8, "UTF8"); } catch (javax.crypto.BadPaddingException e) { } catch (IllegalBlockSizeException e) { } catch (UnsupportedEncodingException e) { } catch (java.io.IOException e) { } return null; } }

Page 48: Racunalna Kriptografija

- 48 -

// Primjer koji koristi gornju klasu:

try { // Kreiranje privremenog ključa, u praksi ovaj ključ teba spremiti SecretKey kljuc = KeyGenerator.getInstance("DES").generateKey(); // Kreiranje šifriraj/dešifriraj klase DesSifriranje ds = new DesSifriranje(kljuc); // Šifriraj String sifrat = ds.sifriranje("Ovo je vazno i kazem samo jednom!"); // Dešifriraj String otvoreni = ds.desifriranje(sifrat); } catch (Exception e) { }

Page 49: Racunalna Kriptografija

- 49 -

Dodatak 4: Primjer uporabe AES-a u C♯ programskom jeziku namespace AES_Project { using System; using System.IO; using System.Security.Cryptography; using System.Text; using System.Windows.Forms; internal class AESEncryption { private static void createEncryptorDecryptor() {} public static string Decrypt(string CipherText, string Password, string Salt, string HashAlgorithm, int PasswordIterations, string InitialVector, int KeySize) { try { byte[] bytes = Encoding.ASCII.GetBytes(InitialVector); byte[] rgbSalt = Encoding.ASCII.GetBytes(Salt); byte[] buffer = Convert.FromBase64String(CipherText); byte[] rgbKey = new PasswordDeriveBytes(Password, rgbSalt, HashAlgorithm, PasswordIterations).GetBytes(KeySize / 8); RijndaelManaged managed = new RijndaelManaged(); managed.Mode = CipherMode.CBC; ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes); MemoryStream stream = new MemoryStream(buffer); CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read); byte[] buffer5 = new byte[buffer.Length]; int count = stream2.Read(buffer5, 0, buffer5.Length); stream.Close(); stream2.Close(); return Encoding.UTF8.GetString(buffer5, 0, count); } catch (CryptographicException) { MessageBox.Show("Dešifriranje nije moguće, provjerite ključ i postavke!", "Greška prilikom dešifriranja", MessageBoxButtons.OK, MessageBoxIcon.Hand); return CipherText; } catch (FormatException) { MessageBox.Show("Dešifriranje nije moguće, provjerite uneseni tekst!", "Greška prilikom dešifriranja", MessageBoxButtons.OK, MessageBoxIcon.Hand); return CipherText; } } public static string Encrypt(string PlainText, string Password, string Salt, string HashAlgorithm, int PasswordIterations, string InitialVector, int KeySize)

Page 50: Racunalna Kriptografija

- 50 -

{ try { byte[] bytes = Encoding.ASCII.GetBytes(InitialVector); byte[] rgbSalt = Encoding.ASCII.GetBytes(Salt); byte[] buffer = Encoding.UTF8.GetBytes(PlainText); byte[] rgbKey = new PasswordDeriveBytes(Password, rgbSalt, HashAlgorithm, PasswordIterations).GetBytes(KeySize / 8); RijndaelManaged managed = new RijndaelManaged(); managed.Mode = CipherMode.CBC; ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes); MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write); stream2.Write(buffer, 0, buffer.Length); stream2.FlushFinalBlock(); byte[] inArray = stream.ToArray(); stream.Close(); stream2.Close(); return Convert.ToBase64String(inArray); } catch (CryptographicException) { return PlainText; } } } }

Page 51: Racunalna Kriptografija

- 51 -

Rječnik

A

Abeceda Skup slova (znakova) nekog jezika.

AES Standard za napredno šifriranje (eng. Advanced Encription Standard), unaprijeđen DES standard, s promjenjivom dužinom ključa i bloka.

Algoritam Konačan niz precizno definiranih koraka u rješavanju nekog problema.

Algoritam asimetričnog ključa Ili kriptografija s asimetričnim ključem, gdje se koriste posebni ključevi (javni i tajni ključ) za šifriranje i dešifriranje.

Algoritam simetričnog ključa Ili kriptografija sa simetričnim ključem, gdje pošiljatelj i primatelj koriste isti ključ za šifriranje i dešifriranje.

Autoključ Vidi: šifra s autoključem.

B

Blok šifra Šifriranje se izvodi na bloku podataka fiksne dužine. Koristi se i izraz eng. off-line šifra, jer se načelno podaci prvo šifriraju, pa zatim šalju.

Bomba Britanski elektromehanički stroj korišten za dekriptiranje poruka šifriranih njemačkom Enigmom.

C

Cezarova šifra Jedna od najjednostavnijih i najraspro-stranjenijih šifri. Dobila je ime po Gaju Juliju Cezaru. Ne pruža nikakvu zaštitu.

D

Dekriptiranje Djelatnost kriptoanalize, dobijanje otvorenog teksta kad ključ nije poznat. Vrše je osobe kojima poruka nije namijenjena.

DES Standard za šifriranje podataka (eng. Data Encryption Standard), ranije najkorišteniji algoritam simetričnog ključa, zamijenjen naprednijim AES standardom.

Dešifriranje Postupak dobijanja otvorenog teksta iz šifrata kad je poznat ključ. Vrši ga osoba kojoj je poruka namijenjena.

E

Enigma Njemačka rotor mašina za šifriranje, korištena prije i za vrijeme Drugog svjetskog rata.

Enkripcija Drugi naziv za šifriranje.

F

Frekvencijska analiza Analiza frekvencije slova nekog jezika, jedan od osnovnih postupaka u pokušaju razbijanja šifre.

G

Gronsfeldova šifra Varijanta Vigenèreove šifre, umjesto abecede koristi 10 znamenki. Bila je popularna u Europi, iako je slabija od Vigenèreove.

I

Indeks podudaranja Ili indeks koincidencije (eng. index of coincidence), mjera neravnomjernosti frekvencije slova.

Page 52: Racunalna Kriptografija

- 52 -

J

Javni ključ Kod algoritma asimetričnog ključa, to je ključ koji se objavljuje i služi pošiljatelju da šifrira poruku.

Jednokratni blok Sustav (eng. one-time pad) kod kojeg su ispunjeni uvjeti da je ključ slučajan, jednak dužini otvorenog teksta i da se ne koristi više od jednom, predstavlja neprobojnu šifru.

K

Klasična šifra Obuhvaća šifre koje su korištene u prošlosti, šifriranje "s olovkom i papirom", jednostavne šifre zamjene i pomicanja.

Ključ Nezavisna vrijednost (bit, slovo, abeceda) u šifarskom algoritmu.

Kôd Vrsta šifre, kod koje se zamjena vrši na nivou značenja, riječi i izrazi se zamjenjuju drugima, a vrši se i sažimanje. Zbog slabosti je zapostavljen u modernoj kriptografiji.

Kriptoanaliza Područje kriptologije, znanost koja se bavi dekriptiranjem, razbijanjem šifri i izučavanjem kriptografskih metoda protivnika.

Kriptoanalitičar Osoba koja se bavi kriptoanalizom.

Kriptografija Dio kriptologije, znanost o nerazumljivom pisanju poruka i njihovom čitanju kada je poznat primijenjeni postupak.

Kriptozaštita Područje kriptologije čija je osnovna funkcija osiguranje zaštite tajnosti sadržaja poruka.

Kriptolog Osoba koja se bavi kriptologijom.

Kriptologija Znanost koja se bavi izučavanjem i definiranjem metoda za zaštitu informacija i pronalaženjem metoda za dekriptiranje. Ima dvije osnovne oblasti, kriptozaštitu i kriptoanalizu. Objekti

izučavanja su pisane (kriptografija), govorne (kriptofonija), vizualne i druge poruke.

L

Lorenz SZ Njemačka mašina za šifriranje korištena za vrijeme Drugog svjetskog rata za komunikaciju putem teleprintera. Koristila je šifru toka.

M

Moderna šifra Moderni, napredni tipovi šifri, gdje se za generiranje ključeva koristi snaga računala.

Monoalfabetska šifra Šifra kod koje se kao ključ koristi jedna abeceda (na primjer Cezarova šifra).

N

Napad Djelatnost kriptoanalize u cilju otkrivanja algoritma šifre, ključa ili otvorenog teksta.

Napad "grubom silom" Napad kod koga se istražuju sve moguće kombinacije šifre, bez upotrebe drugih metoda kriptoanalize.

Neprobojna šifra Šifra koju nije moguće razbiti (fran. le chiffre indéchiffrable).

O

Otvoreni tekst Tekst poruke na prirodnom jeziku koji treba poslati.

P

Ponavljajući ključ Ključ koji se ponavlja onoliko puta, koliko je potrebno da odgovara dužini otvorenog teksta.

Prisluškivač Osoba koja presreće poruke koje joj nisu namijenjene.

Page 53: Racunalna Kriptografija

- 53 -

R

Razbijanje šifre Djelatnost kriptoanalize u cilju pronalaženja algoritma šifre, ključa i dobijanje otvorenog teksta.

ROT13 Cezarova šifra s pomakom 13, koristi se na Internetu za skrivanje spojlera.

Rotor mašina Elektro-mehanički stroj s rotirajućim diskovima, služio je za brzo šifriranje i dešifriranje.

S

Slabost šifre Osobine šifre (statističke, lingvističke...) koje kriptolozi koriste pri njenom razbijanju.

Snaga šifre Sposobnost šifre da odoli napadima kriptoanalize.

Š

Šifarski disk Obično dva prstena jedan unutar drugog, pokretan i nepokretan, po čijim obodima su raspoređeni znakovi. Koristi se umjesto Vigenèreove tablice za brzo šifriranje i dešifriranje.

Šifra Kriptografski algoritam, skup mjera i postupaka za šifriranje i dešifriranje.

Šifra zamjene Šifra kod koje se slovo otvorenog teksta zamjenjuje drugim slovom u šifratu.

Šifra polialfabetske zamjene Šifra kod koje se za svaki sljedeći element (slovo, riječ) mijenja slovo zamjene.

Šifra pomicanja Šifra kod koje se slova otvorenog teksta pomiću u šifratu.

Šifra s autoključem Inačica Vigenèreove šifre, kod koje iza ključne riječi slijedi ponovljen otvoreni tekst (pomaknut za dužinu ključne riječi).

Šifrat Proizvod šifriranja, šifrirani tekst.

Šifra toka Ili šifra niza (eng. stream cipher), kojom se šifrira kontinuirani niz podataka. Rabi se i izraz eng. on-line šifra, kad se podaci šifriraju "u hodu", tijekom slanja.

Šifrirani tekst Skrivena, tajna poruka koja je rezultat izvršenog šifriranja, šifrat.

Šifriranje Proces zakrivanja poruke radi njene zaštite od prisluškivanja.

T

Tabula recta Vigenèreova tablica, osnovna tablica za šifriranje i dešifriranje.

Tajni ključ Kod algoritma asimetričnog ključa, to je ključ kojim primatelj dešifrira poruku; tajan je za svakoga, osim za primatelja.

U

Uzastopni ključ Inačica Vigenèreove šifre (eng. running key), ključ koji ima dužinu otvorenog teksta.

V

Veličina ključa Ili dužina ključa, jedan od osnovnih elemenata snage ili slabosti šifre.

Vigenèreova tablica Vidi: Tabula recta.

Vigenèreova šifra Vrsta polialfabetske šifre, zamjena se vrši s više znakova.

Page 54: Racunalna Kriptografija

- 54 -

Popis slika

Slika 1. Prve tri skupine od ukupno sedam hrvatskog standarda za brajicu (izvor: http://www.centar-vinko-bek-zg.skole.hr/) ................................................................................ 2

Slika 2. Prikaz života i šifrirani zapis u grobnici Khnumhotepa II (izvor: http://edoc3.bibliothek.uni-halle.de/lepsius/) ............................................................................. 4

Slika 3. Skital (štap) sa namotanom kožnom vrpcom i porukom (izvor: http://en.wikipedia.org/) ............................................................................................................. 5

Slika 4. Vigenèreova tablica za šifriranje i dešifriranje, također poznata i kao tabula recta ..... 8

Slika 5. Analiza frekvencije slova u arapskom jeziku (izvor: http://en.wikipedia.org) ........... 13

Slika 6. Slika Enigme izložene u Nacionalnom muzeju za kriptologiju Maryland, SAD (izvor: http://www.nsa.gov) ...................................................................................................... 15

Slika 7. Električna shema Enigme sa prikazom puta električnog signala od pritiska tipke A do osvjetljenja žaruljice D (izvor: http://www.matematiksider.dk) .............................................. 17

Slika 8. Bletchley Park, danas Nacionalni muzej za računalstvo (izvor: http://en.wikipedia.org) ............................................................................................................ 18

Slika 9. Princip tajnosti ključa (izvor: http://luxsci.com/blog) ................................................. 20

Slika 10. Shematski prikaz šifre toka (izvor: http://www.cisco.com) ...................................... 21

Slika 11. Shematski prikaz blok šifre (izvor: http://www.cisco.com) ...................................... 22

Slika 12. Blok dijagram DES algoritma ................................................................................... 24

Slika 13. Detaljni prikaz DES algoritma .................................................................................. 26

Slika 14. Princip šifriranja korištenjem tajnog i javnog ključa (izvor: http://www.data-processing.hk) ........................................................................................................................... 29

Slika 15. Ralph Merkle, Whitfield Diffie i Mark Hellman (izvor: http://fsi.stanford.edu/) ..... 30

Slika 16. Tvorci RSA algoritma, s lijeva nadesno: Ron Rivest, Adi Shamir, Len Adleman (izvor: http://www.usc.edu/) ..................................................................................................... 35

Slika 17. Dijagram infrastrukture javnog ključa (izvor: http://en.wikipedia.org) .................... 37

Slika 18. Postupak prijenosa podataka (izvor: Simon Singh – Code Book, The) .................... 42

Page 55: Racunalna Kriptografija

- 55 -

Popis tablica

Tablica 1. Primjer kodiranja slova brojevima ............................................................................ 9

Tablica 2. Šifriranje pomoću Vigenèreove tablice ..................................................................... 9

Tablica 3. Šifriranje kada slova kodiramo brojevima kao u Tablici 1 ....................................... 9

Tablica 4. Najčešće korištena slova u hrvatskom i europskim jezicima .................................. 12

Tablica 5. Raspored bitova u matrici inicijalne permutacije (IP) ............................................. 23

Tablica 6. Inverzna permutacija bitova inicijalne permutacije (IP) ......................................... 24

Tablica 7. Raspored bitova u matrici proširenja (E) ................................................................. 25

Tablica 8. Raspored bitova u završnoj matrici permutacije (P) ............................................... 25

Tablica 9. Fiksna tablica permutacije PC1 ............................................................................... 27

Tablica 10. Fiksna tablica permutacije PC2 ............................................................................. 27

Tablica 11. Tablica izračunatih vrijednosti za neki 𝑿2T .............................................................. 33

Page 56: Racunalna Kriptografija

- 56 -

Popis literature

[1] R. Domović, Računalna kriptografija – skripta za predavanje, Tehničko veleučilište u Zagrebu, 2011.

[2] S. Singh, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Anchor Books/Doubleday, 1999.

[3] Ibrahim A. Al-Kadi: The origins of cryptology: The Arab contributions, 1992, str. 97–126.

[4] Louis Kruh, Cipher Deavours: The Commercial Enigma: Beginnings of Machine Cryptography, Cryptologia 26(1), Siječanj 2001, str. 1-16.

[5] Friedrich L Bauer, An error in the history of rotor encryption devices, Cryptologia 23(3), Srpanj 1999, str. 206.

[6] From The Archives: The Glow-Lamp Ciphering and Deciphering Machine, Cryptologia 25(3), Srpanj 2001, str. 168.

[7] H. Sebag-Montefiore, Enigma: The Battle for the Code, John Wiley, New York, 2001.

[8] A.Dujella i M. Maretić, Kriptografija, Element, Zagreb, 2007.

[9] phouka.com (pristupljeno: 25.07.2011.)

[10] www.machinae.com (pristupljeno: 25.07.2011.)

[11] www.wikipedia.org (pristupljeno: 25.07.2011.)

[12] www.wikipedia.org (pristupljeno: 6.4.2010.)

[13] www.time.com (pristupljeno: 29.07.2011.)

[14] web.math.hr (pristupljeno 28.8.2011.)