Asimetricni Kriptografski RSA Algoritam
Total Page:16
File Type:pdf, Size:1020Kb
SveuˇciliˇsteJ. J. Strossmayera u Osijeku Odjel za matematiku Igor Jakopiˇcek Asimetriˇcnikriptografski RSA algoritam Diplomski rad Osijek, 2010. SveuˇciliˇsteJ. J. Strossmayera u Osijeku Odjel za matematiku Igor Jakopiˇcek Asimetriˇcnikriptografski RSA algoritam Diplomski rad Voditelj: prof.dr.sc. Mario Essert Osijek, 2010. Sadrˇzaj Uvod 1 1 Kriptografija 2 1.1 Razvoj kriptografije . 2 1.2 Osnovni pojmovi . 5 1.3 Matematiˇckitemelji . 6 1.3.1 Funkcije . 6 1.3.2 Osnove teorije brojeva . 8 1.3.3 Kriptosustavi . 9 1.4 Simetriˇcnakriptografija . 11 1.4.1 Definicija . 11 1.4.2 Supstitucijske ˇsifre . 11 1.4.3 Transpozicijske ˇsifre . 13 1.4.4 Moderni blokovni kriptosustavi . 13 1.5 Asimetriˇcnakriptografija . 14 1.5.1 Ideja javnog kljuˇca . 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ˇceva . 18 2.2.2 Sifriranjeˇ i deˇsifriranje . 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ˇzenostalgoritama . 25 3.1.2 Modularno potenciranje . 26 3.1.3 Generiranje velikih prostih brojeva . 26 3.1.4 Raˇcunanjeinverznog elementa za mnoˇzenje. 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ˇceva . 30 i Literatura 38 Saˇzetak 39 Summary 40 Zivotopisˇ 41 ii Uvod Komunikacija se javila vrlo rano u povijesti ˇcovjeˇcanstva, no uvijek je postojao problem privatnosti u komunikaciji. Neke je poruke, iz bilo kojeg razloga, potrebno dostaviti samo onima kojih se tiˇcu,u neizmijenjenom stanju i s potvrdom identiteta poˇsiljaoca. To je jedna od prednosti koje je donio razvoj kriptografije. U poˇcetkurazvoja kriptografije najˇceˇs´cekoriˇstenemetode za ˇsifriranjepodataka bile su supstitucija (zamjena) i transpozicija (premjeˇstanje)osnovnih elemenata teksta, a ˇcijase kombinacija susre´cei danas u modernim simetriˇcnimkriptosustavima. Poˇcetkom sedamde- setih godina 20. stolje´capojavili su se asimetriˇcnikriptosustavi ili kriptosustavi s javnim kljuˇcemkod kojih su se za ˇsifriranjekoristile jednosmjerne funkcije pa je samo funkcija za deˇsifriranjemorala biti tajna, dok je funkcija za ˇsifriranjemogla biti javna. Tema ovog rada je najpoznatiji asimetriˇcnikriptografski algoritam - RSA. U prvom poglavlju predstavljena je kriptografija kroz povijest, uvedeni su osnovni pojmovi te je objaˇsnjenara- zlika izmedu simetriˇcnei asimetriˇcnekriptografije. U drugom je poglavlju predstavljen RSA kriptografski algoritam, opisani su postupci generiranja kljuˇceva, ˇsifriranja,deˇsifriranjai digitalnog potpisa pomo´cuRSA algoritma te je dan kratak osvrt na sigurnost i neke prob- leme praktiˇcneimplementacije. Tre´cepoglavlje opisuje teorijsku i praktiˇcnu implementaciju RSA algoritma, sadrˇzipseudokodove algoritama iz teorije brojeva te primjer RSA algoritma napisan u Python programskom jeziku. 1 1 Kriptografija 1.1 Razvoj kriptografije Rijeˇckriptografija dolazi od grˇckihrijeˇcikriptos (grˇc. κριπτoσ), ˇstoznaˇcitajan, skriven i grafien (grˇc. γραϕιεν) ˇstoznaˇcipisati, 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´canisu razvili hijeroglife koji, iako nisu bili izmiˇsljeniradi skrivanja teksta, predstavljaju najstariji oblik danas poznatog kriptiranog pisma. 1822. godine francuski arheolog J. F. Champollion na temelju jednog trojeziˇcnognatpisa uspio je deˇsifriratiprvi niz fonetskih hijeroglifa. Izmedu 500. i 600. godine pr. Kr. koristila se hebrejska ˇsifrakoja se zasnivala na principu re- ciproˇcnezamjene slova abecede. Spartanci su 400. g. pr. Kr. koristili ˇstapnazvan skital oko kojega se namotao tanak list papirusa na koji bi se uzduˇzˇstapapisala poruka, a da bi se poruka dekriptirala bilo je potrebno imati ˇstapistog prom- jera. Prethodno opisana vrsta ˇsifriranja 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ˇzavnim je komunikacijama koristio jednostavnu supstituciju na obiˇcnoj abecedi (kruˇznipomak cijele abecede za dva mjesta). Prvi sus- tav 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 bro- jevima od 1 do 5 tako da svako slovo predstavlja odgovaraju´ci par retka i stupca, a dekriptiranje se obavljalo tako da se svakom od parova pridruˇzivalo odgovaraju´ceslovo abecede. Rijeˇc sifra" koriste´ci Polybiusov kvadrat izgledala bi: 44 42 12 34 11 . " Sifriranjeˇ supstitucijom dalje se razvijalo tako da se pom- 1 2 3 4 5 icanje slova nije ˇciniloproizvoljno, ve´cna osnovi rijeˇciili 1 ABCDE 2 FGHIJ fraze koja se nazivala kljuˇc.Prvih nekoliko slova abecede za- 3 KLMNO mijenilo bi se kljuˇcem,a ostala bi se popunila ostatkom slova. 4 PQRST Prednost ove metode, koja se naziva monoalfabetna zamjena, 5 U V W X Y/Z jest da primatelj, koji zna kljuˇc,lako moˇzedeˇsifriratiporuku, Slika 1.2: Polybiusov kvadrat a nedostatak je ˇstoje svako slovo zamijenjeno toˇcnojednim drugim slovom pa je napadaˇcmogao nekom od statistiˇckihmetoda prona´ciizvornu poruku. U 14. stolje´cuarapski i talijanski kriptografi koristili su metodu analize frekvencija koja se zasnivala na prebrojavanju uˇcestalostiponavljanja znakova u kriptiranom tekstu. 2 Tijekom srednjeg vijeka kriptografija je poˇcelanapredovati. U 15. se stolje´cupomo´cu bakrenih diskova s ugraviranom abecedom kriptira polialfabetnom supstitucijom koja dopuˇstada viˇserazliˇcitihznakova u kriptiranom tekstu predstavlja jedan znak jasnog teksta pa su frekvencije pojavljivanja svih znakova bile podjednake. Na taj naˇcinonemogu´cenoje pronalaˇzenjeˇsifrestatistiˇckimmetodama, pa je ovaj tip ˇsifriranjanajˇceˇs´cekoriˇstentijekom povijesti, a svoj je oblik zadrˇzaodo danas. U 16. stolje´cu poˇcinju se koristiti ˇsifre koje tijekom kriptiranja jednog teksta promjene nekoliko kljuˇceva sa jasno istaknutim mjestima gdje se prethodni kljuˇc promijenio. Njemaˇckisve´cenikTrithemius ABCDEFGHIJKLMNOPQRSTUVWXYZ Jasan tekst razvio je tablicu koja je u svakom retku pon- FGUQHXSZACNDMRTVWEJBLIKPYO T00 avljala cijelu abecedu, samo ˇstoje abeceda OFGUQHXSZACNDMRTVWEJBLIKPY T01 u svakom sljede´cemredu bila cikliˇckipo- YOFGUQHXSZACNDMRTVWEJBLIKP T02 maknuta za jedan znak u desno. Prvo slovo PYOFGUQHXSZACNDMRTVWEJBLIK T03 . poruke kriptiralo se prvim redom tablice, . GUQHXSZACNDMRTVWEJBLIKPYOF T25 drugo drugim itd., pa se kljuˇc ponavljao Slika 1.3: Sifraˇ sa promjenjivim kljuˇcem svakih 26 znakova kriptiranog teksta. Ovu tehniku proˇsirilisu Giovanni Batista Belaso te Blaise de Vig`enere. Vig`enerova ˇsifrakoristi Trithemiusovu tablicu, a kao kljuˇcza kriptiranje koristio je ili jasni ili kriptirani tekst. U 17. i 18. stolje´cu u Europi se osnivaju tzv. Mraˇcni uredi" koji su " se bavili deˇsifriranjem presretnutih vojnih i politiˇckih poruka. Koriste se i kn- jige ˇsifri tako da se svaka rijeˇc teksta zamijenila brojem koji je oznaˇcavao njezin poloˇzaj u knjizi. 1795. godine Thomas Jefferson izu- mio je ˇsifarniks kotaˇcemkoji se sastojao od skupa kotaˇcas nasumiˇcnimporetkom abecede. Okretan- jem kotaˇcasloˇzilasu se slova koja ˇcineporuku u jed- nom redu, nakon ˇcegabi se kotaˇcifiksirali, a bilo koji drugi red slova mogao se koristiti kao kripti- rana poruka. Dekriptiranje se obavljalo tako da su se kotaˇcimedusobno okretali dok se ne bi pojavila poruka koja ima lingvistiˇckog smisla. Slika 1.4: Sifarnikˇ s kotaˇcem U 19. stolje´cuzbog izuma telegrafa poraslo je zan- imanje za kriptografiju, a koristi se Vig`enerova ˇsifrasa kratkom ponavljaju´comkljuˇcnom rijeˇci. Koristi se i sustav sa dva diska, jedan u drugom. Vanjski disk sadrˇzavao je 26 slova engleske abecede i brojeve, a unutarnji samo slova abecede. Kriptiralo se tako da se unutarnji disk vrtio sve dok se ˇzeljenoslovo nije pojavilo na vrhu, a broj okretaja diska potrebnih da bi se to dogodilo, bio je kriptirani tekst. Prva bigramska ˇsifra,kojom se kriptirao par slova tako da je rezultat ovisio o oba slova, bio je playfair sustav. Razvijena je i tomografska ˇsifrakoja je svakom znaku teksta dodjeljivala dvoznamenkasti broj prema tablici. Brojevi su se zapisivali tako da su prve znamenke ˇcinilered iznad drugih zna- menki, zatim se donji red mnoˇziosa 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 ˇsifretoga vremena. Metoda se sasto- jala od pronalaˇzenjaponavljanja nizova znakova u kriptiranom tekstu da bi se dobila duˇzina kljuˇca(N), nakon ˇcegase primjenjivala statistika na svakom N-tom znaku. 3 U 20. stolje´cunapravljeni su prvi elektromehaniˇckiuredaji za kriptiranje, ˇstoje omogu´cilo brˇzei lakˇsekriptiranje poruka. Nakon izuma prvih kompjutora, 60-tih godina proˇsloga stolje´ca,razvijeni su prvi simetriˇcnikriptografski algoritmi koji predstavljaju poˇcetakmod- erne kriptografije. Poˇcetkom 20. stolje´caosnivaju se kriptografske organizacije diljem svi- jeta, Soba 40" u Engleskoj, MI-8 u Americi i druge, koje se u Prvom svjetskom ratu koriste " za razbijanje njemaˇckihporuka. Nedugo nakon rata Nijemac Arthur Schrebius razvio je Enigmu, sustav za kriptografsku zaˇstituinformacija, koju njemaˇcka vojska uvodi kao stan- dardni