Asimetrični kriptografski RSA algoritam

Similar documents
SHEME DIGITALNOG POTPISA

Prsten cijelih brojeva

Monoalfabetske supstitucijske šifre

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Preddiplomski studij matematike. Školska kriptografija

Mathcad sa algoritmima

HIBRIDNI KRIPTOSUSTAVI

DISKRETNI LOGARITAM. 1 Uvod. MAT-KOL (Banja Luka) ISSN (p), ISSN (o) Vol. XVII (2)(2011), 43-52

Šime Šuljić. Funkcije. Zadavanje funkcije i područje definicije. š2004š 1

ALGORITAM FAKTORIZACIJE GNFS

TEORIJA SKUPOVA Zadaci

Projektovanje paralelnih algoritama II

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku

Metode izračunavanja determinanti matrica n-tog reda

Mersenneovi i savršeni brojevi

Hornerov algoritam i primjene

SITO POLJA BROJEVA. Dario Maltarski PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: Doc. dr. sc.

DES I AES. Ivan Nad PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: doc.dr.sc.

Maja Antolović Algoritmi u teoriji brojeva

Karakteri konačnih Abelovih grupa

Red veze za benzen. Slika 1.

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

BROJEVNE KONGRUENCIJE

Geometrijski smisao rješenja sustava od tri linearne jednadžbe s tri nepoznanice

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

Ivan Soldo. Sažetak. U članku se analiziraju različiti načini množenja matrica. Svaki od njih ilustriran je primjerom.

PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Marina Zrno KOMUTATIVNI PRSTENI. Diplomski rad. Voditelj rada: prof.dr.sc.

pretraživanje teksta Knuth-Morris-Pratt algoritam

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

MATEMATIČKE METODE U KRIPTOGRAFIJI

Uvod u relacione baze podataka

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku DIOFANTSKE JEDNADŽBE

Vektori u ravnini i prostoru. Rudolf Scitovski, Ivan Vazler. 10. svibnja Uvod 1

Ariana Trstenjak Kvadratne forme

KVADRATNE INTERPOLACIJSKE METODE ZA JEDNODIMENZIONALNU BEZUVJETNU LOKALNU OPTIMIZACIJU 1

Fajl koji je korišćen može se naći na

ASIMETRIČNI KRIPTOSUSTAV NTRU

Fibonaccijev brojevni sustav

Pellova jednadžba. Pell s equation

Quasi-Newtonove metode

Pitagorine trojke. Uvod

Funkcijske jednadºbe

Sveučilište J.J.Strossmayera u Osijeku Odjel za matematiku. Sveučilišni preddiplomski studij matematike

Ksenija Doroslovački KOMBINATORIKA INTERPRETIRANA FUNKCIJAMA I NJIHOVIM OSOBINAMA MASTER RAD. NOVI SAD jun 2008

O aksiomu izbora, cipelama i čarapama

Kvaternioni i kvaternionsko rješenje kvadratne jednadžbe

HRVATSKA MATEMATIČKA OLIMPIJADA

Simetrične matrice, kvadratne forme i matrične norme

NIZOVI I REDOVI FUNKCIJA

Sveučilište Josipa Jurja Strossmayera u Osijeku Odjel za matematiku

ELIPTIČKE KRIVULJE I KRIPTIRANJE. Zdravko Musulin PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad

Položaj nultočaka polinoma

Asocijativna polja POGLAVLJE Ključevi kao cijeli brojevi

Mirela Nogolica Norme Završni rad

Nilpotentni operatori i matrice

Matrične dekompozicije i primjene

Metode praćenja planova

Matematika (PITUP) Prof.dr.sc. Blaženka Divjak. Matematika (PITUP) FOI, Varaždin

NTRU KRIPTOSUSTAV. Valentina Pribanić PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad

Teorem o reziduumima i primjene. Završni rad

Pogled u povijest razvoja algoritama

Vedska matematika. Marija Miloloža

Matrice u Maple-u. Upisivanje matrica

Formule za udaljenost točke do pravca u ravnini, u smislu lp - udaljenosti math.e Vol 28.

Uvod u analizu (M3-02) 05., 07. i 12. XI dr Nenad Teofanov. principle) ili Dirihleov princip (engl. Dirichlet box principle).

Sveučilište u Zagrebu Fakultet prometnih znanosti Diplomski studij. Umjetna inteligencija - Genetski algoritmi 47895/47816 UMINTELI HG/

ZANIMLJIVI ALGEBARSKI ZADACI SA BROJEM 2013 (Interesting algebraic problems with number 2013)

Osobine metode rezolucije: zaustavlja se, pouzdanost i kompletnost. Iskazna logika 4

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

ALGORITMI ZA ISPITIVANJE DJELJIVOSTI

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Mirjana Mikec.

Metrički prostori i Riman-Stiltjesov integral

Napredni standard enkripcije (AES)

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku. Velibor Gojić. Blok dizajni. Diplomski rad. Osijek, 2014.

Matrice traga nula math.e Vol. 26. math.e. Hrvatski matematički elektronički časopis. Matrice traga nula. komutator linearna algebra. Sažetak.

DISTRIBUIRANI ALGORITMI I SISTEMI

Kriptologija. Savršena bezbednost

Uvod u numericku matematiku

Racionalne Diofantove šestorke

Iskazna logika 1. Matematička logika u računarstvu. oktobar 2012

ALGORITMI PODIJELI PA VLADAJ

Nekoliko kombinatornih dokaza

Turingovi strojevi Opis Turingovog stroja Odluµcivost logike prvog reda. Lipanj Odluµcivost i izraµcunljivost

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni preddiplomski studij matematike. Ivana Oreški REKURZIJE.

AKSIOM IZBORA I EKVIVALENCIJE

Zadatci sa ciklusima. Zadatak1: Sastaviti progra koji određuje z ir prvih prirod ih rojeva.

Oracle Spatial Koordinatni sustavi, projekcije i transformacije. Dalibor Kušić, mag. ing. listopad 2010.

LINEARNI MODELI STATISTIČKI PRAKTIKUM 2 2. VJEŽBE

Banach Tarskijev paradoks

Harmonijski brojevi. Uvod

ANALYSIS OF THE RELIABILITY OF THE "ALTERNATOR- ALTERNATOR BELT" SYSTEM

Dr. Željko Jurić: Matematička logika i teorija izračunljivosti Radna skripta za istoimeni kurs na Elektrotehničkom fakultetu u Sarajevu.

Konformno preslikavanje i Möbiusova transformacija. Završni rad

Sveučilište J.J. Strossmayera u Osijeku. Odjel za matematiku. David Komesarović. Mooreovi grafovi. Diplomski rad. Osijek, 2017.

Pojam funkcije u nastavi matematike nekad i danas

Neke klase maksimalnih hiperklonova

KONAČNE GEOMETRIJE. Predavanja. Sveučilište u Zagrebu. Prirodoslovno-matematički fakultet. Matematički odsjek. Juraj Šiftar Vedran Krčadinac

AKSIOME TEORIJE SKUPOVA

Mostovi Kaliningrada nekad i sada

Transcription:

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Igor Jakopiček Asimetrični kriptografski RSA algoritam Diplomski rad Osijek, 2010.

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Igor Jakopiček Asimetrični kriptografski RSA algoritam Diplomski rad Voditelj: prof.dr.sc. Mario Essert Osijek, 2010.

Sadržaj Uvod 1 1 Kriptografija 2 1.1 Razvoj kriptografije................................ 2 1.2 Osnovni pojmovi................................. 5 1.3 Matematički temelji................................ 6 1.3.1 Funkcije.................................. 6 1.3.2 Osnove teorije brojeva.......................... 8 1.3.3 Kriptosustavi............................... 9 1.4 Simetrična kriptografija.............................. 11 1.4.1 Definicija................................. 11 1.4.2 Supstitucijske šifre............................ 11 1.4.3 Transpozicijske šifre........................... 13 1.4.4 Moderni blokovni kriptosustavi..................... 13 1.5 Asimetrična kriptografija............................. 14 1.5.1 Ideja javnog ključa............................ 14 1.5.2 Kriptosustavi zasnovani na problemu diskretnog logaritma...... 15 1.5.3 Kriptosustavi zasnovani na problemu faktorizacije........... 16 2 RSA kriptosustav 17 2.1 Definicija..................................... 17 2.2 Primjena...................................... 18 2.2.1 Generiranje ključeva........................... 18 2.2.2 Šifriranje i dešifriranje.......................... 19 2.2.3 Digitalni potpis.............................. 19 2.3 Kriptoanaliza................................... 20 3 Implementacija RSA kriptosustava 25 3.1 Algoritmi iz teorije brojeva............................ 25 3.1.1 Složenost algoritama........................... 25 3.1.2 Modularno potenciranje......................... 26 3.1.3 Generiranje velikih prostih brojeva................... 26 3.1.4 Računanje inverznog elementa za množenje............... 28 3.2 Primjer RSA algoritma u Python programskom jeziku............. 29 3.2.1 O Pythonu................................ 29 3.2.2 RSA algoritam sa automatskim generiranjem ključeva......... 30 i

Literatura 38 Sažetak 39 Summary 40 Životopis 41 ii

Uvod Komunikacija se javila vrlo rano u povijesti čovječanstva, no uvijek je postojao problem privatnosti u komunikaciji. Neke je poruke, iz bilo kojeg razloga, potrebno dostaviti samo onima kojih se tiču, u neizmijenjenom stanju i s potvrdom identiteta pošiljaoca. To je jedna od prednosti koje je donio razvoj kriptografije. U početku razvoja kriptografije najčešće korištene metode za šifriranje podataka bile su supstitucija (zamjena) i transpozicija (premještanje) osnovnih elemenata teksta, a čija se kombinacija susreće i danas u modernim simetričnim kriptosustavima. Početkom sedamdesetih godina 20. stoljeća pojavili su se asimetrični kriptosustavi ili kriptosustavi s javnim ključem kod kojih su se za šifriranje koristile jednosmjerne funkcije pa je samo funkcija za dešifriranje morala biti tajna, dok je funkcija za šifriranje mogla biti javna. Tema ovog rada je najpoznatiji asimetrični kriptografski algoritam - RSA. U prvom poglavlju predstavljena je kriptografija kroz povijest, uvedeni su osnovni pojmovi te je objašnjena razlika izmedu simetrične i asimetrične kriptografije. U drugom je poglavlju predstavljen RSA kriptografski algoritam, opisani su postupci generiranja ključeva, šifriranja, dešifriranja i digitalnog potpisa pomoću RSA algoritma te je dan kratak osvrt na sigurnost i neke probleme praktične implementacije. Treće poglavlje opisuje teorijsku i praktičnu implementaciju RSA algoritma, sadrži pseudokodove algoritama iz teorije brojeva te primjer RSA algoritma napisan u Python programskom jeziku. 1

1 Kriptografija 1.1 Razvoj kriptografije Riječ kriptografija dolazi od grčkih riječi kriptos (grč. κριπτ oσ), što znači tajan, skriven i grafien (grč. γραϕιεν) što znači pisati, pa bi se mogla doslovno prevesti kao tajnopis. U starom vijeku smatralo se da se kriptografijom komunicira s demonima i zlim silama pa se kriptografija povezivala s crnom magijom. Oko 2000. god. pr. Kr. Egipćani su razvili hijeroglife koji, iako nisu bili izmišljeni radi skrivanja teksta, predstavljaju najstariji oblik danas poznatog kriptiranog pisma. 1822. godine francuski arheolog J. F. Champollion na temelju jednog trojezičnog natpisa uspio je dešifrirati prvi niz fonetskih hijeroglifa. Izmedu 500. i 600. godine pr. Kr. koristila se hebrejska šifra koja se zasnivala na principu recipročne zamjene slova abecede. Spartanci su 400. g. pr. Kr. koristili štap nazvan skital oko kojega se namotao tanak list papirusa na koji bi se uzduž štapa pisala poruka, a da bi se poruka dekriptirala bilo je potrebno imati štap istog promjera. Prethodno opisana vrsta šifriranja zove se translacija ili pomicanje, jer nas zanima svako n-to slovo teksta. Julije Cezar 50. g. pr. Kr. Slika 1.1: Skital u državnim je komunikacijama koristio jednostavnu supstituciju na običnoj abecedi (kružni pomak cijele abecede za dva mjesta). Prvi sustav koji je smanjio broj simbola, koji se koriste za kriptiranje, bio je Polybiusov kvadrat. Slova abecede postavljala su se u kvadrat 5x5, redovi i stupci numerirali su se brojevima od 1 do 5 tako da svako slovo predstavlja odgovarajući par retka i stupca, a dekriptiranje se obavljalo tako da se svakom od parova pridruživalo odgovarajuće slovo abecede. Riječ sifra koristeći Polybiusov kvadrat izgledala bi: 44 42 12 34 11. Šifriranje supstitucijom dalje se razvijalo tako da se pomicanje slova nije činilo proizvoljno, već na osnovi riječi ili 1 2 3 4 5 1 A B C D E 2 F G H I J fraze koja se nazivala ključ. Prvih nekoliko slova abecede zamijenilo bi se ključem, a ostala bi se popunila ostatkom slova. 3 K L M N O 4 P Q R S T Prednost ove metode, koja se naziva monoalfabetna zamjena, 5 U V W X Y/Z jest da primatelj, koji zna ključ, lako može dešifrirati poruku, Slika 1.2: Polybiusov kvadrat a nedostatak je što je svako slovo zamijenjeno točno jednim drugim slovom pa je napadač mogao nekom od statističkih metoda pronaći izvornu poruku. U 14. stoljeću arapski i talijanski kriptografi koristili su metodu analize frekvencija koja se zasnivala na prebrojavanju učestalosti ponavljanja znakova u kriptiranom tekstu. 2

Tijekom srednjeg vijeka kriptografija je počela napredovati. U 15. se stoljeću pomoću bakrenih diskova s ugraviranom abecedom kriptira polialfabetnom supstitucijom koja dopušta da više različitih znakova u kriptiranom tekstu predstavlja jedan znak jasnog teksta pa su frekvencije pojavljivanja svih znakova bile podjednake. Na taj način onemogućeno je pronalaženje šifre statističkim metodama, pa je ovaj tip šifriranja najčešće korišten tijekom povijesti, a svoj je oblik zadržao do danas. U 16. stoljeću počinju se koristiti šifre koje tijekom kriptiranja jednog teksta promjene nekoliko ključeva sa jasno istaknutim mjestima gdje se prethodni ključ promijenio. Njemački svećenik Trithemius ABCDEFGHIJKLMNOPQRSTUVWXYZ Jasan tekst razvio je tablicu koja je u svakom retku ponavljala cijelu abecedu, samo što je abeceda OFGUQHXSZACNDMRTVWEJBLIKPY T01 FGUQHXSZACNDMRTVWEJBLIKPYO T00 u svakom sljedećem redu bila ciklički pomaknuta za jedan znak u desno. Prvo slovo YOFGUQHXSZACNDMRTVWEJBLIKP T02 PYOFGUQHXSZACNDMRTVWEJBLIK T03. poruke kriptiralo se prvim redom tablice, GUQHXSZACNDMRTVWEJBLIKPYOF T25 drugo drugim itd., pa se ključ ponavljao Slika 1.3: Šifra sa promjenjivim ključem svakih 26 znakova kriptiranog teksta. Ovu tehniku proširili su Giovanni Batista Belaso te Blaise de Vigènere. Vigènerova šifra koristi Trithemiusovu tablicu, a kao ključ za kriptiranje koristio je ili jasni ili kriptirani tekst. U 17. i 18. stoljeću u Europi se osnivaju tzv. Mračni uredi koji su se bavili dešifriranjem presretnutih vojnih i političkih poruka. Koriste se i knjige šifri tako da se svaka riječ teksta zamijenila brojem koji je označavao njezin položaj u knjizi. 1795. godine Thomas Jefferson izumio je šifarnik s kotačem koji se sastojao od skupa kotača s nasumičnim poretkom abecede. Okretanjem kotača složila su se slova koja čine poruku u jednom redu, nakon čega bi se kotači fiksirali, a bilo koji drugi red slova mogao se koristiti kao kriptirana poruka. Dekriptiranje se obavljalo tako da su se kotači medusobno okretali dok se ne bi pojavila poruka koja ima lingvističkog smisla. Slika 1.4: Šifarnik s kotačem U 19. stoljeću zbog izuma telegrafa poraslo je zanimanje za kriptografiju, a koristi se Vigènerova šifra sa kratkom ponavljajućom ključnom riječi. Koristi se i sustav sa dva diska, jedan u drugom. Vanjski disk sadržavao je 26 slova engleske abecede i brojeve, a unutarnji samo slova abecede. Kriptiralo se tako da se unutarnji disk vrtio sve dok se željeno slovo nije pojavilo na vrhu, a broj okretaja diska potrebnih da bi se to dogodilo, bio je kriptirani tekst. Prva bigramska šifra, kojom se kriptirao par slova tako da je rezultat ovisio o oba slova, bio je playfair sustav. Razvijena je i tomografska šifra koja je svakom znaku teksta dodjeljivala dvoznamenkasti broj prema tablici. Brojevi su se zapisivali tako da su prve znamenke činile red iznad drugih znamenki, zatim se donji red množio sa 9, a takvi uredeni parovi su se ponovno prema tablici pretvarali u kriptirani tekst. Friedrich Kasiski je 1863. godine razvio metodu kriptoanalize koja je Slika 1.5: Sustav diskova mogla razbiti skoro sve šifre toga vremena. Metoda se sastojala od pronalaženja ponavljanja nizova znakova u kriptiranom tekstu da bi se dobila dužina ključa (N), nakon čega se primjenjivala statistika na svakom N-tom znaku. 3

U 20. stoljeću napravljeni su prvi elektromehanički uredaji za kriptiranje, što je omogućilo brže i lakše kriptiranje poruka. Nakon izuma prvih kompjutora, 60-tih godina prošloga stoljeća, razvijeni su prvi simetrični kriptografski algoritmi koji predstavljaju početak moderne kriptografije. Početkom 20. stoljeća osnivaju se kriptografske organizacije diljem svijeta, Soba 40 u Engleskoj, MI-8 u Americi i druge, koje se u Prvom svjetskom ratu koriste za razbijanje njemačkih poruka. Nedugo nakon rata Nijemac Arthur Schrebius razvio je Enigmu, sustav za kriptografsku zaštitu informacija, koju njemačka vojska uvodi kao standardni način kriptiranja. Enigma je elektromehanički uredaj koji se sastojao od 26 tipki, zaslona od 26 žaruljica za prikaz kriptiranog izlaza, tri mehanička rotora i električne prespojne ploče, a napajala se pomoću ugradene baterije. Pritiskom na tipku kroz mrežu kontakata rotora i prespojne ploče zatvara se strujni krug i pali se odgovarajuća žarulja koja označava kriptirano slovo. Uredaj za kriptiranje američke vojske SIGABA jedini je tijekom Drugog svjetskog rata ostao neprobijen od strane neprijatelja. Koristio je iste principe rotora kao njemačka Enigma, ali rotori nisu bili fiksni, nego se 10 od 15 rotora moglo izvaditi i premjestiti na novu lokaciju. (a) Enigma i Sigaba Slika 1.6: Elektromehanički uredaji (b) Tunny i Sturgeon Njemačka vojska koristila je Tunny, tzv. on-line uredaj za kriptiranje, koji je istovremeno mogao kriptirati i slati poruke, mogao se koristiti i u kamionu, a koristio je inter- nacionalnu telefonsku Baudot šifru. Kao i Tunny, Sturgeon je bio on-line uredaj za kriptiranje sposoban za brze teleprinter poruke, ali se poruke nisu slale preko radija, nego preko žice. Japanski strojevi za enkripciju podataka, poznati po imenima Jade i Purple, koristili su fiksne telefonske sklopke koje su obavljale iste funkcije kao i žični rotor. Za vrijeme Drugog svjetskog rata za probijanje Enigmine šifre razvijena je Turingova bomba koja pretražuje sve kombinacije postavki rotora u potrazi za ispravnom, a radi na načelu pretpostavljenog sadržaja poruke (engl. cribs ). Prvi sustav za sigurno glasovno komuniciranje putem telefona bio je Sigsaly, koji je tijekom Drugog svjetskog rata postavljen na 12 lokacija diljem svijeta i nikada nije probijen. Koristio je snimke pozadinske buke za ostvarivanje sigurnosti, tako da su primatelj i pošiljatelj imali kopiju acetat snimaka od kojih je jedna služila za kriptiranje, a druga za dekriptiranje. 1960-ih u IBM-ovom laboratoriju osmišljen je simetrični algoritam pod nazivom Lucifer na temelju kojega nastaje algoritam DES (engl. Data Encryption Standard) za potrebe američke vlade. DES koristi 64-bitni ključ od kojeg je 8 bita unaprijed poznato. 1977. godine Ronald R. Rivest, Adi Shamir i Leonard M. Adleman razvili su prvi asimetrični algoritam i nazvali ga RSA, prema svojim inicijalima. 4

To je prvi algoritam koji upotrebljava sustav kriptiranja sa javnim ključevima, a svoju sigurnost zasniva na težini faktorizacije velikih brojeva. Algoritam je objavljen u časopisu Scientific American i svatko je mogao dobiti tehničku specifikaciju. 1990. godine izumljena je kvantna kriptografija koja koristi fotone za prijenos niza bitova ključa za kriptiranje poruke. Inicijalno je korištena Vernamova šifra, pošiljatelj i primatelj morali su biti povezani optičkim kabelom, a bilo Slika 1.7: Rivest, Shamir i Adleman 2003. je moguće detektiranje uljeza u komunikaciji i mjere koliko je bitova najviše mogao uhvatiti. 1991. godine Phil Zimmermann je objavio prvu verziju PGP-a (engl. Pretty Good Privacy), programskog paketa otvorenog koda, koji je postao svjetskim standardom. NSA (engl. National Security Agency) i IBM proizveli su Harvest, elektronski uredaj koji je koristio Tractor, sustav traka velikih brzina. To je bio prvi potpuno automatski sustav, prethodnik današnjih sustava za pohranu podataka kao što je Storage Trek. Cray Research Inc. i NSA razvili su superračunalo XMP-22 brzine 420 megaflops 1, koje se koristilo od 1983. do 1993., te njegovog nasljednika YMP, brzine 1,67 gigaflops, koji je umirovljen 2000. godine i izložen u muzeju. 2009. godine Cray XT5 Jaguar, sa brzinom od 1,75 petaflops, proglašen je najbržim superračunalom na svijetu da bi ga u listopadu 2010. godine nadmašio kineski sustav Tianhe-1A maksimalnom brzinom od 2,57 petaflops. 1.2 Osnovni pojmovi Definicija 1.1 Kriptografija je znanstvena disciplina koja proučava metode za slanje poruka u takvom obliku u kojem ih može pročitati samo onaj kome su namijenjene. Osnovni je zadatak kriptografije omogućiti komunikaciju dvjema osobama (pošiljatelju i primatelju) preko nesigurnog komunikacijskog kanala (telefonske linije, računalne mreže i sl.) na način da treća osoba (njihov protivnik), koja može nadzirati komunikacijski kanal, ne može razumjeti njihove poruke. Poruku koju pošiljatelj želi poslati primatelju zvat ćemo otvoreni tekst (engl. plaintext). To može biti tekst na njihovom materinjem jeziku, numerički tekst ili nešto drugo. Pošiljatelj transformira otvoreni tekst pomoću unaprijed dogovorenog ključa (engl. key). Taj postupak zove se šifriranje, a dobiveni rezultat zove se šifrat (engl. ciphertext) ili kriptogram. Nakon toga pošiljatelj preko komunikacijskog kanala šalje šifrat koji primatelj pomoću ključa može dešifrirati i odrediti otvoreni tekst. Protivnik može prisluškujući doznati sadržaj šifrata, ali ne može odrediti otvoreni tekst. Kriptoanaliza ili dekriptiranje je znanstvena disciplina koja proučava postupke za čitanje skrivenih poruka bez poznavanja ključa. Kriptologija je grana znanosti koja proučava kriptografiju i kriptoanalizu. Kriptografski algoritam ili šifra je matematička funkcija koja se koristi za šifriranje i dešifriranje. Općenito, radi se o dvjema funkcijama, jednoj za šifriranje, a drugoj za dešifriranje, koje preslikavaju osnovne elemente otvorenog teksta (najčešće slova, bitove, te grupe slova ili 1 FLOPS (engl. floationg point operations per second) je broj operacija s pomičnom točkom u sekundi 5

bitova) u osnovne elemente šifrata i obratno. Funkcije se biraju iz odredene familije funkcija u ovisnosti o ključu, a skup svih mogućih vrijednosti ključeva nazivamo prostor ključeva. Kod simetričnih kriptosustava koristi se tajni ključ. On je tajan jer se iz ključa za šifriranje lako može dobiti ključ za dešifriranje, koji mu je najčešće identičan. Kod asimetričnih kriptosustava koristi se javni ključ. Ključ je javan jer se iz njega ne može dovoljno lako izvesti ključ za dešifriranje. Kriptosustav se sastoji od kriptografskog algoritma te svih mogućih otvorenih tekstova, šifrata i ključeva. Prilikom komunikacije kod kriptosustava s javnim ključem postavlja se pitanje vjerodostojnosti ili autentičnosti poruke. Digitalni potpis je kriptosustav s javnim ključem koji omogućuje autentifikaciju (primatelj može provjeriti je li poruku zaista poslao pošiljatelj) i nepobitnost (pošiljatelj ne može poreći da je poslao poruku ako primatelj ima poruku s njegovim potpisom). 1.3 Matematički temelji 1.3.1 Funkcije Pojam skupa predstavlja cjelinu koju čine elementi ili članovi toga skupa. Skup se zadaje nabrajajući članove u vitičastim zagradama, npr. A = {a, b, c}. Za pisanje činjenice da je a element skupa A koristi se oznaka a A, a da x nije element skupa A označava se x A. Definicija 1.2 Neka su D i K bilo koja dva neprazna skupa. Postupak f koji svakom elementu x D pridružuje točno jedan element y K zove se funkcija ili preslikavanje sa D u K i pišemo f : D K. Skup D zove se domena ili područje definicije, a skup K kodomena ili područje vrijednosti funkcije f. Svakom x D odgovarajući (jedinstveni) pridruženi element y K označava se s f(x) i zove slika elementa x ili vrijednost funkcije f u točki x. Skup svih vrijednosti funkcije f, tj. skup R(f) = {f(x) : x D} zove se slika funkcije f. Definicija 1.3 Kaže se da je funkcija f : D K injekcija (ili 1-1 preslikavanje) ako se različiti elementi domene preslikaju u različite slike, tj. x 1 x 2 f(x 1 ) f(x 2 )( x 1, x 2 D) (1.1) Definicija 1.4 Kaže se da je funkcija f : D K surjekcija ako je R(f) = K. Definicija 1.5 Kaže se da je funkcija f : D K bijekcija (ili obostrano jednoznačno preslikavanje) ako je ona i injekcija i surjekcija. Definicija 1.6 Neka je f : D K bijekcija. Tada postoji funkcija f 1 : K D definirana formulom f 1 (y) := x, gdje je x D jedinstveni element takav da je f(x) = y. Funkcija f 1 zove se inverzna funkcija funkcije f. Ako bismo htjeli da funkcija šifriranja bude javna, morao bi se konstruirati takav kriptosustav da je iz funkcije šifriranja nemoguće, barem ne u nekom razumnom vremenu, odrediti funkciju dešifriranja. Odredeni tipovi funkcija, poput jednosmjernih i osobnih jednosmjernih funkcija, važni su u provedbi ove ideje. 6

Definicija 1.7 Za funkciju f : D K kaže se da je jednosmjerna (engl. one-way) ako je f(x) lako izračunati za svaki x D, a f 1 (y) teško izračunati za uglavnom sve elemente y K. Primjer 1.1 Neka je zadan skup D = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} i neka je f(x) = y 2 x (mod 11), tj. y je ostatak pri dijeljenju 2 x sa 11. Funkcija je prikazana u tablici: x 1 2 3 4 5 6 7 8 9 10 f(x) 2 4 8 5 10 9 7 3 6 1 Npr. za broj 8 lako se izračuna y = 3 2 8 (mod 11). No, ako je zadan y = 3, relativno teško bi se pronašao x = 8 bez tablice pred sobom. Jednosmjerna funkcija u kriptografiji, takva da ne postoji jednoznačna inverzna funkcija kojom bi se cijela kodomena mogla preslikati u domenu, zapravo je surjekcija. Definicija 1.8 Osobna (engl. trapdoor) jednosmjerna funkcija je jednosmjerna funkcija f : D K za koje je poznat neki dodatni podatak pomoću kojeg je lakše za zadani y K izračunati f 1 (y) = x D. Često korištene funkcije u kriptografiji su permutacije. Definicija 1.9 Neka je n proizvoljan prirodan broj. Permutacija skupa S = {1, 2,..., n} je bilo koja bijekcija p : S S (Često se kaže i da je p permutacija od n elemenata). Skup svih permutacija od n elemenata označava se sa S n. U praksi je permutacije uobičajeno zapisivati u obliku tablice, gdje gornji red predstavlja domenu, a donji sliku funkcije permutacije. ( ) 1 2... n p = p(1) p(2)... p(n) Funkcija p je bijekcija pa se svaki element skupa {1,2,...,n} u donjem retku pojavljuje točno jednom. Budući da bijekcije imaju inverz, p 1 se dobiva zamjenom redaka u tablici. Redoslijed elemenata nije bitan, ali je važno da se elementi zamijene u oba reda tablice. ( ) p(2) p(1) p(3)... p(n) p 1 = 2 1 3... n Primjer 1.2 Neka je S={1,2,3,4} i neka je definirana permutacija p : S S p(1) = 4 p(2) = 3 p(3) = 1 p(4) = 2 ( ) ( ) 1 2 3 4 3 1 4 2 p = p 1 = 4 3 1 2 2 3 1 4 Involucije su funkcije koje su same svoj inverz. Definicija 1.10 Neka je S konačan skup i neka je f bijekcija f : S S. Funkcija f je involucija ako je f = f 1. Primjer 1.3 i = ( 1 2 3 4 4 3 2 1 ) 7

1.3.2 Osnove teorije brojeva Za razumijevanje matematičkog aparata korištenog u kriptografiji potrebno je poznavanje nekih pojmova iz teorije brojeva, koji su uvedeni u obliku definicija i teorema bez dokaza. Definicija 1.11 Neka su a 0 i b cijeli brojevi. Kaže se da je b djeljiv s a, odnosno da a dijeli b, ako postoji cijeli broj x takav da je b = ax, što se zapisuje sa a b. Ako b nije djeljiv sa a, onda se piše a b. Ako a b, onda se još kaže da je a djelitelj od b, a da je b višekratnik od a. Oznaka a k b će značiti da a k b, ali a k+1 b. Teorem 1.1 (Teorem o dijeljenju s ostatkom) Za proizvoljan prirodan broj a i cijeli broj b postoje jedinstveni cijeli brojevi q i r takvi da je b = qa + r, 0 r < a. Definicija 1.12 Neka su b i c cijeli brojevi. Cijeli broj a zove se zajednički djelitelj od b i c ako a b i a c. Ako je barem jedan od brojeva b i c različit od nule, onda postoji samo konačno mnogo zajedničkih djelitelja od b i c. Najveći medu njima zove se najveći zajednički djelitelj od b i c i označava se s (b, c). Definicija 1.13 Kaže se da su cijeli brojevi a i b relativno prosti ako je (a, b) = 1. Za cijele brojeve a 1, a 2,..., a n kaže se da su relativno prosti ako je (a 1, a 2,..., a n ) = 1, a da su u parovima relativno prosti ako je (a i, a j ) = 1 za sve 1 i, j n, i j. Teorem 1.2 (Euklidov algoritam) Neka su b i c > 0 cijeli brojevi, te neka je uzastopnom primjenom Teorema 1.1 dobiven niz jednakosti b = cq 1 + r 1, 0 < r 1 < c, c = r 1 q 2 + r 2, 0 < r 2 < r 1, r 1 = r 2 q 3 + r 3, 0 < r 3 < r 2,. r j 2 = r j 1 q j + r j, 0 < r j < r j 1, r j 1 = r j q j+1. Tada je (b,c) jednak r j, posljednjem ostatku različitom od nule. Propozicija 1.1 Euklidov algoritam uvijek daje najveći zajednički djelitelj u konačno mnogo koraka. Definicija 1.14 Prirodan broj p > 1 se zove prost ako p nema niti jednog djelitelja d takvog da je 1 < d < p. Ako prirodan broj a > 1 nije prost, onda se kaže da je složen. Teorem 1.3 (Osnovni teorem aritmetike) Faktorizacija svakog prirodnog broja n > 1 na proste faktore je jedinstvena do na poredak prostih faktora. Definicija 1.15 Neka su a 1, a 2,..., a n cijeli brojevi različiti od nule. Najmanji prirodan broj c za koji vrijedi da a i c za sve i = 1, 2,..., n zove se najmanji zajednički višekratnik i označava s [a 1, a 2,..., a n ]. 8

Definicija 1.16 Ako cijeli broj m 0 dijeli razliku a b, kaže se da je a kongruentan b modulo m i pišemo a b (mod m). U protivnom, kaže se da a nije kongruentan modulo m i piše a b (mod m). Definicija 1.17 Skup {x 1,..., x m } se zove potpuni sustav ostataka modulo m ako za svaki y Z postoji točno jedan x j takav da je y x j (mod m). Teorem 1.4 (Kineski teorem o ostacima) Neka su m 1, m 2,..., m r u parovima relativno prosti brojevi, te neka su a 1, a 2,..., a r cijeli brojevi. Tada sustav kongruencija x a 1 (mod m 1 ), x a 2 (mod m 2 ),..., x a r (mod m r ) ima rješenja. Ako je x 0 jedno rješenje, onda su sva rješenja sustava dana sa x x 0 (mod m 1 m 2 m r ). Definicija 1.18 Reducirani sustav ostataka modulo m je skup cijelih brojeva r i sa svojstvom da je (r i, m) = 1, r i r j (mod m) za i j, te da za svaki cijeli broj x takav da je (x, m) = 1 postoji r i takav da je x r i (mod m). Jedan reducirani sustav ostataka modulo m je skup svih brojeva a {1, 2,..., m} takvih da je (a, m) = 1. Jasno je da svi reducirani sustavi ostataka modulo m imaju isti broj elemenata. Taj broj označava se s φ(m), a funkcija φ zove se Eulerova funkcija. Drugim riječima, φ(m) je broj brojeva u nizu 1, 2,..., m koji su relativno prosti sa m. Teorem 1.5 (Eulerov teorem) Ako je (a,m)=1, onda je a φ(m) 1 (mod m). Teorem 1.6 Eulerova funkcija je multiplikativna, što znači da je φ(mn) = φ(m)φ(n) ako je (m, n) = 1. Definicija 1.19 Neka su a i n relativno prosti prirodni brojevi. Najmanji prirodni broj d sa svojstvom da je a d 1 (mod n) zove se red od a modulo n. Još se kaže da a pripada eksponentu d modulo n. Definicija 1.20 Ako je red od a modulo n jednak φ(n), onda se a zove primitivni korijen modulo n. 1.3.3 Kriptosustavi Definicija 1.21 Kriptosustav je uredena petorka (P,C,K,ε,D), gdje je P konačan skup svih mogućih osnovnih elemenata otvorenog teksta, C konačan skup svih mogućih osnovnih elemenata šifrata, K konačan skup svih mogućih ključeva, ε skup svih funkcija šifriranja i D skup svih funkcija dešifriranja. Za svaki K K postoji funkcija šifriranja e K ε i odgovarajuća funkcija dešifriranja d K D. Pritom su e K : P C i d K : C P funkcije sa svojstvom da je d K (e K (x)) = x za svaki x P. Iz svojstva d K (e K (x)) = x slijedi da funkcije e K moraju biti injekcije. Ako bismo imali e K (x 1 ) = e K (x 2 ) = y za dva različita otvorena teksta x 1 i x 2, onda primatelj ne bi mogao odrediti treba li y dešifrirati u x 1 ili x 2, odnosno ne bi bila definirana funkcija dešifriranja d K (y). U skladu s tim, ako je P = C, onda su funkcije e K permutacije. 9

Kriptosustave se obično klasificira prema trima kriterijima: 1. Tip operacija koje se koriste pri šifriranju supstitucijske šifre u kojima se svaki element otvorenog teksta zamjenjuje nekim drugim elementom kriptosustavi koji kombiniraju ove dvije metode 2. Način obrade otvorenog teksta blokovne šifre kod kojih se obraduju jedan po jedan blok elemenata otvorenog teksta koristeći jedan te isti ključ K transpozicijske šifre u kojima se elementi otvorenog teksta permutiraju (npr. skital) protočne šifre (engl. stream cipher) kod kojih se elementi otvorenog teksta obraduju jedan po jedan koristeći pritom paralelno generirani niz ključeva (engl. keystream) 3. Tajnost i javnost ključeva simetrični ili konvencionalni kriptosustavi kod kojih se ključ za dešifriranje može izračunati poznavajući ključ za šifriranje jer su oni najčešće identični, a čija sigurnost leži u tajnosti ključa (zato se zovu i kriptosustavi s tajnim ključem) asimetrični ili kriptosustavi s javnim ključem kod kojih se ključ za dešifriranje, koji je tajan, ne može lako izračunati iz ključa za šifriranje, koji je javan. U daljnjim primjerima kriptosustava koristit će se engleski alfabet od 26 slova, a u otvorenom tekstu na hrvatskom jeziku zamijenit će se Č i Ć s C, a D, DŽ, Lj, Nj, Š i Ž redom s DJ, DZ, LJ, NJ, S i Z. U sljedećoj tablici svakom slovu alfabeta pridružen je njegov numerički ekvivalent. 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 Skup {0, 1, 2,..., 25} označavat će se sa Z 26, a na njemu će se definirati operacije zbrajanja, oduzimanja i množenja na način da se rezultat standardnih operacija na kraju zamijeni s njegovim ostatkom pri dijeljenju s 26, za što će se koristiti oznake a + 26 b ili (a + b)mod 26, te analogno za oduzimanje i množenje. Skup Z 26 uz operacije + 26 i 26 je prsten, što znači da su operacije zbrajanja i množenja zatvorene (rezultat je ponovno iz Z 26 ), komutativne i asocijativne, te vrijedi distributivnost množenja prema zbrajanju, a za obje operacije postoje neutralni element i inverz. Ako dva cijela broja a i b daju isti ostatak pri dijeljenju s 26, to će se zapisivati s a b (mod 26) i govoriti da su a i b kongruentni modulo 26. Analogno bi se definirao skup Z m i operacije na njemu za proizvoljan prirodan broj m. 10

1.4 Simetrična kriptografija 1.4.1 Definicija Definicija 1.22 Promotrimo enkripcijsku shemu koja se sastoji od funkcija enkripcije e K i dekripcije d K, K K, gdje je K prostor ključeva. Za enkripcijsku shemu kaže se da je simetričnog ključa ako se za svaki pridruženi par ključeva enkripcije i dekripcije (e K, d K ) računski lako nade d K poznavajući samo e K ili obratno. Kako je e K = d K najčešće u uporabi kao simetrični ključ, odatle je i naziv prikladan. 1.4.2 Supstitucijske šifre Znameniti rimski vojskovoda Gaj Julije Cezar u komunikaciji sa svojim prijateljima koristio se šifrom u kojoj su se slova otvorenog teksta zamjenjivala slovima koja su se nalazila tri mjesta dalje od njih u alfabetu (A D, B E, C F itd.). Sada se definira Cezarova šifra. Definicija 1.23 Neka je P = C = K = Z 26. Za 0 K 25 definira se e K (x) = (x + K) mod 26, d K (y) = (y K) mod 26. Primjer 1.4 Ako se upotrijebi današnji engleski alfabet od 26 slova, te pretpostavi da se alfabet ciklički nastavlja, Cezarova šifra može se pregledno zapisati na sljedeći način: 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 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 Poznata Cezarova izreka ALEA IACTA EST glasila bi tada DOHD LDFWD HVW. U Cezarovoj šifri su osnovni elementi otvorenog teksta slova (odnosno njihovi numerički ekvivalenti), a ključ K odreduje za koliko će se mjesta udesno pomicati slova pri šifriranju. Vrijedi uvjet d K (e K (x)) = x, pa je ovo po definiciji kriptosustav. Da bi se dobila barem malo sigurnija šifra, mogu se promatrati funkcije za šifriranje koje će uključivati više od jednog parametra, a najjednostavnija takva funkcija je afina funkcija e(x) = ax + b. Budući da ova funkcija mora imati inverz, parametar a ne može biti proizvoljan, već mora biti relativno prost s modulom 26. Sada se može definirati Afina šifra. Definicija 1.24 Neka je P = C = Z 26, te neka je Za K = (a, b) K definira se K = {(a, b) Z 26 Z 26 : (a, 26) = 1}. e K (x) = (ax + b) mod 26, d K (y) = a 1 (y b) mod 26. I ovdje je zadovoljen uvjet definicije kriptosustava d K (e K (x)) = d K (ax + b) = a 1 (ax + b b) = x Budući da broj 26 nije prost, multiplikativni inverz imaju samo brojevi iz Z 26 koji su relativno prosti s 26, tj. za koje vrijedi da je najveći zajednički djelitelj od a i 26 jednak 1, što se zapisuje (a,26)=1. Prikaz tih brojeva zajedno s njihovim inverzima naveden je u tablici. 11

1 3 5 7 9 11 15 17 19 21 23 25 1 9 21 15 3 19 7 23 11 5 17 25 Primjer 1.5 Neka je K = (7, 3). Šifrirati otvoreni tekst OSIJEK. Koristeći ranije navedenu tablicu, slova otvorenog teksta zamjenjuju se njihovim numeričkim ekvivalentima. Sada se dobiva šifrat XZHOFV. 14 7 + 3 23 mod 26 18 7 + 3 25 mod 26 8 7 + 3 7 mod 26 9 7 + 3 14 mod 26 4 7 + 3 5 mod 26 10 7 + 3 21 mod 26 Cezarova i afina šifra su specijalni slučajevi supstitucijske šifre koja je definirana na sljedeći način. Definicija 1.25 Neka je P = C = Z 26. Prostor ključeva K sastoji se od svih permutacija skupa {0, 1, 2,..., 25}. Za svaku permutaciju π K definira se e π (x) = π(x), d π (y) = π 1 (y), gdje je π 1 inverzna permutacija od π. Dakle, za alfabet šifrata može se odabrati bilo koja permutacija slova A,B,...,Z, te svako slovo otvorenog teksta zamijeniti slovom koje se u tablici nalazi ispod njega. Šifre kod kojih svakom slovu otvorenog teksta odgovara jedinstveno slovo šifrata, zovu se monoalfabetske šifre. Ovdje ima 26! 4 10 26 mogućih ključeva, pa je napad ispitivanjem svih mogućih ključeva praktično nemoguć. No, supstitucijsku šifru je dosta lako dekriptirati koristeći statistička svojstva jezika na kojem je pisan otvoreni tekst pomoću analize frekvencije slova. Šifre kod kojih se svako slovo otvorenog teksta može preslikati u jedno od m mogućih slova, gdje je m duljina ključa, u ovisnosti o svom položaju unutar otvorenog teksta, zovu se polialfabetske šifre. Kriptosustav, koji se naziva Viegenèreova šifra, definiran je na sljedeći način. Definicija 1.26 Neka je m fiksan prirodan broj. Definira se P = C = K = Z m 26. Za ključ K = (k 1, k 2,..., k m ), definira se e K (x 1, x 2,..., x m ) = (x 1 + 26 k 1, x 2 + 26 k 2,..., x m + 26 k m ), d K (y 1, y 2,..., y m ) = (y 1 26 k 1, y 2 26 k 2,..., y m 26 k m ). Dakle, slova otvorenog teksta pomiču se za k 1, k 2,...k m mjesta, ovisno o ostatku dijeljenja pozicije slova s duljinom ključa m. Kod ove šifre osnovni elementi otvorenog teksta i šifrata su blokovi od po m slova. 12

Primjer 1.6 Neka je m=4 i ključna riječ BROJ, kojoj je numerički ekvivalent ključ K = (1, 17, 14, 9). Neka je otvoreni tekst KRIPTOLOGIJA, čiji je numerički ekvivalent (10,17,8,15,19,14,11,14,6,8,9,0). Šifriranje je dano u tablici. ključ B R O J B R O J B R O J otvoreni tekst K R I P T O L O G I J A šifrat L I W Y U F Z X H Z X J 1.4.3 Transpozicijske šifre Ideja transpozicijske šifre je da se elementi otvorenog teksta ostave nepromijenjeni, ali da se promijeni njihov medusobni položaj. Definicija 1.27 Neka je m fiksan prirodan broj. Neka je P = C = Z m 26, te neka se K sastoji od svih permutacija skupa {1, 2,..., m}. Za π K definira se e π (x 1, x 2,..., x m ) = (x π(1), x π(2),..., x π(m) ), d π (y 1, y 2,..., y m ) = (y π 1 (1), y π 1 (2),..., y π 1 (m)). U praksi je najupotrebljavanija bila stupčana transpozicija kod koje se otvoreni tekst upisuje u pravokutnik po redcima, a zatim se poruka čita po stupcima, ali s promijenjenim poretkom stupaca. Ako se posljednji redak ne ispuni do kraja, onda se prazna mjesta popune proizvoljnim slovima (nulama) koja ne mijenjaju sadržaj poruke. Primjer 1.7 Šifrirati otvoreni tekst KRIPTOGRAFIJA I KRIPTOANALIZA stupčanom transpozicijom s ključem 4312576. Rješenje je dano u tablici. ključ 4 3 1 2 5 7 6 otvoreni tekst K R I P T O G R A F I J A I K R I P T O A N A L I Z A X Šifrat je: IFILPIPIRARAKRKNTJTZGIAXOAOA. 1.4.4 Moderni blokovni kriptosustavi DES (engl. Data Encryption Standard) kriptosustav razvio je IBM 1976. godine na Feistelovoj šifri koristeći uporabe supstitucija i transpozicija kroz više iteracija. Ovaj algoritam pomoću ključa K duljine 56 bitova iz otvorenog teksta duljine 64 bita daje šifrat koji ponovo ima 64 bita. Postoje tri vrste napada na DES: linearna kriptoanaliza, diferencijalna kriptoanaliza i DES Cracker. Za linearnu i diferencijalnu kriptoanalizu, koje nisu razbile DES, potrebno je 2 43 poznatih parova otvoreni tekst-šifrat. U srpnju 1998. godine ESS (engl. Electronic Frontier Foundation) napravio je stroj DES Cracker koji je razbio poruku šifriranu DES-om za 56 sati, a koristio je napad grubom silom s 2 55 DES operacija. 13

Nakon razbijanja DES-a pojavilo se više prijedloga za slične, ali sigurnije kriptosustave, koji imaju veću duljinu ključa od DES-a, obično 128 bitova. Neki od njih su trostruki DES, IDEA, CAST i RC5. Godine 1997. razvijen je AES (engl. Advanced Encryption Standard) kao općeprihvaćeni standard koji će zamijeniti DES. 1.5 Asimetrična kriptografija 1.5.1 Ideja javnog ključa Najveći problem simetričnih kriptosustava je taj da pošiljatelj i primatelj moraju biti u mogućnosti razmijeniti tajni ključ preko nesigurnog komunikacijskog kanala ili se osobno susresti. 1976. godine Whitfield Diffie i Martin Hellman ponudili su jedno moguće rješenje problema razmjene ključeva, zasnovano na činjenici da je u nekim grupama potenciranje mnogo jednostavnije od logaritmiranja. Njihov postupak za razmjenu ključeva je sljedeći: 1. Osoba A generira slučajan broj a {1, 2,..., G 1}, gdje je G ciklička grupa. Osobi B tada pošalje element g a. 2. Osoba B generira slučajan broj b {1, 2,..., G 1}, te osobi A pošalje element g b. 3. Osoba A izračuna (g b ) a = g ab. 4. Osoba B izračuna (g a ) b = g ab. Njihov tajni ključ je K = g ab. Definicija 1.28 Kriptosustav s javnim ključem sastoji se od dviju familija {e K } i {d K } funkcija za šifriranje i dešifriranje sa svojstvima: 1. za svaki K je d K inverz od e K 2. za svaki K je e K javan, ali je d K poznat samo osobi K 3. za svaki K je e K osobna jednosmjerna funkcija. Ovdje se e K naziva javnim ključem, a d K tajnim ili osobnim ključem. Ako pošiljatelj A želi poslati poruku primatelju B, onda B najprije pošalje A svoj javni ključ e B. Potom A šifrira svoju poruku pomoću e B i pošalje primatelju šifrat y = e B (x). Primatelj B dešifrira šifrat koristeći svoj tajni ključ d B i dobiva d B (y) = d B (e B (x)) = x. Budući da je ključ javan, postavlja se pitanje vjerodostojnosti ili autentičnosti poruke. To se može provjeriti na sljedeći način: Osoba A svojoj poruci doda slučajan broj a od npr. 10 znamenaka. Osoba B generira svoj slučajni 10-znamenkasti broj b, te pošalje osobi A poruku e A (a+ b). 14

A izračuna b pomoću formule b = d A (e A (a + b)) a te ponovno pošalje svoju prvu poruku tako da joj doda b, a isto to učini sa svakom idućom porukom koju će slati osobi B. Neki kriptosustavi omogućuju korisnicima i da digitalno potpišu svoju poruku. Neka je P = C. Tada A može potpisati poruku x tako da osobi B pošalje šifrat z = d A (y) = d A (e B (x)). Kada B primi poruku za koju je pretpostavio da ju je poslao A, prvo primijeni javni ključ e A, a potom svoj tajni ključ d B : d B (e A (z)) = d B (e A (e B (x))) = x. Sada primatelj B zna sigurno da je poruku poslao A jer je samo on mogao upotrijebiti funkciju d A. 1.5.2 Kriptosustavi zasnovani na problemu diskretnog logaritma Neka je G konačna Abelova grupa. Da bi bila prikladna za primjene u kriptografiji javnog ključa, u grupi G operacije množenja i potenciranja trebale bi biti jednostavne, dok bi logaritmiranje kao inverz od potenciranja trebalo biti teško. Slijedi definicija problema diskretnog logaritma u grupi G. Definicija 1.29 Neka je (G, ) konačna grupa, g G, H = {g i : i 0} podgrupa od G generirana s g, te h H. Treba naći najmanji nenegativni cijeli broj x takav da je h = g x, gdje je g x = g g... g }{{} x puta Taj broj x se naziva diskretni logaritam i označava s log g h. Problem diskretnog logaritma iskoristili su Diffie i Hellman u ranije opisanom protokolu za razmjenu ključeva. Sada se definira ElGamalov kriptosustav koji je zasnovan na teškoći računanja diskretnog logaritma u grupi (Z p, p). Definicija 1.30 Neka je p prost broj i α Z p primitivni korijen modulo p. Neka je P = Z p, C = Z p Z p i K = {(p, α, a, β) : β = α a mod p}. Vrijednosti p, α, β su javne, a vrijednost a je tajna. Za K K i tajni slučajni broj k {0, 1,..., p 1} definira se Za y 1, y 2 Z p definira se e K (x, k) = (α k (mod) p, xβ k mod p). d K (y 1, y 2 ) = y 2 (y a 1) 1 mod p. Ovdje se može reći da se otvoreni tekst x zamaskira množeći s β k. Ako se zna tajni eksponent a, može se iz α k izračunati β k i ukloniti masku. Da bi eksponent a stvarno bio tajan, prost broj p mora biti dovoljno velik da problem diskretnog logaritma u Z p bude praktično nerješiv, pa se preporuča korištenje velikih prostih brojeva od oko 1024 bita. Takoder bi broj p 1 trebao imati barem jedan veliki prosti faktor (od barem 160 bitova). 15

Primjer 1.8 Neka je u ElGamalovom kriptosustavu p = 2579, α = 2, a = 765. Tada je β = 2 765 mod 2579 = 949. Pretpostavimo da želimo poslati poruku x = 1299. Neka je zadan tajno izabrani broj (jednokratni ključ) k = 853. Tada se računa y 1 = 2 853 mod2579 = 435 y 2 = 1299 949 853 mod2579 = 1299 2424 mod 2579 = 2396, pa se primatelju šalje šifrat (435, 2396) iz kojega on računa otvoreni tekst: x = 2396 (435 765 ) 1 mod 2579 = 2396 2424 1 mod 2579 = 2396 1980 mod 2579 = 1299. Najefikasniji poznati algoritmi za problem diskretnog logaritma u grupi Z p zasnovani su na tzv. index calculus metodi. Za efikasnost ove metode presudna su svojstva distribucije prostih brojeva, ponajprije činjenica da ih ima beskonačno mnogo. 1.5.3 Kriptosustavi zasnovani na problemu faktorizacije Jedan od matematičkih problema koji se koristi u konstrukciji osobnih jednosmjernih funkcija je problem faktorizacije velikih prirodnih brojeva. Danas je praktički nemoguće rastaviti na faktore pažljivo odabran prirodni broj s više od 250 znamenaka. Rabinov kriptosustav zasnovan je na teškoći računanja kvadratnog korijena po fiksnom složenom modulu. Njegovo je razbijanje ekvivalentno rješenju problema kvadratnog korijena pa je ekvivalentno i problemu faktorizacije. Definicija 1.31 Neka je n=pq, gdje su p i q prosti brojevi takvi da je p q 3 (mod 4). Neka je P = C = Z n, te K = {(n, p, q) : n = pq}. Za K K definira se e K (x) = x 2 mod n, d K (y) = y mod n. Vrijednost n je javna, a vrijednosti p i q su tajne. Ovdje a = b mod n znači da je a 2 b (mod n). Uvjet p q 3 (mod 4) se može izostaviti, no uz njega je dešifriranje efikasnije i jednostavnije. Važno je uočiti da funkcija e K nije injekcija pa se dešifriranje ne može provesti na jedinstven način. Jedan način dobivanja jedinstvenog rješenja je ubacivanje odredene pravilnosti u otvoreni tekst pa će samo jedan od 4 kvadratna korijena dati rezultat koji ima zadanu pravilnost. Najpoznatiji kriptosustav s javnim ključem je RSA kriptosustav. Iako je zasnovan na teškoći faktorizacije velikih prirodnih brojeva na produkt dva prosta broja, u samom šifriranju i dešifriranju koristi se modularno potenciranje, dok se faktorizacija koristi u dobivanju dodatnog podatka ( trapdoora ). Ovaj će se kriptosustav definirati u sljedećem poglavlju. 16

2 RSA kriptosustav 2.1 Definicija Definicija 2.1 Neka je n=pq, gdje su p i q prosti brojevi. Neka je P = C = Z n = {0, 1, 2,..., n 1}, te Za K K definira se K = {(n, p, q, d, e) : n = pq, de 1 (mod φ(n))}. e K = x e mod n, d K = y d mod n, x, y Z n. Vrijednosti n i e su javne, a vrijednosti p, q i d su tajne, tj. (n,e) je javni, a (p,q,d) je tajni ključ. Ovdje je φ(n) Eulerova funkcija, tj. broj brojeva u nizu 1, 2,..., n koji su relativno prosti s n. Kod RSA kriptosustava je φ(n) = φ(pq) = φ(p)φ(q) = (p 1)(q 1) = n p q + 1. Vrijednosti n i e su javne, dok su vrijednosti p, q i d tajne. Jednosmjerna funkcija ovdje je x e mod n, a trapdoor je poznavanje faktorizacije n = pq. Još se treba provjeriti da su e K i d K jedna drugoj inverzne. U dokazu da je d K inverz od e K koristi se Eulerov teorem. Propozicija 2.1 Funkcije e K i d K su jedna drugoj inverzne. Dokaz: d K (e K (x)) (e K (x)) d (x e ) d x de (mod n) Kako je de 1 (mod φ(n)), to znači da postoji prirodan broj t takav da je de = t φ(n) + 1 pa se dobiva x de = x t φ(n)+1 = x t φ(n) x = [ x φ(n)] t x. U zavisnosti od n i x postoje dva slučaja: 1. (x, n) = 1 Kako je tada prema Teoremu 1.5 (Euler) x φ(n) 1 (mod n), to je x de 1 t x x(mod n). 17

2. (x, n) 1 Ako je (x, n) = n, tada je x = 0 pa je kongruencija trivijalno zadovoljena. Neka je (x, n) = p ili (x, n) = q. Bez smanjenja općenitosti uzme se da je (x, n) = p, pa je x de 0 x (mod p). Kako je (x, pq) = p, gdje su p i q prosti, to je (x, q) = 1 pa je prema Teoremu 1.5 x φ(q) 1 (mod q) x q 1 1 (mod q). Sada je x de = (x q 1 ) (p 1) t x x (mod q). Konačno je x de x (mod pq), tj. x de x (mod n). 2.2 Primjena 2.2.1 Generiranje ključeva Kako bi dvije osobe komunicirale koristeći kriptografski algoritam sa javnim ključem, potrebna su im po dva ključa, jedan javni i jedan tajni. U RSA kriptosustavu ovi ključevi se generiraju na sljedeći način: 1. Slučajnim odabirom odabrati dva različita prosta broja p i q od kojih svaki ima oko 100 znamenki. Obično se odaberu tako da jedan od njih ima nekoliko znamenki više od drugog. Odabir se vrši tako da se pomoću generatora slučajnih brojeva generira dovoljno velik prirodan broj k, a zatim se korištenjem nekog testa za testiranje prostosti traži prvi prosti broj koji je veći ili jednak k. 2. Izračunati n = pq i φ(n) = (p 1)(q 1). 3. Na slučajan način odabrati cijeli broj e takav da je e < φ(n) i (e, φ(n)) = 1. 4. Izračunati d kao inverzni element za operaciju množenja broju e, po modulu φ(n). de 1 (mod φ(n)), tj. d e 1 (mod φ(n)) Izračunavanje d se vrši pomoću proširenog Euklidovog algoritma koji za dane a i b računa b 1 mod a. 5. Uredeni par (n, e) objavljuje se kao javni, a (p, q, d) sačuva u tajnosti kao vlastiti RSA ključ. U praksi su čest izbor za eksponent e Fermatovi prosti brojevi 3, 17 i 65537. Njihovim odabirom ubrzava se proces modularnog potenciranja koji se koristi kod šifriranja i dešifriranja. Pokazano je kako je sigurnost RSA kriptosustava ugrožena ako se koristi mali javni eksponent e, posebno za e = 3, pa se ne preporuča korištenje eksponenata manjih od 65537. 18

2.2.2 Šifriranje i dešifriranje RSA koristi relativno jednostavan algoritam za šifriranje koji, kada se koriste dovoljno dugi ključevi, zahtijeva značajne računalne resurse. Postupak šifriranja je sljedeći: 1. Pronaći primateljev javni ključ (n, e) i pretvoriti poruku X u cijeli broj x < n, npr. na način da je razmak = 00, A = 01, B = 02, itd. Ako je x n, tada se x razbija u blokove brojeva x i, i = 1,..., k gdje je k broj tih blokova. Kod pretvorbe poruke u blokove postupak pretvorbe, tj. broj znamenaka je unaprijed dogovoren i reverzibilan. 2. Kako bi se dobila šifrirana poruka y, dobiveni broj x = (x 1, x 2,..., x k ) šifrirati prema izrazu y i = x e i mod n Dobivena poruka y = (y 1, y 2,..., y k ) šalje se primatelju. Postupak dešifriranja analogan je postupku šifriranja: 1. Primatelj iz šifrirane poruke y = (y 1, y 2,..., y k ) koristeći svoj tajni ključ (n, d) računa x = (x 1, x 2,..., x k ) prema izrazu x i = y d i mod n 2. Dobiveni broj x pretvara se u poruku X suprotnim procesom od onoga korištenog pri šifriranju, čime je poruka X dešifrirana. Primjer 2.1 Šifriranje i dešifriranje u RSA kriptosustavu sa malim parametrima p = 3 i q = 11. Pomoću parametara p i q dobiva se da je n = p q = 33 i φ(n) = 20. Eksponent e mora biti relativno prost s 20, pa neka je e = 7. Tada je (n, e) = (33, 7) javni ključ, a d = 3. Ako šalje poruka x=17, potrebno je izračunati e K (x) = 17 7 mod 33: 17 7 = 17 17 2 17 4 17 25 ( 2) 25 8 (mod 33). Šifrat y = e K (x) = 8, dešifrira se pomoću tajnog ključa d: Dakle, x = 17. 2.2.3 Digitalni potpis x = d K (y) 8 3 8 8 2 8 ( 2) 17 (mod 33). Budući da su kod RSA kriptosustava ključevi javni, postavlja se pitanje kako primatelj može sa sigurnošću potvrditi identitet pošiljatelja. Taj se problem rješava na lak način. Neka je P potpis pošiljatelja A, koji možda uključuje OIB, omiljenu hranu, ime prve učiteljice i sl. Budući da svi znaju funkciju e B primatelja B, nije dovoljno da pošiljatelj A pošalje poruku e B (P ), nego na početku ili na kraju poruke pošiljatelj treba dopisati e B d A (P ). Primljeni šifrat, koji se sastoji od poruke i dijela e B (d A (P )) primatelj B dešifrira pomoću d B i dobiva tekst poruke i nerazumljivi dio koji je d A (P ). Budući da primatelj B zna da bi poruka trebala biti od pošiljatelja A, on koristi njegov javni ključ e A, dešifrira d A (P ) i dobije potpis 19

P. Zbog nepoznavanja d A nitko drugi, osim pošiljatelja A, nije mogao poruku potpisati na taj način. Digitalni potpis kreira se na sljedeći način: 1. Pošiljatelj A pomoću samo njemu poznate funkcije d A kreira digitalni popis d A (P ) modularnim potenciranjem potpisa P : d A (P ) = P d A mod n A Ovaj postupak identičan je postupku šifriranja poruke tajnim ključem pošiljatelja A. Sada pošiljatelj na početak ili kraj poruke M dodaje potpis d A (P ) i dobivenu poruku M A = Md A (P ) šifrira javnim ključem e B primatelja B: M B = e B (M A ) = M e B A mod n B 2. Primatelj B modularnim potenciranjem poruke M B dešifrira digitalno potpisanu poruku: M A = M d b B mod n B Rezultat je poruka M i nerazumljivi dio d A (P ) iz kojeg se ponovnim modularnim potenciranjem dobiva digitalni potpis pošiljatelja A: P = (d A (P )) e A mod n A Na ovaj način primatelj B je potvrdio autentičnost poruke pošiljatelja A. 2.3 Kriptoanaliza Budući da je implementacija RSA algoritma vrlo jednostavna, i napad na RSA može se jednostavno provesti ako je poznat eksponent d. Jedan očit napad na RSA je faktorizacija od n = pq. Ako napadač faktorizira n, onda može pronaći φ(n) = (p 1)(q 1) i tajni eksponent d iz izraza de 1 mod φ(n) pomoću Euklidovog algoritma. Budući da se u RSA algoritmu za p i q uzimaju brojevi sa 100 i više znamenki, onda n = pq ima najmanje 200 znamenki, a najbrži algoritmi za faktorizaciju trebaju e O((log n)1/3 (log log n) 2/3 ) operacija pa se vrijeme potrebno za razbijanje algoritma najbržim računalima računa u stotinama godina. U nekim je slučajevima n ipak lakše faktorizirati, npr. kada su p i q jako blizu jedan drugome, ili ako p 1 i q 1 imaju samo male proste faktore, pa takve slučajeve treba izbjegavati. Iako je RSA dovoljno siguran, ako napadač otkrije tajni eksponent d, onda nije dovoljno samo promijeniti eksponent e, već se mora promijeniti i n. Lema 2.1 Poznavanje tajnog eksponenta d, koji odgovara javnima n i e, može omogućiti faktorizaciju od n. Dokaz: Pretpostavi li se da je broj d takav da za sve x relativno proste s n, tj. (x, n) = 1, vrijedi x de x mod n. Tada za m = ed 1 vrijedi x m 1 (mod n) za sve x za koje je (x, n) = 1. Kako je grupa svih reduciranih ostataka modulo p ciklička, x m 1 (mod n) 20

je ekvivalentno tome da je m zajednički višekratnik od p 1 i q 1. Stoga je poznavanje broja m slabije od poznavanja broja φ(n) = (p 1)(q 1), ali se ipak pomoću m može s velikom vjerojatnošću faktorizirati n. Opisat ćemo faktorizaciju pomoću vjerojatnosnog algoritma iz klase Las Vegas algoritama koji ne daju uvijek odgovor, ali kada ga daju, onda je sigurno točan. U slučaju da algoritam ne ponudi rješenje, može mu se dati druga nezavisna prilika za nalaženje odgovora pa se tako vjerojatnost uspjeha algoritma povećava s količinom raspoloživog vremena. Neka je poznatn = pq i neka je m takav da je x m 1 (mod n), za sve x takve da (x, n) = 1. Uvrštavanjem x = 1 vidi se da je m paran. Provjerava se ima li m/2 isto svojstvo kao m. Ako postoji x za koji vrijedi x 1 (mod n), tada u Z n postoji barem 50% takvih brojeva. Zaista, svakom broju y koji zadovoljava kongruenciju y m/2 1 (mod n) odgovara broj xy koji tu kongruenciju ne zadovoljava. Ako se sada testira nekoliko desetaka x-ova i svi zadovoljavaju kongruenciju x m/2 1 (mod n), tada se s velikom vjerojatnošću može reći da je kongruencija x m/2 1 (mod n) ispunjena za sve x za koje je (x, n) = 1, pa se m može zamijeniti sa m/2. Dijeljenje sa dva nastavlja se sve dok je to moguće, a na kraju postoje dvije mogućnosti: 1. m/2 je djelitelj točno jednog od brojeva p 1 i q 1. Ako je to p 1, tada je x m/2 1 (mod p) za sve x, ali je x m/2 1 (mod q) u točno 50% slučajeva. 2. m/2 nije djelitelj ni od p 1 ni od q 1. Tada je x m/2 ±1 (mod p) ili x m/2 ±1 (mod q) i svaka od 4 mogućnosti nastupa u točno 25% slučajeva. Dakle, za proizvoljan x vjerojatnost je 50% da je x m/2 1 djeljiv s točno jednim od brojeva p i q. Uzimajući slučajno nekoliko desetaka x-ova, može se s velikom vjerojatnošću očekivati da će se pronaći x sa gornjim svojstvom. Neka je npr. x takav da je x m/2 1 djeljiv s p, ali nije s q. Tada je (n, x m/2 1) = p, pa je n faktoriziran. Na prvi se pogled ideja da se izabere jedan dobar n za sve, a da se korisnicima tajno dodijele parovi e K i d K ne čini lošom, jer bi se izbjeglo generiranje različitih modula n = pq. Ona, ipak, nije dobra jer bi rezultirala nesigurnim sustavom zbog gore navedenog vjerojatnosnog algoritma. Korisnik A bi tada na osnovu svojih e A i d A mogao faktorizirati n i odrediti p i q pa bi zbog posjedovanja e B i poznavanja faktorizacije od n, a samim tim i vrijednosti φ(n), mogao otkriti i d B za svakog drugog korisnika. U slučaju zajedničkog n i napadač bi se otkrivanjem jednog d K mogao postaviti u ulogu korisnika A i otkriti sve tajne eksponente d K. Lema 2.2 Neka je n = pq produkt dva različita prosta broja. Ako je poznat n i φ(n), tada se može brzo naći p i q. Dokaz: Iz φ(n) = (p 1)(q 1) dobivamo φ(n) = pq p q + 1 = n p q + 1 = n (p + q) + 1 n φ(n) + 1 = p + q Sada je osim produkta pq poznata i suma p + q pa se definira polinom f(x) = (X p)(x q) = X 2 (p + q)x + pq f(x) = X 2 (n φ(n) + 1)X + n 21