Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c...

33
Sveuˇ ciliˇ ste J. J. Strossmayera u Osijeku Odjel za matematiku Sveuˇ ciliˇ sni preddiplomski studij matematike Nikolina Brdari´ c Algoritmi kriptografije javnog kljuˇ ca Zavrˇ sni rad Osijek, 2013.

Transcript of Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c...

Page 1: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Sveuciliste J. J. Strossmayera u OsijekuOdjel za matematiku

Sveucilisni preddiplomski studij matematike

Nikolina Brdaric

Algoritmi kriptografije javnog kljuca

Zavrsni rad

Osijek, 2013.

Page 2: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Sveuciliste J. J. Strossmayera u OsijekuOdjel za matematiku

Sveucilisni preddiplomski studij matematike

Nikolina Brdaric

Algoritmi kriptografije javnog kljuca

Zavrsni rad

Mentor:

doc.dr.sc. Ivan Matic

Osijek, 2013.

Page 3: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Sazetak

Kriptografija je znanost koja se bavi proucavanjem metoda koje omogucuju sigurnu komuni-

kaciju izmedu dvije osobe ili grupe osoba. Svako komuniciranje pomocu kriptografije moze

se razdijeliti na tri kljucna dijela, generiranje kljuceva, sifriranje i desifriranje. Sifriranje je

proces kojim poruku, tj. otvoreni tekst transformiramo u naizgled besmislen niz znakova,

sifrat. Desifriranje je proces inverzan sifriranju i njime sifrat vracamo u prvobitno stanje.

Proces sifriranja i desifriranja provodimo koristeci unaprijed odabrane funkcije sifriranja i

desifriranja koje su jedinstveno odredene generiranim kljucevima. Sustave svih mogucih

otvorenih tekstova, sifrata i kljuceva nazivamo kriptosustavi. S obzirom na tajnost kljuceva,

kriptosustave dijelimo na sustave s tajnim i sustave s javnim kljucem. U kriptosustavima s

javnim kljucem par kljuceva sastoji se od javnog i prvatnog kljuca. Javni odreduje funkciju

sifriranja, a privatni funkciju desifriranja poruke. Neki kriptosustavi javnog kljuca su RSA,

Rabinov i McElieceov kriptosustav. Sigurnost prva dva temelji se na problemu faktorizacije

velikih prirodnih brojeva, a treceg na linearnim kodovima za ispravljanje gresaka.

Kljucne rijeci: kriptografija, kriptografija javnog kljuca, RSA kriptosustav, Rabinov krip-

tosustav, McElieceov kriptosustav, problem faktorizacije, linearni kodovi za ispravljanje

gresaka

Abstract

Cryptography is the study that deals with the methods of providing secure communication

between two entities or a group of entities. Any attempt to communicate in this way can

be devided in three major parts, key generation, encryption and decryption. Encryption is

a proces by which we transform the plaintext message into a seemingly meaningless string,

chipertext. Decryption is the inverse process of encryption and it resets chipertext back to

plaintext message. Encryption and decryption are conducted using pre-selected encryption

and decryption functions which are uniquely determined by pre-generated keys. Sets of all

possible plaintext messages, ciphertexts and keys are called cryptosystems. Taking into con-

sideration the secrecy of the key, cryptosystems can be divided into two types: secret-key

and public-key cryptosystems. In public-key cryptosystems, the key pair consists of a public

and a private key. Public key determinates the encryption and private key the decryption

function. RSA, Rabin and McEliece cryptosystems are only some of public-key criptosys-

tems. The security of the first two is based on the integer factorization problem, while the

security of the third one is based on the linear error-correcting codes.

Key words: cryptography, public-key cryptosystems, RSA cryptosystem, Rabin cryptosys-

tem, McEliece cryptosystem, integer factorization problem, linear error-correcting codes

1

Page 4: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Sadrzaj

1 Uvod 3

2 Kriptografija 4

2.1 Kriptografija javnog kljuca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 RSA kriptosustav 11

3.1 Neki potrebni problemi i algoritmi . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.1 Problem faktorizacije . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.2 RSA problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.1.3 Prosireni Euklidov algoritam . . . . . . . . . . . . . . . . . . . . . . . 12

3.1.4 Algoritam ”kvadriraj i mnozi” . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4 Implementacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 Rabinov kriptosustav 21

4.1 Problem odredivanja kvadratnog korijena u Zn . . . . . . . . . . . . . . . . . 21

4.2 Opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 McElieceov kriptosustav 26

5.1 Linearni kodovi za ispravljanje gresaka . . . . . . . . . . . . . . . . . . . . . 26

5.2 Opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.3 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2

Page 5: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

1 Uvod

Od pocetaka meduljudske komunikacije zahtjeva se da ona bude sto sigurnija. Naglim razvo-

jem tehnologije u 20. stoljecu dolazi i do polaganja cvrstih temelja za razvoj znanosti koja

se bavi pitanjem sigurnosti komunikacije, kriptografije. Naziv kriptografija javnog kljuca ili

asimetricna kriptografija odnosi se na kriptografske algoritme koji koriste dva razlicita, ma-

tematicki povezana, kljuca. Prvi kljuc nazivamo tajnim ili privatnim, dok drugi nazivamo

javnim. Algoritmi javnog kljuca osnova su za sigurnost raznih kriptosustava, aplikacija i

protokola te se, izmedu ostaloga, upotrebljavaju za razmjenu kljuceva u kriptosustavima

kao i za digitalne potpise. Sigurnost algoritama javnog kljuca zasniva se na matematickim

problemima koji se danas smatraju nerjesivima u praksi, kao sto su problem faktorizacije ili

problem odredivanja kvadratnog korijena.

U prvom poglavlju obradit cemo osnove klasicne kriptografije i kriptografije javnog kljuca

te cemo reci nesto o sigurnosti kriptosustava. Zatim cemo u drugom poglavlju opisati RSA

enkripcijsku shemu, njenu sigurnost i neke probleme pri njenoj implementaciji, takoder cemo

se dotaknuti problema faktorizacije velikih prirodnih brojeva i RSA problema. Rabinov krip-

tosustav i njegovu sigurnost obradit cemo u trecem poglavlju, dok ce cetvrto poglavlje biti

posveceno McEliecevom kriptosustavu.

3

Page 6: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

2 Kriptografija

Definicija 2.1. Kriptografija (grc. kryptos - skrivati, grafo - pisati) je znanstvena disciplina

koja se bavi pronalazenjem i analiziranjem metoda pomocu kojih je poruku moguce poslati u

obliku u kojem je nece procitati nitko osim onoga kome je namijenjena.

Iz Definicije 2.1 izvedena su cetiri osnovna cilja kriptografije:

• Povjerljivost : sadrzaj poruke nije dostupan nikome osim onome kome je namijenjen

• Netaknutost : sadrzaj primljene poruke u potpunosti odgovara sadrzaju poslane poruke,

tj. sadrzaj poruke je nepromijenjen

• Vjerodostojnost : primatelji i posiljatelji poruka medusobno se mogu identificirati

• Nepobitnost : posiljatelj poruke nije u mogucnosti zanijekati slanje same poruke.

Sudionike u komunikaciji, koji salju i primaju poruke te njima manipuliraju, nazivamo osobe.

Opcenito, osoba ne mora biti samo fizicka osoba, vec osobom smatramo i organizaciju,

racunalo i slicno. Razlikujemo tri osnovne vrste osoba:

• Posiljatelj je osoba koja legitimno salje poruku (u literaturi se cesto naziva Alice).

• Primatelj je osoba kojoj je namijenjena poslana poruka (cesto ju nazivamo Bob).

• Protivnik je osoba koja nije niti posiljatelj niti primatelj poruke i koja pokusava

sprijeciti ostvarivanje kriptografskih ciljeva izmedu posiljatelja i primatelja. Protiv-

nik se cesto pokusava prikazati kao posiljatelj ili primatelj (u literaturi je za njega

rezervirano ima Eva ili Oscar).

Osobe komuniciraju, tj. prenose informacije sredstvima koje nazivamo komunikacijski kanali.

Kanale dijelimo na:

• Nesigurne komunikacijske kanale s kojih osobe kojima poslana poruka nije namijenjena

mogu tu poruku brisati ili preslagivati te cak u nju umetati ili brisati informacije.

• Sigurne komunikacijske kanale s kojih protivnik ne moze brisati ili preslagivati poslanu

poruku, niti u nju umetati ili brisati informacije.

4

Page 7: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Definiramo i slijedece skupove:

• Alfabet otvorenog teksta M je konacan skup svih mogucih osnovnih elemenata od kojih

poruka koju posiljatelj salje moze biti izgradena, ta poruka se jos naziva i otvoreni tekst.

Cesto je koristeni alfabet otvorenog teksta binarni alfabet M = {0, 1}.

• Alfabet sifrata C je konacan skup svih mogucih osnovnih elemenata sifrata ili kripto-

grama, tj. osnovnih elemenata poruke dobivene nakon provodenja transformacije nad

otvorenim tekstom.

• Prostor kljuceva K je konacan skup svih mogucih unaprijed dogovorenih parametara,

tj. kljuceva, pomocu kojih odredujemo sifrat iz otvorenog teksta i obratno.

Svaki kljuc e ∈ K jedinstveno odreduje bijekciju s alfabeta otvorenog teksta M na alfabet

sifrata C. Tu funkciju oznacavamo s Ee i nazivamo funkcija sifriranja. Postupak primjene

funkcije Ee na m ∈ M nazivamo sifriranje. Nadalje, za svaki d ∈ K s Dd oznacavamo

bijekciju sa skupa C na skup M i nazivamo ju funkcija desifriranja. Funkcija desifriranja

Dd je jedinstveno odredena kljucem d, a postupak primjene funkcije Dd na bilo koji c ∈ Cnazivamo desifriranje.

Napomenimo kako cemo u ovom radu, radi jednostavnosti, cesto poistovjecivati otvoreni

tekst s osnovnim elementom otvorenog teksta i sifrat s osnovnim elementom sifrata, buduci

da, ukoliko sifriranje i desifriranje mozemo provesti na osnovnom elementu, tada ga mozemo

provesti i na cijelom otvorenom tekstu ili sifratu.

Enkripcijska shema ili sifra sastoji se od skupa E = {Ee : e ∈ K} funkcija sifriranja i

skupa D = {Dd : d ∈ K} funkcija desifriranja koji imaju svojstvo da:

∀ e ∈ K ∃! d ∈ K t.d. Dd = Ee−1

tj.

∀ e ∈ K ∃! d ∈ K t.d. Dd(Ee(m)) = m, ∀ m ∈M. (2.1)

Kljuceve e i d nazivamo par kljuceva i oznacavamo kao uredeni par (e, d). Primijetimo

da e i d ne moraju nuzno biti razliciti. Iz do sada navedenog proizlazi slijedeca definicija

kriptosustava.

Definicija 2.2. Kriptosustav je uredena petorka (M, C,K, E ,D), u kojoj vrijedi (2.1).

5

Page 8: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Na Slici 2.1 prikazan je uobicajen nacin komunikacije dvaju osoba u kriptografiji.

Slika 2.1: Shema klasicne kriptografije

Dvije osobe Alice i Bob tajno su odabrale i tajno razmijenile (npr. preko sigurnog komu-

nikacijskog kanala) par kljuceva (e, d). U nekom trenutku Alice zeli poslati otvoreni tekst

m ∈M Bobu. Ona odredi sifrat c = Ee(m) i, koristeci neki nesiguran komunikacijski kanal,

posalje c Bobu. Nakon sto primi c, Bob odredi m = Dd(c) i na taj nacin dobiva otvoreni

tekst m. Bitno je primijetiti kako protivnik moze doznati sadrzaj sifrata c, ali, buduci da ne

zna kljuc d, iz sifrata ne moze odrediti otvoreni tekst.

Kriptosustave mozemo podijeliti na vise nacina, od kojih ce u ovom radu biti najvaznija po-

djela s obzirom na tajnost i javnost kljuceva. Obzirom na tu podjelu razlikujemo simetricne

kriptosustave, koje jos nazivamo i kriptosustavi tajnog kljuca, i asimetricne kriptosustave,

poznate i pod imenom kriptosustavi javnog kljuca.

2.1 Kriptografija javnog kljuca

Simetricni kriptosustavi zasnovani su na ideji da posiljatelj i primatelj tajno odaberu kljuc

za sifriranje e ∈ K te pomocu njega odrede funkciju sifriranja Ee ∈ E iz koje je potom

jednostavno odrediti funkciju desifriranja Dd ∈ D, tj. kljuc za desifriranje d ∈ K. Ocito,

sigurnost ovih kriptosustava lezi u tajnosti para kljuceva (e, d). Medutim, tada je nuzno da

se razmjena para kljuceva odvija preko sigurnog komunikacijskog kanala te da se ti kljucevi

cesto mijenjaju. Ovi zahtjevi znatno kompliciraju provodenje sifriranja i desifriranja te do-

6

Page 9: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

vode u pitanje povjerljivost samog kriptosustava.

Godine 1976. Whitfield Diffie i Martin Hellman doskocili su problemu nesigurne razmjene

kljuceva uvodenjem nove metode kriptografije javnog kljuca. Ideja javnog kljuca je sljedeca.

Pretpostavimo da je poznavanjem funkcije sifriranja Ee nemoguce (u nekom razumnom vre-

menu) iz nasumicnog sifrata c odrediti otvoreni tekst m takav da je Ee(m) = c, tj. da je

nemoguce (u nekom razumnom vremenu) iz poznavanja kljuca za sifriranje e odrediti kljuc

za desifriranje d. Funkciju Ee promatramo kao osobnu jednosmjernu funkciju1, gdje je d

podatak potreban za izracunavanje njenog inverza Dd, tj. podatak potreban za desifriranje.

Kriptosustave koji ispunjavaju ove pretpostavke nazivamo kriptosustavima javnog kljuca.

Ocito, u njima funkcija sifriranja Ee, tj. kljuc e mogu biti poznati svima, ali je potrebno

zadrzati tajnost kljuca d. Stoga, e nazivamo javnim, a d tajnim ili privatnim kljucem.

Slika 2.2: Shema kriptografije javnog kljuca

Slika 2.2 prikazuje komunikaciju izmedu dviju osoba, Alice i Boba, koristenjem kriptografije

javnog kljuca. Bob odabire par kljuceva (e, d) i salje Alice javni kljuc e koristeci nesiguran

komunikacijski kanal. Bob zadrzava kljuc d tajnim. Alice salje Bobu poruku m, primje-

njujuci funkciju sifriranja Ee odredenu Bobovim javnim kljucem e kako bi dobila c = Ee(m).

Bob desifrira sifrat c primjenom inverzne funkcije desifriranja Dd koja je odredena Bobovim

tajnim kljucem d i na taj nacin zadobiva otvoreni tekst m.

1Osobna jednosmjerna funkcija: Funkcija f : X → Y je osobna jednosmjerna funkcija, ako je f(x)lagano izracunati za svaki x ∈ X, dok je za vecinu y ∈ Im(f) nemoguce odrediti x ∈ X t.d. f(x) = y, osimuz poznavanje nekog dodatnog parametra.

7

Page 10: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

U slucaju kada grupa osoba zeli komunicirati putem javnog kljuca dovoljno je da sve osobe

svoje javne kljuceve, zajedno sa svojim identitetom, stave u neku javnu, svima dostupnu,

datoteku. Tada Bob ne mora slati svoj javni kljuc Alice, vec Alice moze Bobov javni kljuc

jednostavno procitati iz datoteke.

Primjetimo kako je za razmjenu kljuceva u kriptografiji javnoga kljuca dovoljan i nesigu-

ran komunikacijski kanal, cime se osigurava povjerljivost podataka u kriptosustavima javnog

kljuca. Isto tako, buduci da je e javan, svaka osoba moze poslati Bobu sifriranu poruku, ali

samo Bob moze primljeni sifrat desifrirati.

Mozemo postaviti pitanje vjerodostojnosti i nepobitnosti komunikacije putem javnog kljuca.

Moze li Bob biti siguran da mu je upravo Alice poslala poruku, a ne protivnik koji samo

oponasa Alice. Ovaj problem rjesava se koristenjem digitalnih potpisa, kao jos jedne pred-

nosti kriptosustava s javnim kljucem, ili na nacin da Alice doda svojoj poruci slucajni broj

unaprijed dogovorene velicine.

Dodatna prednost kriptosustava s javnim kljucem nad simetricnim kriptosustavima, je da

cesto par kljuceva (e, d) moze ostati nepromijenjen duzi period vremena. Isto tako, za ko-

munikaciju vece grupe od n osoba dovoljno je odabrati 2n kljuceva, sto je znatno manje

nego u simetricnim kriptosustavima. Ipak, algoritmi javnog kljuca puno su sporiji od mo-

dernih simetricnih algoritama i njihovi kljucevi su, zbog sigurnosti, znatno veci nego sto

to moraju biti kljucevi u simetricnim kriptosustavima. Stoga, kriptografija javnog kljuca

u praksi niposto ne zamjenjuje simetricnu kriptografiju, vec se koristi za razmjenu kljuceva

simetricnih kriptosustava koji se potom koriste za sifriranje same poruke. Kriptografija jav-

nog kljuca koristi se i za sifriranje malih poruka poput brojeva kreditnih kartica i PINova.

U nastavku cemo reci nesto o sigurnosti kriptosustava, posebno kriptosustava javnog kljuca.

2.2 Sigurnost

Definicija 2.3. Kriptoanaliza je znanstvena disciplina koja se bavi proucavanjem postupaka

za citanje sifrata bez poznavanja kljuca.

Osnovna pretpostavka kriptoanalize, poznata i kao Kerckhoffsovo nacelo, je da je kriptosustav

(M, C,K, E ,D) poznat svima. Jedino sto osobe koje zele komunicirati zadrzavaju u tajnosti

je odabrani par kljuceva (e, d).

Razlikujemo dvije vrste protivnika:

• Pasivni protivnik je onaj koji s nesigurnog komunikacijskog kanala moze samo citati

8

Page 11: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

informacije. Ovakav protivnik moze zaprijetiti samo povjerljivosti informacija.

• Aktivni protivnik je onaj koji uz citanje informacija s nesigurnog komunikacijskog ka-

nala te informacije moze i mijenjati ili brisati te cak slati nove informacije. Ovaj

protivnik, uz povjerljivost, prijeti netaknutosti i vjerodostojnosti informacija.

Glavni cilj protivnika koji napada kriptosustav javnog kljuca je otkriti otvoreni tekst na-

mijenjen nekoj osobi A iz pripadnog sifrata. Ukoliko je ovaj cilj ostvaren kazemo da je

enkripcijska shema probijena ili slomljena. Ambiciozniji cilj je stjecanje privatnog kljuca

osobe A. U tom slucaju kazemo da je enkripcijska shema u potpunosti probijena, buduci da

protivnik moze desifrirati sve sifrate poslane osobi A.

Poznajemo sljedece napade na enkripcijske sheme:

• Samo sifrat je napad u kojem protivnik pokusava otkriti kljuc sifriranja ili otvoreni

tekst samo promatranjem sifrata.

• Poznati otvoreni tekst je napad u kojem protivnik posjeduje nekoliko otvorenih tekstova

i odgovarajucih sifrata iz kojih pokusava otkriti kljuc ili algoritam kojim su sifrirani.

• Odabrani otvoreni tekst je vrsta napada u kojoj pretpostavljamo da protivnik moze

odabrati otvoreni tekst i iz njega dobiti odgovarajuci sifrat. Stoga, protivnik pokusava

shvatiti kako iz sifrata koji mu je nedostupan odrediti otvoreni tekst. Buduci da je u

enkripcijskim shemama javnog kljuca funkcija sifriranja javna, one su podlozne ovoj

vrsti napada.

• Odabrani sifrat je vrsta napada u kojoj pretpostavljamo da protivnik moze odabrati

sifrat i iz njega dobiti odgovarajuci otvoreni tekst. Protivnik pokusava otkriti kljuc

za desifriranje. Enkripcijske sheme javnoga kljuca podlozne su ovoj vrsti napada.

Medutim, oko ove vrste napada u enkripcijskim shemama javnoga kljuca treba se

zabrinjavati samo ako se u okruzenju u kojem se koristi shema takav napad uopce

moze izvesti.

Nadalje u ovom radu pretpostavit cemo da posiljatelj ima sredstvo pomocu kojeg moze

potvrditi kako javni kljuc koji koristi za sifriranje poruke doista pripada primatelju kojem

je ta poruka namijenjena. U suprotnom moguca je situacija ilustrirana na Slici 2.3.

9

Page 12: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Slika 2.3: Napad na kriptosustav javnog kljuca

Aktivni protivnik oponasa osobu B slanjem svog javnog kljuca e0 osobi A. Osoba A pretpos-

tavlja kako je e0 javni kljuc osobe B te pomocu njega sifrira otvoreni tekst m i dobiva sifrat

c0. Protivnik presrece c0 i desifrira ga svojim privatnim kljucem d0 te na taj nacin dobiva

otvoreni tekst m. Nakon toga, protivnik sifrira m koristeci javni kljuc e osobe B i dobiveni

sifrat c salje osobi B. Nasrecu, postoji mnogo tehnika za sprecavanje ovakvih situacija te one

ne predstavljaju problem u komunikaciji putem javnog kljuca. U nastavku cemo obraditi

najpoznatije algoritme javnog kljuca.

10

Page 13: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

3 RSA kriptosustav

RSA kriptosustav nastao je 1977. godine, ime je dobio po svojim tvorcima Ronaldu Rivestu,

Adi Shamiru i Leonardu Adlemanu. Ovaj kriptosustav je najprimjenjivaniji kriptosustav

javnog kljuca, njegova sigurnost temelji se na problemu faktorizacije velikih prirodnih brojeva.

3.1 Neki potrebni problemi i algoritmi

3.1.1 Problem faktorizacije

Definicija 3.1. Problem prikaza prirodnog broja n ∈ N, n > 1 u obliku produkta potencija

prostih brojeva, tj. pronalazenje zapisa n = p1e1p2

e2 · · · pkek , gdje su pi medusobno razliciti

prosti brojevi, a ei prirodni brojevi, 1 ≤ i ≤ k, nazivamo problem faktorizacije.

Prije pristupanja problemu faktorizacije uvijek je korisno odrediti je li broj koji zelimo fak-

torizirati uistinu slozen. Problem odredivanja je li prirodan broj prost ili slozen puno je

laksi od problema faktorizacije i rjesava se razlicitim testovima prostosti koje ovdje necemo

navoditi. Problem faktorizacije prirodnog broja n > 1 mozemo rijesiti pronalazenjem ne-

trivijalne faktorizacije broja n, tj. pronalazenjem prirodnih brojeva a i b za koje vrijedi

1 < a < n, 1 < b < n i n = ab. Zatim, primijenimo testove prostosti na brojeve a i b

te ponovno pronademo netrivijalnu faktorizaciju broja za koji smo utvrdili da je slozen, to

moze biti a ili b ili oba. Ponavljanjem ovoga postupka dobivamo zapis broja n u obliku

produkta potencija prostih brojeva.

Algoritme faktorizacije mozemo podijeliti na opce i specijalne. Kod specijalnih algoritama

faktorizacije ocekivani broj operacija ovisi o velicini broja n i o svojstvima njegovih faktora.

Neki od specijalnih algoritama su:

• Naivna metoda u kojoj dijelimo broj n sa svim prostim brojevima manjim ili jednakim√n (ukoliko su nam poznati), ova metoda je neefikasna za velike n-ove.

• Pollardov ρ algoritam u kojem slozenost algoritma ovisi o najmanjem prostom faktoru

od n.

• Pollardov p − 1 algoritam koji koristimo za pronalazenje prostih faktora p prirodnog

broja n za koji vrijedi da su svi prosti faktori broja p − 1 manji od nekog relativno

malog broja b.

• Faktorizacija pomocu eliptickih krivulja je algoritam koji daje najbolje rezultate pri-

likom faktorizacije”slucajnih“ brojeva, dok podbacuje prilikom faktorizacije brojeva

oblika n = pq, gdje su p i q bliski prosti brojevi.

11

Page 14: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Kod opcih algoritama faktorizacije ocekivani broj operacija ovisi samo o velicini broja n.

Neki od opcih algoritama su:

• Algoritam kvadratnog sita, koji ima isti ocekivani broj operacija za brojeve oblika n =

pq, gdje su p i q bliski prosti brojevi, kao i faktorizacija pomocu eliptickih krivulja,

ali ipak je bolji u faktorizaciji takvih brojeva zbog jednostavnijih operacija u glavnim

koracima algoritma.

• Faktorizacija sita polja brojeva je trenutno najbolji algoritam za faktorizaciju i primje-

njiv je na sve prirodne brojeve.

Buduci da su specijalni algoritmi faktorizacije opcenito ucinkovitiji, faktorizaciju bismo mogli

provesti na sljedeci nacin. Prvo pokusati odrediti male faktore koristenjem naivne metode ili

Pollardovog ρ algoritma. Zatim, iskoristiti moguca svojstva faktora primjenom faktorizacije

pomocu elipticnih krivulja te, ukoliko svi raniji algoritmi podbace, primijeniti opci algoritam,

na primjer algoritam kvadratnog sita. Napomenimo kako je danas, usprkos svim navedenim

algoritmima, prakticki nemoguce faktorizirati dobro odabran prirodan broj s vise od 250

znamenaka.

3.1.2 RSA problem

Definicija 3.2. Problem odredivanja prirodnog broja m takvog da je me ≡ c (mod n), gdje

je prirodan broj n produkt dva razlicita prosta broja p i q, a e prirodan broj takav da je

najveci zajednicki djelitelj od e i (p− 1)(q − 1) jednak 1, nazivamo RSA problem.

Drugim rijecima, RSA problem zahtjeva pronalazenje e-tih korijena modulo slozeni prirodan

broj n. Uvjeti postavljeni na parametre n i e osiguravaju da za svaki c ∈ {0, 1, . . . , n − 1}postoji tocno jedan m ∈ {0, 1, . . . , n− 1} takav da je me ≡ c (mod n).

Opcenito se vjeruje kako su RSA problem i problem faktorizacije ekvivalentni iako ta tvrdnja

nije dokazana.

3.1.3 Prosireni Euklidov algoritam

Euklidovim algoritmom racunamo najveci zajednicki djelitelj dvaju cijelih brojeva. Jedna

njegova posljedica glasi:

∀a, b ∈ Z ∃ x, y ∈ Z t.d. ax+ by = (a, b). (3.1)

Sljedeci, prosireni Euklidov algoritam koristimo za racunanje brojeva x i y takvih da vrijedi

(3.1), gdje su a i b unaprijed zadani.

12

Page 15: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Algoritam 3.1 Prosireni Euklidov algoritam

Ulaz: dva nenegativna cijela broja a i b t.d. a ≥ bIzlaz: d = (a, b) i cijeli brojevi x, y koji zadovoljavaju ax+ by = d1. if b = 0 do d← a, x← 1, y ← 0 return (d, x, y)2. else x2 ← 1, x1 ← 0, y2 ← 0, y1 ← 13. while b > 0

3.1. q ← ba/bc, r ← a− qb, x← x2 − qx1, y ← y2 − qy13.2. a← b, b← r, x2 ← x1, x1 ← x, y2 ← y1, y1 ← y

4. d← a, x← x2, y ← y25. return (d, x, y)

Primjer 1. Tablica 3.1 prikazuje korake Algoritma 3.1 za a = 3640 i b = 17. Dakle,

1 = (17, 3640) = 3640 · (−8) + 17 · 1713.

q r x y a b x2 x1 y2 y1

\ \ \ \ 3640 17 1 0 0 1214 2 1 -214 17 2 0 1 1 -2148 1 -8 1712 2 1 1 -8 -214 17132 0 17 3640 1 0 -8 17 1713 3640

Tablica 3.1: Primjer prosirenog Euklidovog agloritma

3.1.4 Algoritam ”kvadriraj i mnozi”

Algoritam ”kvadriraj i mnozi” koristimo za racunanje modularnog potenciranja. Ovaj al-

goritam temelji se na sljedecem. Neka jet∑

i=0

ki2i binarni zapis broja k, gdje je ki ∈ {0, 1}.

Tada je,

ak =t∏

i=0

aki2i

= (a20

)k0

(a21

)k1 · · · (a2t)

kt.

13

Page 16: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Algoritam 3.2 Algoritam ”kvadriraj i mnozi”

Ulaz: a ∈ Zn = {0, 1, . . . , n− 1}, cijeli broj 0 ≤ k ≤ n u binarnom zapisu k =t∑

i=0

ki2i

Izlaz: b = ak (mod n)1. b← 12. if k = 0 return (b)3. else A← a4. if k0 = 1 then b← a5. for i = 1 . . . t

5.1. A← A2 (mod n)5.2. if ki = 1 then b← Ab (mod n)

6. return (b)

Primjer 2. Tablica 3.2 prikazuje korake Algoritma 3.2 prilikom racunanja

56717 (mod 3763) = 1774.

i 0 1 2 3 4ki 1 0 0 0 1A 567 1634 13278 1208 2983b 567 567 567 567 1774

Tablica 3.2: Primjer algoritma ”kvadriraj i mnozi”

3.2 Opis

Kako bi osobe mogle komunicirati RSA metodom kriptografije, potrebno je odabrati javni

i generirati pripadni privatni kljuc. Generiranje kljuceva u RSA kriptosustavu za svaku

pojedinacnu osobu odvija se na slijedeci nacin:

1. generirati dva razlicita velika prosta broja p i q koji su otprilike iste velicine

2. izracunati parametar n = pq ∈ N

3. izracunati ϕ(n) = (p− 1)(q − 1), gdje je ϕ(n) Eulerova funkcija2 te vrijedi

ϕ(n) = ϕ(pq) = ϕ(p)ϕ(q) = (p− 1)(q − 1)

4. odabrati e ∈ N za koji vrijedi: 1 < e < ϕ(n) i (e, ϕ(n)) = 1

2Eulerova funkcija: Funkciju ϕ : N → N koja svakom n ∈ N pridruzuje broj prirodnih brojeva u nizu1, . . . , n koji su relativno prosti s n nazivamo Eulerova funkcija.

14

Page 17: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

5. koristeci prosireni Euklidov algoritam 3.1 izracunati jedinstveni d ∈ N za kojeg vrijedi:

1 < d < ϕ(n) i ed ≡ 1 (mod ϕ(n))

6. (n, e) je javni, a d privatni kljuc.

Napomena 1. U cetvrtom smo koraku 1 < e < ϕ(n) odabrali tako da je (e, ϕ(n)) = 1, stoga

slijedi:

∃x, y ∈ Z t.d. ex+ ϕ(n)y = (e, ϕ(n)) = 1

ex− 1 = ϕ(n)(−y)

Odakle slijedi

ex ≡ 1 (mod ϕ(n)).

Ocito, x = d, tj. postoji jedinstveni d ∈ N t.d. 1 < d < ϕ(n) i ed ≡ 1 (mod ϕ(n)).

U RSA kriptosustavu e nazivamo enkripcijski, a d dekripcijski eksponent, dok n nazivamo

modul. Nakon generiranja javnog i tajnog kljuca, potrebno je odrediti nacin sifriranja i

desifriranja poruke kako bi Alice i Bob mogli komunicirati koristeci RSA kriptosustav (kao

sto je prikazano na Slici 2.2).

Sifriranje:

1. Alice prima autenticni Bobov javni kljuc (n, e),

2. zapisuje otvoreni tekst kao cijeli broj m ∈ [0, n− 1],

3. racuna sifrat c = Ee(m) = me (mod n), koristeci Algoritam 3.2

4. salje Bobu sifrat c.

Desifriranje:

1. Bob koristi svoj tajni kljuc d kako bi izracunao m = Dd(c) = cd (mod n).

Slijedi definicija RSA kriptosustava.

Definicija 3.3. RSA kriptosustav: Neka je n = pq, gdje su p i q prosti brojevi. Neka je

M = C = Zn te

K = {(n, e, d) : n = pq, de ≡ 1 (mod ϕ(n))}.

Za (n, e, d) ∈ K definiramo

Ee(m) = me (mod n) i Dd(c) = cd (mod n), m, c ∈ Zn.

15

Page 18: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Pokazimo kako skupovi E = {Ee(m) = me (mod n) : (n, e, d) ∈ K} i

D = {Dd(c) = cd (mod n) : (n, e, d) ∈ K} cine enkripcijsku shemu, tj. kako su funkcije

Ee i Dd medusobno inverzne.

Znamo da je

Dd(Ee(m)) = med (mod n),

a iz ed ≡ 1 (mod ϕ(n)) slijedi da postoji k ∈ N takav da de = 1 + ϕ(n)k odakle je med =

m1+ϕ(n)k = m(mϕ(n))k.

Ako pretpostavimo da je (m,n) = 1, tada je prema Eulerovom teoremu3

mde = m(mϕ(n))k ≡ m (mod n), a zbog m ∈ Zn je med (mod n) = m.

Ako je (m,n) = n, tada je mde ≡ 0 ≡ x (mod n).

Ako je (m,n) = p, tada je mde ≡ 0 ≡ x (mod p), a kako je (m,n) = (m, pq) = p slijedi da

je (m, q) = 1 te

mϕ(q) = mq−1 ≡ 1 (mod q),

iz cega slijedi

mde = (mq−1)(p−1)k ≡ m (mod q),

odakle je mde ≡ m (mod n), a zbog m ∈ Zn je med (mod n) = m.

Slicno dobivamo i u slucaju kada je (m,n) = q.

Slijedi da je u svakom slucaju med (mod n) = m te su funkcije Ee i Dd medusobno inverzne.

Primjer 3. Alice zeli poslati poruku Bobu koristeci RSA kriptosustav. Poruka je m = 567.

Odabir kljuceva: Bob odabire proste brojeve p = 53 i q = 71 te odredi n = 53 · 71 = 3763

i ϕ(n) = (p − 1)(q − 1) = 52 · 70 = 3640. Zatim, Bob odabire e ∈ [1, 3640] takav da

je (e, ϕ(n)) = 1 i dobiva e = 17. Koristeci prosireni Euklidov algoritam, kako je prika-

zano u Primjeru 1, racuna d = 1713 takav da je ed ≡ 1 (mod ϕ(n)). Bobov javni kljuc je

(n = 3763, e = 17), a njegov privatni kljuc je d = 1713.

Sifriranje: Kako bi sifrirala poruku m = 567, Alice koristi algoritam za modularno ekspo-

nenciranje(npr. Algoritam 3.2) kako bi izracunala sifrat

c = me (mod n) = 56711 (mod 3763) = 1774,

3Eulerov teorem: Za relativno proste brojeve x i n vrijedi xϕ(n) ≡ 1 (mod n).

16

Page 19: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

kao u Primjeru 2. Alice salje sifrat Bobu.

Desifriranje: Kako bi desifrirao c, Bob racuna

cd (mod n) = 17741713 (mod 3763) = 567.

3.3 Sigurnost

Veza s faktorizacijom

Zadatak pasivnog protivnika je otkriti otvoreni tekst m iz pripadnog sifrata c uz poznavanje

primateljevog javnog kljuca (n, e). Ovaj problem naziva se RSA problem i uveli smo ga u

Potpoglavlju 3.1.2.

Kako bi rijesio RSA problem, protivnik bi mogao pokusati faktorizirati n te izracunati ϕ(n)

i d na isti nacin na koji je to ucinio primatelj kada je generirao svoj javni i privatni kljuc.

Jednom kada zadobije d protivnik moze desifrirati bilo koji sifrat namijenjen primatelju. S

druge strane, ako bi protivnik mogao izracunati d, tada bi mogao i faktorizirati n koristeci

slijedecu cinjenicu. Buduci da je ed ≡ 1 (mod ϕ(n)) slijedi da postoji k ∈ N takav da

ed− 1 = ϕ(n)k. Stoga je za svaki a ∈ Zn∗, gdje je Zn

∗ = {1, . . . , n − 1}, prema Eulerovom

teoremu, aed−1 ≡ 1 (mod n). Neka je ed − 1 = 2st, gdje je t neparan. Moze se pokazati

da postoji i ∈ [1, s] takav da ai−1t 6≡ ±1 (mod n) i a2it ≡ 1 (mod n) za barem polovinu

svih a ∈ Zn∗. Ako su a i i takvi brojevi, tada je (a2

(i−1)t, n) netrivijalni faktor od n. Prema

tome, protivnik bi jednostavno trebao odabirati nasumicne a ∈ Zn∗ i provjeravati postoji li

i ∈ [1, s] koji zadovoljava gornja svojstva. Na ovaj nacin protivnik bi pronasao netrivijalnu

faktorizaciju od n, pomocu koje moze rjesiti problem faktorizacije broja n na nacin opisan

u 3.1.1.

Zakljucujemo kako su problem racunanja dekripcijskog eksponenta d iz javnog kljuca (n, e)

i problem faktorizacije modula n ekvivalentni.

Mali enkripcijski eksponent e

Kako bi se poboljsala efikasnost sifriranja, mogli bismo smatrati pozeljnim odabrati mali

enkripcijski eksponent e. Neka grupa osoba ima isti e, kako bi imali razlicite javne kljuceve,

svaka osoba mora imati razliciti modul n. Ukoliko osoba A zeli poslati istu poruku m trima

osobama, ciji su moduli n1, n2, n3 i koje imaju isti enkripcijski eksponent e = 3, tada A

salje ci = m3 (mod ni), i = 1, 2, 3. Postoji algoritam kojim protivnik moze, uz znanje sifrata

c1, c2, c3, naci rjesenje x, 0 ≤ x ≤ n1n2n3 triju kongruencijax ≡ c1 (mod n1)x ≡ c2 (mod n2)x ≡ c3 (mod n3).

17

Page 20: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Buduci da je m3 < n1n2n3, prema Kineskom teoremu o ostacima4, slijedi da je x = m3.

Stoga, izracunavanjem cjelobrojnog kubnog korijena od x, protivnik moze zadobiti otvoreni

tekst m. Uvidamo kako enkripcijski eksponenet e ne bi trebao biti mali u slucaju kada

istu poruku saljemo vise osoba. Kako bismo sprijecili ovu vrstu napada potrebno je, prije

sifriranja, otvorenom tekstu dodati niz brojeva odgovarajuce velicine, koji se generira zasebno

za svako sifriranje. Ovaj postupak se ponekad naziva soljenje ili zacinjavanje poruke.

Mali enkripcijski eksponeneti su problem i pri slanju malih poruka m. Ako je m < n1/e,

protivnik moze otvoreni tekst m zadobiti iz sifrata c = me (mod n) racunanjem cjelobrojnog

e-tog korijena od c. Soljenje poruke takoder rjesava ovaj problem.

Napad pretrazivanjem prema naprijed

Ukoliko je alfabet otvorenog teksta mali ili predvidljiv, protivnik moze desifrirati sifrat c

tako sto ce sifrirati sve moguce otvorene tekstove dok ne dobije c. Soljenje poruke, kao i u

prethodnom slucaju, sprjecava ovu vrstu napada.

Mali dekripcijski eksponent d

Takoder, mogli bismo smatrati pozeljnim odabrati mali dekripcijski eksponent d, kako bi

poboljsali ucinkovitost desifriranja. Medutim, ukoliko je (p− 1, q− 1) mali i d ima do jednu

cetvrtinu bitova modula n, postoji algoritam za racunanje d iz poznavanja javnog kljuca

(n, e). Ovaj algoritam nije ucinkovit u slucaju kada su dekripcijski eksponent d i modul n

priblizno iste velicine.

Multiplikativna svojstva

Neka su m1 i m2 otvoreni tekstovi te c1 i c2 njihovi sifrati sifrirani RSA kriptosustavom.

Uocimo,

(m1m2)e ≡ m1

em2e ≡ c1c2 (mod n).

Prema tome, sifrat c = c1c2 (mod n) odgovara otvorenom tekstu m = m1m2 (mod n). Ovo

svojstvo omogucava slijedeci napad na RSA kriptosustav pomocu odabranog sifrata.

Pretpostavimo kako aktivni protivnik zeli desifrirati sifrat c = me (mod n) namijenjen Bobu

te kako ce Bob desifrirati protivniku proizvoljan sifrat razlicit od c. Protivnik moze sakriti

c tako sto ce izabrati nasumican x ∈ Zn∗ i izracunati c = cxe (mod n). Bob ce protivniku

desifrirati m = (c)d (mod n). Buduci da je m ≡ (c)d ≡ cd(xe)d ≡ mx (mod n), protivnik

moze izracunati m = mx−1 (mod n).

Ovaj napad moze se izbjeci nametanjem odredene strukture otvorenom tekstu. Ako se sifrat c

desifrira u poruku koja ne posjeduje tu strukturu, c se automatski odbacuje. Ukoliko otvoreni

4Kineski teorem o ostacima: Ako su n1, n2, . . . , n3 u parovima relativno prosti prirodni brojevi,tadasustav kongruencija x ≡ a1 (mod n1), . . . , x ≡ ak (mod nk) ima jedinstveno rjesenje modulo n1n2 · · ·nk.

18

Page 21: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

tekst m posjeduje zadanu strukturu, tada, s velikom vjerojatnoscu, mx (mod n), x ∈ Zn∗,

nece posjedovati tu strukturu i prethodno opisani odabrani sifrat napad nece uspjeti jer Bob

nece desifrirati c protivniku.

Zajednicki modul n

Neka jedna osoba izabere RSA modul n te zatim odredi i distribuira razlicite enkripcijske i

dekripcijske eksponente (ei, di) ostalim osobama u grupi. Kako je pokazano na pocetku ovog

odjeljka, poznavanje bilo kojeg para (ei, di) omogucuje faktorizaciju modula n i izracunavanje

dekripcijskih eksponenata svih drugih osoba u grupi. Takoder, ako se isti otvoreni tekst salje

dvjema ili vise osoba u grupi, postoji nacin na koji protivnik s velikom vjerojatnoscu moze

procitati poruku pomocu poznavanja samo javnih parametara.

Ciklicki napad

Neka je c = me (mod n) sifrat i k pozitivan cijeli broj takav da je cek ≡ c (mod n). Buduci

da je sifriranje permutacija alfabeta otvorenog teksta Zn, takav k mora postojati. Iz istog

razloga je ce(k−1) ≡ m (mod n). Ova cinjenica omogucuje slijedeci ciklicki napad. Protivnik

izracuna ce (mod n), ce2

(mod n), . . . dok kao rezultat ne dobije c. Ako je cek

(mod n) = c

tada je ce(k−1)

(mod n) = m.

Prikrivanje poruke

Za otvoreni tekst m, 0 ≤ m ≤ n − 1, u RSA enkripcijskoj shemi kazemo da je neprikriven

ukoliko se sifrira sam u sebe, tj. ako je me ≡ m (mod n). Uvijek je neki otvoreni tekst

neprikriven, npr. m = 0,m = 1,m = n = −1. Buduci da su e− 1, p− 1, q− 1 parni brojevi,

broj neprikrivenih poruka je najmanje 9. Ako su p i q nasumicni prosti brojevi i ako je e

odabran nasumicno, broj poruka neprikrivenih RSA sifriranjem je zanemarivo mal i stoga

ne predstavlja prijetnju sigurnosti RSA kriptosustava.

Navedene mogucnosti napada ukazuju na sto treba pripaziti prilikom odabira potrebnih

parametara.

3.4 Implementacija

Cak i uz odredena poboljsanja, RSA kriptosustav je znatno sporiji od cesto koristenih sime-

tricnih kriptosustava. U praksi, RSA kriptosustav koristi se za slanje kljuceva za algoritme

simetricnih kriptosustava i za sifriranje malih podataka.

Uzimajuci u obzir najnovije algoritme za faktorizaciju cijelih brojeva, 512-bitni modul n

19

Page 22: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

pruza samo marginalnu sigurnost. Kako bi se osujetili algoritmi kvadratnog sita i faktoriza-

cije sitom polja algebarskih brojeva, preporuca se uporaba modula od barem 768 bitova, a

za dugorocnu sigurnost potrebno je odabrati modul od barem 1024 bita.

Nadalje, prosti brojevi p i q trebali bi biti odabrani tako da je faktorizaciju n = pq prakticki

nemoguce izracunati. Kako bismo izbjegli algoritam faktorizacije pomocu eliptickih krivulja,

p i q bi trebali biti otprilike iste velicine i dovoljno veliki. Takoder, razlika p− q ne bi trebala

biti premalena jer je tada p ≈ q i stoga p ≈√n, tj. tada bismo n mogli faktorizirati pri-

mjenom najjednostavnije naivne metode faktorizacije. Ukoliko su p i q odabrani nasumicno,

razlika p− q je vrlo vjerojatno dovoljno velika.

Isto tako, ponekad se preporuca da p i q budu jaki prosti brojevi, tj. da zadovoljavaju slijedeca

svojstva:

1. p− 1 ima veliki prost faktor r

2. p+ 1 ima veliki prost faktor

3. r − 1 ima veliki prost faktor

Uvjet 1. onemogucava Pollardov p− 1 algoritam, uvjet 2. onemogucava algoritam za p + 1

faktorizaciju koji nije spominjan u ovom radu, dok uvjet 3. onemogucava ciklicke napade.

S druge strane, moze se pokazati kako su sve navedene vrste napada, koje ovi uvjeti sp-

rjecavaju, u potpunosti ili vecinom onemogucene i uporabom samo nasumicno izabranih

prostih brojeva p i q te stoga nije nuzno koristiti jake proste brojeve u generiranju RSA

kljuceva. Ipak, uporabom jakih prostih brojeva RSA kriptosustav ne gubi na sigurnosti niti

na efikasnosti te njihovo koristenje ne predstavlja nikakvu prepreku.

Sifriranje se moze ubrzati odabirom malog enkripcijskog eksponenta e ili odabirom enkrip-

cijskog eksponenta e cija binarana reprezentacija sadrzi sto manje jedinica. Na ovaj nacin

postizemo vecu ucinkovitost Algoritma ”kvadriraj i mnozi” 3.2. Cesto koristeni enkripcijski

eksponent je e = 3, u ovom slucaju potrebno je da niti p − 1 niti q − 1 ne budu djeljivi

sa 3. Ovaj enkripcijski eksponent rezultira vrlo brzim sifriranjem, buduci da je njegovom

uporabom potrebno samo jedno modularno mnozenje i jedno modularno kvadriranje. Drugi

cesto koristeni enkripcijski eksponent je e = 216+1 = 65537 cija binarana reprezentacija ima

samo dvije jedinice te stoga uporaba algoritma ”kvadriraj i mnozi” zahtjeva samo 16 mo-

dularnih kvadriranja i jedno modularno mnozenje. Prednost ovog enkripcijskog eksponenta

nad eksponentom e = 3 opisali smo kada smo govorili o sigurnosti RSA kriptosustava.

Vazno je napomnuti kako, uz pravilnu implementaciju svih parametara, RSA kriptosustav

za sada mozemo smatrati sigurnim kriptosustavom.

20

Page 23: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

4 Rabinov kriptosustav

Rabinov kriptosustav razvijen je 1979. godine te je nazvan po svome tvorcu, izraelskom

matematicaru Michaelu Oseru Rabinu. Enkripcijska shema Rabinovog kriptosustava je prva

dokazivo sigurna enkripcijska shema javnog kljuca. Enkripcijska shema je dokazivo sigurna,

ako mozemo dokazati kako je podjednako tesko slomiti tu enkripcijsku shemu i rijesiti neki

dobro poznati i teski matematicki problem. Problem otkrivanja otvorenog teksta iz sifrata,

u Rabinovom kriptosustavu, ekvivalentan je problemu racunanja kvadratnog korijena koji je,

kako cemo pokazati, ekvivalentan problemu faktorizacije opisanom u Potpoglavlju 3.1.1.

4.1 Problem odredivanja kvadratnog korijena u Zn

Definicija 4.1. Neka je n = pq, gdje su p i q prosti brojevi i neka je 1 ≤ a ≤ n−1 kvadratni

ostatak5 modulo n. Problem odredivanja x ∈ Z takvog za je x2 ≡ a (mod n) nazivamo

problem odredivanja kvadratnog korijena modulo n.

Ako su poznati prosti faktori p i q broja n, problem odredivanja kvadratnog korijena mo-

dulo n moze se ucinkovito rijesiti nalazenjem kvadratnih korijena modulo p i modulo q te

koristenjem kineskog teorema o ostacima kako bi se nasli kvadratni korijeni modulo n = pq.

Sljedeci algoritam pronalazi dva kvadratna korijena broja a modulo prost broj p.

Algoritam 4.1 Nalazenje kvadratnih korijena modulo prost broj p

Ulaz: p prost broj , a kvadratni ostatak modulo pIzlaz: dva kvadratna korijena od a modulo p1. a = a (mod p)2. if p ≡ 3, 7 (mod 8) do

2.1. x = a(p+1)/4 (mod p)2.2. return (x)

3. if p ≡ 5 (mod 8) do3.1. x = a(p+3)/8 (mod p)3.2. c = x2 (mod p)3.3. if c 6= a (mod p) do x = x · 2(p−1)/4 (mod p)3.4. return (x)

4. nadi broj d ∈ {2, 3, . . . , p− 1} takav da je d kvadratni neostatak modulo p5. prikazi p− 1 = 2st, t neparan6. A = at (mod p)7. D = dt (mod p)8. m = 0

5Kvadratni ostatak: Neka su a i n ∈ N. Ako kongruencija x2 ≡ a (mod n) ima rjesenje, kazemo da jea kvadratni ostatak modulo n. U suprotnom je a kvadratni neostatak modulo n.

21

Page 24: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Nalazenje kvadratnih korijena modulo prost broj p

9. for 0 ≤ i ≤ s− 1 do9.1. if (ADm)2

s−1−i ≡ −1 (mod p) do m = m+ 2i

10. x = a(t+1)/2Dm/2 (mod p)11. return (x)

Sljedeci algoritam pronalazi sva cetiri kvadratna korijena broja a modulo n.

Algoritam 4.2 Nalazenje kvadratnih korijena modulo n, ciji su prosti faktori p i q poznati

Ulaz: n ∈ Z, njegovi prosti faktori p i q, a kvadratni ostatak modulo nIzlaz: cetiri kvadratna korijena od a modulo n1. Pomocu Algoritma 4.1 nadi kvadratne korijene r i −r od a modulo p2. Pomocu Algoritma 4.1 nadi kvadratne korijene s i −s od a modulo q3. Pomocu prosirenog Euklidovog algoritma 3.1 nadi cijele brojeve c i d takve da jecp+ dq = 14. x← (rdq + scp) (mod n), y ← (rdq − scp) (mod n)6. return (±x (mod n),±y (mod n))

Obrnuto, ako znamo rijesiti problem odredivanja kvadratnog korijena modulo n, mozemo

rijesiti i problem faktorizacije. Neka je n slozen broj. Nasumicno odaberemo broj x takav

da je (x, n) = 1 (inace je (x, n) = p ili (x, n) = q netrivijalni djelitelj od n) i izracunamo

a = x2 (mod n). Zatim primjenimo npr. Algoritam 4.2 i odredimo kvadratne korijene od

a modulo n. Neka je y kvadratni korijen od a modulo n. Ako je y ≡ ±x (mod n), biramo

novi x. Ako y 6≡ ±x (mod n) tada n|(x− y)(x+ y) te je (x− y, n) netrivijalni djelitelj od n.

Buduci da postoje cetiri kvadratna korijena od a modulo n, vjerojatnost da ovaj postupak

uspije u prvom pokusaju je 1/2.

Ocito je da su problem odredivanja kvadratnog korijena modulo n i problem faktorizacije

ekvivalentni.

4.2 Opis

Kao i u RSA kriptosustavu, prije pocetka komunikacije osobe moraju odabrati svoje javne i

privatne kljuceve. U Rabinovom kriptosustavu osobe generiraju kljuceve na slijedeci nacin:

1. generirati dva razlicita, nasumicna, velika prosta broja p i q koji su otprilike iste velicine

2. izracunati parametar n = pq ∈ N

3. n je javni, a (p, q) privatni kljuc.

22

Page 25: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Nakon odabira kljuceva, Alice i Bob moraju odrediti nacin sifriranja i desifriranja poruka u

Rabinovom kriptosustavu, kako bi mogli zapoceti medusobnu komunikaciju.

Sifriranje:

1. Alice prima Bobov autenticni javni kljuc n,

2. zapisuje otvoreni tekst kao cijeli broj m ∈ {0, 1, . . . , n− 1},

3. racuna sifrat c = Ee(m) = m2 (mod n),

4. salje Bobu sifrat c.

Desifriranje:

1. Bob, koristeci Algoritam 4.2, racuna cetiri kvadratna korijena m1,m2,m3 i m4 od c

modulo n.

2. Poslana poruka je m1,m2,m3 ili m4. Bob mora odluciti koja je od dobivenih poruka

ispravna.

Slijedi definicija Rabinovog kriptosustava.

Definicija 4.2. Rabinov kriptosustav: Neka je n = pq, gdje su p i q prosti brojevi. Neka je

M = C = Zn te

K = {(n, p, q) : n = pq}.

Za (n, p, q) ∈ K definiramo

Ee(m) = m2 (mod n) i Dd(c) =√c (mod n), m, c ∈ Zn.

Napomena 2. Ukoliko su prosti brojevi p i q odabrani tako da je p ≡ q ≡ 3 (mod 4),

umjesto koristenja Algoritma 4.2, cetiri kvadratna korijena od c modulo n mozemo pronaci

na slijedeci nacin:

1. Koristeci prosireni Euklidov algoritam 3.1 pronaci a, b ∈ Z takve da je ap+ bq = 1,

2. izracunati r = c(p+1)/4 (mod p),

3. izracunati s = c(q+1)/4 (mod q),

4. izracunati x = (aps+ bqr) (mod n),

5. izracunati y = (aps− bqr) (mod n),

6. kvadratni korijeni od c modulo n su ±x (mod n) i ±y (mod n).

23

Page 26: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Nedostatak Rabinove enkripcijske sheme je da funkcija sifriranja Ee(m) = m2 (mod n)

nije injekcija, tj. primatelj mora sam odabrati otvoreni tekst izmedu cetiri dobivena kva-

dratna korijena sifrata c modulo n. Takav zadatak nije uvijek lagan, jer otvoreni tekst

ne mora biti smislena poruka vec, na primjer, kljuc nekog simetricnog kriptosustava. Ova

nedorecenost prilikom desifiranja moze se ukloniti dodavanjem neke unaprijed odredene re-

dundancije otvorenom tekstu prije sifriranja, npr. mogu se ponavljati zadnja 64 bita poruke.

Tada ce, s velikom vjerojatnoscu, tocno jedan od cetiri kvadratna korijena sifrata c modulo

n posjedovati zadanu redundanciju i primatelj ce upravo taj kvadratni korijen smatrati otvo-

renim tekstom koji mu je poslan. Ukoliko niti jedan od kvadatnih korijena sifrata c modulo

n ne posjeduje zadanu strukturu, primatelj ce u potpunosti odbaciti sifrat c.

Primjer 4. Alice zeli poslati poruku Bobu, ovaj put koristeci Rabinov kriptosustav. Poruka

je m = 567, u binarnom zapisu m = 1000110111.

Odabir kljuceva: Bob odabire proste brojeve p = 431 i q = 151 te odredi n = pq = 431 ·151 = 65081. Bobov javni kljuc je n = 65081, a njegov privatni kljuc je (p, q) = (431, 151).

Sifriranje: Pretpostavimo kako je prije sifriranja potrebno duplicirati posljednjih sest bi-

tova otvorenog teksta. Kako bi sifrirala poruku m = (567)10 = (1000110111)2, Alice du-

plicira posljednjih sest bitova otvorenog teksta m i dobiva slijedecu 16-bitnu poruku m =

1000110111110111, u dekadskom zapisu m = 36343. Alice racuna

c = m2 (mod n) = 363432 (mod 65081) = 59835

i salje sifrat c Bobu.

Desifriranje: Kako bi desifrirao c, Bob koristi Algoritam 4.2 i svoj privatni kljuc (p =

431, q = 151), tj. svoje poznavanje faktorizacije od n = pq kako bi izracunao cetiri kvadratna

korijena od c modulo n:

m1 = 4880, m2 = 28738, m3 = 36343, m4 = 60201,

u binarnom zapisu

m1 = 1001100010000, m2 = 111000001000010,

m3 = 1000110111110111, m4 = 1110101100101001.

Buduci da samo m3 posjeduje zadanu redundanciju, Bob desifrira c kao m3 i zadobiva otvo-

reni tekst m = (1000110111)2 = (567)10.

4.3 Sigurnost

Zadatak pasivnog protivnika je otkriti otvoreni tekst m iz pripadnog sifrata c uz poznava-

nje primateljevog javnog kljuca n. Ovo je upravo problem odredivanja kvadratnog korijena

24

Page 27: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

modulo n kojeg smo uveli u Potpoglavlju 4.1. Buduci da smo pokazali kako je ovaj problem

ekvivalentan problemu faktorizacije 3.1.1 kojeg je gotovo nemoguce rijesiti, ukoliko je javni

kljuc n dobro odabran, Rabinova enkripcijska shema je dokazivo sigurna od pasivnog pro-

tivnika.

S druge strane, Rabinova enkripcijska shema podilazi napadu odabrani sifrat. Takav napad

moze se izvesti na slijedeci nacin. Aktivni protivnik odabere nasumicni m ∈ Zn∗ i izracuna

c = m2 (mod n). Zatim, protivnik posalje c primatelju koji desifrira c i vraca protivniku

neki otvoreni tekst y. Buduci da primatelj ne zna m i m je nasumicno izabran, otvoreni

tekst y ne mora nuzno biti jednak m. Ipak, y 6≡ ±m (mod n) s vjerojatnoscu od 1/2 i tada

je (m− y, n) prost faktor od n. Ako je y ≡ ±m (mod n), protivnik ponavlja napad koristeci

novi m.

Medutim, ukoliko se pri komunikaciji koristi redundancija, na nacin opisan ranije u tekstu,

Rabinova enkripcijska shema nije podlozna napadu odabrani sifrat. Naime, ukoliko protivnik

odabere poruku m koja posjeduje zadanu redundanciju, izracuna c = m2 (mod n) i posalje

c primatelju, primatelj ce mu najvjerojatnije vratiti otvoreni tekst y = m, jer ostala tri

kvadratna korijena nece sadrzavati potrebnu redundanciju. Stoga, protivnik na ovaj nacin

nece doci do novih informacija. Nadalje, ako protivnik odabere poruku m koje ne posje-

duje zadanu redundanciju, s velikom vjerojatnoscu niti jedan od cetiri kvadratna korijena

od c = m2 (mod n) nece sadrzavati tu redundanciju te primatelj nece pruziti protivniku

nikakvu povratnu informaciju.

Napomenimo kako Rabinova enkripcijska shema podilazi i napadima slicnima situacijama

opisanim u Potpoglavlju 3.3 pod podnaslovima Mali enkripcijski eksponent e, Napad pre-

trazivanjem prema naprijed i Mali dekripcijski eksponent d. Kao i u RSA kriptosustavu, ovi

napadi se mogu sprijeciti soljenjem poruke odnosno dodavanjem redundancije otvorenom

tekstu.

25

Page 28: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

5 McElieceov kriptosustav

McElieceov kriptosustav razvio je 1978. godine matematicar Robert McEliece. McEliece-

ova enkripcijska shema u potpunosti se razlikuje od enkripcijskih shema RSA i Rabinovog

kriptosustava i zasniva se na linearnim kodovima za ispravljanje pogresaka. Ideja sheme je

odabrati kod za koji postoji ucinkoviti algoritam za desifriranje te zatim prikazati taj kod

kao linearni kod cije je dekodiranje NP-tesko6.

5.1 Linearni kodovi za ispravljanje gresaka

Kodovi za ispravljanje pogresaka ispravljaju slucajne greske nastale prilikom prenosenja po-

dataka preko kanala sa ”sumom”. Linearni kod za ispravljanje gresaka je kod za ispravljanje

pogresaka kod kojeg je svaka linearna kombinacija kodnih rijeci ponovno kodna rijec. Line-

arni kodovi omogucavaju ucinkovitije sifriranje i desifriranje od ostalih kodova.

Formalnije, linearni kod duljine n i ranga k, n, k ∈ N, k ≤ n, je k-dimenzionalni potprostor

C vektorskog prostora Zqn, gdje je q prost broj. Ukoliko je q = 2 linearni kod nazivamo

binarnim linearnim kodom. Vektori u C se nazivaju kodne rijeci, a velicina koda je broj

kodnih rijeci. Tezina kodne rijeci je broj njenih nenul elemenata.

Neka su x = (x1, . . . , xn), y = (y1, . . . , yn) ∈ Z2n dvije kodne rijeci, udaljenost medu njima

je takozvana Hammingova udaljenost definirana kao

d(x, y) = |{i : 1 ≤ i ≤ n, xi 6= yi}|,

tj. kao broj koordinata u kojima se x i y razlikuju. Udaljenost d linearnog koda C definiramo

s

d = d(C) = min{d(x, y) : x, y ∈ C, x 6= y},

to je najmanja moguca udaljenost izmedu dvije razlicite kodne rijeci. Tada kazemo da je C

[n, k, d]-kod.

Generirajuca matrica za linearni kod C je k × n matrica G ciji retci tvore bazu za C. Za

matricu G kazemo da je u standardnom obliku, ako je G blok-matrica G = (Ik | A), gdje je

Ik jedinicna matrica, a A neka k × (n− k) matrica. Generirajucoj matrici G pridruzujemo

njenu matricu provjerene parnosti H. H je (n − k) × n matrica ciji retci tvore bazu za

ortogonalni komplement od C koji nazivamo dualnim kodom od C i oznacavamo s C⊥.

6Za problem kazemo da je NP-tezak ukoliko je tezak barem kao bilo koji NP-problem, tj. problem kojije rjesiv u polinomijalnom vremenu.

26

Page 29: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Primjer jednog [7, 4, 3]-koda dan je sljedecom generirajucim matricom G i njenom matri-

com provjerene parnosti H.

G =

1 0 0 0 1 1 00 1 0 0 1 0 10 0 1 0 0 1 10 0 0 1 1 1 1

, H =

1 1 0 1 1 0 01 0 1 1 0 1 10 1 1 1 0 0 1

Demonstrirajmo nacin rada linearnih kodova za ispravljanje gresaka. Neka je G generirajuca

matrica za neki [n, k, d]-kod C i neka je x binarna k-torka koju posaljitelj salje primatelju.

Posiljatelj sifrira x kao n-torku y = xG i salje y primatelju. Primatelj primi n-torku r,

koja se zbog ”suma” u kanalu ne mora podudarati s y. Kako bi desifrirao r, primatelj trazi

kodnu rijec y′ ∈ C s najmanjom Hammingovom udaljenoscu od r te zatim odreduje k-torku

x′ takvu da je x′ = y′G. Primatelj zakljucuje kako je y = y′ i x = x′, tj. kako je ispravio

greske nastale u prijenosu podataka. Ako broj gresaka nije veci od (d − 1)/2, sve se greske

mogu ispraviti na ovaj nacin. Za linearne kodove problem pronalazenja najblize kodne rijeci

je vrlo tezak. U McEliecevom kriptosustavu koristi se posebna klasa binarnih Goppinih

kodova za koje postoji ucinkovit Pattersonov algoritam za desifriranje. Parametri Goppinih

kodova imaju oblik n = 2m, d = 2t+ 1, k ≥ n−mt. Vise informacija o binarnom Goppinom

kodu dostupno je u knjizi Algebraic Coding Theory autora Elwyn R. Berlekampa, kao i u

njegovom clanku Goppa Codes objavljenom u casopisu IEEE Transactions on information

theory koji je dostupan na internetu.

5.2 Opis

Ponovno je prije pocetka komunikacije potrebno odabrati javni i privatni kljuc. U McEli-

ecevom kriptosustavu osobe generiraju kljuceve na slijedeci nacin:

1. parametri n, k, t ∈ N, k ≤ n, su zajednicki parametri sustava

2. svaka osoba provodi slijedece korake

3. izabrati k×n generirajucu matricu G za binarni [n, k]-linearni kod C koji moze ispraviti

t pogresaka i za koji je poznat ucinkovit algoritam za desifriranje, npr. binarni Goppin

kod

4. izabrati nasumicnu k × k invertibilnu matricu S nad Z2

5. izabrati nasumicnu n× n permutacijsku matricu7 P

7Permutacijska matrica: Permutacijska matrica n×n, n ∈ N, je matrica koja u svakom retku i svakomstupcu sadrzi tocno jednu jedinicu, dok su ostali elementi nule.

27

Page 30: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

6. izracunati k × n matricu G′ = SGP

7. (G′, t) je javni, a (S,G, P ) privatni kljuc.

Nakon odabira kljuceva, Alice i Bob odreduju nacin sifriranja i desifriranja poruka u McE-

liecevom kriptosustavu.

Sifriranje:

1. Alice prima Bobov autenticni javni kljuc (G′, t),

2. zapisuje otvoreni tekst kao binarni vektor m duljine k,

3. odabire nasumicni binarni vektor pogreske z duljine n koji ima najvise t jedinica,

4. racuna sifrat c koji je binarni vektor c = mG′ + z,

5. salje Bobu sifrat c.

Desifriranje:

1. Bob racuna c′ = cP−1, gdje je P−1 inverzna matrica permutacijske matrice P ,

2. primjenjuje algoritam za desifriranje (binarnog Goppinog) koda generiranog matricom

G, kako bi iz c′ izracunao m′

3. racuna m = m′S−1.

Slijedi definicija McEliecevog kriptosustava.

Definicija 5.1. McElieceov kriptosustav: Neka je G generirajuca matrica za [n, k, d]-linearni

kod C koji moze ispraviti t pogresaka. Neka je S invertibilna k × k matrica nad Z2 te P

n × n permutacijska matrica. Stavimo G′ = SGP i definiramo M = Z2k, C = Z2

n,K =

{(G,S, P,G′, t)}. (G′, t) je javni, a (G,S, P ) privatni kljuc.

Za (G,S, P,G′, t) ∈ K definiramo

Ee(m, z) = mG′ + z,

gdje je z ∈ Z2 slucajno generirani vektor pogreske tezine t = (d− 1)/2.

Sifrat c ∈ Z2 desifriramo tako da izracunamo c′ = cP−1, zatim desifriramo c′ i dobijemo

kodnu rijec m′ ∈ C koja je najbliza c′ i konacno izracunamo m = m′S−1.

Uocimo da c′ mozemo desifrirati jer je kodiran binarnim Goppinim kodom G, a c ne mozemo

jer je kodiran s G′ za koji ne postoji ucinkovit algoritam za desifriranje.

28

Page 31: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Nadalje cemo pokazati kako je desifriranje ispravno provedeno.

Buduci da je

c′ = cP−1 = (mG′ + z)P−1 = (mSGP + z)P−1 = (mS)G+ zP−1

i zP−1 je vektor tezine t, algoritam za dekodiranje npr. binarnog Goppinog koda desifrira c′

u m′. Na poslijetku je m′S−1 = m i desifriranje je ispravno.

Zajednicki parametri sustava koje je McEliece predlozio bili su n = 1024, t = 50 i k ≥ 524.

Medutim, trenutno se optimalnim izborom parametara za binarne Goppine kodove smatraju

n = 1024, t = 38 i k ≥ 644, sto je rezultiralo povecanjem velicine javnog kljuca na velicinu

od otprlike 219 bitova i faktorom povecanja poruke od 1.6.

Primjer 5. Alice zeli poslati poruku Bobu koristeci McElieceov kriptosustav. Poruka je

m = (1, 0, 1, 1).

Odabir kljuceva: Bob za G odabire prethodno navedenu generirajucu matricu za [7, 4, 3]-

kod, t = 1, dok za matrice S i P uzimamo:

S =

1 0 0 11 1 0 10 1 0 11 1 1 1

, P =

0 0 1 0 0 0 01 0 0 0 0 0 00 0 0 0 1 0 00 0 0 0 0 1 00 0 0 0 0 0 10 1 0 0 0 0 00 0 0 1 0 0 0

.

Zatim, Bob racuna

G′ = SGP =

0 0 1 1 0 1 01 0 1 0 0 1 11 1 0 0 0 1 01 0 1 0 1 0 0

.Bobov javni kljuc je (G′, t), a njegov privatni kljuc je (S,G, P ).

Sifriranje: Pretpostavimo kako je Alice izabrala binarni vektor pogreske z = (0, 1, 0, 0, 0, 0, 0).

Alice racuna sifrat c = mG′ + z = (0, 0, 0, 1, 1, 0, 0) i salje sifrat c Bobu.

Desifriranje: Kako bi desifrirao c, Bob prvo racuna c′ = cP−1 = (0, 0, 1, 0, 0, 0, 1) te koristi

algoritam za desifriranje [7, 4, 3]-koda i desifrira c′ u m′ = (0, 0, 1, 0). Zatim, Bob racuna

otvoreni tekst m = m′S−1 = (1, 0, 1, 1).

29

Page 32: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

5.3 Sigurnost

Zadatak pasivnog protivnika je otkriti otvoreni tekst m iz pripadnog sifrata c uz poznavanje

primateljevog javnog kljuca (G′, t). Poznata su nam dva osnovna napada na McElieceov

kriptosustav.

Kao prvo, protivnik moze pokusati izracunati generirajucu matricu G binarnog Goppina

koda i zatim primjeniti Pattersonov algoritam za desifriranje. Medutim ne postoji ucinkovit

algoritam za racunanje matrice G.

Nadalje, protivnik bi mogao pokusati doznati otvoreni tekst m izravno iz nekog sifrata c

na slijedeci nacin. Protivnik nasumicno odabire k stupaca matrice G′. Neka G′k, ck, zk

oznacavaju restrikcije od G′, c, z na tih k redaka, tada je (ck + zk) = mG′k. Ako je zk = 0 i

G′k invertibilna, otvoreni tekst m moze se zadobiti rjesavanjem sustava jednadzbi ck = mG′k.

Buduci da je vjerojatnost da je zk = 0, tj. da odabranih k bitova nisu bili u pogresci, jednaka

samo(n−tk

)/(nk

), vjerojatnost ovog napada je zanemarivo mala.

Zapravo, McElieceova enkripcijska shema, uz koristenje binarnog Goppinog koda, do sada

odolijeva kriptoanalizi. Takoder, operacije sifriranja i desifriranja su mnogo brze nego, na

primjer, u RSA kriptosustavu. Ipak, zbog cinjenice da se u javnom i privatnom kljucu nalaze

velike matrice i zbog toga sto je sifrat veci otvorenog teksta, McElieceov kriptosustav nema

vece prakticne primjene.

30

Page 33: Nikolina Brdari c - Odjel Za Matematikumdjumic/uploads/diplomski/BRD04.pdf · Nikolina Brdari c Algoritmi kriptogra je javnog klju ca Zavr sni rad ... Simetri cni kriptosustavi zasnovani

Literatura

[1] A. Dujella, M.Maretic, Kriptografija, Element, Zagreb, 2007.

[2] B. Ibrahimpasic, E. Lidan, Digitalni potpis, Osjecki matematicki list, 10 (2010), 139-148.

[3] I. Matic, Uvod u teoriju brojeva, skripta, Odjel za matematiku, Sveuciliste J. J. Stros-

smayera u Osijeku, Osijek, 2011.

[4] A.J. Menezes, P.C. von Oorschot, S.A. Vanstone, Handbook of applied cryptography,

CRC Press, Boca Raton, 1996.

31