kriptiranje eliptiènim krivuljama -...
TRANSCRIPT
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RA ČUNARSTVA
SEMINARSKI RAD
KRIPTIRANJE ELIPTI ČNIM KRIVULJAMA Vlatka Krivačić
Zagreb, rujan 2004.
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
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
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
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
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.
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]
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
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]
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.
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.
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]
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).
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]
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),
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,
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.
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
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)
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)
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]
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.
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)
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)
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]
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.
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]
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,
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]
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
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]
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:
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]
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
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]
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.
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.
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)
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]
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.
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,
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:
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]
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]
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
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.
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)
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]
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
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]
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
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τ)
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)
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]
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]
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]
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]
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)
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
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)
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
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).
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).
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).
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
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
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.
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]
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]
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.
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.
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]
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 :
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
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
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]
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]
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
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).
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.
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
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.
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 .
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]
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
.
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]
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.
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
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]
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
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 :
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.
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 .
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].
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.