kriptiranje eliptiènim krivuljama -...

95
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD KRIPTIRANJE ELIPTIČNIM KRIVULJAMA Vlatka Krivačić Zagreb, rujan 2004.

Upload: vudan

Post on 11-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RA ČUNARSTVA

SEMINARSKI RAD

KRIPTIRANJE ELIPTI ČNIM KRIVULJAMA Vlatka Krivačić

Zagreb, rujan 2004.

Page 2: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

Sadržaj 1 Uvod ........................................................................................................................... 1

2 Osnove kriptografije................................................................................................. 2

2.1 Što je kriptografija?...................................................................................................... 2

2.2 Kratka povijest kriptografije....................................................................................... 3

2.3 Definicija kriptosustava................................................................................................ 5

2.4 Primjena kriptografije.................................................................................................. 8

2.5 Kriptoanaliza................................................................................................................. 8

3 Matematički pojmovi.............................................................................................. 10

3.1 Grupa ........................................................................................................................... 10

3.2 Prsten ........................................................................................................................... 11

3.3 Polje i vektorski prostor ............................................................................................. 11

3.4 Prsten polinoma .......................................................................................................... 12

3.5 Konačno polje.............................................................................................................. 13

3.4.1 Konačno polje Fp.................................................................................................. 13

3.4.2 Binarno konačno polje F2 m................................................................................. 13

3.4.2.1 Prikaz polja F2 m u polinomnoj bazi ..................................................................... 14

3.4.2.2 Prikaz polja F2m u normalnoj bazi........................................................................ 16

4 Elipti čne krivulje..................................................................................................... 17

4.1 Što su eliptične krivulje ? ........................................................................................... 17

4.2 Diskriminanta i j-invarijanta .................................................................................... 18

4.3 Krivulje nad poljima razli čitih karakteristika......................................................... 19

4.3.1 Eliptične krivulje nad poljem K s karakteristikom char(K) ≠ 2, 3........................ 19

4.3.2 Eiptične krivulje nad poljem K s karakteristikom char(K)=2............................... 20

4.4 Zbrajanje na elipti čnoj krivulji ................................................................................. 21

4.4.1 Eliptične krivulje nad poljima s char(K) ≠ 2, 3 i zbrajanje.................................. 23

4.4.2 Eliptične krivulje nad poljima s char(K) = 2 i zbrajanje....................................... 23

4.5 Skalarno množenje...................................................................................................... 24

4.6 Elipti čne krivulje nad konačnim poljem Fp.............................................................. 25

4.7 Elipti čne krivulje nad konačnim poljem F2m .......................................................... 27

4.8 Elipti čne krivulje nad Zn ............................................................................................ 29

Page 3: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

4.9 Singularne eliptične krivulje...................................................................................... 31

4.10 Koblitzove krivulje...................................................................................................... 32

5 Problem diskretnog logaritma za eliptične krivulje ............................................ 35

5.1 Problem diskretnog logaritma ................................................................................... 35

5.2 Problem diskretnog logaritma za eliptične krivulje ................................................ 36

6 Optimalna normalna baza ..................................................................................... 39

6.1 Zbrajanje ..................................................................................................................... 39

6.2 Kvadriranje ................................................................................................................. 40

6.3 Množenje...................................................................................................................... 40

6.4 Invertiranje.................................................................................................................. 44

7 Algoritmi za skalarno množenje na eliptičnim krivuljama ................................ 46

7.1 Non adjacent form (NAF) .......................................................................................... 46

7.2 ττττ-adic NAF ................................................................................................................... 47

7.3 Binarna metoda........................................................................................................... 48

7.4 Zbrajanje-oduzimanje metoda .................................................................................. 49

7.4 Metoda udvostručavanja ponavljanjem ................................................................... 50

8 Izbor parametara kriptosustava zasnovanog na eliptičnim krivuljama ........... 51

8.1 Parametri kriptosustava zasnovanog na eliptičnoj krivulji nad poljem F p.......... 52

8.2 Parametri kriptosustava zasnovanog na elipt. krivulji nad poljem F2m.............. 53

9 Kriptosustavi koji koriste elipti čne krivulje......................................................... 55

9.1 ElGamalov kriptosustav koji koristi elipti čne krivulje ........................................... 55

9.1.1 ElGamalov kriptosustav........................................................................................ 55

9.1.2 EC ElGamalov kriptosustav.................................................................................. 56

9.2 Menzes-Vanstoneov kriptosustav .............................................................................. 57

9.3 ECES............................................................................................................................ 59

9.4 Demytkov kriptosustav............................................................................................... 60

9.5 KMOV kriptosustav ................................................................................................... 61

9.6 Kuwokado-Koyama kriptosustav.............................................................................. 62

10 Digitalni potpis .................................................................................................... 64

10.1 DSA koji koristi elipti čne krivulje............................................................................. 65

10.1.1 DSA...................................................................................................................... 65

Page 4: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

10.1.2 ECDSA ................................................................................................................ 66

10.2 ECSS............................................................................................................................. 68

10.3 EC Nyberg-Rueppelova shema digitalnog potpisa .................................................. 70

10.4 OFF shema digitalnog potpisa ................................................................................... 71

11 Protokoli za razmjenu tajnog ključa................................................................. 72

11.1 EC Diffie-Hellmanov protokol................................................................................... 73

11.1.1 Diffie-Hellmanov protokol .................................................................................. 73

11.1.2 ECDH................................................................................................................... 74

11.2 EC Nyberg-Rueppelov protokol za razmjenu ključeva .......................................... 75

12 Sustavi za raspodjelu ključeva........................................................................... 77

12.1 Sakazaki-Okamoto-Mamba sustav za raspodjelu ključeva temeljen na

identifikatoru (ID-u) koji koristi elipti čne krivulje ................................................................. 77

13 Upotreba točaka eliptične krivulje kao poruka ...................................................... 80

13.1 Ugrañivanje otvorenog teksta na krivulju................................................................ 80

13.2 Sažimanje točaka ........................................................................................................ 81

14 Usporedba s ostalim kriptosustavima javnog ključa....................................... 82

15 Prakti čni rad........................................................................................................ 85

16 Zaklju čak............................................................................................................. 88

17 Literatura............................................................................................................. 89

Popis slika Slika 2.1 Upotreba kriptografskog algoritma..................................................................... 2

Slika 2.2 Upotreba simetričnog kriptosustava ................................................................... 6

Slika 2.3 Upotreba asimetričnog kriptosustava .................................................................. 7

Slika 4.1 Eliptična krivulja ............................................................................................... 18

Slika 4.2 Zbrajanje na eliptičnoj krivulji .......................................................................... 22

Slika 4.4 Zbrajanje točaka P i Q i udvostručavanje točke P ............................................ 25

Slika4.5 Točke koje zadovoljavaju jednadžbu y2 = x3 + x nad poljem F23...................... 26

Slika 4.6 Točke koje zadovoljavaju jednadžbu y2+xy=x3+g4x2+1 nad poljem F24 .......... 28

Slika 4.5 Singularna krivulja sa čvorištem i singularna krivulja sa vrhom ...................... 32

Slika 6.1 Vrijednosti m ≤ 1000 za koje postoji optimalna normalna baza ...................... 41

Slika 9.1 ElGamalov kriptosustav koji koristi eliptične krivulje...................................... 56

Page 5: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

Slika 9.2 Menzes-Vastoneov kriptosustav........................................................................ 58

Slika 9.3 ECES.................................................................................................................. 60

Slika 10.1 Stvaranje digitalnog potpisa ............................................................................ 64

Slika 10.2 Provjera digitalnog potpisa.............................................................................. 65

Slika 10.1 ECDSA ............................................................................................................ 68

Slika 10.2 ECSS................................................................................................................ 69

Slika 10.3 EC Nyberg-Rueppelova shema digitalnog potpisa.......................................... 70

Slika 11.1 ECDH protokol............................................................................................... 75

Slika 11.2 Nyberg-Rueppelov protokol za razmjenu ključeva ......................................... 76

Slika 12.1 Dodjela ključeva korisniku .............................................................................. 78

Slika 12.2 Razmjena tajnog ključa.................................................................................... 79

Page 6: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

1

1 Uvod Živimo u dinamičnom svijetu i svjedoci smo ubrzanog razvoja tehnologije.

Zahvaljujići računalima, jednom od najznačajnijih izuma dvadesteg stoljeća, promjenio se način na koji se informacija zapisuje i ono za što nam je prije 10 godina trebalo mnogo vremena i mnogo papira danas obavljamo za nekoliko sekundi.

Pojava Interneta unaprijedila je upotrebu osobnih računala i povezala sve

korisnike u globalnu mrežu, a slanje elektronske pošte (e-mail) i pretraživanje web stranica postalo je dio naše svakodnevnice. Internet ne samo da je promjenio naš način života učinivši informacije dostupnijim, a komunikaciju bržom, već je promjenio način rada i poslovanja tvrtki. Bankarstvo i trgovina preselile su se na Internet i ljudi ne napuštajući svoje domove elektronskim putem mogu obaviti kupovinu, platiti račune, rezervirati karte za razne kulturne dogañaje, organizirati putovanja i sl.

Dostupnost informacija je i mana i vrlina velikih računalnih mreža kao što je

Internet i postoji opasnost od podmetanja krivih informacija, njihove neovlaštene uporabe ili njihovog uništavanja. Kako se mrežom prenose ogromne količine vrijednih komercijalnih, znanstvenih i osobnih informacija izmeñu pojedinaca, financijskih ustanova, tvrtki i vladinih organizacija i važno ih je zaštititi od krañe, neovlaštenog pristupa ili neovlaštene promjene.

Elektroničke transakcije moraju se učiniti sigurnima i tu na scenu stupa kriptgrafija,

znanost koja proučava matematičke tehnike koje štite infomacije, njihovu vjerodostojnost, dostupnost i tajnost, a usto omogućavaju provjeru porijekla informacije, identiteta korisnika i dokazivanje odgovornosti korisnika za odreñenu radnju.

Page 7: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

2

2 Osnove kriptografije

2.1 Što je kriptografija? Kriptografija je znanstvena disciplina koja se bavi proučavanjem metoda za slanje

poruka u takvom obliku da ih samo onaj kome su namjenjene može pročitati, to je znanost pohrane informacija u onoj formi koja će biti čitljiva samo onima kojima je informacija namijenjena dok će za ostale biti neupotrebljiva.

Riječ kriptografija je grčkog podrijetla i znači tajno pisanje, tajnopis (engl. secret writing ).

Osnovni zadatak kriptografije je omogućavanje dvjema osobama, pošiljaocu (engl. sender) i primaocu (engl. reciver), zvat ćemo ih Alica i Bob, komunikacije preko nesigurnog komunikacijskog kanala (telefonska linija, računalna mreža, ...) na način da treća osoba koja prisluškuje, uljez (engl. intruder) ili Eva, ne može razumjeti njihove poruke.

Slika 2.1 Upotreba kriptografskog algoritma Originalna poruka koju je pošiljalac poslao naziva se jasni tekst, razgovjetni tekst

ili original (engl. plaintext). Pošiljalac transformira jasni tekst koristeći unaprijed dogovoreni ključ. Postupak pretvaranja originalne poruke u nečitljiv oblik je enkriptiranje (engl. encription), a dobiveni rezultat kriptirani tekst, šifrat ili kriptogram (engl. ciphertext). Protivnik prisluškujući može doznati sadržaj šifrata, ali ne može odrediti jasni tekst. Primalac koji zna ključ kojim je šifrirana poruka može dešifrirati šifrat i odrediti jasni tekst. Postupak prevoñenja šifrata, tj. vraćanja poruke iz njenog enkriptiranog oblika u originalni oblik se naziva dekriptiranje (engl. decription, dechipering). [2][6]

Page 8: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

3

Kriptografija proučava matematičke tehnike koje osiguravaju sigurnost infomacija. Sigurnost se zasniva na ispunjavanju sigurnosnih zahtjeva :

1) Besprijekornost (engl. data integrity) Informacije u sustavu smiju mijenjati samo za to ovlašteni korisnici. Da bi se osigurala besprijekornost informacija, mora postojati način provjere da li je informacija promijenjena od strane neovlaštene osobe (ubacivanje, brisanje, zamjena ).

2) Povjerlijvost ili tajnost (engl. confidentiality) Informacije u sustavu smiju biti dostupne samo ovlaštenim korisnicima.

3) Raspoloživost (engl. availability) Informacije moraju uvijek biti na raspolaganju ovlaštenim korisnicima.

4) Provjera identiteta (engl. autentification) Autentifikacija se koristi na razini korisnika i na razini informacije. Prilikom prijava za rad na sustavu zahtjeva se predstavljanje korisnika kako bi se utvdrilo da li dotični korisnik ima pravo pristupa i odredila dopuštena sigurnosna razina rada Predstavljanje na razini informacije znači da za informaciju koja prolazi komunikacijskim kanalom treba provjeriti odakle dolazi, tko je vlasnik informacije, kojeg datuma je stigla, kojeg je tipa, koliko je stara itd.

5) Nemogućnost izbjegavanja odgovornosti (engl. non-repudiation) Ovlašteni korisnik ne može opovrgavati poslanu poruku tvrdeći da ju je poslao uljez. [6]

2.2 Kratka povijest kriptografije

Kriptografija postoji više tisuća godina i jedno je od najstarijih polja tehničkih znanosti. Vjeruje se kako kriptografija stvorena oko 2000. godine prije Krista u Egiptu gdje su se kriptirani hijeroglifi koristili za ukrašavanje grobnica vladara.

Elementi kriptografije su prisutni već kod starih Grka. Spartanci su u 5. stoljeću prije Krista upotrebljavali napravu zvanu skital, drveni štap oko kojega se namatala vrpca pergamenta na koju se zatim okomito pisala poruka. Nakon zapisivanja poruke vrpca se odmatala i na njoj su ostali izmješani znakovi koje je mogao pročitati samo onaj tko je imao štap jednake debljine. Poznata je još jedna starogrčka metoda šifriranja koju je razvio Polybus. Sastoji se u postavljanju slova abecede u kvadrat dimenzija 5x5, slova i i j se nalaze u istom kvadratu. Redovi i stupci se numeriraju od 1 do 5 tako da svako slovo predstavlja odgovarajući par retka i stupca. Dekriptiranje se vrši pridruživanjem odgovarajućeg slova abecede svakom paru.

Rimljani su smatrani majstorima kriptiranja, a koristili su jednostavne tehnike kriptiranja kako bi prikrili stvarno značenje poruka. Neke od ranih i popularnih tehnika kriptiranja bile su Cezarova šifra (cijela abeceda je ciklički pomaknuta za dva mjesta udesno), supstitucijska šifra i transpozicijska šifra.

Razvoj kriptografije se nastavlja u srednjem vijeku. Ocem zapadne kriptologije smatra se Leon Battista Alberti, autor polialfabetne supstitucije, tehnike kriptiranja koja je dopuštala da više različitih znakova u kriptiranom tekstu predstavlja jedan znak jasnog teksta. U 16. stoljeću njemački fratar Trithemus u petoj knjizi iz ciklusa Poligraphia donosi tablicu koja je ponavljala u svakom redu cijelu abecedu. Razlika je bila što je

Page 9: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

4

abeceda u slijedećem redu ciklički pomaknuta za jedan znak udesno. Kod kriptiranja, prvo slovo jasnog teksta se kriptiralo prvim retkom tablice, drugo slovo drugim retkom tablice, itd.

U stoljećima koja slijede, kriptografija se i dalje razvija. Formiraju se takozvani Mračni uredi koji rade u službi vlada pojedinih zemalja , a bave se presretanjem i dešifriranjem pisama, vojnih i političkih poruka.

Slijedeći korak je razvoj ureñaja za šifriranje. Oni će učiniti procese šifriranja i dešifriranja puno bržim i omogućiti uporabu velikih prostora ključeva. Najstariju takvu napravu, "Jeffersonov kotač za šifriranje", izumio je američki državnik Thomas Jefferson krajem 18. stoljeća. Američka vojska počela ga je koristiti tek 1922. godine. Jeffersonov kotač se sastoji od drvenog cilindra s rupom u sredini kroz koju je provučena željezna os. Cilindar je podjeljen na 26 manjih cilindara (diskova) jednakih širina što se mogu neovisno jedan od drugoga okretati oko zajedničke osi. Na njihovim vanjskim stranama nalazi se 26 jednakih kvadratića što se na proizvoljan način popunjavaju sa 26 slova engleskog alfabeta, različito od diska do diska. Pošiljalac i primalac imaju dva identična kotača. Da bi šifrirao otvoreni tekst, pošiljalac mora podijeliti tekst na blokove od po 26 slova. Blok se šifrira tako da se rotiranjem diskova u jednom od 26 redaka dobije otvoreni tekst. Tada se za šifrat može izabrati bilo koji od preostalih 25 redaka. Primalac dešifrira šifrat tako da rotiranjem diskova u jednom retku dobije šifrat, a meñu preostalih 25 redaka potraži onaj koji sadrži neki smisleni tekst. Taj redak predstavlja originalni tekst.

U 20. stoljeću rat diktira razvoj kriptografije. Povećava se uporaba strojeva u šifriranju i to značajno mijenja prirodu kriptografije i kriptoanalize. Njemački pronalazač Artur Scherbius je 1920. godine izumio rotorsku napravu koju je nazvao Enigma. Pomacima rotora upravljali su zupčanici i moglo se postići da ti pomaci imaju nepravilan slijed. Enigmu su u drugom svjetskom ratu koristili Njemci, a razbijanje njezine šifre (kombinacijom kriptoanalize i klasične špijunaže) bilo je vrlo važnoza tijek i ishod rata. Kriptografija je postala usko vezana za dizajn strojeva, a sve veća važnost strojeva u kriptografiji rezultirala je njihovom zaštitom. Osnovni sustavi kriptiranja se ne mijenjaju, ali metode kriptiranja postaju mehaničke i njihova pouzdanost raste.

Nakon završetka drugog svjetskog rata uslijedio je razvoj i širenje računalnih i komunikacijskih sustava . Zbog toga se javila potreba za zaštitom podataka iz privatnog sektora. 1977.godine usvojen je američki standard za kriptiranje podataka pod imenom DES(Data Encryption Standard) koji postaje najpoznatiji kriptografski algoritam u povijesti i koji se još uvijek koristi kod osiguravanja elektroničkog poslovanja u mnogim financijskim institucijama širom svijeta. Razvoj kriptografije nastavlja se objavljivanjem prvog upotrebljivog algoritma s privatnim i javnim ključem(1978). Algoritam se temelji na matematičkom problemu faktoriziranja velikih brojeva. Njegovi autori su Rivest, Shamir i Adleman, a po prvim slovima njihovih imena algoritam je dobio ime RSA.

Kao važnu godinu u povijesti kriptografije možemo izdvojiti 1985. kada su Victor Miller i Neal Koblitz javno predstavili ideju o korištenju eliptičnih krivulja u kriptografiji kao alternativu poznatim kriptosustavima javnog ključa.

Tijekom svoje povijesti kriptografija se od vještine prikrivanja stvarnog značenja poruka razvila u znanstvenu disciplinu i danas je glavno oruñe u osiguravanju privatnosti i integriteta podataka u komunikaciji nesigurnim kanalima. [1]

Page 10: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

5

2.3 Definicija kriptosustava Kriptografiski algoritam je matematička funkcija koja se koristi za enkriptiranje i

dekriptiranje (općenito, radi se o dvije funkcije, jednoj za enkriptiranje, a drugoj za dekriptiranje). Argumenti te funkcije su ključ i otvoreni tekst, odnosno ključ i kriptirani tekst. Skup svih mogućih vrijednosti ključeva naziva se prostor ključeva. Kriptosustav se sastoji od kriptografskog algoritma, te svih mogućih otvorenih tekstova, šifrata i ključeva.

Definicija 2.1 Kriptosustav (engl. cryptosystem) je ureñena petorka ( P, C, K, E,

D ) za koju vrijedi: 1) P je konačan skup svih mogućih jasnih tekstova; 2) C je konačan skup svih mogućih šifrata; 3) K je prostor ključeva, tj. konačan skup svih mogućih ključeva; 4) Za svaki k∈K postoji algoritam šifriranja ek∈E i odgovarajući algoritam dešifriranja dk∈E. Pritom su funkcije ek : P→C i dk : C→P funkcije sa svojstvom da je dK(eK(x)) = x za svaki otvoreni tekst.

Kriptografski algoritmi moraju zadovoljiti slijedeće zahtjeve:

1) Algoritmi kriptiranja moraju se moći učinkovito izvoditi na računalima (treba ga prilagoditi programskoj ili sklopovskoj izvedbi ).

2) Algoritmi su javni, a tajnost podataka je zaštićena tajnim ključevima. 3) Kriptografski sustav mora biti siguran, tj. otkrivanje ključa mora biti vrlo teško.

Mjera težine je složenost postupka otkrivanja. Kriptosustavi se dijele s obzirom na : 1. Tip operacije koja se koristi kod kriptiranja Najviše algoritama kriptiranja se temelji na dva osnovna principa : a) supstituciji (engl. substitution), gdje se svaki element jasnog teksta preslikava u

neki drugi element b) transpoziciji (engl. transposition), gdje se elementi jasnog teksta permutiraju. 2. Broj klju čeva koji se koristi S obzirom na broj ključeva koji se koristi sustavi se dijele na simetrične (engl.

symmetric ) i asimetrične kriptosustave (engl. asymmetric). Ako se za enkripciju i dekripciju koristi isti ključ, kriptosustav se naziva simetrični

ili konvencionalni. Naprimjer, neka je K ključ i neka je M poruka, tada vrijedi DK(EK(M)) = M. Sigurnost ovih kriptosustava leži u tajnosti ključa i zbog toga se zovu i kriptosustavi s tajnim klju čem.

Page 11: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

6

Slika 2.2 Upotreba simetričnog kriptosustava Da bi Alica poslala Bobu tajni ključ potreban je sigurni komunikacijski kanal.

Nakon toga oba korisnika mogu koristiti isti ključ za kriptiranje i dekriptiranje podataka. U praksi se preporuča česta izmjena zajedničkog ključa e kako bi se osigurala sigurnost komunikacije. Obično se svaki put kod otvaranja komunikacijske sjednice izmeñu dva korisnika stvara novi ključ e koji se koristi samo za vrijeme trajanja sjednice. Po tome je simetrični ključ dobio naziv sjednički klju č (engl. session key).

Ako se za enkriptiranje i dekriptiranje koriste različiti klju čevi, kriptosustav se

naziva asimetrični kriptosustav. Svaki korisnik posjeduje javni klju č (engl. public key) koji je poznat ostalima i privatni klju č (engl. privete key). Javni i privatni ključ su matematički povezani. Enkriptiranje se obavlja javnim ključem, a dekriptiranje privatnim ključem. Neka je k1 javni ključ, k2 privatni ključ i neka je M poruka, tada vrijedi slijedeće : Dk2 (Ek1(M)) = Dk1 (Ek2(M)) = M.

Bilo tko može šifrirati poruku pomoću javnog ključa, ali samo osoba koja ima odgovarajući ključ za dešifriranje može ju dešifrirati.

Ideja javnog ključa javila se 1976. godine (prvi su je javno iznijeli Whitfield Diffie i Martin Hellman) zbog potrebe razmjenjivanja ključeva za simetrične kriptosustave putem nesigurnih komunikacijskih kanala. Asimetrični sustavi se smatraju sigurnijim od simetričnih, ali su sporiji i kriptirani tekst je veći od originalnog teksta.

Page 12: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

7

Slika 2.3 Upotreba asimetričnog kriptosustava Neki od poznatijih simetričnih kriptosustava su DES, 3-DES, RC4, RC5, dok su

poznatiji asimetrični kriptosustavi RSA, ECC, Diffie-Hellman. 3. Načinu na koji se obrañuje otvoreni tekst Dva su načina obrade otvorenog teksta, šifriranje niza bitova (engl. stream chiper)

i šifriranje bloka (engl. block chiper). Šifriranje blokova podataka se vrši tako da se obrañuju jedan po jedan blok elemenata otvorenog teksta, tj. uzimaju se blokovi od više bitova (64, 128, 196, 256 ...) te se enkriptiraju kao cjelina. Kod šifriranja niza podataka enkripcija izvorne poruke vrši se bit po bit. Algoritmi za kriptiranje niza bitova u teoriji kriptiraju jedan po jedan bit podataka i relativno su jednostavni za sklopovsku implementaciju, dok je u praksi riječ o oktetima. Nisu toliko sigurni kao algoritmi za kriptiranje blokova podataka, ali su brži, veličina šifrata je jednaka veličini otvorenog teksta i širenje greške je manje. Ako se bit šifriranog teksta ne može pročitati, mnogi algoritmi za kriptiranje niza bitova pogriješit će samo u tom bitu, dok kod algoritama za kriptiranje blokova podataka, krivo će se dekriptirati najmanje jedan blok podataka. Algoritmi za kriptiranje blokova podataka su u praksi puno rašireniji i lakši za programsku implementaciju jer kriptiraju podatke po blokovima obično veličine 64 bita. [2][6][10]

Page 13: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

8

2.4 Primjena kriptografije Područja primjene kriptografije su : 1. Internet - elektronička pošta (engl. secure electronic mail) - kućno bankarstvo (engl. home banking ) - Internet pretraživači (engl. Internet browsers) 2. tržište financijskih usluga (engl. the financial services industry) - elektronički novac (engl. electronic cash) - transakcije kreditnim karticama (engl. credit card transactions) - instant teller bankarstvo (engl. instant teller banking) - wholesale bankarstvo (engl. wholesale banking) 3. bežična komunikacija (engl. wireless communications) - pageri (engl. pagers) - mobilni telefoni (engl. cellular telephones) - pametne kartice (engl. smart cards) 4. telekomunikacije (engl. telecommunications) - fax enkriptori (engl. fax encryptors) - modemi (engl. modems) - sigurni telefoni (engl. secure telephones) - kabelska televizija i pay-per-view (engl. cable TV and pay-per-view).[4]

2.5 Kriptoanaliza Usporedno s kriptografijom razvila se i druga znanost, kriptoanaliza , kojoj je cilj

analizom kriptirane poruke odgonetnuti njezin stvarni sadržaj bez poznavanja ključa. Pokušaj kriptonalize nekog kriptosustava naziva se napad (engl. attack ).

Razlikujemo slijedeće nivoe kriptoanalitičkih napada:

1) Napad na kriptirani tekst (engl. ciphertext-only attack) Kriptoanalitičar posjeduje samo šifrat od nekoliko poruka šifriranih pomoću istoga algoritma. Njegov je zadatak otkriti otvoreni tekst od što više poruka ili ključ kojim su poruke šifrirane. Ako se provjerava svaki ključ na kriptiranom tekstu, taj se napad zove gruba sila (engl. brute force).

2) Napad na poznati jasni tekst (engl. known-plaintext attack). Kriptoanalitičar posjeduje šifrat neke poruke, ali i njemu odgovarajući jasni tekst. Njegov zadatak je otkriti ključ ili neki algoritam za dešifriranje poruka šifriranih tim ključem.

3) Napad na odabrani jasni tekst (engl. chosen-plaintext attack) Kriptoanalitičar je dobio privremeni pristup alatu za šifriranje, može odabrati tekst koji će biti šifriran i dobiti njegov šifrat. Ovaj napad je jači od prethodnoga.

4) Napad na odabrani kriptirani tekst (engl. chosen-ciphertext attack).

Page 14: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

9

Kriptoanalitičar je dobio pristup alatu za dešifriranje, pa može odabrati šifrat, te dobiti odgovarajući otvoreni tekst. Ovaj napad se promjenjuje na kriptosustave s javnim ključem.

5) Napad na odabrani ključ (engl. chosen-key attack) Kriptoanalitičar posjeduje znanje znanje o meñusobnom odnosu izmeñu nekoliko ključeva.

6) Ucjenjivanje Kriptoanalitičar ucjenom ili prijetnjom dolazi do ključa od korisnika. Ovaj napad ne spada u kriptoanalizu, ali je vrlo učinkovit i često se primjenjuje.

Lars Knudsen je razvrstao četiri razine mogućeg savladavanja kriptografskog

algoritma: 1) Totalno savladavanje (engl. total break)

Kriptoanalitičar je našao ključ, k, takav da je D(c,k) = m. 2) Globalna dedukcija (engl. global deduction)

Kriptoanalitičar je našao drugi algoritam ekvivalentan D(c,k) kojim dekriptira poruku m bez poznavanja ključa k

3) Lokalna dedukcija (engl. local deduction) Kriptoanalitičar je našao izvornu poruku u jasnom tekstu na osnovu presretnutog kriptiranog teksta.

4) Informacijska dedukcija (engl. information deduction) Kriptoanalitičar je saznao nešto o ključu ili o izvornoj poruci u jasnom tekstu (dio ključa ili dio poruke).

Algoritam je bezuvjetno siguran ako ne pruža dovoljno informacija za kriptoanalizu

kriptiranog teksta, bez obzira na količinu kriptiranog teksta. Kriptografski jak algoritam je algoritam koji se ne može savladati sa sadašnjim ili budućim računalnim resursima u vremenu u kojem bi nam ta otkrivena informacija mogla koristiti. [2][6]

Page 15: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

10

3 Matematički pojmovi

3.1 Grupa Definicija 3.1 Poredani dvojac (G,*) , u kojem je G skup brojeva , a * binarna

operacija na G, zovemo grupom ako su ispunjeni slijedeći uvjeti : a) za sve a, b ∈ G vrijedi a * b ∈ G (grupoidnost), b) za sve a, b, c ∈ G vrijedi a*(b*c) = (a*b)*c (asocijativnost), c) postoji jedinični (neutralni) element e ∈ G takav da vrijedi a*e = e*a = a za

sve a ∈ G, d) za svaki a ∈ G postoji inverzni element a-1 takav da vrijedi a-1*a = a*a-1 = e.

Definicija 3.2 Za grupu (G,*) kažemo da je komutativna ili Abelova ako za sve

a, b ∈ G vrijedi a*b = b*a . Apstraktna grupa (G,*) zove se multiplikativna grupa , a binarna operacija zove se

množenje. To je dosta neprecizan naziv jer operacija u konkretnoj situaciji može biti zbrajanje, kompozicija funkcija itd.Ako je u nekoj Abelovoj grupi binarna operacija zadana aditivno, odnosno zadana je grupa (G,+), grupu zovemo aditivnom grupom. Neutralni element aditivne grupe zove se nula i označava se sa 0, a inverzni element od a označava se sa – a i zove suprotni element.

Propozicija 3.1 Inverzni element a -1 od a je jedinstven, tj. ne mogu postojati dva

inverzna elementa od a. Vrijedi (a -1)-1 = a. Propozicija 3.2 Neka je (G,*) grupa. Za sve a, b ∈ G vrijedi (ab)-1 = a -1 b-1. Propozicija 3.3 Neka je (G,*) grupa. Za sve a, b, c ∈ G iz uvjeta ac = bc slijedi

a = b. Na sličan način iz ca = cb slijedi a = b. Definicija 3.3 Ako je grupa G konačna, onda broj njenih elemenata zovemo red

grupe i označavamo sa |G|. Primjer 3.1 Skup nZ ={0,1,2,....,n-1} i operacija zbrajanje mod n čine grupu.

Ako je p prost broj , elementi skupa pZ različiti od nule, nazvani *pZ = {1,2,.., p-1}, čine

grupu pod operacijom množenje modulo p. Definicija 3.4 Neka je (G,*) grupa i a ∈ G, a ≠ e. Ako za neki prirodan broj k

vrijedi ak = e, onda najmanji takav broj zovemo redom elementa a i označavamo sa k = |a|.

Primjer 3.2 U grupi *

11Z element a = 3 ima red 5 , jer je

31 ≡ 3 (mod 11), 32 ≡ 9 (mod 11),

Page 16: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

11

33 ≡ 5 (mod 11), 34 ≡ 4 (mod 11), 35 ≡ 1 (mod 11).

3.2 Prsten Definicija 3.5 Prsten je bilo koji skup R ≠ Ø zajedno sa dvije operacije + i * na R

koje zovemo zbrajanje i množenje elemenata prstena , tako da vrijedi : a) (R,+) je Abelova grupa (ispunjeni su gore navedeni uvjeti), b) (R,*) je polugrupa, tj. množenje na R je asocijativno : a * (b*c) = (a*b) * c, c) operacije zbrajanja i množenja su meñusobno usklañene zakonima

distribucije, tj. za sve a, b, c ∈ R vrijedi : a* (b+c) = a*b + a*c, (a+b) *c = a*c + b*c.

Definicija 3.6 S je podprsten prstena R ako je S ⊆ R i S je prsten s obzirom na

operacije naslijeñene iz R. Svaki prsten R ima dva trivijalna podprstena: {0} i R. Definicija 3.7 Za element a ≠ 0 u komutativnom prstenu R kažemo da je djelitelj

nule ako postoji b ≠ 0 takav da je ab = 0.

Definicija 3.8 Komutativni prsten s jedinicom e koji nema djelitelja nule zovemo integralnom domenom. Iz ab = 0 slijedi a = 0 ili b = 0.[18]

3.3 Polje i vektorski prostor Definicija 3.9 Komutativan prsten F u kojem je skup F* = F\{0} grupa s obzirom

na množenje, zove se polje. Polje je integralna domena u kojoj svaki element različit od nule ima multiplikativni inverz.

Skup pZ je polje ako i samo ako je p prost broj : Z2={0,1}, Z3, Z5, Z7, Z11, Z13...

Sva navedena polja su konačna polja. Polje Z2 je najmanje polje, jer svako polje mora sadržavati bar dva elementa (nulu i jedinicu).

Primjeri beskonačnih polja su Q, R, C...Skup Z nije polje, jer jedino -1 i 1 imaju inverze s obzirom na množenje.

Definicija 3.10 Kažemo da je K podpolje od F ako je K podskup od F (K⊆ F) i K

je polje s obzirom na operacije zbrajanje i množenje naslijeñene iz F. Polje F je proširenje polja K.

Definicija 3.11 Neka je F polje i neka je V aditivna Abelova grupa. Grupu V se

zovemo vektorskim prostorom nad F , ako je definirana operacija F x V → V tako da vrijedi :

a) a (v + u) = av + au,

Page 17: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

12

b) (a + b) v = av + bv, c) a (bv) = (a.b) v, d) v = v ,

gdje su a, b ∈ F i u, v ∈ V. Elementi polja F nazivaju se skalari, a elementi vektorskog prostora V nazivaju se

vektori. Definicija 3.12 Ako su v1, v2, …, vm ∈ V i f1, f2, …, fm ∈ F, tada je vektor v’ =

∑ ji vf , 1 ≤ i, j ≤ m linearna kombinacija vektora u V. Skup svih takvih linearnih

kombinacija zovemo linearna ljuska od V (engl. span). Vektori v1, v2, …, vm ∈ V linearno nezavisni od F ako ne postoje skalari f1, f2, …,

fm ∈ F takvi da vrijedi ∑ ji vf ≠ 0, 1 ≤ i, j ≤ m.

Skup S = {u1, u2, …, un} je baza vektorskog prostora V ako i samo ako svi elementi skupa S su linearno nazavisni i ako čine linearnu ljusku od V.

Ako vektorski prostor V nad konačnim poljem F ima bazu koja se sastoji od konačnog broja vektora, taj broj se naziva dimenzija prostora V nad F.[10][18]

3.4 Prsten polinoma

Definicija 3.13 Neka je R komutativan prsten s jedinicom i a0, a1,..., an ∈ R. Izraz f(x) = a0 + a1x + … + anx

n zove se formalni polinom s koeficijentima prstena R ili polinom nad R. Primjetimo da x nije element iz R. Polinom f(x) predstavlja sažeti zapis beskonačnog slijeda (a0, a1, ..., an,0, 0, ...) elemenata iz R.

Definicija 3.14 Ako u polinomu f(x) = a0 + a1x + … + anx

n vrijedi an ≠ 0, onda kažemo da je polinom n-tog stupnja, a an je vodeći koeficijent polinoma. Skup svih formalnih polinoma s koeficijentima iz R označavamo sa R[x].

Definicija 3.15 Ako je x = c ∈ R, onda f(c) postaje element iz R. Element c ∈ R

zovemo nultočkom ili korijenom polinoma f(x) u prstenu R ako je f(c) = 0. Organizira li se skup polinoma R[x] kao prsten, odnosno uvedu li se operacije

zbrajanja i množenja polinoma, prsten R[x] zovemo prsten polinoma. Definicija 3.16 Za formalni polinom g(x) kažemo da dijeli polinom f(x) , ako

postoji polinom q(x) takav da je f(x) = g(x) q(x). Polinom g(x) je djelitelj ili faktor od f(x). Teorem 3.1 Ako su f(x), g(x) ∈ F[x] polinomi nad poljem F, onda postoje

jedincati polinomi q(x) i r(x) iz F[x] takvi da vrijedi f(x) = g(x) q(x) + r(x). Polinom q(x) zovemo kvocijent polinoma f(x) i g(x), a r(x) ostatak.

Page 18: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

13

Definicija 3.17 Za polinom f(x) ∈ F[x] koji je barem prvog stupnja kažemo da je nerastavljiv ili ireducibilan ako iz rastava f(x) = g(x) h(x) slijedi da je jedan od polinoma g(x), h(x) nultog stupnja, odnosno konstanta iz F. Ako polinom f(x) nije ireducibilan, kažemo da je reducibilan, rastavljiv na produkt dva polinoma od kojih ni jedan nije konstantan.

Ireducibilni polinomi u prstenu F[x] imaju ulogu koju prosti brojevi imaju u prstenu

cijelih brojeva Z. Propozicija 3.4 Neka je f(x) kvadratni ili kubni polinom na poljem F. Ako je

f(c) ≠ 0 za sve c ∈ F, onda je polinom f(x) ireducibilan. Tvrdnja nije istinita za polinome četvrtog i višeg stupnja.

Definicija 3.18 Za polje F kažemo da je algebarski zatvoreno ako svaki polinom

nad F ima barem jednu nultočku. [18]

3.5 Konačno polje Definicija 3.19 Ima li polje konačan broj elemenata, nazivamo ga konačno ili

Galoisovo polje, i označavamo ga saqF ili GF(q), gdje je q broj elemenata polja.

Konačno polje qF postoji ako i samo ako je q prost broj ili je q = pm , gdje je p prost broj.

3.4.1 Konačno polje Fp Definicija 3.19 Neka je broj p je prosti broj. Prim polje pF (engl. prime filed)

sastoji se od skupa cijelih brojeva {0, 1, 2, ….., p – 1} i dvije aritmetičke operacije definirane nad tim skupom, zbrajanje i množenje :

a) zbrajanje : ∀a, b ∈ pF , ∃r ∈ pF , gdje je r = (a + b) mod p,

b) množenje : ∀a, b ∈ pF , ∃s ∈ pF , gdje je s = (a ∗ b) mod p.

Primjer 3.3 Neka je p = 23. Konačno polje F23 čine cijeli prirodni brojevi od 0 do 22. Bilo koja operacija unutar tog polja dat će prirodan broj izmeñu 0 i 22. zbrajanje: a = 17, b = 7, r = (17 + 7) mod 23 = 24 mod 23 = 1 množenje: a = 5, b = 7, s = (5 ∗ 7) mod 23 = 35 mod 23 = 12

3.4.2 Binarno konačno polje F2 m

Konačno polje mF

2, zvano konačno polje karakteristike dva ili binarno konačno

polje (engl. binary finite field), može se predočiti kao m dimenzionalni vektorski prostor

Page 19: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

14

nad poljem 2F , koje se sastoji od dva elementa, 0 i 1. Polje mF2

ima 2m elemenata.

Postoji m elemenata α0, α1, α2, …, αm-1 u mF2

tako da se svaki element α ∈ mF2

može

jedinstveno prikazati kao :

α = i

m

iiαa∑

=

1

0

,

gdje je ai ∈ {0, 1} i 0 ≤ i < m. Skup {α0, α1, α2, …, αm-1} zove se baza nad 2F . Pomoću te baze svaki se element

polja može prikazati kao niz bitova (a0 a1 a2…am-1).

Općenito, za prikaz binarnog konačnog polja koriste se dvije vrste baza; polinomna baza (engl. poyinomial base)i normalna baza (engl. normal base).

3.4.2.1 Prikaz polja F2 m u polinomnoj bazi Neka je f(x) = xm + fm-1x

m-1 + … + f2x2 + f1x + f0, gdje je fi ∈ {0, 1}, 0 ≤ i < m,

ireducibilan polinom stupnja m nad poljem 2F .

Polinom f(x) zovemo redukcijski polinom polja mF2

.

Konačno polje mF

2 je sačinjeno od polinoma nad 2F stupnja manjeg od broja m,

mF2

= {am-1xm-1 + am-2x

m-2 + … + a2x2 + a1x + a0 : ai ∈ {0, 1}}.

Elementi polja am-1x

m-1 + am-2xm-2 + … + a2x

2 + a1x + a0 najčešće se zapisuju kao niz (am-1am-2…a2a1a0) duljine m tako da vrijedi mF

2 = {(am-1am-2…a2a1a0) : ai ∈ {0, 1}},

tj. elementi mF2

se mogu predstaviti skupom binarnih nizova duljine m.

Neutralni element za operaciju množenja 1 je predstavljen kao niz (00…001) , a niz (00...000) predstavlja 0, neutralni element za zbrajanje .

Nad elementima mF

2definirane su slijedeće operacije uz uporabu polinoma f(x)

kao redukcijskog polinoma : 1) zbrajanje

Ako su a = (am-1am-2…a2a1a0) i b = (bm-1bm-2…b2b1b0) elementi mF2

, tada je

c = a + b = (cm-1cm-2…c2c1c0),gdje je ci = (ai + bi) mod 2 = ai ⊕ bi.

2) množenje Ako su a = (am-1am-2…a2a1a0) i b = (bm-1bm-2…b2b1b0) elementi mF

2,

onda je c = a * b = (cm-1cm-2…c2c1c0) ,gdje je polinom cm-1x

m-1 + cm-2xm-2 + …+ c2x

2 + c1x + c0 ostatak dijeljenja polinoma (am-1x

m-1 + am-2xm-2+ … + a1x + a0) (bm-1x

m-1 + bm-2xm-2 + … + b1x + b0)

Page 20: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

15

polinomom f(x) nad poljem 2F .

3) invertiranje Ako je a ne-nul element mF

2, tada je inverzni element od a, označen s a -1,

jedinstveni element c ∈ mF2

takav da vrijedi a * c = c * a = 1.

Postoji najmanje jedan element g u mF2

takav da se svi elementi u mF2

različiti

od nule mogu prikazati kao njegova potencija (element g se zove generator).

Inverz elementa a = gi je a-1 = )12mod −− m(i)(g .

Primjer 3. 4 Neka je m = 4. Imamo polje 42F .Ireducibilni polinom je

f(x) = x4 + x + 1. Element g = (0010) je generator polja . Svi elementi polja 42

F su :

g0 = (0001), g1 = (0010), g2 = (0100), g3 = (1000), g4 = (0011) ,g5 = (0110), g6 = (1100), g7 = (1011), g8 = (0101), g9 = (1010), g10 = (0111), g11 = (1110), g12 = (1111), g13 = (1101), g14 = (1001), g15 = (0001) .

zbrajanje : (1101) + (0001) = (1100)

množenje : (1101) (1001) = (x3 + x2 + 1) (x3 + 1) mod f(x) = x6 + x5 + 2x3 + x2 + 1 mod f(x) = x6 + x5 + x2 + 1 mod f(x) = ( x4 + x + 1)(x2 + x) + (x3 + x2 + x + 1) mod f(x) = x3 + x2 + x + 1 = (1111) invertiranje : g7 = (1011) g -7 mod 15 = g8 mod 15 = g8 = (0101). provjera : g7 * g -7= (1011) (0101) = = (x3 + x + 1) (x2 + 1) mod f(x) = x5 + x2 + x + 1 mod f(x) = ( x4 + x + 1)(x) + (1) mod f(x) = 1 = (0001)

Page 21: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

16

3.4.2.2 Prikaz polja F2m u normalnoj bazi

Normalna baza od mF2

nad 2F je baza oblika {1m2222 β ,...,β ,β β,

−}, gdje je β ∈

mF2

. Svaki element a∈ mF2

može se zapisati kao a = i m

i i βa 2

1

0∑

=, gdje je ai ∈ {0, 1}.

Gaussova normalna baza (engl. Gaussian Normal Bases - GNB) jedan je oblik normalne baze. GNB prikaz polja mF

2 postoji samo ako postoji pozitivan cijeli broj T

takav da je p = Tm + 1 prost broj i gcd (Tm/k , k) = 1 ; k je red elementa 2 s obzirom na operaciju množenje modulo p (engl. multiplicative order of 2 modulo p). Gaussovu normalnu bazu zovemo GNB tipa T za mF

2 (engl. type T GNB for mF

2).

Kada se koristi prikaz T GNB, nad mF2

su definirane slijedeće operacije:

1) zbrajanje Ako su a = (am-1am-2…a2a1a0) i b = (bm-1bm-2…b2b1b0) elementi mF

2, tada je

c = a + b = (cm-1cm-2…c2c1c0), gdje je ci = (ai + bi) mod 2 = ai ⊕ bi.

2) kvadriranje

Neka je a = (am-1am-2…a2a1a0) ∈ mF2

. Kvadriranje je linearna operacija nad

mF2

za koju vrijedi :

( )2 - m201 - m

1 - m

0 i

i 21 - i

1 - m

0 i

1 i 2i

21 - m

0 i

i2i

2 β β β a aaaaaaa L===

= ∑∑∑==

+

=.

Kvadriranje elementa polja je rotacija vektorskog prikaza .

3) množenje Neka je p = Tm + 1 i neka je u ∈ Fp. Definirat ćemo niz F(0), F(1), …, F(p - 1) kao F(2i uj mod p) = i, za 0 ≤ i < m, 0 ≤ j < T. Ako su a = (am-1am-2…a2a1a0) i b = (bm-1bm-2…b2b1b0) elementi mF

2, vrijedi

c = a* b = (cm-1cm-2…c2c1c0), gdje je

++=

∑ ∑

=

=

=

++−++++++

++−

neparan je ako , ) (

paran je ako ,

2 / m

1k

2p

1k

2p

1ki

i k) - F(pi 1) F(k 1 - i k 1 - i k m/21 - i k m/21 - i k

i k) - F(pi 1) F(k

Tbababa

Tba

c

, za svaki i, 0 ≤ i < m .

4) inverz Ako je a element mF

2 i ako je različit od nule, tada je inverzni element od a,

označen s a -1, jedinstveni element c ∈ mF2

za koji vrijedi a*c = c*a = 1.

[10][5]

Page 22: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

17

4 Elipti čne krivulje

4.1 Što su eliptične krivulje ? Neka je K polje, K algebarski zatvoreno polje i neka je K+ skup invertibilnih

elemenata u K. Projektivne koordinate P2(K) nad poljem K definiramo kao skup ekvivalentnih razreda (engl. equivalence classes) relacije ~ primjenjene na K3\{0,0,0}, gdje je (x1,y1,z1) ~ (x2,y2,z2) ako i samo ako postoji u∈K+ takav da vrijedi x1=ux2,

y1= uy2 i z1=uz2. Razred ekvivalencije koji sadrži (x, y, z) predstavljen je s (x : y : z ), što se naziva

točka u koordinatnom sustavu P2(K) s homogenim koordinatama x, y i z. Polinom f ∈ K [X,Y,Z] se naziva homogenim polinomom stupnja d (engl.

homogenus of degree d) ako za svaki λ ∈ K vrijedi f(λX, λY, λZ) = λd f(X,Y,Z).

Weirstrassova jednadžba je homgena jednadžba trećeg stupnja : Y 2Z+ a 1XYZ+ a 3YZ2 = X 3 + a 2X 2Z + a 4XZ2 + a 6Z

3, (4.1) gdje su a 1, a 2, a 3, a 4, i a 6 ∈ K . Točke koje zadovoljavaju prethodno navedenu jednadžbu su korijeni homogenog

polinoma F: F(X,Y,Z)= Y 2Z+ a 1XYZ+ a 3YZ2 - X 3 - a 2X 2Z - a 4XZ2 - a 6Z

3. (4.2) Weirstrassovu jednadžbu zovemo nesingularna ili glatka (engl. smooth) ako za

sve točke P = (X,Y,Z) u P2( K ) koje zadovoljavaju jednadžbu (4.1) najmanje jedna od tri

parcijalne derivacije X

F

∂∂

,Y

F

∂∂

,Z

F

∂∂

je različita od nule u točki P.

Ako su sve tri parcijalne derivacije jednake nuli za točku P, Weirstrasseova jednadžba se zove singularna, a točka P je singularna točka.

Definicija 4.1 Elipti čna krivulja ili nesingularna kubna krivulja ( engl.

nonsingular cubic curve) je skup svih rješenja glatke Weirstrasseove jednadžbe. Rješenje se naziva točka na eliptičnoj krivulji. Krivulju označavamo slovom E.

Skup rješenja singularne Wierstrasseove jednadžbe se naziva singularna kubna krivulja.

Uvijek postoji točka na krivulji čija je Z koordinata jedaka 0, npr. (0:1:0) . Takva točka se naziva točkom u beskonačnosti i označava se s O.

Uvede li se zamjena x=X/Z i y=Y/Z u jednadžbu (4.1), Weirstrasseova formula

poprima oblik: y2 + a1xy + a3y = x3 + a2x

2 + a4x + a6. (4.3) Definirane na taj način, x i y nazivamo affinim koordinatama (engl.affine

coordinates). Svaka krivulja se može predstaviti kao skup riješenja (x, y) u affinim

koordinatama A2( K )= K x K , zajedno s točkom O.

Page 23: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

18

Ako su a 1, a 2, a 3, a 4, i a 6 ∈K, za krivulju E kažemo da je definirana nad K i označavamo je sa E/K.

Slika 4.1 Eliptična krivulja

Definicija 4.2 Dvije krivulje E1/K i E2/K zadane jednadžbama

E1 : y2 + a1xy + a3y = x3 + a2x

2 + a4x + a6

E2 : y2 + a1’xy + a3’y = x3 + a2’x

2 + a4’ x + a6’ su izomorfne nad K, ako postoje r, s, t, u ∈K, u ≠ 0 , takvi da zamjena varijabli

(x, y) → (u2x + r, u3sx + t) (4.4) transformira jednadžbu E1 u jednadžbu E2 . [2]

4.2 Diskriminanta i j-invarijanta Neka je E/K krivulja zadana Weierstrasseovom jednadžbom u affinim

koordinatama : E/K : y2 + a1xy + a3y = x3 + a2x

2 + a4x + a6. (4.5) Definiramo slijedeće vrijednosti (engl. quantities): b2 = 2

1a + 4a2 , b4 = 2 a4+ a1a3 , b6 = 2

3a + 4 a6 ,

b8 = 61a + 4a2 a6 - a1a3a4 + a2

23a - 2

4a ,

c4 = 22b -24b4 ,

c6 = 32b +36 b2b4 - 216 b6 .

Diskriminantu ∆ (engl. discriminant) Wierstrasseove jednadžbe eliptične krivulje

definiramo kao : ∆ (E) = - 2

2b -8 34b -27 2

6b + 9 b2b4b6 (4.6)

Page 24: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

19

Za ∆ ≠ 0 definiramo j-invarijantu (engl. j-invariant)od E kao :

j (E) = )(

34

E

c

∆ (4.7)

Teorem 4.1 Eliptična krivulja E nije singularna ako i samo ako je ∆ ≠ 0. Teorem 4.2 Za dvije eliptične krivulje E1/K i E2/K izomorfne nad K vrijedi

j(E1) = j(E2). [2]

4.3 Krivulje nad poljima razli čitih karakteristika 4.3.1 Eliptične krivulje nad poljem K s karakteristikom char(K) ≠ 2, 3

Eliptična krivulja je zadana jednadžbom (4.5):

E/K : y2 + a1xy + a3y = x3 + a2x2 + a4x + a6.

Ako je char(K) ≠ 2, primjenjujemo zamjenu varijabli (x,y)→(x,y – ½ (a 1x+ a 3)). (4.8)

Treba naglasiti da ako je char(K) = 2, dijeljenje s 2 nije definirano nad poljem K ; ako je char(K) ≠ 2, dijeljenje s 2 je definirano.

Zamjena varijabli (4.8) pretvara E/K u

E’/K : y2= x3 + 4

1b2x

2 + 2

1b4x +

4

1b6 . (4.9)

Ako su char(K) ≠ 2 i char(K) ≠ 3 , primjenjuje se zamjena varijabli (x,y) → (x-3b2/36 , y/216) . (4.10)

Zato što vrijedi 36 = 22 *32 i 216 = 23 * 33, dijeljenje brojevima 36 i 216 definirano

je samo kada je char(K) ≠ 2 i char(K) ≠ 3. Zamjena (4.10) pretvara jednadžbu E’/K u

E’’/ K : y2= x3 -27 c4x -54c6 . (4.11) Za bilo koje polje K karateristike char(K) ≠ 2 i char(K) ≠ 3 prethodna jednadžba se

može zapisati kao y2= x3 + ax + b, a , b ∈ K. (4.12)

Kada je K = Fq i q = pm , gdje je p prosti broj veći od 3, a m pozitivni cijeli broj,

krivulju označavamo s Eq(a,b) . Diskriminanta za krivulju E/K s karakteristikom char(K) ≠ 2,3 iznosi

∆ (E) = - 16(4 a3+27b2) , (4.13) dok j-invarijanta iznosi

j (E)=E

a

∆− 3)4(1728

. (4.14)

Page 25: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

20

U skladu sa teoremom (4.1) vrijedi da krivulja nije singularna ako je -16(4a3 + 27b2) ≠ 0. U literaturi se često koristi (4a3 + 27b2) ≠ 0, što je ekvivalentno prethodnom uvjetu za nesingularnost.

Teorem 4.3 Dvije krivulje E1/K i E2/K zadane jednadžbama

E1 : y2= x3 + a1x

2 + b1 (4.15) E2 : y

2= x3 + a2x2 + b2 (4.16)

su izomorfne nad K ako i samo ako postoji u ∈ K, u ≠ 0, takav da zamjena varijabli (x, y)→(u2x, u3y) (4.17)

pretvara jednadžbu E1 u jednadžbu E2. Takoñer vrijedi a1 = a2u

2, b1 = b2u6 .[2]

4.3.2 Eipti čne krivulje nad poljem K s karakteristikom char(K)=2 Upotreba eliptičnih krivulja nad poljem K s karakteristikom char(K) = 2 ima

odreñene prednosti kod implementacije kriptosustava. Neka je karakteristika polja K char(K) = 2 i neka je E/K eliptična krivulja nad

poljem K (∆ (E)≠0) zadana jednadžbom (4.5) E/K : y2 + a1xy + a 3y = x3 + a 2x

2 + a4x + a6.

J-invarijanta za tu krivulju iznosi j (E)= ∆

121)(a

. Postoje dva slučaja :

1. j (E)≠0, a1 ≠0. Primjenjuje se zamjena varijabli

(x,y)→( 21a x + a 3 / a 4,

31a y + ( 2

1a a4+23a )/

31a ), (4.18)

što transformira jednadžbu E/K u E’/K : y2 + xy = x3 + ax2 + b. (4.19)

Diskriminanta i j-invarijanta iznose ∆ (E’)=b , (4.20)

j (E’)=b

1. (4.21).

2. j (E)=0, a1=0 Primjena zamjene varijabli

(x,y)→( x + a2 ,y) (4.22) transformira jednadžbu E/K u

E’/K : y2 + 3~a y = x3 + 4

~a x2 + 6~a . (4.23)

U ovom slučaju vrijedi

∆ (E’)= 43

~a , (4.24)

i naravno, j (E’) = 0. [2]

Page 26: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

21

4.4 Zbrajanje na eliptičnoj krivulji

Definicija 4.3 Neka su P i Q ∈ E. Vrijedi slijedeće : 1) P+ O = P i O +P = P. 2) Pretpostavimo da je P ≠ O i da je Q ≠ O . Neka je pravac l pravac koji spaja P i Q

(ako je P ≠ Q) ili je pravac l tangenta na krivulju u točki P (ako je P = Q).Neka je R točka u kojoj se sjeku pravac l i krivulja E.

a) Ako je R = O (R je točka u beskonačnosti), onda je P + Q = O. b) Ako nije R = O, onda je P + Q točka u kojoj se sjeku pravac l’ i eliptična

krivulja E; pravac l’je pravac koji spaja točke P i Q.

Za zbrajanje vrijedi slijedeće : 1) ∀P, Q ∈ E, ako je R = P + Q, onda je R ∈ E (zatvorenost) 2) P + (Q + R) = (P + Q) + R, ∀P, Q, R ∈ E (asocijativnost) 3) ∃ O ∈ E, takav da ∀P ∈ E, P + O = O + P = P (neutralni element) 4) ∀P ∈ E, ∃ – P ∈ E , takav da vrijedi P + (– P) = (– P) + P = O. (inverzni

element) 5) ∀P, Q ∈ E, P + Q = Q + P. (komutativnost)

Teorem 4.4 (E,+) je Abelova grupa s neutralnim elementom O . Ako je eliptična krivulja E definirana nad poljem K, onda je E(K) podgrupa od K. Zbrajanje na točaka na eliptičnim krivuljama je prikazano na slijedećoj slici.

Razlikujemo tri slučaja : 1) P + Q, P ≠ O

Pravac l povezuje točke P i Q . Točka u kojoj se sjeku pravac l krivulja E je točka R koja nije jednaka točki u beskonačnosti, O . Pravac l’ povezuje točke R i O . Zbroj točaka P i Q je točka E, točka u kojoj pravac l’siječe eliptičnu krivulju E.

2) S + S = 2S

Pravac m je tangenta na krivulju E u točki S. Točka T je točka u kojoj se sjeku pravac m i krivulja E, a m’ je pravac koji povezuje točku T s O

3) T + S Pravac m povezuje točke T i S i tangenta je na krivulju E u točki S. Točka u kojoj se sjeku krivulja E i tangenta je točka S. Koristeći pravac n dobiva se T+S.

Page 27: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

22

Slika 4.2 Zbrajanje na eliptičnoj krivulji Neka je P = (x1, y1) i Q = (x2, y2) i P + Q = (x3, y3) ∈ E\{ O}, gdje je E odreñena

jednadžbom (4.5) .Eksplicitne formule za zbrajanje u affinim koordinatama glase: 1) –P = (x1, – y1– a1x1–a3). 2) ako je Q ≠ -P

x3 = λ2 + a1λ – a2 – x1– x2, (4.25) y3 = - ( λ + a1 )x3 – (y1

+ λ x1) –a3, (4.26) gdje je

=++

−++

≠−−

=

. je ako 2

23

je ako

3111

1141221

12

12

QPaxay

yaaxax

QPxx

yy

λ (4.27)

[2]

Page 28: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

23

4.4.1 Eliptične krivulje nad poljima s char(K) ≠ 2, 3 i zbrajanje Krivulja E nad poljem K s karaktristikom char(K) ≠ 2,3 definirana je jednadžbom

(4.12). Neka je P = (x1, y1), Q = (x2, y2) i P + Q = (x3, y3) ∈ E\{ O}. Tada vrijedi 1) –P = (x1, -y1) 2) x3 = λ2 – x1 – x2, (4.28)

y3 = λ (x1 – x3) – y1, (4.29) gdje je

=+

≠−−

=

. je ako 2

3

je ako

1

21

12

12

QPy

ax

QPxx

yy

λ (4.30)

Teorem 4.5 Za sve eliptične krivulje nad poljem K sa karakteristikom char(K)

različitom od 2 ili 3, i odreñene parametrima a i b ∈ K vrijedi : a) Zbrajanje dvije različite točke na krivulji je neovisno o parametrima a i b, b) Udvostručavanje točke je neovisno o parametru b. [2]

4.4.2 Eliptične krivulje nad poljima s char(K) = 2 i zbrajanje Neka je E krivulja nad poljem s karakteristikom char(K) = 2. Razlikujemo dva

slučaja u ovisnosti o vrijednosti j-invarijante j(E). 1) j (E) ≠ 0.

Neka je E’/K definirana jednadžbom y2 + xy = x3 + ax2 + b. Neka je P = (x1, y1), Q = (x2, y2) i P + Q = (x3, y3) ∈ E’\{ O}. Vrijedi slijedeće

1. –P = (x1, y1+ x1)

2. x3 = axxxx

yy

xx

yy ++++++

++

2121

21

2

21

21 ,

y3 = 133121

21 )( yxxxxx

yy+++

++

ako je P ≠ Q (4.31)

ili

x3 = 21

21 x

bx + ,

y3 = 331

11

21 )( xx

x

yxx +++ ako je P = Q. (4.32)

Teorem 4.6 Za eliptičnu krivulje E/K nad poljem sa karakteristikom char(K)=2, j-invarijantom j(E) ≠ 0, odreñenom parametrima a i b ∈ K vrijedi :

a) Zbrajanje dvije različite točke na krivulji je neovisno o parametru b,

Page 29: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

24

b) Udvostručavanje točke je neovisno o parametru a. 2) j (E) = 0.

Neka je E’’/ K definirana jednadžbom y2 + a3y = x3 + a4x

2 + a6 i neka su točke P = (x1, y1), Q = (x2, y2) i P + Q = (x3, y3) ∈ E’’\{ O}. Tada vrijedi

1) –P = (x1, y1+ a1)

2) x3 = 21

2

21

21 xxxx

yy ++

++

,

y3 = 313121

21 )( ayxxxx

yy+++

++

ako je P ≠ Q,, (4.33)

ili

x3 = 23

24

41

a

ax +,

y3 = 31313

421 )( ayxxa

ax+++

+ ako je P = Q. (4.34)

Teorem 4.7 Za eliptičnu krivulje E/K sa karakteristikom char(K) = 2,

j-invarijantom j(E) = 0, odreñenom parametrima a3, a4 i a6 ∈ K vrijedi : a) Zbrajanje dvije različite točke na krivulji je neovisno o parametrima a4 i a6, b) Udvostručavanje točke je neovisno o parametru a6. [2]

4.5 Skalarno množenje Definicija 4.4 Neka je P∈E ( P je točka na eliptičnij krivulji) i neka je m∈Z.

Množenje točke P skalarom m definirano je kao

<−−=

>++

=0.m je ako P),m)((

0,m je ako O,

0,m je ako

mP

puta m

,P...P 43421

(4.35)

Definicija 4.5 Neka je E eliptična krivulja i neka je P točka na toj krivulji (P∈E).

Postoji broj n , n ∈ N+, za koji vrijedi nP = O. Najmanji takav broj n zovemo redom točke P. [2][10]

Page 30: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

25

4.6 Eliptične krivulje nad konačnim poljem Fp Definicija 4.6 Eliptična krivulja )( pFE nad konačnim poljem odreñena je

parametrima a, b ∈ Fp koji zadovoljavaju uvjet 4a3 + 27b2 ≠ 0. Krivulju čini skup točaka (x, y) ∈ Fp koje zadovoljavaju jednadžbu

y2 = x3 + ax + b. (4.36) Skup točaka na )( pFE uključuje i točku O , točku u beskonačnosti koja je neutralni

element za zbrajanje. Operacija zbrajanja je definirana nad )( pFE na slijedeći način :

1) P + O = O + P = P, ∀ P ∈ )( pFE

2) Ako je P = (x , y) ∈ )( pFE , onda je (x, y) + (x, – y) = O.

Točka (x, – y) ∈ )( pFE se zove suprotna točka od P i označava se sa –P.

3) Ako je P = (x1, y1) ∈ )( pFE i Q = (x2, y2) ∈ )( pFE i P ≠ Q, tada vrijedi

R = P + Q = (x3, y3) ∈ )( pFE , gdje je

x3 = λ2 – x1 – x2, y3 = λ (x1 – x3) – y1,

12

12

xx

yy

−−

=λ . (4.37)

4) Neka je P = (x, y) ∈ )( pFE . Onda je Q = P + P = 2P = (x1, y1) ∈ )( pFE ,

gdje je x1 = λ2 – 2x,

y1 = λ (x – x1) – y,

y

ax

2

3 2 +=λ . (4.38)

Slika 4.4 Zbrajanje točaka P i Q i udvostručavanje točke P

Page 31: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

26

Krivulja )( pFE formira Abelovu grupu za operaciju zbrajanja.

Zadovoljeni su slijedeći uvjeti: 1) ∀P, Q ∈ )( pFE , ako je R = P + Q, onda je R ∈ )( pFE (zatvorenost)

2) P + (Q + R) = (P + Q) + R, ∀P, Q, R ∈ )( pFE (asocijativnost)

3) ∃ O ∈ )( pFE , takav da ∀P∈ )( pFE , P + O = O + P = P (neutralni element)

4) ∀P ∈ )( pFE , ∃ – P ∈ )( pFE , takav da vrijedi P + (– P) = (– P) + P = O.

(inverzni element) 5) ∀P, Q ∈ )( pFE , P + Q = Q + P. (komutativnost) [10]

Primjer 4.1 Neka je F23 konačno polje. Jednadžba eliptične krivulje definirane

nad poljem F23 je y2 = x3 + x ; a = 1, b = 0 ∈ F23 . 23 točke koje zadovoljavaju jednadžbu su : (0,0), (1,5), (1,18), (9,5),(9,18), (11,10), (11,13), (13,5), (13,18), (15,3), (15,20), (16,8), (16,15), (17,10), (17,13), (18,10) (18,13), (19,1), (19,22), (20,4), (20,19), (21,6), (21,17) i prikazane su na slici 4.5.

Zbrajanje: P=(9, 5), Q=(11, 10) λ = (yp - yq)*( xp - xq)

-1 mod 23 = (5 - 10)*(9 - 11)-1 mod 23 = = -5 * (-2)-1 mod 23 = = 18 * 21-1 mod 23 = = 18 * 11 mod 23 = = 14 xr = λ2 - xp - xq mod p = = 196 - 9 - 11 mod 23 = = 15 yr = - yp + λ *(xp – xr) mod p = = -5 + 14 * (9 - 15 ) mod 23 = = 18 + 14*17 mod 23 = = 18 + 8 mod 23 = 3 P + Q = R = (15, 3)

Slika4.5 Točke koje zadovoljavaju jednadžbu y2 = x3 + x nad poljem F23

Udvostručavanje : P=(9, 5) λ = (2xp

2 + a)(2yp)-1 mod p = (3*92 + 1)*(2*5)-1 mod 23 = 244 * 10-1 mod 23 =

= 244*7 mod 23 = 6 xr = λ2 – 2xp mod p = 152 – 2*9 mod 23 = 225 – 18 mod 23 = 18 yr = λ (xp – xr) – yp mod p = 6*(9 - 18) - 5 mod 23 = 6*14 + 18 mod 23 = 10 2P = R = (18, 10) [5]

Page 32: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

27

4.7 Eliptične krivulje nad konačnim poljem F2m Definicija 4.7 Neka je mF

2konačno polje karakterstike 2.Eliptična krivulja

)(2mFE nad konačnim poljem odreñena je parametrima a, b ∈ mF

2 ( a i b zadovoljavaju

uvjet 4a3 + 27b2 ≠ 0, b ≠ 0 ), a čini ju skup točaka (x,y) ∈ mF2

koje zadovoljavaju

jednadžbu y2 + xy = x3 + ax2 + b. (4.39)

Skup točaka na )(2mFE uključuje i točku O , točku u beskonačnosti, koja je

neutralni element za zbrajanje. Broj točaka nad )(

2mFE je odreñen s )(#2mFE . Hasseov teorem kaže da :

2 m + 1 – m2 ≤ )(#2mFE ≤2 m + 1 + m2 .

Zbrajanje je definirano nad )(

2mFE na slijedeći način :

1) P + O = O + P = P, ∀ P ∈ )(2mFE

2) Ako je P = (x, y) ∈ )(2mFE , onda je (x, y) + (x, – y) = O.

(Točka (x, – y) ∈ )(2mFE se zove suprotna točka od P i označava se s –P)

3) Ako je P = (x1, y1) ∈ )(2mFE i Q = (x2, y2) ∈ )(

2mFE i P ≠ Q, onda vrijedi

R = P + Q = (x3, y3) ∈ )(2mFE , gdje je

x3 = λ2 + λ + x1 + x2 + a, y3 = λ (x1 + x3) + x3 + y1,

21

21

xx

yy

++

=λ . (4.40)

Suma dvije točke se može prikazati kao točka u kojoj se sjeku eliptična krivulja )(

2mFE i pravac provučen kroz te točke.

4) Neka je P = (x, y) ∈ )(2mFE . Onda je točka Q = P + P = 2P = (x1, y1) ∈ )(

2mFE ,

gdje je x1 = λ2 + λ + a,

y1 = x2 + (λ + 1)*x1,

x

yx +=λ . (4.41)

Ovu operaciju zovemo udvostručavanje točke. Udvostručenu točku možemo prikazati kao točku u kojoj se sjeku eliptična krivulja i tangenta na krivulju u točki P.

Krivulja )(

2mFE formira Abelovu grupu za operaciju zbrajanja.

Zadovoljeni su slijedeći uvjeti:

Page 33: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

28

1) ∀P, Q ∈ )(2mFE , ako je R = P + Q, onda je R ∈ )(

2mFE (zatvorenost s obzirom

na zbrajanje) 2) P + (Q + R) = (P + Q) + R, ∀ P, Q, R ∈ )(

2mFE (asocijativnost)

3) ∃ O ∈ )(2mFE , takav da ∀P ∈ )(

2mFE , P + O = O + P = P (neutralni element)

4) ∀P ∈ )(2mFE , ∃ – P ∈ )(

2mFE , takav da vrijedi P + (– P) = (– P) + P = O.

(inverzni element) 5) ∀P, Q ∈ )(

2mFE , P + Q = Q + P. (komutativnost) [2]

Primjer 4.2 Konačno polje 42

F koje koristimo u ovom primjeru opisano je u

poglavlju 3.4.2.1. Jednadžba eliptične krivulje je y2 + xy = x3 + g4x2 + 1. a = g4 = (0011) b = g0 = (0001) =1 Točke koje zadovoljavaju jednadžbu su (1, g13), (g3, g13), (g5, g11), (g6, g14),(g9, g13), (g10, g8), (g12, g12), (1, g6), (g3, g8), (g5, g3), (g6, g8), (g9, g10), (g10, g), (g12, 0), (0, 1). Navedene točke prikazane su na slici 4.6.

Zbrajanje : P = (g5, g3), Q = (g3, g8) λ = (yp + yq)*( xp + xq)

-1 = = (g3 + g8)*( g5+ g3)-1 = = g13 * g -11 = g2 xr = λ2 + λ + xp + xq + a = = g4 + g2 + g5 + g3 + g4 = = g9

yr = λ *(xp + xr) + xr + yp = = g2 (g5 + g9) + g9 + g3 = = g2 * g6 + g9 + g3 = = g10 P + Q = R = (g9, g10)

Slika 4.6 Točke koje zadovoljavaju jednadžbu y2+xy=x3+g4x2+1 nad poljem F24 Udvostručavanje : P=( g5, g3) λ = xp + yp * xp

-1 = g5 + g9 * g -5 = g5 + g13 = g7 xr = λ2 + λ + a = g14 + g7 + g 4 = 1 yr = xp

2 + (λ + 1)*xr = g10 + (g9 + 1)*1 = g10 + g9 * 1 = g13 2P = R = (1, g13) [5]

Page 34: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

29

4.8 Eliptične krivulje nad Zn U ovom odjeljku opisane su eliptične krivulje nad prstenom Zn , gdje n nije prost

broj. Definicija 4.8 Eliptičnu krivulju nad Zn čini skup točaka u Zn×Zn, koje su rješenja

jednadžbe y2 = x3+ax+b, (4.42)

gdje su a i b ∈Zn , zajedno s točkom On u beskonačnosti. Krivulju označavamo sa En(a,b).

Kako ovdje ne razmatramo vezu s poljima karakteristike 2 ili 3, pretpostavit ćemo

da je gcd (n, 6) = 1. Broj n nema ijedan faktor jednak 2 ili 3. Uvjet za nesingularnost je gcd(4a3+27b2, n) = 1. (4.43)

Na krivulji En(a,b) zbrajanje možemo definirati u skladu s pravilima za zbrajanje na eliptičnim krivuljama, ali potreban je oprez jer zbrajanje nije uvijek definirano na En(a,b). U skladu s formulom

λ = (y2 – y1) / (x2 – x1) , ako je P ≠ Q, λ = (3x1

2 + a) / 2y1 , ako je P = Q, za izračunavanje λ je potrebno dijeljenje. Dijeljenje nije definirano ako je gcd(x2-x1,n) ≠ 1 za P ≠ Q ili ako je gcd(2y1,n) ≠ 1 za P = Q. Kako n nije prost broj , En(a,b) nije grupa s takvim zbrajanjem.

Pretpostavi li se da je n = pq , gdje su p i q prim broj , slijedeće pravilo se može generalizirati za svaku faktorizaciju od n. Neka vrijedi slijedeće :

Ēn(a,b) = Ep(a,b) x Eq(a,b) , Ēn(a,b) je grupa jer je produkt dvije grupe. U skladu s kineskim teoremom ostatka svaki element x od Zn moguće je

jedinstveno predstaviti kao par [xp, yp], gdje su xp = x mod p∈Zp i xq = x mod q∈Zq. Tako se svaka točka P = (x, y) od En(a, b) može predstaviti kao par [Pp, Pq] = [ (xp, yp), (xq, yq)] , gdje je Pp točka na Ep(a,b) , a Pq točka na Eq(a,b). Svakom elementu od En(a,b) odgovara jedinstveni element od Ēn(a,b). S druge strane , svaki element od Ēn(a,b) odgovara jedinstvenom elementu od En(a,b), osim točaka (P,Q) od Ēn(a,b), gdje je P= Op

ili Q= Oq. To se može zapisati kao : Ēn(a,b) = En(a,b) ∪ {[ Pp,O] : Pp ∈ Ep(a,b) } ∪ {[ O, Pq] : Pq ∈ Eq(a,b) }. Važno je naglasiti da se zbrajanje na En(a,b) , kada je definirano, podudara s

zbrajanjem na Ēn(a,b). Kada je moguće zbrojiti dvije točke na Ēn(a,b), to se može učiniti bez poznavanja faktorizacije od n.

Kada su svi prosti faktori od n veliki, malo je vjerojatno da suma dvije nasumično odabrane točke nije definirana.Vjerojatnost je procjenjena Hasseovim teoremom i iznosi

2##*##

1# 1#

#

1# 1#

+−−

−+−=

−+−

qpqP

qp

n

qp

EEEE

EE

E

EE

Page 35: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

30

1)1)(#1(#

1# 1#

+−−

−+−=

qP

qp

EE

EE

1)1)(#1(#

1#

1)1)(#1(#

1#

+−−

−+

+−−

−=

qP

q

qP

p

EE

E

EE

E

1#

1

1#

1

−+

−<

Pq EE

ppqq 2

1

2

1

−+

−≤ .

To se može ilustrirati slijedećim teoremom. Teorem 4.8 Neka je n = pq , gdje su p i q prosti brojevi veći od 3 i neka su a, b

∈ Zn i gcd(4a3+27b2,n) =1. Tada vrijedi slijedeće : Ako nije zanemariva vjerojatnost da za dvije slučajno odabrane točke na En(a,b)

zbrajanje nije definirano, postoji izvediv (ostvariv) algoritam faktoriziranja koji faktorizira n velikom vjerojatnošću.

Teorem 4.9 Neka je n = pq , gdje su p i q prosti brojevi veći od 3 i neka su a,b

∈ Zn i neka je gcd(4a3+27b2,n) =1. Definiramo Nn = lcm(#Ep(a,b),#Eq(a,b)). Ako za sve P∈ En(a,b) i k∈Z vrijedi

(kNn+1)P = P nad En(a,b), (4.44) množenje je definirano.

Slijedeći teorem je proširenje prethodnog teorema. Teorem 4.10 Neka je n = pq , gdje su p i q prosti brojevi veći od 3 i neka su a,b

∈ Zn i gcd(4a3+27b2,n) = 1. Neka je v quadratic non-residue modulo p i neka je w

quadratic non-residue modulo q. Neka je krivulja cnE krivulja sastavljena od dvije

krivulje, E1∈{ Ep(a,b), vp baE ),( } i E2∈{ Eq(a,b), wq baE ),( }. Definiran je Nn =

lcm(#E1,#E2).

Ako za sve P∈ cnE i k∈Z vrijedi

(kNn+1)P = P nad cnE , (4.45)

množenje je definirano. [2]

Page 36: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

31

4.9 Singularne eliptične krivulje Definicija 4.9 Točka P ∈ E(K) naziva se singularnom točkom (engl. singular)

ako vrijedi

0)()()( =∂∂=

∂∂=

∂∂

PZ

EP

Y

EP

X

E. (4.46)

U suprotnom, točka P je nesingularna točka (engl. nonsingular) . Eliptična krivulja je singularna eliptična krivulja ako sadrži singularnu točku.

Točka O nije nikad singularna točka jer vrijedi 1)0 ,1 ,0( =∂∂Z

E.

Propozicija 4.1 Ako je krivulja E, zadana jednadžbom Y 2Z+ a 1XYZ+ a 3YZ2 = X 3 + a 2X 2Z + a 4XZ2 + a 6Z

3, a 1, a 2, a 3, a 4, a 6 ∈K, (4.47) singularna krivulja, tada sadrži točno jednu singularnu točku.

Dokaz: Jednadžba singularne krivulje može se zapisati kao

E = Y 2Z + a 1XYZ – X 3 - a 2X 2Z = 0 . (4.48) Odgovarajuće parcijalne derivacije su

X

E

∂∂

= a 1YZ - 3X 2 - 2a 2XZ (4.49)

Y

E

∂∂

= 2YZ+ a 1XZ (4.50)

Z

E

∂∂

= Y 2 + a 1XY - a 2X 2. (4.51)

Očito je da je točka P = (0, 0, 1) singularna točka na eliptičnoj krivulji E. Neka je točka Q = (X0, Y0, 1) druga singularna točka na krivulji E. Točka Q mora

zadovoljavati jednadžbe (4.48)-(4.51). Iz jednažbi (4.48) i (4.51) dobiva se (X0)

3 = 0. Iz toga slijedi da je X0 = 0. To za posljedicu ima Y0 = 0. Iz navedenog slijedi da je P = Q = (0, 0, 1) jedina singularna točka na eliptičnoj krivulji E.

Uvede li se zamjena x=X/Z i y=Y/Z, jednadžba krivulje E glasi

E : y2 + a1xy - a2x2 - x3 = 0. (4.52)

Točka P = (0, 0) je singularna točka. Kako je K algebarski zatvoreno polje, prethodna jednadžba se može zapisati kao E = (y - αx)(y - βx) – x3, gdje su α, β ∈ K . Definicija 4.10 Elementi α i β nazivaju se tangente (enlg. tangents) od E. Ako je α = β, kaže se da krivulja E ima vrh (engl. cusp) u točki P. Ako je α ≠ β, kaže se da E ima čvorište (engl. node) u točki P.

Page 37: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

32

Propozicija 4.2 Neka je E eliptična krivulja. E je singularna ako i samo ako je ∆ = 0. Ako je E singularna krivulja, ima vrh ako je c4 = 0 ili ima čvorište ako je c4 ≠ 0. [7]

Slika 4.5 Singularna krivulja sa čvorištem i singularna krivulja sa vrhom

4.10 Koblitzove krivulje

Koblitzove krivulje ili anomalne binarne krivulje (engl. anomalous binary curves) prvi put su predložene za upotrebu u kriptografiji 1992. u radu N. Kobltz-a ″CM-curves with good cryptographic properties″.

To su eliptične krivulje nad poljem mF2

s koeficijentima a i b jednakim 0 ili 1.

Krivulje su odreñene jednadžbom : Ea : y

2 + xy = x3 + ax2 + 1. (4.53) Kako a mora biti jednak 1 ili 0, imamo dva slučaja : 1. Za a = 0 jednadžba krivulje glasi

E1 : y2 + xy = x3 + 1 . (4.54)

2. Za a = 1 jednadžba krivulje glasi E2 : y

2 + xy = x3 + x2 + 1. (4.55) Koblitzove krivulje posjeduju neka svojstva koja ih čine zanimljivim za upotrebu u

kriptografiji. Slijedi opis tih svojstava. Redovi grupe (engl. group orders) Sa Ea( mF

2) označava se grupa F2 m-racionalnih točaka na krivulji Ea. To je grupa

nad kojom se izvode protokoli javnog ključa i izabire se tako da je teško izračunati diskretne logaritme njezinih elemenata. Zbog tog uvijeta bi red grupe # Ea( mF

2) trebao

biti djeljiv s velikim prostim brojem, odnosno broj # Ea( mF2

) bi trebao biti prost broj ili

produkt prostog broja i malog cijelog broja. To je moguće kada je broj m i sam prost broj, u suprotnome veliki djelitelji nastaju iz podgrupa Ea(F2 d ) gdje d dijeli m. Kada je m prost broj, jedini takvi djeljitelji su oni koji nastaju iz d = 1.

Page 38: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

33

Koblitzove krivulje nad F2 su E1(F2) = {O, (0,1)}, E2(F2) = {O, (0,1),(1,0),(1,1)}.

Kako je Ea(F2) podgrupa Ea( mF2

), slijedi da je red # Ea( mF2

) uvijek djeljiv s 2 ili 4.

==

==0.a je ako 4

1a je ako 2)(# 2FEf a (4.56)

Definira se cijeli broj koji je približno prost broj (engl. very nearly prime) kao N = f * r, gdje je f = 2 ili je f = 4 , dok je r prost broj veći od 2. Iako red eliptične krivulje #Ea( mF

2) nije nikad prost broj za m>1, on je često približno prost broj. Vrijednosti broja

m ≤ 512 za koji je #E1( mF2

) jednak umnošku broja 2 i prostog broja su :

m = 3, 5, 7, 11, 17, 19, 23, 101, 107, 109, 113, 163, 283, 311, 331, 347, 359. Vrijednosti broja m ≤ 512 za koji je #E0( mF

2) jednak umnošku broja 4 i prostog broja su:

m = 5, 7, 13, 19, 23, 41, 83, 97, 103, 107, 131, 233, 239, 277, 283, 349, 409. Krivulje čiji red je približno prost broj su krivulje kojima se pridaje najviše pažnje

kod implementacije kriptografskih algoritama. Glavna podgrupa (engl. main subgroup) Pretpostavimo da je #Ea( mF

2) = f* r približno prost broj. Definira se glavna

podgrupa kao podgrupa reda r. Češće se kriptografske oparacije provode nad glavnim podgrupama dok se upotreba cijelih krivulja izbjegava.

Propozicija 4.3 Neka je #Ea( mF

2) približno prost broj i neka je P točka na

eliptičnoj krivulji Ea( mF2

). Točka P se nalazi u glavnoj podgrupi ako i samo ako P = f*Q

za neku točku na Ea( mF2

).

Uvijeti koji odreñuju da li se točka nalazi u zadanoj glavnoj podgrupi : 1. Ako je a = 1, točka P = (x, y) se nalazi u glavnoj podgrupi ako i samo ako je Tr(x) = 0. 2. Ako je a = 0, točka P = (x, y) se nalazi u glavnoj podgrupi ako i samo ako je Tr(x) = 0 i Tr(y) = Tr(λx), gdje je λ element sa svojstvom λ2 + λ = x.

Kompleksno množenje (engl. complex multiplication) Kako su definirane nad2F , Koblitzove krivulje imaju slijedeće zanimljivo svojstvo:

Ako je točka P = (x,y) točka na krivulji Ea , točka (x2, y2) je takoñer na krivulji. Za svaku točku (x,y) na Ea vrijedi

(x4,y4) + 2(x,y) = µ*(x2,y2), (4.57) gdje je µ := (-1)1-a. Prethodna relacija se može zapisati u okvirima Frobeniusovog preslikavanja nad2F

uz korištenje relacije τ (x,y) := (x2,y2) kao τ (τ P) + 2P = µτP (4.58)

Page 39: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

34

i vrijedi za sve P∈ Fa. To znači da se kvadratno preslikavanje (engl. squaring map) može povezati sa implementiranjem množenja kompleksnim brojem τ koji zadovoljava formulu

τ 2 + 2 = µτ. Eksplicitno, taj broj τ iznosi

2

7-

+= µτ .

Kombinirajući kvadratno preslikavanje s običnim skalarnim množenjem možemo množiti točke na krivulji Ea sa bilo kojim elementom prstena Z[τ ]. Kaže se da je za krivulju Ea definirano kompleksno množenje s τ.

Lucasovi nizovi (engl. Lucas sequences ) Lucasovi nizovi su nizovi cijelih brojeva što omogućavaju proračune koji uključuju

kvadrate iracionalnih brojeva. quadratic irational Postoje dva Lucasova niza, Uk i Vk, povezanih sa danim quadratic irational. Za

zadani τ niz je definiran kako slijedi . U0 = 0, U1 = 1 i Uk +1 = µUk – 2Uk -1 , za k ≥ 1 ;

V0 = 2, V1 = µ i Vk +1 = µVk – 2Vk -1 , za k ≥ 1 ; (4.59) Norma (engl. norm ) Norma elementa α∈Z[τ ] je umnožak α i njemu konjugiranog α . Eksplicitno,

norma elementa δ := d0 + d1τ iznosi N(δ) = d0

2 + µd0d1 + 2d12 . (4.60)

Za svaki α i β u Z[τ ] vrijedi N(αβ) = N(α) N(β) . (4.61)

Euklidska udaljenost od α do 0 u kompleksnoj ravnini je dana formulom

)N(α . Pravilo nejednakosti trokuta glasi

)()()N( βαβα NN +≤+ . (4.62)

Neke specifične vrijednosti normi su N(τ ) = 2 , N(τ -1) = f i N(τ m -1) = #Ea(F2 m). [15]

Page 40: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

35

5 Problem diskretnog logaritma za eliptične krivulje Snaga ECC-a se nalazi u problemu diskretnog logaritma u grupi eliptične krivulje

nad konačnim poljem (engl. elliptic curve discrete logaritham problem - ECDLP).

5.1 Problem diskretnog logaritma

Definicija 5.1 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 vrijedi h = gx, (5.1) gdje je gx = g * g * ... * g (x puta). Broj x zove se diskretni logaritam i označava s logg h.

Najpoznatija metoda za riješavanje problema diskretnog logaritma u grupi Zp* je

index calculus metoda. Metoda se može definirati za proizvoljnu grupu G, no njezina efikasnost bitno ovisi o svojstvima te grupe. Najvažnije je da možemo izabrati relativno mali podskup F grupe G , (faktorsku bazu) koji ima svojstvo za se velik broj elemenata iz G može efikasno prikazati kao produkt elemenata iz F.

Efikasnost ove metode u grupi Zp* ovisi o svojstvima distribucije prostih brojeva, ponajprije činjenici da ih ima beskonačno mnogo. Broj prostih brojeva koji su manji od realnog broja x asimptotski je jednak x / ln x.

Slijedi opis algoritma koji za cikličku grupu G reda n s generatorom g, računa diskretni logaritam logg h proizvoljnog elementa h grupe G.

Algoritam index calculus:

1.Izbor faktorske baze Izaberemo podskup F = {p1, p2, ... , pm} od G sa svojstvom da se relativno velik broj elemenata iz G može prikazati kao produkt elemenata iz F.

2. Linearne relacije u logaritmima Za slučajan broj k, 0 ≤k ≤n - 1, izračunava se gk i prikazuje kao produkt elemenata iz F:

∏= ici

k pg , ci ≥ 0. (5.2)

Slijedi logaritmiranje dobivenu relacije. Na taj način k mod n prikazijemo kao linearnu kombinaciju logaritama: )(modlog npck igi∑≡ . (5.3)

Postupak se ponavlja dok ne dobijemo barem m takvih relacija. Obično se postupak zaustavlja nakon dobivanja m + 10 relacija, jer tada s velikom vjerojatnošću pripadni sustav od m + 10 jednadžbi s m nepoznanica ima jednstveno rješenje.

Page 41: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

36

3. Rješavanje sustava: Rješava se linearni sustav od, recimo, m + 10 jednadžbi s m nepoznanica. Tako se dobiju vrijednosti logg pi .

4. Računanje x = logg h:

Za slučajan broj k, 0 ≤ k ≤ n - 1, izračuna se h gk, te ga se pokušava prikazati kao produkt elemenata iz F:

∏= idi

k pgh* , di ≥0. (5.4)

Ako to ne uspije, izabire se novi k. Uspije li, dobivenu relaciju logaritmiramo i dobijemo da je

x = logg h = (Σ di logg pi - k ) (mod n). (5.5)

U primjeni index calculus metode na grupu Zp*, koja je ciklička grupa reda n = p - 1, za faktorsku bazu F uzima se prvih m prostih brojeva. Zatim pokušavamo brojeve oblika r = gk prikazati kao produkt prvih m prostih brojeva. Što je izabrani m veći, veća je vjerojatnost da će se r moći rastaviti kao produkt prvih m prostih brojeva, ali će rješavanje sustava u trećem koraku algoritma biti teže. Pokazuje se da je optimalan izbor ako se odabere da je najveći element faktorske baze pm približno jednak

L(p) = exp( p) p ( lnlnln ). (5.6)

Na taj način, algoritam index calculus algoritam postaje subeksponencijalni algoritam za računanje diskretnog logaritma u grupi Zp*. [6][10][13]

5.2 Problem diskretnog logaritma za eliptične krivulje Definicija 5.2 Neka je dana eliptična krivulja E i točka P ∈ E reda n. Zadana je

točka Q∈E formulom Q = m*P, (5.7)

m ∈ {2, 3,....., n-2}. Treba naći broj m za koji gornja formula vrijedi.

Kada su E i P ispravno odabrani, rješavanje ECDLP-a se smatra nemogućim. Treba

naglasiti da za vrijednosti m = 0,1 i n-1 točka Q iznosi O, P i –P. Jedan od uvjeta je da je n, red točke P, toliko velik da je teško provjeriti sve mogućnosti od m.

Za razliku od DLP, poznato je za rješavanje problema diskretnog logaritma za

eliptičke krivulje ne postoji subeksponencijalni algoritam. Zbog tog svojstva eliptične krivulje se rado koriste u kriptogtrafiji.

Problem diskretnog logaritma u multiplikativnoj grupi konačnog polja može se riješiti u polinomijalnom vremenu korištenjem index calculus metode. Razlozi zbog kojih je index calculus metoda neprimjenjiva na eliptičke krivulje su

- teško je naći eliptičku krivulju velikog ranga,

Page 42: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

37

- teško je naći eliptičku krivulju generiranu točkama male visine, - teško je "podići" točke iz E(Fp) do točaka iz E(Q). Činjenica da je vrlo teško naći eliptičku krivulju velikog ranga, najvažniji je

ograničavajući faktor za primjenu ove metode na grupe eliptičkih krivulja nad konačnim poljem.

Jedan od algoritama za rješavanje problema diskretnog logaritma u grupi eliptičke

krivulje nad konačnim poljem je Pohlig - Hellmanov algoritam redukcije kojim se odreñivanje broja m svodi na odredivanje cijelobrojnog ostatka za svaki prosti faktor od broja n pri djeljenju brojem m.

Želimo li da kriptosustav zasnovan na ECDLP bude siguran, n mora imati veliki prosti faktor.

Pohlig - Hellmanov algoritam se može primijeniti u bilo kojoj abelovoj grupi G.

Neka je red n od G djeljiv s prostim brojem p. Pretpostavimo da želimo riješiti problem diskretnog logaritma Q = m P. Problem se može reducirati na podgrupu od G reda p tako da se rješava problem

Q' = n' Q = m0 (n' P) = m0 P', (5.8) gdje je n' = n / p i m ≡ m0 (mod p). Točka P' je točka reda p. Rješenjem ovog problema odreñujemo vrijednost m0, tj. odreñujemo m modulo p. Vrijednosti od m modulo p2, p3, ... , pc ( pc najveća potencija od p koja dijeli n) odreñuju se na sljedeći način.

Pretpostavimo da je poznato da je m ≡ mi (mod pi). Tada je m = mi + kpi, za neki cijeli broj k. Tako dobivamo problem R = Q - mi P = k(pi P) = k S, (5.9) gdje su R i S poznati i S ima red s = n / pi. Vrijednost od k modulo p odreñuje se na isti način kao što je gore odreñena vrijednost od m modulo p.

Nastavljajući ovaj postupak, rješavanjem problema diskretnog logaritma u podgrupama reda p, mi na kraju odreñujemo vrijednost m modulo pc. Nakon što izračunamo ovu vrijednost za sve proste djelitelje od m, sam broj m, tj. rješenje originalnog problema diskretnog logaritma, nalazimo primjenom kineskog teorema ostataka koji glasi :

Neka je n = n1 × n2 × ... × n1k , gdje su svi parovi faktora relativno prosti. Struktura Zn je identična kartezijevom produktu

knnn ZZZ ××× ...21

.

Za n1 = p i n2 = q to znači da za bilo koja dva cijela broja x i a vrijede jednadžbe : x ≡ a (mod p), x ≡ a (mod q)

onda i samo onda ako je x ≡ a (mod n). (5.10)

BSGS metoda (engl. baby step / giant step) je primjenjiva na problem diskretnog

logaritma u proizvoljnoj abelovoj grupi G. Autor ove metode je Daniel Shanks. Njezina

složenost je O( n ), gdje je n red grupe G. BSGS metoda zahtjeva pohranjivanje u

memoriju O( n ) elemenata grupe. Slijedi opis metode:

Page 43: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

38

Neka su P, Q elementi grupe G, te neka je Q = m P. Po teoremu o dijeljenju s ostatkom, m se može zapisati u obliku

m = n a + b, (5.11)

gdje je 0 ≤ a, b < n . Potrebno je odrediti vrijednosti od a i b. Jednadžba Q = m P se može zapisati u obliku

(Q - b P) = a ( n P). (5.12) Ovakav prikaz jednadžbe omogućava rješavanje problema balanciranjem zahtjeva za "prostor i vrijeme". Najprije računamo tablicu "baby stepova" koja se sastoji od svih vrijednosti

Rb = Q - b P, (5.13)

za b = 0, 1, ... , n - 1. Tablica se sortira i sprema u memoriju kako bi se omogućilo njeno pretraživanje.Nakon toga se računaju redom "giant stepovi":

Sa = a ( n P), (5.14)

za a = 0, 1, ... , n - 1. Nakon svakog računanja "giant stepa", provjerava se da li se pojavljuje Sa u

tablici. Ako se pojavljuje, onda je pronañena vrijednosti od a i b. Ovaj postupak mora

završiti prije nego što a dosegne vrijednost n . Najbrži napad na ECDLP je Pollardova ρ - metoda koju je razvio John M. Pollard

kasnih 70-ih godina prošlog stoljeća. Jedan od razloga uspješnosti ovog algoritma je “Birthday problem from undergraduate probability” koji glasi:

Ako se traže dva broja sa istim svojstvom, velika je vjerojatnost da će se naći (vrlo je vjerojatno da u jednoj učionici dva učenika imaju isti dan roñenja).

Ova metoda generira slučajne brojeve, zovemo ih x i y, i eventualno pronalazi dva koja su kongruentna (mod N). To znači da vrijedi x-y ≡0 (mod N) ,odnosno x-y je djeljivo s N.

Najlakši način generiranja slučajnih brojeva je iteracija broja koristeći se ireducibilnim polinomom (nije dopuštena upotreba x2 - 2).

1. Izabire se broj će se faktorizirati, N

2. Izabiru se dva slučajna broja x i y (mod N)

3. Ispituje se da li vrijedi x-y ≡ 0 (mod N)

- ako vrijedi, pronañen je faktor , gcd (x-y, N),

- ako ne vrijedi, slijedi povratak na 2. korak .

Postoje dobri načini za odabir slučajnih brojeva (mod N) tako da je vjerojatnost nijhovog ponavljanja zanemariva. Takoñer , postoje načini praćenja odabranih x-eva i y-a kako bi se mogao usporediti novi x sa prethodno generiranim y-onom.

Vrijeme izvoñenja je O ( p ), gdje je p najveći prosti faktor od N. [6][7][10][13]

Page 44: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

39

6 Optimalna normalna baza Normalna baza je prikladnija za implementaciju od polinomne baze jer su operacije

uglavnom sastavljene od rotacija , pomaka i ekskluzivnog-ILI . Postoji i optimalna normalna baza (engl. optimal normal basis), specijalni slučaj

normalne baze s minimalnom kompleksnosti . Neka je β element polja F2 m. Njegov prikaz u polinomnoj bazi je

01.... axaxa nn +++=β , (6.1)

gdje je n<m. Normalna baza se može formirati korištenjem skupa

β ,βββ 2,

22,...,

1m2

. (6.2)

Konačno polje karakteristike 2 izabrano je zbog svoje binarne prirode. Svaki element A polja mF

2 može se prikazati kao

∑−

==

1

0

2n

ii

iaA β , (6.3)

gdje su a∈ F2 i β ∈ mF2

.

Operacije meñu elementima nad mF2

su zbrajanje, kvadriranje, množenje i

invertiranje.Slijedi njihov opis. [12]

6.1 Zbrajanje

Neka su ∑−

==

1

0

2m

i

i

iaA β i ∑−

==

1

0

2m

i

i

ibB β elementi polja.

Zbrajanje je definirano kao :

∑∑−

=

=+=+

1

0

21

0

2m

j

jm

i

i

i bjaBA ββ . (6.4)

Kako je svaka potencija od β linearno nezavisna, prethodna jednadžba se može

zapisati kao

( )∑−

=+=+

1

0

2m

i

i

ii baBA β , (6.5)

gdje su ai i bi zbrojeni modulo 2. Treba naglasiti da u aritmetici konačnih polja nema prijenosa. Zbrajanje se može implementirati kao operacija isključivo-ILI (XOR). [12]

Page 45: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

40

6.2 Kvadriranje Kako je svaka potencija od β linearno nezavisna, vrijedi

∑∑∑∑−

=−

=

+−

=

===

=

=

1

0

21

1

0

121

0

22

21

0

22m

i

i

i

m

i

i

i

m

i

i

i

m

i

i

i aaaaA ββββ . (6.6)

Kvadriranje elementa nad mF

2se izvodi rotacijom u lijevo. [12]

6.3 Množenje

Neka su ∑−

==

1

0

2m

i

i

iaA β i ∑−

==

1

0

2m

i

i

ibB β elementi polja mF2

.

Njihov umnožak je

∑∑∑−

=

=

====

1

0

21

0

221

0

*m

i

i

i

m

i

ii

ji

m

j

cbaBAC βββ . (6.7)

Vrijedi

∑−

==

1

0

222m

k

i

ijk

iiβλββ , (6.8)

gdje je λijk ∈{0,1}. Množenje se može zapisati kao

∑∑−

=

==

1

0

1

0

m

ij

m

jiijkk bac λ , (6.9)

gdje je 0≤ k ≤ m -1. Potenciranjem obije strane formule (6.8) na 2-l potenciju dobivamo

∑ ∑−

=

=

−−−

−−−

===

1

0

1

0

22,,

222

22m

k

m

k

lk

ijk

k

kljli

lilil

iiβλβλββββ (6.10)

Izjednačavanjem koeficijenata uz 02β iz gornje jednadžbe dobivamo

0,, ljliijk −−= λλ , (6.11)

za 0 ≤ i, j, k ≤ m-1 Zbog toga se jednadžba (6.9) može pisati kao

Page 46: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

41

∑∑∑∑−

=+

=+

=

=−− ==

1

0

1

00

1

0

1

00,,

m

ikj

m

jkiij

m

ij

m

jikjkik babac λλ . (6.12)

Razlikujemo dva tipa optimalne normalne baze, tip I i tip II. Tip I ONB : Za polje mF

2 postoji optimalna normalna baza ako vrijedi:

1) m+1 je prost broj 2) 2 je osnovni element (engl. primitive) u 1+mF , tj.broj 2 na bilo koju potenciju od

0 do m (modulo m + 1) mora dati jedinstven broj u intervalu od 1 do m. Tip II ONB: Za polje mF

2 postoji optimalna normalna baza ako vrijedi :

1) 2m + 1 je prost broj 2) a) 2 je osnovni element u grupi 12 +mF , tj. tj.broj 2 na bilo koju potenciju od 0 do

2m (modulo 2m + 1) mora dati jedinstven broj u intervalu od 1 do 2m. ili b) 2m + 1 ≡3 (mod 4) i 2 generira kvadratne ostatke u grupi 12 +mF , tj. iako

2k (mod 2m+1) ne generira svaki element od 1 do 2m, generira polovicu. ONB postoji za mF

2 za 23% mogućih vrijednost od n, n ≤ 1000.

Slika 6.1 Vrijednosti m ≤ 1000 za koje postoji optimalna normalna baza.

Page 47: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

42

Tablicu za množenje λijk možemo konstruirati k-strukim kružnim pomacima od λij0 koristeći jednadžbu (6.11). Meñutim, λij0 se izvodi različito za različite tipove ONB.

Za tip I ONB vrijedi da je λij0 = 1 ako i samo ako brojevi i i j zadovoljavaju jednu

od slijedeće dvije kongruencije:

1mod 122 +≡+ mji

1mod 022 +≡+ mji . (6.13)

Na slici 6.2 prikazana je tablica za množenje za tip I ONB u GF(24 ), odnosno njena konstrukcija iz λij0 za k ∈[1, m-1] . Redak λij0 tablice je formiran u skladu dvije s prethodno navedene kongruencije, npr. λ120 = 1 jer je 21 + 22 ≡ 1 (mod 5) .

Zbog simetričnosti kongruencija za brojeve i i j, vrijedi da ako je λij0 jednako 1, onda je i λji0 jednako 1.

Slika 6.2 Tablica za množenje, λijk, za tip I ONB u GF(24)

Punom linijom označena je jednakost λ000 = λ111 = λ222 = λ333 . Za tip II ONB λijk = 1 ako i samo ako i i j zadovoljavaju jednu od četiri

kongruencije

12mod 222 +≡+ mkji ,

12mod 222 +−≡+ mkji ,

12mod 222 +≡− mkji ,

12mod 222 +−≡− mkji . (6.14)

Page 48: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

43

Zbog toga , λij0 = 1 ako i samo ako i i j zadovoljavaju jednu od kongruencija

12mod 122 +±≡± mji . Na slici 6.3 prikazana je tablica množenje za tip II ONB u GF(25), konstrurana u

skladu sa jednadžbama (6.14). Puna i isprekidana linija pokazuju da vrijedi λ000 = λ111 = λ222 = λ333 = λ444 i λ440 = λ001 = λ122 = λ223 = λ334, respektivno.

Slika 6.3 Tablica za množenje, λijk, za tip II ONB u polju GF(25)

Za tip II ONB i polje GF(25), jednadžba (6.12) se može zapisati kao ,

, 440

44

420

24

320

23

310

13

240

42

230

32

130

31

100

1

010

1

484764847648476

48476484764847648476876876

λλλ

λλλλλλ

kkkkkk

kkkkkkkkkkkkk

bababa

babababababac

++++++

++++++++++

++

++++++= (6.15)

gdje je 0 ≤ k ≤ 4 . Iz navedenog slijedi da se ck može izračunati prikladnim pomacima a i b. [12]

Page 49: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

44

6.4 Invertiranje Inverzni element od a označen s a-1 je element za koji vrijedi 11 =−aa . Algoritam korišten za invertiranje je izveden iz malog Fermatovog teorema (engl.

Fermat's little theorem) 2112221 )( −−−− ==

mmaaa (6.16)

i vrijedi za svaki a ≠ 0 u mF2

. Korištenu metodu predložili su Itoh i Tsujii. Ona se temelji

se na slijedećem rastavu koji minimizira broj množenja. Ako je m neparan, vrijedi

+

−=−

−−− 121212 2

1

2

11

mmm (6.17)

i

12

1

2

12

1

2112

+

−−

=

m

mm

aa . (6.18)

Ako je m paran, vrijedi

1121221)12(212 2

2

2

221 +

+

−=+−=−

−−−−

mmmm . (6.19)

Tako dobivamo

112

2

212

2

22

112

+

+

−−=

mm

maa . (6.20)

Primjer : Zadano je polje 1732

F i element a ∈ 1732F , a ≠ 0.

Vrijedi 21732221 −−− == aaam

. U slijedećoj tablici zbog veće preglednosti prikazan je samo rastav eksponenta .

Iteracija Eksponent

6 2173 - 2 = 2(286 -1) (286 + 1) 5 286 - 1 = (243 -1) (243 + 1) 4 243 - 1 = 2(221 -1) (221 + 1) + 1 3 221 - 1 = 2(210 -1) (210 + 1) + 1 2 210 - 1 = (25 -1) (25 + 1) 1 25 - 1 = 2(22 -1) (22 + 1) + 1 0 22 - 1 = (2 - 1) (2 + 1) = (2 + 1)

Tablica 6.1 Rastav eksponenta za m = 173

Page 50: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

45

Algoritam za invertiranje elemenata polja u pseudokodu: INPUT: k ∈ mF

2

OUTPUT: l = k-1, l ∈ mF2

1. s ← log2 m - 1 2. p ← k 3. For i from s downto 0 3.1 r ← shift_right (m) by s bits 3.2 q ← p 3.3 rotate_left (q) by r/2 bits 3.4 t ← p*q 3.5 If last bit of r is set then 3.5 3.5.1 Rotate_left( t ) by 1-bit 3.5 3.5.2 p ← t*k 3.5 else 3.5 3.5.3 p ← t 3.6 s ←s -1 4. rotate_left( p) by 1-bit 5. l ← p 6. return l

Iteracija s r (2) r (10) Eksponent 0 6 10 2 22 - 1 = (2 - 1) (2 + 1) 1 5 101 5 25 - 1 = 2(22 -1) (22 + 1) + 1 2 4 1010 10 210 - 1 = (25 -1) (25 + 1) 3 3 10101 21 221 - 1 = 2(210 -1) (210 + 1) + 1 4 2 101011 43 243 - 1 = 2(221 -1) (221 + 1) + 1 5 1 1010110 86 286 - 1 = (243 -1) (243 + 1) 6 0 10101100 172 2173 - 2 = 2(286 -1) (286 + 1)

Tablica 6.2 Izvoñenje algoritma za invertiranje u polju 2173

[12]

Page 51: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

46

7 Algoritmi za skalarno množenje na eliptičnim krivuljama

Skalarno množenje je množenje oblika Q = k*P = P+P+P+P... k puta i jedno je od

najčešće korištenih operacija kod navedenih protokola. P je točka na eliptičnoj krivulji, k je cijeli broj iz intervala [1,|P|] . P je fiksna točka

koja generira podgrupu od )( qFE ili je točka P obična točka u takvoj podgrupi.

Eliptične krivulje posjeduju neka svojstva koja dozvoljavaju optimizaciju operacije skalarnog množenja. Slijedi opis nekih učinkovitih algoritama za izračunavanje k*P.

7.1 Non adjacent form (NAF)

Cijeli broj k je predstavljen kao k = ∑=

1 -

0 j

jj 2

lk , gdje je svaki kj ∈ {–1, 0, 1}. Težina

NAF prikaza broja duljine l je l/3. Slijedi opis algoritam za pronalaženje NAF prikaza odreñenog broja . [10]

NAF(k) Vraća u[] koji sadrži NAF prikaz broja k Begin c � k l � 0 While (c > 0) BeginWhile If (c je neparan) BeginIf u[l] � 2 – (c mod 4) c � c – u[l] Else u[l] � 0 EndIf c � c/2 l � l + 1 EndWhile Return u End Primjer : k = 7 = (111)2

Broj iteracija c l u 1 7 0 -1

Page 52: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

47

2 4 1 0 3 2 2 0 4 1 3 1

Tablica 7.1 NAF(7)

Broj 7 zapisan u NAF obliku glasi (1 0 0 –1).

7.2 ττττ-adic NAF U poglavlju 3.9 opisane su Koblitzove krivulje, eliptične krivulje nad poljem mF

2 s

koeficijentima a i b jednakim 0 ili 1. Krivulje su odreñene jednadžbom Ea : y

2 + xy = x3 + ax2 + 1. (7.1) Kako a mora biti jednak 1 ili 0, postoje dva slučaja. 1. Za a = 0 jednadžba krivulje glasi

E1 : y2 + xy = x3 + 1. (7.2)

2. Za a = 1 jednadžba krivulje glasi E2 : y

2 + xy = x3 + x2 + 1. (7 .3) Zbog svojstva koje posjeduju koriste se u kriptografiji . Kompleksno množenje je

svojstvo posebno korisno kod implementacije skalarnog množenja .Kod izračunavanja umnoška n*P, dobro je cijeli broj n prikazati kao element prstena Z[τ] , odnosno zamjeniti binarni prikaz broja n sa τ-adic prikazom (sumom i razlikom različitih potencija od τ) .

Svaki element prstena Z[τ] ima jedinstven τ-adic NAF koji se označavamo s TNAF(α). [15]

Primjer : Neka je a = 1 i neka je P = (x, y) točka na eliptičnoj krivulji E1. Broj 9 se može prikazati kao 9 = τ5 - τ 3 +1 . TNAF(9) = (1, 0, -1, 0, 0, 1) Množenje točke P sa brojem 9 može se zapisati kao 9*P = (x32, y32) – (x8, y8) + (x, y) . Element c0 + c1τ prstena Z[τ] je djeljiv sa τ ako i samo ako je c0 paran. Element je

djeljiv s τ2 ako i samo ako vrijedi c0 ≡ 2c1 (mod 4) .

Za τ vrijedi da ima normu 2 i zbog toga su 1 ili -1 mogući ostaci kod djeljenja sa τ. Ako je α element prstena Z[τ], uvijek vrijedi jedna od slijedećih tvrdnji :

1) α je djeljiv sa τ. 2) α ≡ 1 (mod τ2). 3) α ≡ 1 (mod τ2). Slijedi opis algoritma. ττττ-adic NAF Input : cijeli brojevi r0, r1 Output : TNAF (r0 + r1τ)

Page 53: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

48

Begin c0 � r0, c1 � r1, S � {} While (c0 ≠ 0 ili c1 ≠ 0) BeginWhile If (c0 je neparan) Then u � 2 – (c0 -2c1 mod 4) c0 � c0 – u Else u� 0 EndIf Prepend u to S (c0, c1) � (c1 + µc0/2, -c0/2) EndWhile Return S End Primjer : a = 1, c0 = 9, c1 = 0

Broj iteracija c c u S 1 9 0 {} 2 8 0 1 3 4 -4 {1} 4 4 -4 0 5 -2 -2 {0,1} 6 -2 -2 0 7 -3 1 {0, 0, 1} 8 -2 1 -1 9 0 1 {-1, 0, 0, 1} 10 0 1 0 11 1 0 {0, -1, 0, 0, 1} 12 0 0 1 13 0 0 {1, 0, -1, 0, 0, 1}

Tablica 7.2 TNAF(9)

7.3 Binarna metoda Najjednostavnija metoda a izračunavanje umnoška k*P temelji se na binarnom

prikazu broja k,

k = ∑=

1

0

2l -

j

jjk , (7.4)

Page 54: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

49

gdje je kj ∈ {1,0}. Vrijednost k*P se može izračunati na slijedeći način :

kP = PkPPP ll

l

021

1 -

0 j

jj ...))kk2(2(...22k +++= −−

=∑ (7.5)

Metoda zahtjeva l udvostručavanja i wk-1 zbrajanja ( wk-1 je broj jedinica u binarnom prikazu broja k ) . [10][13]

Primjer : k = 7 = (111)2

kP = Pkl -

j

jj∑

=

1

0

2 = 2(2P + P) + 1P

7.4 Zbrajanje-oduzimanje metoda Broj k je prikazan u NAF obliku. Obavlja se zbrajanje ili oduzimanje ovisno o

predznaku svake znamenke gledano s lijeva na desno. Addition-Subtraction (k, P) Output: Q = kP, P = (x, y) ∈ E(Fq) Begin u[] � NAF(k)

Q � O For j = l – 1 DownTo 0 BeginFor Q � 2Q If (uj = 1) Then Q � Q + P ElseIf (uj = –1) Then Q � Q – P EndIf EndFor Return Q End Kod ovog algoritma obavlja se u prosjeku l udvostručavanja i l/3 zbrajanja.Binarna

metoda za k = 7 zahtjeva 3 udvostručavanja i 3 zbrajanja. U slučaju kada se koristi “Zbrajanje-oduzimanje metoda” (broj 7 prikazan NAF obliku glasi 1 0 0 –1), potrebna su 4 udvostručavanja i 2 zbrajanja. [10][13]

Page 55: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

50

7.4 Metoda udvostručavanja ponavljanjem Točka na eliptičnoj krivulji nad mF

2je prikazana u kao (x, λ), a ne (x, y).

Svaka točka P = (x, y) ∈ E( mF2

), gdje je x ≠ 0, može se prikazati kao par (x, λ), gdje je

x

yx +=λ λ . (7.5)

Slijedi opis metode.

Repeated-doubling(P, i) Output: Q = 2iP Begin λ � x + y/x For j = 1 to i – 1 BeginFor x2 � λ2 + λ + a λ2 � λ2 + a + b/( x4 + b)

x �x2 λ � λ2

EndFor x2 � λ2 + λ + a y2 � x2 + (λ + 1)x2

Q � (x2, y2) Return Q End

[10]

Page 56: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

51

8 Izbor parametara kriptosustava zasnovanog na eliptičnim krivuljama

Dva osnovna koraka kod izbora parametara za kriptosustav zasnovan na eliptičnim

krivuljama su : - izbor konačnog polja qF

- izbor eliptične krivulje E nad poljem qF .

Kod izbora polja postoje dvije mogućnosti :

- q = p je prost broj - q = 2m je potencija broja 2 .

Meñu poljima pF , da bi se minimiziralo vrijeme potrebno za modularno množenje,

preporuča se da broj p ima oblik 2k ± c za neki mali prirodni broj c (npr. Mersenneovi prosti brojevi oblika 2k - 1, 2160 + 7, 2255 + 95, i sl.).

Kod polja mF2

, osim broja elemenata, potrebmo je odabrati i način prikaza

elemenata. Najčešće se koriste trinomijalne i optimalne normalne baze, jer omogućuju efikasniju implementaciju, ali one ne postoje za svako konačno polje karakteristike 2, tako da odabir baze utječe na izbor polja. Neki popularni izbori su npr. 2163, 2191, 2239 i 2431.

Kod izbora eliptičke krivulje pozornost treba obratiti na problem diskretnog logaritma, on treba biti "težak". Iako je ECDLP vrlo težak problem, postoje tipovi eliptičkih krivulja kod kojih je taj problem lakši. Eliptične krivulje koje treba izbjegavati su:

a) Pohlig-Hellmanov algoritam implicira da treba izbjegavati eliptičke krivulje kod kojih broj )(# qFE nema niti jedan veliki prosti faktor. Preciznije, )(# qFE bi

trebao imati barem jedan prosti faktor n veći od 2160. U protivnom ECDLP bi mogli riješiti BSGS metodom. Obično se krivulja E odabire tako da broj )(# qFE

oblika h* r, gdje je r prost broj, a h = 1, 2 ili 4. b) Eliptička krivulja se zove anomalna ako joj je Frobeniusov trag t = 1, tj. ako je

)(# qFE = q. Za takve krivulje postoji polinomijalni algoritam za ECDLP koji su

otkrili Smart, Satoh, Araki i Semaev. c) Za eliptičku krivulju E nad qF , gdje je q = pk, kažemo da je supersingularna ako p

dijeli t. Za krivulje nad pF za p ≥ 5 to znači da je t = 0, tj. )(# qFE = p + 1.

Supersingularne krivulje treba izbjegavati jer za njih postiji tzv. MOV-napad koji u polinomijalnom vremenu reducira ECDLP u polju )(# qFE na DLP u polju Fq

2.

Takoñer treba izbjegavati sve krivulje za koje postoji mali prirodni broj k (recimo k ≤ 20) takav da je qk ≡ 1 (mod )(# qFE ), zato što u tom slučaju MOV-napad

reducira ECDLP na DLP u polju Fqk. [6]

Page 57: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

52

8.1 Parametri kriptosustava zasnovanog na eliptičnoj krivulji nad poljem Fp

Parametre sustava predstavlja ureñena šestorka T(p, a, b,G, n, h) koju čine cijeli

broj p koji odreñuje konačno polje pF , a, b ∈ pF koji odreñuju eliptičnu krivulju )( pFE

zadanu jednadžbom E : y2 = x3 + ax + b (mod p) , (8.1)

početna točka G = (xG, yG ), broj n koji predstavlja red točke G i cijeli broj h koji iznosi

n

FEh

p )(#= . (8.2)

Generiranje parametara kriptosustava zasnovanog na eliptičnoj krivulji nad Fp

Ulazni argumenti : Razina sigurnosti u bitovima potrebna za parametre kriptosustava je cijeli broj t

koji je element skupa {56, 64, 80, 96, 112, 128, 196, 256}. Izlaz : Parametri kriptosustava zasnovanog na eliptičnoj krivulji nad poljem pF :

T = (p, a, b, G, n, h) takvi da je za računanje logaritma na pripadnoj eliptičnoj krivulji potrebno 2t operacija .

Generiranje parametara kriptosustava se obavlja na slijedeći način : 1. Odaberemo prosti broj p takav da je log2 p = 2t, ako je t ≠ 256 ili takav da je log2 p = 521, ako je t = 256 da bi odredili konačno polje pF .

2. Odaberemo elemente a, b ∈ pF koji odreñuju eliptičnu krivulju E definiranu

jednadžbom y2 = x3 + ax + b (mod p) , početnu točku G = (xG, yG) na krivulji )( pFE , prosti broj n koji predstavlja red točke G i cijeli broj h na slijedeći način :

- 4a3 + 27b2 ≠ 0 (mod p) - )(# qFE ≠ p

- pB ≠ 1 (mod n) za svaki B iz intervala [1,20) - h ≤ 4.

3. Izlaz : T = (p, a, b, G, n, h) . [16]

Page 58: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

53

8.2 Parametri kriptosustava zasnovanog na elipt. krivulji nad poljem F2m

Parametre ovog kriptosustava predstavlja ureñena sedmorka T(m, f(x), a, b, G, n, h) koja se sastoji od cijelog broja m koji odreñuje konačno polje pF ,ireducibilnog polinoma

f(x) stupnja m koji odreñuje prikaz polja mF2

, elemenata polja mF2

, a i b, koji odreñuju

eliptičnu krivulju )(2mFE zadanu jednadžbom

E : y2 + xy = x3 + ax2 + b, (8.3) početne točke G = (xG, yG), prostog broja n koji predstavlja red točke G i cijelog broja h koji iznosi

n

FEh

m )(#2= . (8.4)

Generiranje parametara kriptosustava zasnovanog na eliptičnoj krivulji nad F 2m

Ulazni argumenti: Razina sigurnosti u bitovima potrebna za parametre kriptosustava mora biti cijeli

broj t ∈{56, 64, 80, 96, 112, 128, 192, 256}. Izlaz: Parametri kriptosustava zasnovanog na eliptičnoj krivulji nad mF

2

T = (m, f(x), a, b, G, n, h) , takvi da je za računanje logaritma na pripadnoj eliptičnoj krivulji potrebno 2t operacija .

Generiranje parametara kriptosustava zasnovanog na eliptičnoj krivulji nad mF

2

odvija se na slijedeći način : 1. Neka t' predstavlja najmanji cijeli broj veći od t u skupu {56, 64, 80, 96,112,

128, 192, 256}. Odaberemo m∈{ 113, 131, 163, 193, 233, 239, 283, 409, 571}da odredimo konačno

polje mF2

, m mora biti takav da vrijedi 2t < m< 2t'.

2. Odaberemo ireducibilan polinom f(x) stupnja m ( polinomi su navedeni u tablici)

da odredimo način prikaza polja mF2

.

3. Odaberemo a, b ∈ mF

2 koji odreñuju eliptičnu krivulju zadanu jednadžbom

y2 + xy = x3 + ax2 + b . Odeberemo i početnu točku G = (xG, yG) na krivulji )(2mFE ,

prosti broj n koji predstavlja red točke G i cijeli broj h (kofaktor) na slijedeći način : - b ≠ 0, b ∈ mF

2

- )(#2mFE ≠ 2m

- 2mB ≠ 1 (mod n), za svaki B iz intervala [1,20)

Page 59: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

54

- h ≤ 4. 4. Izlaz : T = ( m, f(x), a, b, G, n, h) .

Više o preporučenim parametrima kriptosustava zasnovanim na eliptičnim krivuljama u [16].

Tablica 8.1 Redukcijski polonomi

polje redukcijski polinomi

1132F f(x) = x113 + x9 + 1

1312F f(x) = x131 + x8 + x3 + x2 + 1

1632F f(x) = x163 + x7 + x6 + x3 + 1

1932F f(x) = x193 + x15 + 1

2332F f(x) = x233 + x74 + 1

2392F f(x) = x239 + x36 + 1 ili x239 + x158 + 1

2832F f(x) = x283 + x12 + x7 + x5 + 1

4092F f(x) = x409 + x87 + 1

5712F f(x) = x571 + x10 + x5 + x2 + 1

Page 60: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

55

9 Kriptosustavi koji koriste elipti čne krivulje Asimetrični kriptosustav je ureñena petorka ( P, C, U, Ε, D ) za koju vrijedi:

1) P je konačan skup svih mogućih jasnih tekstova; 2) C je konačan skup svih mogućih šifrata; 3) U je konačan skup svih mogućih korisnika; 4) Svaki korisnik U ∈ U posjeduje par (EU, DU) ∈ E×D, gdje su EU : P → C i DU : C → P funkcije takve da vrijedi DU(EU(x)) = x za svaki jasni tekst x ∈ P.

Enkripcija i dekripcija kod asimetričnih kriptosustava su razmjenjive (engl. exchangeable) ako za sve x ∈ P i U ∈ U vrijedi EU(DU(x)) = x. Takvi kriptosustavi mogu poslužiti za generiranje digitalnog potpisa.

Faktor širenja poruke ε (engl. message expansion factor) definiramo kao

P

d

2log=ε , (9.1)

gdje je d broj bitova potrebnih za prikaz šifrata. [10]

9.1 ElGamalov kriptosustav koji koristi eliptične krivulje ElGamal ga je predstavio 1985. godine, a temelji se na problemu diskretnog

logaritma. Kriptosustav služi samo za kriptiranje i dekritpiranje. Autentifikacija nije moguća jer kriptiranje i dekriptiranje nisu razmjenjivi.[10]

9.1.1 ElGamalov kriptosustav (engl. ElGamal encryption)

postavke: p – prost broj takav da je DLP u pF neriješiv

α - osnovni element poljapF

javni ključ : β = αl privatni ključ: l Enkriptiranje poruke m ∈ pF \{0}:

1. Alica odabire slučajni broj k ∈ pF \{0,1} i izračuna y1 = αk (mod p).

2. Potraži Bobov javni ključ βB i izračuna y2 = m(βB)k (mod p). 3. Šalje (y1, y2) Bobu. Dekriptiranje šifrata (y1, y2) 1. Poruka m = y2 (y1

-lB) (mod p) Ispravnost dekripcije vidljiva je iz slijedećeg : y2 (y1

-lB) = y2 (y1lB)-1 (mod p)

= y2 (αklB)-1 (mod p)

Page 61: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

56

= y2 ((βB)k)-1 (mod p) = m (βB)k (βB)-k (mod p) = m (mod p) Faktor širenja poruke je 2.

9.1.2 EC ElGamalov kriptosustav (engl. elliptic curve ElGamal encription) Odabire se broj q (q = pm, p je prost broj, m je cijeli broj) koji odreñuje konačno

polje qF , eliptična krivulja )( qFE i točka G ∈ E reda n. Svi parametri se odabiru tako da

je ECDLP na )( qFE nerješiv za točku G.

Vrijednosti )( qFE , G, n su javne.

Točka Q = lG je javni ključ, a je l privatni ključ. Enkriptiranje poruke M∈ )( qFE

1. Alica generira slučajni broj k∈{2,3,...,n-2} i izračuna R = kG. 2. Alica potraži Bobov javni ključ QB i izračuna S = M + kQB 3. Šalje (R, S) Bobu Dekriptiranje (R,S) 1. Originalna poruka je M = S - lBR. Ispravnost dekripcije je dokazana slijedećim : S - lBR = S - lBkG = S - kQB = M + kQB - kQB = M

Slika 9.1 ElGamalov kriptosustav koji koristi eliptične krivulje

Page 62: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

57

Primjer 9.1 Koristi se eliptična krivulja i polje opisani u poglavlju 4.7.

Odabrana je točka G = (g9, g10) . Red točke G je n = 16 jer je 16G = O.

Alicin privatni ključ je lA = 5, a javni ključ je QA= lAG = 5G = (g3, g13). Bobov privatni ključ je lB = 7, a javni ključ je QB= lBG = 7G = (g6, g8).

Enkriptiranje poruke M = (g6, g14) = ((1100), (1001)), M ∈ )( qFE :

1. Alica odabire broj k ∈{2,3,...,n-2}i izračuna R = kG. k = 6

R = kG = 6(g9, g10) = (g5, g3) = ((0110), ( 1000)) 2. Alica potraži Bobov javni ključ QB i izračuna S = M + lQB. S = M + kQB = (g6, g14) + 6(g6, g8) = (g6, g14) + (g5, g11) = (g12, 0) S = ((1111), (0000)) 3. Šalje (R, S) Bobu Dekriptiranje šifrata (R, S) :

1. Bob mora izračunati M = S - lBR. M = S - lBR = (g12, 0) – 7(g5, g3) = (g12, 0) – (g5, g11) = (g12, 0) + (g5, g3) M =(g6, g14) = ((1100), (1001))

9.2 Menzes-Vanstoneov kriptosustav Odabrire se broj q koji odreñuje konačno polje qF , eliptična krivulja )( qFE i točka

G ∈ E reda n. Svi parametri se moraju odabrati tako da je ECDLP na )( qFE nerješiv za

točku G. Vrijednosti )( qFE , G, n su javne.

Točka Q = lG je javni ključ, a je l privatni ključ. Enkriptiranje poruke M (m1,m2) ∈ qF \{0} × qF \{0}

1. Alica generira slučajni broj k ∈{2,3,...,n-2} i izračuna R = kG. 2. Alica potraži Bobov javni ključ QB i izračuna (x1, y1) = kQB. 3. Alica izračuna x2 = m1x1 (mod q) i y2 = m2y1 (mod q). 4. Alica šalje Bobu (R, (x2, y2)). Dekriptiranje šifrata (R, (x2, y2)) 1. Bob izračuna (x1, y1) = lBR. 2. Bob izračuna m1 = x2 x1

-1 (mod q) i m2 = y2 y1-1 (mod q).

Originalna poruka je M = ( m1, m2).

Page 63: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

58

Slika 9.2 Menzes-Vastoneov kriptosustav Primjer 9.2 Odabrano je polje F23, a jednadžba krivulje je y2 = x3 + x ; a = 1, b = 0 ∈ F23 . Odabrana je točka G = (13, 18). Red točke G je n = 12 (12G = O). Alicin privatni ključ je lA= 5, a javni ključ je QA= lAG = 5G = (16, 8). Bobov privatni ključ je lB= 11, a javni ključ je QB= lBG = 11G = (13, 5). Enkriptiranje poruke M (m1,m2) = (3,9), M∈ qF \{0} × qF \{0}

1. Alica odabire broj k = 3 iz skupa {2,3,...,n-2} i računa R = kG = = 3*(13,18) = (1,5)

2. Alica računa (x1, y1) = kQB = 3*(13, 5) = (1, 18) 3. Alica računa x2 = m1x1 (mod q) = 3*1 mod 23 = 3 i y2 = m2y1 (mod q) = 9*18 mod 23 = 162 mod 23 = 1. 4. Alica šalje Bobu (R, (x2, y2)) = ((1,5), (3, 1)). Dekriptiranje šifrata ((1,5), (3, 1)) 1. Bob računa (x1, y1) = lBR = 11*(1, 5) = (1, 18) 2. Bob izračuna m1 = x2 x1

-1 (mod q) = 3*1-1 mod 23 = 3* 24 mod 23 = 3 i m2 = y2 y1

-1 (mod q) = 1*18-1 mod 23 = 1*9 mod 23 = 9. Originalna poruka je M = (3, 9).

Page 64: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

59

Kod ovog kriptosustava postoji opasnost da ako netko zna m2, iz kriptiranog teksta može otkriti m1.

Neka je p>3 i neka je krivulja E definirana jednadžbom y2 = x3 + ax + b. Pretpostavimo da su m2 i (x2, y2) poznati. Tada vrijedi

y1 = y2 m2-1 (mod q). (9.2)

Za x1 vrijedi y1

2 = x13 + ax1 + b (mod q). (9.3)

Postoje najviše tri rješenja koja se mogu izračunati. Zatim slijedi da je m1 = x2 x1

-1 (mod q). Slično vrijedi i kada je p = 2. Takoñer vrijedi da ako netko zna m1, može izračunati dvije moguće vrijednosti m2

(osim u slučaju kada bi y1 bio jednak nuli). Ovi napadi se mogu spriječiti ako se samo m1 koristi kao poruka. Tada dobivamo

Elliptic curve encryption system (ECES).

9.3 ECES (engl. elliptic curve encription system)

Odabran je broj q koji odreñuje konačno polje qF , odabrana je eliptična

krivulja )( qFE i točka G ∈ E reda n. Svi parametri su odabrani tako da je ECDLP na

)( qFE nerješiv za točku G

Vrijednosti )( qFE , G, n su javne.

Točka Q = lG je javni ključ, a je l privatni ključ. Enkriptiranje poruke m∈ qF \{0}

1. Alica generira slučajan broj k ∈{2, 3,..., n-2} i izračuna R = kG. 2. Alica potraži Bobov javni ključ QB i izračuna (x1, y1) = kQB. 3. Alica izračuna c = mx1 (mod q). 4. Alica šalje Bobu (R, c).

Dekriptiranje šifrata (R, c)

1. Bob izračuna (x1,y1) = lBR. 2. Bob izračuna m = cx1

-1(mod q).

Page 65: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

60

Slika 9.3 ECES

9.4 Demytkov kriptosustav 1993. Demytko je predstavio kriptosustav temeljen na eliptičnim krivuljama

analogan RSA. Koristi teoriju komplementarnih grupa eliptičnih krivulja. Temelji se na traženju brojeva p i q , n = pq, (p i q su veliki prosti brojevi).

Postavke : prosti brojevi p i q, takvi da je faktoriziranje n = pq neizvedivo, cijeli brojevi a i b, takvi da je gcd(4a3+27b2, n)=1, N1 = ),(# baEp ,

N2 = ),(# baEp ,

N3 = ),(# baEq ,

N4 = ),(# baEq ,

e ∈ nZ ,takav da vrijedi gcd(e, Ni)=1 , i=1,...,4 ,

di ( i=1,...,4) takav da vrijedi: ed1 ≡ 1 (mod lcm(N1, N3)) , ed2 ≡ 1 (mod lcm(N1, N4)) , ed3 ≡ 1 (mod lcm(N2, N3)) , ed4 ≡ 1 (mod lcm(N2, N4)) . Vrijednosti n, e, a i b su javne dok su vrijednosti p, q, d1, d2, d3, d4 tajne. Enkriptiranje poruke m ∈ nZ

1. Kriptirani tekst je c = eB ⊗x m Dekriptiranje šifrata c

Page 66: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

61

1. Bob izračuna w = c3 + ac + b (mod n ) 2. Bob izabere

−=

=

=

−=

−=

=

=

=

=

1q

w

p

w je ako 4

1q

w,1

p

w je ako 3

1q

w,1

p

w je ako 2

1q

w

p

w je ako 1

i

3. Bob izračuna m = B

id ⊗x c.

Ako je c3 + ac + b ≡ 0 modulo p ili modulo q , algoritam dekriptiranja nije definiran. Ali vjerojatnosti da se to dogodi su zanemarive kada su p i q dosta veliki, što i trebaju biti ako želimo da faktoriziranje broja n bude neizvedivo. [10]

9.5 KMOV kriptosustav Koyama, Maurer, Okamoto i Vanstone predstavili su 1991. godine kriptosustave

zasnovane na elptičnim krivuljama nad nZ i na problemu faktoriziranja velikih brojeva.

Predstavili su tri nove sheme. Najvažnija je KMOV shema kod koje postoje odreñena ograničenja vezana za brojeve p i q (n = pq).

KMOV- tip 0 Odabiru se prosti brojevi p i q takvi da je faktoriziranje n = pq neizvedivo,

cijeli brojevi a i b, takvi da vrijedi gcd(4a3+27b2,n) = 1. Izračunava se N1 = ),(# baEp ,N2 = ),(# baEq . Odabere se broj e ∈ nZ takav da vrijedi gcd (e, Ni) = 1,

za i = 1, 2 i broj d takav da vrijedi ed ≡ 1 (mod lcm(N1, N2)). Vrijednosti n, e, a i b su javne dok su vrijednosti p, q, d tajne. Enkriptiranje poruke P ∈ ),( baEn

1. Kriptirani tekst C je Q = eBP. Dekriptiranje šifrata C 1. Bob izračuna P = dBC. Ispravnost ovog kriptosustava je dokazana slijedećim. dBC = dAeBP

Page 67: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

62

= α lcm ( ),(# baEp , ),(# baEq ) + 1)P, za neki cijeli broj α

= O + P = P ∈ ),( baEn

Važni nedostatak ove sheme je to da, osim ako su korištene posebne krivulje,

izračunavanje ),(# baEp i ),(# baEq je nemoguće za velike p i q.

Mogući nedostatak je to da ugrañivanje poruka na krivulju nije moguće bez poznavanja faktorizacije od n, tj. poznavanje dijela privatnog ključa. Zbog toga je ova shema prikladna samo za generiranje digitalnog potpisa.

Da bi se to izbjeglo, razvijen je KMOV kriptosustav koji omogućava enkripciju, dekripciju i digitalni potpis.

KMOV kriptosustav Odabiru se prosti brojevi p i q, p ≡ q ≡ 2 (mod 3) ,takvi da je faktoriziranje n = pq

neriješivo i računaje se vrijednosti N1 = p + 1 i N2 = q + 1. Odabere se broj e ∈ nZ takav da vrijedi gcd(e, Ni) = 1 , za i = 1,2 , i broj d∈ nZ , takav da

vrijedi ed ≡1(mod lcm (N1, N2)) . Vrijednosti n, e su javne, a vrijednosti p, q, d su tajne. Enkriptiranje poruke M = (mx,my) ∈

BnZ \{0} ×BnZ \{0}, my

2 ≠ mx3 (mod nB).

1. Šifrat je C = (cx, cy) = eBM nad ),0( bEBn , gdje je b = my

2- mx3 (mod nB).

Dekriptiranje šifrata C 1. Bob izračuna M = dBC nad ),0( bE

Bn .

9.6 Kuwokado-Koyama kriptosustav

Odaberu se prosti brojevi p i q takvi da je faktoriziranje n = pq je nemoguće i u ovisnoti o brojevima p i q računaju se ostali parametri kriptosustava.

1. Ako je p ≡ q ≡ 1 (mod 3), potrebno je izračunati Npi i Nqi (1≤ i ≤ 6). Zatim je potrebno odabrati e takav da je gcd(e, Npi) = gcd(e, Nqi) =1 za 1≤ i ≤ 6. Računaju se dpi i dqi za 1≤ i ≤ 6, takvi da je dpi ≡ 1(mod Npi) i dqi ≡1 (mod Nqi). 2. Ako je p ≡ -q ≡1 (mod 3), potrebno je izračunati Npi ,1 ≤ i ≤ 6). Odabire se e takav da je gcd(e, Npi) = gcd(e, q+1) = 1 za 1≤ i ≤ 6 . Zatim se računa dpi za 1≤ i ≤ 6, takav da je dpi ≡ 1(mod Npi) i dq takav da vrijedi

edq ≡1(mod q+1). 3. Ako je p ≡ q ≡ 2 (mod 3), odabiremo e takav da je gcd(e, p+1) = gcd(e, q+1) = 1.

Page 68: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

63

Zatim se računa dp, takav da vrijedi edp ≡ 1(mod p+1) i dq, takav da je edq ≡ 1(mod q+1).

Vrijednosti n, e su javne, tajni su p, q , dp i dq . Za njih vrijedi slijedeće :

a) ako je p ≡ q ≡ 1 (mod 3), tajni su dpi i dqi za 1≤ i ≤ 6, b) ako je p ≡ -q ≡ 1 (mod 3), tajni su dpi za 1≤ i ≤ 6 i dq. c) ako je p ≡ q ≡ 2 (mod 3), tajni su dp i dq.

Enkriptiranje poruke M = (mx, my) ∈

BnZ \{0} ×BnZ \{0}, my

2 ≠ mx3 (mod nB)

1. Šifrat C = (cx, cy) = eBM nad ),0( bEBn , gdje je b = my

2- mx3 (mod nB).

Dekriptiranje šifrata C za p ≡ q ≡ 1 (mod 3)

1. Bob izračuna bp = cx2 - cy

2 (mod p) i bq = cx2 - cy

2 (mod q).

2. Bob izračuna 6

p

pb

πi

6

q

qb

π.

3. Bob izabere ključeve za dekripciju dpi i dqi. 4. Bob izračuna Mp= dpiC nad ),0( pp bE i Mq= dqiC nad ),0( qq bE .

5. Bob dobiva poruku M iz M1 i M2 koristeći kineski teorem ostatka. Dekriptiranje se izvodi slično i za p ≡ -q ≡1 (mod 3) i p ≡ q ≡ 2 (mod 3). [10]

Page 69: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

64

10 Digitalni potpis Digitalni potpis (engl. digital signature) je metoda za provjeru porijekla i

utvrñivanje besprijekornosti informacije. Svaki korisnik u globalnom elektroničkom sustavu treba imati svoj digitalni potpis pomoću kojega ovlašćuje neku radnju i preuzima odgovornost za nju.

Zahtjevi koje digitalni potpis mora zodovoljiti su:

1. Vjerodostojnost potpisanog dokumenta - jednom potpisan dokument se ne može više promijeniti; 2. Nemogućnost ponovnog korištenja - potpis je izveden iz dokumenta i ne može se prebaciti na drugi dokument; 3. Nemogućnost krivotvorenja – vlasnik potpisa je i autor dokumenta, nitko drugi umjesto njega nije stavio njegov potpis; 4. Nemogućnost izbjegavanja odgovornosti - potpisani ne može izbjeći odgovornost za kreiranje potpisa i dokumenta.

Kod stvaranja digitalnog potpisa neke poruke najprije treba naći kriptografski

sažetak (engl. cryptografic digest) same poruke koja se zatim potpisuje korištenjem privatnog ključa. Sažetak se izrañuje funkcijom za izradu sažetka (engl. hash function), jednosmjernom funkcijom koja iz poruke izračunava sažetak stalne duljine.

Slika 10.1 Stvaranje digitalnog potpisa Kod provjere potpisa najprije treba naći hash-vrijednost primljene poruke na način

na koji je to učinio pošiljalac. Zatim dobivenu vrijednost primaoc usporeduje sa hash-vrijednosti koju je iz potpisa dobio dekriptiranjem pomoću javnog ključa pošiljaoca. Ako su hash-vrijednosti iste, poruka je vjerodostojna u sadržaju i porijeklu, tj. Bob je saznao da je poruku stvarno poslala Alica (jer samo ona zna svoj privatni ključ) i da neki napadač nije tjekom komunikacije promjenio sadržaj poruke. [2][3]

Page 70: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

65

Slika 10.2 Provjera digitalnog potpisa

10.1 DSA koji koristi eliptične krivulje 10.1.1 DSA

DSA (engl. digital signature algorithm) je prvi algoritam digitalog potpisa

prihvaćen od strane vlade USA.To je oblik ElGamalove sheme digitalnog potpisa. Koristi

male podgrupe u *pZ kako bi se smanjila veličina potpisa. Algoritam koristi SHA (engl.

secure hash algorithm) . Generiranje klju čeva Kako bi generirali ključeve Alica, ali i ostali korisnici, moraju učiniti slijedeće:

1. Odabrati prosti broj q, veličine 160 bita, za koji vrijedi 2159< q <2160. 2. Odabrati prosti broj p, takav da vrijedi q | p -1. Najčešće je veličine od 512 do

1024 bitova ( 2511+64t < p <251264t, 0 ≤ t ≤ 8)

3. Odabrati h ∈ *pZ i izračunati g = h(p – 1)/q mod p (h je bilo koji broj manji od

p – 1 takav da je h(p – 1)/q mod p veći od 1). Broj g je generator cikličke grupe

reda q u *pZ .

4. Izabrati slučajni cijeli broj x iz intervala [1, q-1]. 5. Izračinati y = gx mod p.

Parametri p, q i g su javni, x je privatni ključ, a y je javni ključ. Generiranje digitalnog potpisa Da bi potpisala poruku m, Alica treba učiniti slijedeće :

1. Izabrati slučajan broj k iz intervala [1, q-1]. 2. Izračunati r = (gk mod p) mod q 3. Izračunati s = k-1( h(m) + xr)) mod q, gdje je h Secure Hash Algorithm

(SHA-1) 4. Provjeriti je li s = 0. Ako je, slijedi povratak na korak 1.

Page 71: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

66

5. Potpis za poruku m čine vrijednosti r i s.

Alica nakon generiranja digitalnog potpisa šalje Bobu poruku m i potpis (r, s). Provjera digitalnog potpisa Da bi Bob provjerio ispravnost potpisa, on mora učiniti slijedeće:

1. Provjeriti jesu li brojevi r i s iz intervala [1, q-1]. 2. Izračunati w = s –1 mod q i h(m). 3. Izračunati u1 = h(m)w mod q i u2 = rw mod q.

4. Izračunati v = ( 21 uu yg mod p) mod q . 5. Usporediti v i r.

Ako je v = r, potpis je ispravan i Bob ga prihvaća. Sigurnost DSA leži u problemu diskretnog logaritma. Za dane p, q, g i y

pronalaženje x-a za koji vrijedi y ≡ gx (mod p) treba biti otežano. [7][10]

10.1.2 ECDSA ECDSA (engl. elliptic curve digital signature algorithm) je verzija DSA koja

koristi eliptične krivulje i njihova svojstva. U tablici 10.1 prikazana je veza meñu oznakama korištenim u DSA i ECDSA.

DSA notacija ECDSA notacija q n g P x d y Q

Tablica 10.1 Veza DSA i ECDSA notacije Ureñena šestorka D = (q, a, b, G, n, h) predstavlja parametre kriptosustava za koje

vrijedi - q = p ili q = 2m , p je prosti broj - a, b su elementi polja , odreñuju jednadžbu eliptične krivulje - G je točka na krivulji )( qFE , G = (xg, yg)

- n je red točke G , najmanji pozitivni cijeli broj takav da vrijedi nG = O - h = #E(Fq)/n.

Prethodno navedeni parametri su javni. Generiranje klju čeva Alica (i Bob) treba učiniti slijedeće :

1. Izabrati slučajni cijeli broj d iz intervala [1, n-1]. 2. Izračunati Q = dG.

Javni ključ je točka Q dok je privatni ključ broj d.

Page 72: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

67

Napomena : Da bi se ispitala ispravnost javnog ključa Q = (xq, yq), potrebno je: 1. Provjeriti da je Q ≠ O. 2. Provjeriti da su xq and yq na ispravan način predstavljeni elementi konačnog

polja Fq. 3. Provjeriti da se točka Q nalazi na eliptičnoj krivulji odreñenoj brojevima a i b. 4. Provjeriti da je nQ = O.

Generiranje potpisa Da bi potpisala poruku m, Alica treba učiniti slijedeće :

1. Izabrati slučajni broj k iz intervala [1, n-1]. 2. Izračunati kG = (x, y) i r = x mod n. Ako je r = 0, slijedi povratak na prvi

korak. 3. Izračunati t = k-1 mod n. 4. Izračunati e = SHA-1(m), gdje SHA-1 predstavlja 160 bitnu hash funkciju. 5. Koristeći privatni ključ d izračunati s = k-1 (e + rd) mod n. Ako je s = 0,

potrebno je vratiti se na prvi korak. Potpis poruke m je dvojac (r, s). Alica šalje Bobu poruku m i njezin potpis (r, s).

Provjera potpisa Bob provjerava Alicin potpis (r, s) poslane poruke m. Bobu su poznati parametri

kriptosustava D i Alicin javni kjuč QA, a da bi provjerio potpis treba učiniti slijedeće: 1. Provjeriti da su r i s brojevi iz intervala [1, n -1]. 2. Izračunati e = SHA-1(m). 3. Izračunati w = s-1 mod n. 4. Izračunati u1= e s-1 mod n i u2 = r s-1 mod n . 5. Izračunati točku X = (x1, y1) = u1G + u2Q. 6. Ako je X = O, odbiti potpis, inače izračunati v = x1 mod n . 7. Prihvatiti potpis za poruku m ako i samo ako je v = r.

[7][10][13]

Page 73: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

68

Slika 10.1 ECDSA

10.2 ECSS (engl. elliptic curve signature sheme) Ureñena šestorka D = (q, a, b, G, n, h) predstavlja parametre kriptosustava za koje

vrijedi - q = p ili q = 2m , p je prosti broj - a, b su elementi polja , odreñuju jednadžbu eliptične krivulje - G je točka na krivulji )( qFE , G = (xp, yp)

- n je red točke G , najmanji pozitivni cijeli broj takav da vrijedi nG = O - h = )(# qFE /n.

Navedeni parametri su javni. Generiranje klju čeva Alica (i Bob) treba učiniti slijedeće :

Page 74: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

69

1. Izabrati slučajni cijeli broj d iz intervala [1, n-1]. 2. Izračunati Q = dG.

Javni ključ je točka Q, a privatni ključ je broj d. Generiranje potpisa za ECSS Da bi potpisala poruku M, Alica treba učiniti slijedeće :

1. Koristeći hash algoritam izračunati e = H(M). 2. Generirati slučajni cijeli broj k iz intervala [1, n-1]. 3. Izračunati točku R1 = (x1, y1) = kG. 4. Izračunati r = x1 + e (mod q). 5. Koristeći privatni ključ d izračunati s = k - dr (mod n) .

Alica šalje Bobu poruku M i potpis poruke (r, s).

Provjera potpisa za ECSS Da bi Bob potvrdio Alicin potpis (r, s) poruke M treba učiniti slijedeće:

1. Potražiti Alicin javni kjuč QA. 2. Izračunati točku R2 = (x2, y2) = sG + rQA. 3. Izračunati e = H(M). 4. Izračunati r´ = x2 + e mod q. 5. Prihvatiti poruku M ako i samo ako je r = r´.

Slika 10.2 ECSS

Page 75: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

70

10.3 EC Nyberg-Rueppelova shema digitalnog potpisa Shema digitalnog potpisa omogućava oporavak poruke (engl. message recovery)

ako se originalna poruka može izračunati iz potpisa korištenjem informacija koje su javne.

Ako digitalni potpis omogućava message recovery, poruka se ne treba slati primaocu. To se postiže dodavanjem suvišnih informacija prije potpisivanja poruke i njihovom provjerom nakon što je poruka recovered. [10]

Generiranje potpisa Da bi potpisala poruku m ∈ qF , Alica mora učiniti slijedeće :

1. Generirati slučajan broj k∈{2,..., n-2}. 2. Izračunati R = (x1, y1) = kG. 3. Izračunati r = x1m (mod q). 4. Izračunati r ' = r (mod n). 5. Izračunati s = lAr ' + k (mod n).

Potpis poruke je (r, s) i Alica ga šalje Bobu. Dobivanje originalne poruke Da bi iz (r, s) Bob dobio originalnu poruke, on mora učiniti slijedeće:

1. Izračunati R = (x1, y1) = sG - r 'QA. 2. Izračunati m = r(x1)

-1 (mod q).

Slika 10.3 EC Nyberg-Rueppelova shema digitalnog potpisa

Page 76: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

71

10.4 OFF shema digitalnog potpisa Okamoto, Fujioka i Fujisaki su 1992. godine predstavili shemu digitalnog potpisa

utemeljenu na eliptičnim krivuljama nad nZ , gdje je n = p2q, a brojevi p i q su prosti.

Postavke Odabiru se prosti brojevi p i q, p>q, takvi da je faktoriziranje n = p2q neizvedivo.

Funkcija f: InZ → I

nZ je funkcija više varijabli f = (f1,..., fI), gdje je I cijeli broj.

Javni su broj n i funkcija f, a tajni su brojevi p i q. Generiranje potpisa Da bi potpisala poruku M = (m1,..., mI) ∈ I

nZ , Alica mora učiniti slijedeće:

1. Generirati slučajan K = (k1,..., kI) ∈ InZ \{0,...,0}.

2. Izračunati W = (w1,..., wI) kao

wi =

−pq

n)(K) (fm ii mod,

i = 1,..., I. 3. Izračunati U = (u1,...,uI) kao

UT = (∆f(K))-1WT (mod p) . 4. Izračunati S = (s1,..., sI) kao

si = ti + uipq, i = 1,..., I .

Potpis poruke M je S.

Potvrda potpisa Da provjeri potpis poruke, Bob mora ispitati da li je

mi ≤ fi(S) ≤ mi + 3

2

n , i = 1,..., I. [10]

Page 77: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

72

11 Protokoli za razmjenu tajnog ključa

Pretpostavimo da dva sudionika žele meñusobno komunicirati koristeći simetrični kriptosustav. Oni najprije moraju razmjeniti tajni ključ kriptiranja. To mogu učiniti na više načina, a jedan od njih je osobno raznošenje ključeva.

Protokoli za uspostavu simetričnog kriptosustava (engl. key establishment protocol) takoñer omogućavaju sigurnu razmjenu ključeva. Razlikujemo dvije kategorije protokola:

- protokole za slanje ključeva (engl. key transver) Kod ovih protokola jedna strana sigurnim putem šalje tajni ključ drugoj strani. Tajni ključ se može razmjeniti ako su sudionici uključeni u asimetrični kriptosustav i poznati su im javni ključevi drugog sudionika. Alica može odabrati tajni ključ, kriptirati ga Bobovim javnim ključem i poslati ga Bobu. Po primitku poruke Bob saznaje tajni ključ tako da dekriptira poruku svojim privatnim ključem. - protokole za dogovor oko ključeva (engl. key agreement) Kod ovih protokola oba sudionika sudjeluju u izračunavanju ključeva.

Svojstva key agrement protokola su 1. Simetrija uloga (engl. role symmetry)

Oba sudionika obavljaju iste operacije. 2. Broj razmjena (engl. number of passes)

Ukupan broj poslanih poruka izmeñu dva sudionika u procesu razmjene tajnog ključa.

3. Svježina ključeva (engl. key freshness) Sposbnost protokola da proizvede novi sjednički ključ svaki put kada ga sudionici koriste. Svježinu ključeva može kontrolirati jedan(engl. unilateral controled key freshness) ili oba korisnika (engl. mutual controled key freshness).

4. Proslijeñivanje tajnosti (engl. forward secrecy) Gubitak privatnih ključeva asimetričnog kriptosustava (engl. long term keying material) neće rezultirati otkrivanjem informacija o tajnim ključevim korištenim u prethodnim sjednicama.

5. Implicitna autentifikacija ključeva(engl. implicit key autentication) Samo strane koje izvode protokol mogu izračunati tajni ključ.

6. Autentifikacija subjekta (engl. entity autentcation) Protokol omogućava utvrñivanje identiteta sudionika u komunikaciji. 7. Potvrñivanje ispravnosti tajnog ključa(engl. key confirmation)

Protokol omogućava jednostranu ili obostranu provjeru ispravnosti ključa. [3][10]

Page 78: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

73

11.1 EC Diffie-Hellmanov protokol 11.1.1 Diffie-Hellmanov protokol

Godine 1976. Whitfield Diffie i Martin Hellman su ponudili jedno moguće rješenje

problema razmjene ključeva, zasnovano na činjenici da je u nekim matematičkim strukturama (grupama) potenciranje puno jednostavnije od logaritmiranja.

Neka je G konačna Abelova grupa. Za primjene u kriptografiji grupa G bi trebala

imati svojstvo da su operacije množenja i potenciranja u njoj jednostavne, dok je logaritmiranje (inverzna operacija od potenciranja) vrlo teško. Takoñer bi trebalo biti moguće generirati slučajne elemente grupe na gotovo uniforman način. Najvažnije je koliko je težak tzv. problem diskretnog logaritma u grupi G.

Alica i Bob se žele dogovoriti o jednom tajnom slučajnom elementu u grupi G,

kojeg bi onda poslije mogli koristi kao ključ za šifriranje u nekom simetričnom kriptosustavu (npr. DES-u ili AES-u). Dogovor o tajnom ključu moraju provesti preko nekog nesigurnog komunikacijskog kanala. Poznata je grupa G i njezin generator g (pretpostavimo da je grupa G ciklička grupa). Broj n predstavlja red grupe G (n je broj elemenata u grupi G).

Postupak razmjene ključeva provodi se na slijedeći način:

1) Alica generira slučajan prirodan broj a ∈{1, 2, ... , n - 1}, izračuna i pošalje Bobu

element ag .

2) Bob generira slučajan prirodan broj b ∈{1, 2, ... , n - 1}, te pošalje Alici element bg .

3) Alica računa ( ) abab gg = .

4) Bob računa ( ) abba gg = .

Njihov tajni ključ je K = abg . Netko tko prisluškuje njihovu komunikaciju preko nesigurnog komunikacijskog

kanala zna sljedeće podatke: G, g, ag , bg . Iz tih podataka mora izračunati abg , tj. treba riješiti Diffie-Hellmanov problem (DHP). Ako Eva iz g i ga može izračunati a (tj. ako može riješiti problem diskretnog logaritma (DLP)), onda može pomoću a i gb izračunati

abg . Vjeruje se da su za većinu grupa koje se koriste u kriptografiji ova dva problema, DHP i DLP, ekvivalentni (tj. postoje polinomijalni algoritmi koji svode jedan problem na drugi).

U originalnoj definiciji Diffie-Hellmanovog protokola za grupu G se uzima

multiplikativna grupa *pZ svih ne-nul ostataka modulo p, gdje je p dovoljno velik prost

broj. Grupa *pZ je ciklička grupa ,a generator ove grupe se naziva primitivni korijen

Page 79: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

74

modulo p. Broj g ∈{1, 2, ... , p - 1} je primitivni korijen modulo p ako je gp -1 najmanja potencija broja g koja daje ostatak 1 pri djeljenju brojem p.[2][6]

11.1.2 ECDH (engl. elliptic curve Diffie-Hellman protocol) ECDH je verzija Diffie-Hellmanovog protokola za razmjenu ključeva . Razlika je

u tome što se kod ECDH koriste grupe temeljene na eliptičnim krivuljama. Slijedi opis Diffie-Hellmanovog protokola za razmjenu ključeva zasnovanog na eliptičnim krivuljama.

Ureñena šestorka D = (q, a, b, G, n, h) predstavlja parametre kriptosustava za koje

vrijedi - q = p ili q = 2m , p je prosti broj - a, b su elementi polja , odreñuju jednadžbu eliptične krivulje - G je točka na krivulji )( qFE , G = (xg, yg)

- n je red točke G, najmanji pozitivni cijeli broj takav da vrijedi nG = O - h = )(# qFE /n.

Navedeni parametri su javni. Generiranje klju čeva Alica (i Bob) treba učiniti slijedeće :

3. Izabrati slučajni cijeli broj d iz intervala [1, n-1]. 4. Izračunati Q = dG.

Javni ključ je točka Q dok je privatni ključ broj d. Postupak razmjene ključeva provodi se na slijedeći način:

1. Alica generira slučajni broj ka. 2. Alica izračuna točku P = kaG i pošalje je Bobu. 3. Bob obabire slučajni broj kb. 4. Bob izračuna točku M = kbG i pošalje je Alici. 5. Alica zatim izračuna točku P1 = kaM , a Bob izračuna točku P2 = kbP. 6. Točka P1 = P2 = kakbG koristi se kao zajednički tajni ključ. Svojstva opisanog protokola su : 1. Simetrične uloge, 2. Dvije razmjene podataka, 3. Oba korisnika kontroliraju svježinu ključeva, 4. Forward secrecy.[2]

Primjer 11.1 Koristi se eliptična krivulja i polje opisani u poglavlju 4.7.

Odabrana je točka G = (g9, g10) . Red točke G je n = 16 (16G = O).

Page 80: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

75

Alicin privatni ključ je lA = 5, a javni ključ je QA= lAG = 5G = (g3, g13). Bobov privatni ključ je lB = 7, a javni ključ je QB= lBG = 7G = (g6, g8). Postupak razmjene ključeva provodi se na slijedeći način:

1) Alica odabere broj ka = 3 2) Alica računa točku P = kaG = 3(g9, g10) = (g12, g0) i šalje je Bobu . 3) Bob obabire slučajni broj kb = 5. 4) Bob računa točku M = kbG = 5(g9, g10) = (g3, g13) i šalje je Alici. 5) Alica računa točku P1 = kaM , a Bob računa točku P2 = kbP.

P1 = kaM = 3(g3, g13) = (g9, g13) P2 = kbP = 5(g12, g0) = (g9, g13)

Točka P1 = P2 = kakbQ koristi se kao zajednički tajni ključ.

Slika 11.1 ECDH protokol

11.2 EC Nyberg-Rueppelov protokol za razmjenu ključeva Nyberg-Rueppelova shema razmjene tajnih ključeva izvedena je iz Nyberg-

Rueppelove sheme digitalnog potpisa opisane u poglavlju 10.3 koja omogućava message recovery.

Odabire se broj q (q = pm, p je prost broj, m je cijeli broj) koji odreñuje konačno

polje qF , eliptična krivulja )( qFE i točka G ∈ E reda n. Svi parametri se odabiru tako da

je ECDLP na )( qFE nerješiv za točku G.

Vrijednosti )( qFE , G, n su javne.

Page 81: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

76

Točka Q = lG je javni ključ, a je l privatni ključ. Postupak razmjene ključeva Alica treba učiniti slijedeće: 1. Izabrati slučajane brojeve k1, k2 ∈{2,..., n-2}. 2. Izračunati R1 = k1G = (x1, y1) i R2 = k2G = (x2, y2) . 3. Izračunati r = x2 - x1 (mod q). 4. Izračunati s = k1 + lAr (mod n). 5. Poslati (r, s, lsb(y2)) Bobu. 6. Izračunati ključ K = k2QB. Nakon što je primio poruku (r, s, lsb(y2)) Bob mora : 1. Izračunati k1G = (x1, y1) = sG- rQA. 2. Izračunati x2 = r + x1 (mod q). 3. Izračunati k2G iz x2 i iz lsb(y2). 4. Izračunati ključ K = lBk2G. Shema posjeduje slijedeća svojstva:

1) Jedna razmjena, stoga nema simetrije uloga, 2) Svježinu ključeva kontrolira Alica, a ne Bob, 3) Autentifikacija ključeva se podrazumjeva. [2]

Slika 11.2 Nyberg-Rueppelov protokol za razmjenu ključeva

Page 82: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

77

12 Sustavi za raspodjelu ključeva Žele li dva sudionika uspostaviti simetrični sustav, trebaju najprije razmjeniti tajni

ključ. To mogu obaviti korištenjem nekog od protokola za razmjenu ključeva. Kada se želi uspostaviti sigurna komunikacija izmeñu manje skupine sudionika,

ključevi za sve parove se mogu razmjeniti osobnim raznošenjem. Problemi nastaju kod pohrane tajnih ključeva jer bi svaki sudionik morao čuvati N-1 ključeva.

Rješenje tog problema je uspostava centra za raspodjelu ključeva. KDC je pouzdani poslužitelj kome svi sudionici vjeruju i koji je zastićen od vanjskih opasnosti. Prilikom prijave svakom sudioniku I centar dodjeljuje identifikator IDI i tajni ključ KI.[10]

12.1 Sakazaki-Okamoto-Mamba sustav za raspodjelu ključeva temeljen na identifikatoru (ID-u) koji koristi elip tične krivulje

H. Sakazaki, E. Okamoto i M. Mamba su 1997. godine predstavili sustav za

raspodjelu ključeva temeljen na identifikatoru i koristi eliptične krivulje nad poljem nZ .

Broj n je produkt dva različita prosta broja, p i q, oba veća od 3. Eliptična krivulja nad poljem nZ je odreñena parametrima a i b koji su elementi

polja Zn i zadovoljavaju uvjet gcd(4a3+27b2, n) = 1. Krivulja se definira kao skup točaka {(x, y)∈ nZ × nZ : y2 ≡ x3 + ax + b (mod n)} ∪ {O}

i označava se s ),( baEn . Točka O se naziva točka u beskonačnosti.

Točka G ∈ ),( baEn je početna točka i ima red k = lcm( ),(# 11 baEp , ),(# 22 baEq ).

),( baEp i ),( baEq označavaju eliptične krivulje definirane nadpZ i qZ , dok #E

predstavlja broj točaka na krivulji. Odabir parametara eliptične krivulje može se obaviti na slijeći način: Generiraju se sličajni prosti brojevi p i q takvi da nije moguće faktoriziranje

n = pq. Odabiru se eliptične krivulje ),( 11 baEp nad pZ i ),( 22 baEq nad qZ tako sa su

brojeviN1 = ),(# 11 baEp i N2 = ),(# 22 baEq različiti prosti brojevi. Točke G1 = (x1, y1)

∈ ),( 11 baEp i G2 = (x2, y2)∈ ),( 22 baEq su reda N1 i N2. Na kraju se izračunavaju k = N1N2

i a, b, x, y ∈ nZ koji zadovoljavaju

≡≡

) (mod

) (mod

2

1

qaa

paa

≡≡

) (mod

) (mod

2

1

qbb

pbb

i

≡≡

) (mod

) (mod

2

1

pxx

pxx

≡≡

. ) (mod

) (mod

2

1

pyy

pyy

Tada je točka G = (x, y) točka reda k na krivulji ),( baEn . Uz dane brojeve n, a, b i

točku G izračunavanje broja k se smatra nemogućim bez poznavanja prostih faktora od n.

Page 83: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

78

Postavke Centar objavljuje parametre eliptične krivulje ),( baEn i početnu točku G.

Centar posjeduje privatni ključ koji se sastoji od brojeva k, p i q. Dodjeljivanje (izdavanje) privatnog klju ča korisniku Pretpostavimo da centar za dodjelu ključeva želi dodijeliti privatni ključ korisniku

i. Neka je I i = h(ID i) , gdje je h javna hash funkcija kao što je SHA-1, a ID i je identifikator korisnika i. I i se naziva sažeti identitet (engl. hashed identity). Za I i i k vrijedi gcd(I i, k)= 1.

Centar računa Di = I i-1 mod k i SIi = -Di G. Vrijedi da je I i SIi + G = O .

Centar šalje (I i , SIi) korisniku i preko sigurnog kanala. I i je korisnikov javni ključ, dok je SIi korisnikov privatni ključ.

Slika 12.1 Dodjela ključeva korisniku Razmjena ključeva Alica i Bob žele uspostaviti simetrični kriptosustav i moraju razmjeniti tajni ključ. Javni ključevi Alice i Boba su IA i IB , dok su SIA i SIB njihovi privatni ključevi. Alica odabire slučajni cijeli broj rA ∈ {1,...,n-1}, računa točku CA = SIA + rA IB G i

šalje je Bobu. Bob odabire slučajni cijeli broj rB ∈ {1, ..., n-1} i računa točku na eliptičnoj krivulji CB = SIB + rB IA G i šalje je Alici.

Alica u slijedećem koraku računa KAB = rA(IB CB + G), a Bob računa

KBA = rB(IA CA + G). Vrijedi KAB = KBA = rA rB IAIB G .

Page 84: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

79

Slika 12.2 Razmjena tajnog ključa M. Qu, D. Stinson i S. Vanstone su u svom radu iz 2001. godine pod nazivom

Cryptoanalysis of the Sakazaki-Okamoto-Mambo ID-based Key distribution system over elliptic curves pokazali kako Sakazaki-Okamoto-Mambo shema nije sigurna. Korištenjem algoritama opisanih u prethodno navedenom radu moguće je nakon dodjeljvanja nekoliko (privatnih) ključeva konstrurati ispravan privatni ključ bez daljnje interakcije s centrom za dodjelu ključeva.[14]

Page 85: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

80

13 Upotreba točaka eliptične krivulje kao poruka Obično je poruka koja se enkriptira ili potpisuje odreñeni broj iz nekog intervala,

element polja qF ili nZ . Kriptosustavi zasnovani na eliptičnim krivuljama kao poruku

koja se šalje koriste točke na krivulji i zbog toga je potrebno definirati odnos izmeñu stvarne poruke i točke na eliptičnoj krivulji. Razlikujemo slijedeće metode :

1) Svaka poruka M ∈ nZ × nZ se podudara s krivuljom E nad nZ , tako da vrijedi

M ∈ E. Poruka M će biti enkriptirana uporabom operacija definiranim nad eliptičnom krivuljom (zbrajanje, oduzimanje, invertiranje i množenje). Primjeri sustava koji koriste navedenu metodu su KMOV kriptosustav, Kuwakado-Koyama i OFF shema digitalnog potpisa.

2) Neka je poruka m ∈ nZ . Koriste se dvije krivulje definirane nadnZ , eliptična

krivulja i njoj odgovarajuća komplementarna krivulja. Svaka poruka se podudara s točkom na jednoj od krivulja koja ima x-koordinatu jednaku m. Ovu metodu koristi Demytko kriptosustav.

3) U trećoj metodi koristi se jedna krivulja. Svaka poruka m ∈ {0,..., N} odgovara točci na korištenoj krivulji. To se naziva ugrañivanje poruke na krivulju (engl. embedding a message on the curve).

13.1 Ugrañivanje otvorenog teksta na krivulju Neka je p>3 prost broj i neka je q = pm' za neki pozitivan cijeli broj m'. Neka su a i

b elementi polja qF za koje je ispunjen uvjet nesingularnosti , 4a3 + 27b3 ≠ 0. Neka je k

veliki cijeli broj. Definiramo

−=

. inace

ako 1

k

q

k|qk

q

M k (13.1)

Dana je vjerojatnosna metoda za ugrañivanje poruke m ∈ {0,..., Mk-1} na krivulju

Eq(a,b). Podudaranje izmeñu {0,..., Mkk}= {0,..., q-1} i qF je opsano na slijedeći način.

Element x∈{0,..., Mkk} može se predstaviti u radix p notaciji : x ~ R(x) =(am' -1, ...., a0) ∈ Fp

m' ,

gdje je x = im

ii pa∑

=

1'

0

.

Page 86: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

81

Vektor R(x) odgovara jedinstvenom elementu polja qF . ( Potrebno je zapamtiti kako se

elementi polja qF mogu predstaviti kao polinomi nad pF stupnja manjeg od m'. )

Algoritam glasi : Neka je m∈{0,..., Mk-1}.

1. i = 1. 2. x(m, i) = f(mk + i). 3. provjeriti da li je x(m,i)3 + ax(m,i) + b kvadratni ostatak modulo q.

a) ako je, potrebno je definirati y kao jedan od drugih korjena od x3 + ax + b. Poruci m ugrañenoj na krivulju ),( baEq odgovara točka (x,y).

b) ako nije i ako vrijedi i<k , potrebno je ponoviti drugi korak sa i = i+1. Ako za neki m x(m,i)3 + ax(m,i) + b nije kvadratni ostatak modulo q za sve i = 1,...,

k , tada algoritam ne nalazi točku na krivulji koja odgovara m.

Vjerojatnost da se to dogodi za slučajni x iz polja qF je .2

),(#

q

baEq

13.2 Sažimanje točaka (engl. point compression )

Neka je p prosti broj veći od 3 i neka je P = (x, y) ∈ pF × pF točka na krivulji nad

poljem pF definiranom jednadžbom y2 = x3 + ax + b.

Pretpostavimo da pošiljalac S (engl. sender) želi poslati navedenu točku primaocu R (engl. reciver). On to može učiniti na više načina na više načina. Prvi je slanje cijele točke, koordinata x i y.

Ali kako primaoc zna vrijednosti varijabli a i b što odreñuju eliptičnu krivulju, dovoljno je poslati jednu koordinatu.

Pretpostavimo da S šalje samo koordinatu x. Primaoc R može koristeći jednadžbu y2= x3 + ax + b izračunati y2 . Moguće su dvije vrijednosti y-koordinate, +y i –y. Pošiljaoc šalje dodatni bit koji se koristi za odreñivanje ispravne vrijednosti

y-koordinate. Kao dodatni bit može poslužiti najmanje značajni bit. Tako se točka na eliptičnoj krivulji (x, y)∈ pF × pF može predstaviti kao (x, lsb(y)).

Točke na eliptičnim krivuljama definiranim nad F2m takoñer se mogu predstaviti x-koordinatom i jednim bitom y-koordinate, ali taj je postupak malo kompliciraniji.[10]

Page 87: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

82

14 Usporedba s ostalim kriptosustavima javnog ključa Osnovna motivacija za korištenje eliptičkih krivulja dolazi iz nepostojanja

subeksponencijalnog algoritma za rješavanje problema diskretnog logaritma za eliptičke krivulje. Problem diskretnog logaritma i problem diskretnog logaritma za eliptične krivulje su opisani u petom poglavlju poglavlju . Dok je ECDLP neriješiv, problem diskretnog logaritma u multiplikativnoj grupi konačnog polja može se riješiti u polinomijalnom vremenu korištenjem Index calculus metode.

Index calculus metoda nije primjenjiva na eliptičke krivulje, a razlozi za to su : - teško je naći eliptičku krivulju velikog ranga, - teško je naći eliptičku krivulju generiranu točkama male visine, - teško je "podići" točke iz E(Fp) do točaka iz E(Q). Kada bi se riješili navedeni problemi, mogli bi primjeniti Index calculus metodu u

kojem bi skup prostih brojeva zamijenili s generatorima neke eliptičke krivulje velikog ranga. Procjenjeno je da bi za primjenu ove ideje za p približno jednak 2160 trebali koristiti krivulju ranga većeg 180, a kako danas nije poznata ni jedna krivulja ranga većeg od 24, ova je ideja vrlo nerealistična i zbog toga možemo očekivati da ćemo kod kriptosustava zasnovanih na eliptičkim krivuljama postići zadovoljavajuću sigurnost s kraćim ključem nego kod kriptosustava zasnovanih na faktorizaciji ili obi čnom problemu diskretnog logaritma.

Pretpostavimo da imamo dva kriptosustava, jedan zasnovan na DLP u grupi Fp* , a

drugi zasnovan na ECDLP u grupi E(Fq). Brojevi p i q prosti brojevi. Neka je M označava broj bitova potreban za prikaz broja p, a N broj bitova za prikaz broja q. Brojeve M i N možemo interpretirati kao duljine ključeva u pripadnim kriptosustavima. Zadatak je naći odnos izmeñu M i N, uz pretpostavku da su pripadni kriptosustavi podjednako sigurni, tj. da su pripadni problemi diskretnog logaritma podjednako teški.

Najbolji poznati algoritmi za problem eliptičkog diskretnog logiritma trebaju

O( n ) operacija, gdje je n red grupe E(Fp*). Kako je n vrlo blizu q, zaključujemo da je kompleksnost promatranog ECDLP proporcionalna s 2N/ 2. S druge strane, kompleksnost najboljeg poznatog algoritma za problem običnog DLP je približno exp(1.92 M1/3 (ln(M ln 2))2/3).

Primjetimo da je najbolji poznati algoritmi za faktorizaciju velikih brojeva imaju vrlo sličnu kompleksnost i zbog toga će zaključci koje ćemo dobiti biti primjenjivi i na usporedbu kriptosustava zasnovanih na eliptičkim krivuljama s onima zasnovanima na faktorizaciji (npr. RSA).

Usporedbom gore navedenih kompleksnosti (zanemarujući konstante), dobiven je sljedeći odnos izmeñu M i N:

N 4.91 M1/3 (ln(M ln 2))2/3. Iz navedenog proizlazi da je za istu razinu sigurnosti duljina ključa N približno

jednak trećem korijenu duljine ključa M. Iako neprecizna, prvenstveno zbog toga što je implementacija grupovnih operacija kompleksnija u slučaju eliptičkih krivulja, navedena usporedba pokazuje prednosti kriptosustava zasnovanih na eliptičkim krivuljama u odnosu na RSA ili ElGamalov kriptosustav.

Page 88: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

83

Zanimanje za kriptosustave temeljene na eliptičnim krivuljama proizlazi iz činjenica da je za postizanje iste razine sigurnosti kao kod RSA kriptosustava ili ElGamalovog sa duljinom ključa od 1024 (standardna vrijednost), kod eliptičkih krivulja dovoljno je uzeti ključ duljine 160 bitova (standardna vrijednost za ECC). Ne samo da nudi najviši stupanj sigurnosti po bitu od svih do sada poznatih kriptosustava,već ECC omogućava korištenje i manje memorije. Kod sklopovske implementacije ECC-a koristi se manje tranzistora (VLSI implementacija 155-bitnog ECC-a je koristila 11 000 tranzistora, dok je za implementaciju 512-bitnog RSA kriptosustava bilo potrebno 50 000 tranzistora).

NIST je predložio skup krivulja za vladinu upotrebu . Skup se može podjeliti na

dva dijela: krivulje nad prim poljem GF(p) i krivulje nad binarnim poljem GF(2m). Krivulje nad GF(p) su oblika y2 = x3 - 3x + b sa proizvoljnim parametrom b, dok su krivulje nad GF(2m) ili oblika y2 + xy = x3 + x2 + b sa proizvoljnim b ili Koblitzove krivulje zadane formulom y2 + xy = x3 + ax2 + 1 sa parametrom a jednakim 1 ili 0.

Veličina ključa korištenog u pojedinim aplikacijama ovisi o njegovoj vrijednosti i o

kriptografskom algoritmi koji se koristi. Zahvaljujući brzom razvoju novih tehnologija i novih kriptoanalitičkih metoda, veličina ključa se neprestano mjenja.

Kriptosustavi zasnovani na eliptičnim krivuljama su se pokazali korisnima u

aplikacijama gdje su veličina memorije i računalna snaga ograničene i očekuje se da će u budućnosti na ovim područjima njihova upotreba znatno porasti

U slijedećoj tablici prikazane veličine ključeva za različite veličine blokova

podataka i različite kriptosustave, RSA , kriptosustav zasnovan na eliptičnim krivuljama i DSA.

veličina bloka

RSA veličina ključa

ECC veličina ključa

DSA veličina ključa

nominalna (Wassenar

Arrangement) 56 512 112 512 / 112

tradicionalna 80 1024 160 1024 / 160 preporučena 112 2048 224 2048 / 224

Lenstra/Verheul 2000

70 952 132 952 / 125

Lenstra/Verheul 2010

78 1369 146 / 160 1369 / 138

Tablica 14.1 Preporučene minimalne veličine ključeva za različite kriptosustave U članku iz 2001. godine, Lenstra i Verheul su dali preporuke za duljine ključeva

koje bi trebalo koristiti da bi se postigla zadovoljavajuća sigurnost. Dana su i predviñanja o kretanju duljina ključeva u budućnosti. U svojim preporukama su uzeli u obzir više varijabilnih parametara. Jedan od osnovnih parametara uzima u obzir razumnu

Page 89: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

84

pretpostavku da najbolji javno objavljeni rezultati o razbijanju pojedinih kriptosustava ne predstavljaju garanciju da ne postoje i bolji (neobjavljeni) rezultati. Za parametar koji uzima ovu pretpostavku u obzir, uzeli su zadnju godinu u kojoj se smatra da je najpopularniji simetrični kriptosustav DES bio siguran. DES je kao standard prihvaćen 1976. godine. Duljina ključa je bila 56 bitova i smatralo se da je premala, a do javnog razbijanja DES-a došlo je 1997. godine. U proračunu podataka koristi se pretpostavka da je zadnja godina u kojoj je DES bio siguran bila 1982. godina. Važno je napomenuti da predviñanja ne uzimaju u obzir moguću konstrukciju kvantnih računala, koja bi sve kriptostave javnog ključa koji su danas u uporabi učinila nesigurnima.

U slijedećoj tablici nalaze se preporučene duljine ključa u bitovima za simetrične

kriptosustave (DES, AES), kriptosustave zasnovane na faktorizaciji ili diskretnom logaritmu u konačnom polju (RSA, ElGamal), kriptosustave zasnovane na eliptičkim krivuljama i procjena kompjutorskog vremena potrebnog za razbijanje šifre u MIPS-godinama. Jedna MIPS (million-instructions-per-second) godina se definira kao količina računanja koje se može provesti u godinu dana na računalu sposobnom provesti milijun instrukcija u sekundi.

Godina DES

duljina ključa

RSA duljina ključa

ECC duljina ključa

MIPS godina

1990 63 622 117 3.51 107 2000 70 952 132 7.13 109 2010 78 1369 146 1.45 1012 2020 86 1881 161 2.94 1014 2030 93 2493 176 5.98 1016 2040 101 3214 191 1.22 1019

Tablica 14.2 Preporučene duljine ključeva i vrijeme potrebno za razbijanje šifri Na temelju priložene tablice možemo zaključiti da kriposustavi zasnovani na

eliptičkim krivuljama, trenutno, uz 7 puta manju duljinu ključa pružaju istu sigurnost kao RSA kriptosustav, a u budućnosti se može očekivati da će taj omjer biti još povoljniji za ECC. To je osobito važno kod onih primjena (npr. "pametne kartice") kod kojih je prostor za pohranu ključeva vrlo ograničen. [6][10][11]

Page 90: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

85

15 Praktični rad Priloženi programi su primjer jednostavna implementacije kriptosustava temeljenog

na eliptičnim krivuljama (ElGamalov krptosustav i Diffie-Hellmanov protokol za razmjenu tajnih ključeva). Većina funkcija je preuzeto iz gotove implementacije kriptosustava čiji je autor Mike Rosing, dostupna je na Internetu na adresi http://packetstormsecurity.org/crypt/LIBS/elliptic/. Korištene eliptične krivulje su krivulje nad poljem mF

2, broj m iznosi 148. Za prikaz

elemenata polja odabrana je optimalna normalna baza (ONB tip I). Struktura BIGINT predstavlja element polja mF

2..

typedef struct { unsigned long b[8];

} BIGINT; Slijedi popis i kratki opis implementiranih funkcija.

Funkcija Opis

void shift_left(BIGINT *a) Vrši pomak u lijevo.

void shift_right(BIGINT *a) Vrši pomak u desno.

void rot_right(BIGINT *a) Vrši rotaciju u desno

void opt_inv(BIGINT *src,BIGINT *dst) Invertira element polja mF2

.

void index_mul(BIGINT *a,BIGINT *c,INDEX shift) Pomoćna funkcija koja se koristi kod inverzije.

void opt_mul(BIGINT *a,BIGINT *b,BIGINT *c) Množi dva elementa polja

mF2

.

void null(BIGINT *a) Postavlja sve elemente polja a->b[i] na nulu.

void copy (BIGINT *a,BIGINT *b) Kopira element a polja mF2

u element b. void big_print (char *strng,BIGINT *a) Ispisuje element polja.

Tablica 15.1 Popis funkcija za implementaciju osnovnih operacija u polju mF2

Zbrajanje elemenata polja je implementirano pomoću jedne for petlje i operacije isklučivo-ILI. Jednadžba eliptične krivulje glasi y2 + xy = x3 + a2x

2 + a6. Krivulju i točku na eliptičnoj krivulji predstavljaju slijedeće strukture. typedef struct { INDEX form; // ako je form = 0,onda je a2 = 0, inače je a2 različit od nule

Page 91: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

86

BIGINT a2; BIGINT a6; } KRIVULJA; typedef struct { BIGINT x; // koordinata x BIGINT y; // koordinata y } TOCKA;

Funkcija Opis

void esum (TOCKA *p1, TOCKA *p2, TOCKA *p3,

KRIVULJA *curv) Zbraja dvije točke na eliptičnoj krivulji.

void esub (TOCKA *p1,TOCKA *p2,TOCKA *p3,

KRIVULJA *curv) Oduzima dvije točke na eliptičnoj krivulji.

void edbl (TOCKA *p1,TOCKA *p3,KRIVULJA

*curv) Udvostručava točku na eliptičnoj krivulji.

void elptic_mul(BIGINT *k,TOCKA *p,TOCKA *r,

KRIVULJA *curv) Množi točku na eliptičnoj krivulji skalarom (brojem k).

void copy_point (TOCKA *p1, TOCKA *p2) Kopira točku.

void print_point(char *title,TOCKA *p3) Ispisuje točku (koordinate x i y).

Tablica 15.1 Popis funkcija koje obavljaju osnovne operacije na eliptičnoj krivulji

Kao generator sličajnih brojeva korist se funkcija void generator(unsigned long *pSeed). Pomoćne funkcije void ucitaj_rand() i void init_rand() koriste se kod inicijalizacije varijable pSeed; omogućavaju učitavanje iz datoteke ili ručni unos ako datoteka ne postoji.

Generiranje parametara eliptične krivulje i generiranje točke G, slučajne točke na krivulji koja se koristi u postupku izračunavanja javnih ključeva, izvodi funkcija void rand_curv_pnt(TOCKA *point, KRIVULJA *curve). Funkcija void rand_pnt(TOCKA *point, KRIVULJA *curve) generira slučajnu točku na zadanoj eliptičnoj krivulji, a funkcija int provjeri (TOCKA *p1, KRIVULJA *curv) provjerava da li se dotična točka nalazi na zadanoj krivulji. Kako bi se izračunala točka na eliptičnoj krivulji, potrebno je riješiti kvadratnu jednadžbu. To obavlja funkcija int gf_quadradic(BIGINT *a,BIGINT *b, BIGINT *y), dok pomoćna funkcija void fofx(BIGINT *x, KRIVULJA *curv, BIGINT *f) rješava desnu stranu jednadžbe eliptične krivulje (f(x) = x3 + a2*x2 + a6).

Postupak generiranja javnog i privatnog ključa opisan u 10. poglavlju napisam programskim kodom glasi :

Page 92: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

87

do{ // najprije se generira broj SUMLOOP(j) { generator(&random_seed); tajniA.b[j] = random_seed; } tajniA.b[STRTPOS] &= UPRMASK; // napomena: točka G je izračunata u prethodnom koraku i jedan je od parametara // kriptosustava- rand_curv_pnt(&G,&curve) elptic_mul(&tajniA, &G, &Q, &curve); } while( provjeri(&Q, &curve) = = 0); big_print("TAJNI KLJUC: ",&tajniA); postavi_javni(&javniA, &curve, &Q); printf("\n Alicin javni kljuc\n");

print_pubkey(&javniA);

Javni ključ predstavlja slijedeća struktura . typedef struct { TOCKA q; KRIVULJA crv; } JAVNI_KLJUC; Funkcija void postavi_javni(JAVNI_KLJUC *key, KRIVULJA *k,TOCKA *point) iz prethodno izračunatih vrijednosti sastavlja javni ključ korisnika (ključ se sastoji od parametara eliptične krivulje i točke Q), a funkcija void print_pubkey(JAVNI_KLJUC *pk) vrši ispis javnog ključa na zaslon.

Page 93: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

88

16 Zaključak Kako manje zahtjevnim kriptosustavima osigurati visoki stupanj zaštite i pri tome

uštediti na memoriji i računalnoj snazi jedan je od najvećih problema moderne kriptografije s kojim se danas susreću kriptografi. Kao njegovo rješenje mogle bi poslužiti eliptične krivulje i kriptosustavi zasnovani na njima.

Od predstavljanja eliptičnih krivulja i njihove primjene u kriptografiji ranih 80-ih

godina prošlog stoljeća mnogo se toga promjenilo i kriptosustavi temeljeni na njima postali su područje kriptografije koje obećava.

Zahvaljujući istoj razini sigurnosti koju pruža uz 7 puta manji ključ u odnosu na

ostale kriptosustave kao što je RSA kriptosustav (ECC nudi najviši stupanj sigurnosti po bitu od svih do sada poznatih kriptosustava), kriptiranje eliptičnim krivuljama je u posljednje vrijeme predmet velikog interesa kriptografa.

Povećanje računalne snage i različita poboljšanja provedena na području implementacije, uključujući i postupak generiranja eliptičnih krivulja, olakšali su njihovu primjenu u kriptografiji. Jedini argumenat protiv njihove uporabe je da su problemi na kojima je zasnovana uporaba eliptčkih krivulja u kriptografiji slabije istraženi od najpoznatijeg i još uvijek aktualnog problema faktorizacije, no i on će nestati njihovim intenzivnijim proučavanjem .

Imajući u vidu sve navedeno, možemo očekivati da će i u godinama pred nama

eliptične krivulje imati važnu, a možda i vodeću ulogu u kriptografiji .

Page 94: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

89

17 Literatura

[1] Ahel, R. 2002. Povijest kriptografije: seminarski rad iz predmeta Operacijski sustavi 2. [On-line]. Dostupno na http://sigurnost.zemris.fer.hr/povijest/ahel/Site/index.htm [25.lipanj 2004]. [2] Borst, J. 1997. Public key cryptosystems using elliptic curves: Master's thesis. [On-line]. Eindhoven University of Technology. Dostupno na http://citeseer.nj.nec.com/borst97public.html [14.prosinac 2003]. [3] Budin, L. 2003. Operacijski sustavi II, predavanja. Zagreb: Fakultet elektrotehnike i računarstva. [4] CACR - Centre for Applied Cryptographic Research. [On-line].University of Waterloo. Dostupno na http://www.cacr.math.uwaterloo.ca [20.listopad 2003]. [5] Certicom. ECC tutorial.[On-line] Dostupno na http://www.certicom.com [24.siječanj 2004]. [6] Dujella, A. Eliptičke krivulje i njihova primjena u kriptografiji : studentski seminar. [On-line] Dostupno na http://www.math.hr/~duje/ecc/eccseminar.html [18.studeni 2003]. [7] Giuliani, K. J. 1999. Attack on the Elliptic Curve Discrete Logarithm Problem: thesis. [On-line]. University of Waterloo. Dostupno na www.math.uwaterloo.ca/~kjgiulia/master.ps [28.svibanj 2004]. [8] Johnson, D. & Menezes, A. 1999. Elliptic curve DSA (ECDSA).[On-line] University of Waterloo. Dostupno na http://citeseer.ist.psu.edu/johnson99elliptic.html [12.studeni 2003] [9] Jurisic, A. & Menezes, A. 1997. Elliptic curves and cryptography. [On-line]. Dostupno na http://www.qrst.de/html/dsds/ec/eccrypto.pdf [10.studeni 2003]. [10] Kumar,Vikram V., Doraiswamy, S. & Jainullabudeen, Z. 2003. Elliptic Curve Cryptography- design and analysis of algorithms.[On-line]. Dostupno na www.eas.asu.edu/~cse450sp/projects/final_P113.doc [9.siječanj 2004]. [11] Kumar, Vinu V. & Igure, V. M. Elliptic curve cryptography in Embedded systems [12] Leung, I. 2001. Ivan Leung’s thesis. Dostupno na http://www.cse.cuhk.edu.hk/~khleung/thesis/thesis.html [23.siječanj 2003]. [13] Lopez , J. & Dahab,R. 2000. An overview of elliptic curve cryptography. [On-line]. Dostupno na http://citeseer.nj.nec.com/lopez00overview.html [14.prosinac 2003].

Page 95: Kriptiranje eliptiènim krivuljama - sigurnost.zemris.fer.hrsigurnost.zemris.fer.hr/algoritmi/asimetricni/2004_krivacic/Final1.pdf · SEMINARSKI RAD KRIPTIRANJE ELIPTI ... vremena

Kriptiranje eliptičnim krivuljama

90

[14] Qu, M., Stinson, D. & Vanstone, S. Cryptoanalysis of the Sakazaki-Okamoto-Mambo ID-based Key distribution system over elliptic curves Dostupno na www.cacr.math.uwaterloo.ca/~dstinson/papers/qsv3.ps [13.prosinac 2003]. [15] Solinas, J. A. 1997. Improved algorithms for arithmetic on anomalous binary curves.[On-line] Dostupno na http://citeseer.ist.psu.edu/solinas97improved.html [18.studeni 2003]. [16] Standards for efficient cryptography. 2000. Sec 1 : Elliptic curve cryptography. Sec 2 : Recommended elliptic curve domain parameters. [On-line]. Dostupno na http://www.secg.org/secg_docs.htm [19.studeni 2003]. [17] Šakić, T. 2000. Izrada samostalnog kriptografskog modula :diplomski rad. Fakultet elektrotehnike i računarstva. Dostupno na http://sigurnost.zemris.fer.hr/algoritmi/sakic/ [25.lipanj 2004]. [18] Žubrinić, D. 2001. Diskretna matematika. 1. izdanje. Zagreb: Element.