BANKOVNÍ INSTITUT VYSOKÁ ŠKOLA PRAHA Katedra informatiky a kvantitativních metod KRYPTOGRAFIE NA ELIPTICKÝCH KŘIVKÁCH Diplomová práce Autor: Vedoucí práce: Bc. Jan Mandík Informační technologie a management Ing. Vladimír Beneš, Ph.D. Praha Duben 2015
Prohlášení: Prohlašuji, že jsem diplomovou práci zpracoval samostatně a v seznamu uvedl veškerou použitou literaturu. Svým podpisem stvrzuji, že odevzdaná elektronická podoba práce je identická s její tištěnou verzí, a jsem seznámen se skutečností, že se práce bude archivovat v knihovně BIVŠ a dále bude zpřístupněna třetím osobám prostřednictvím interní databáze elektronických vysokoškolských prací. V Praze, dne 15. 4. 2015 Jan Mandík
Poděkování: Chtěl bych poděkovat panu doktoru Vladimíru Benešovi za možnost věnovat se matematice a kryptografii při psaní diplomové práce. Jan Mandík
Anotace Cílem diplomové práce je analýza matematických konceptů používaných v kryptografii pomocí matematického softwaru WOLFRAM MATHEMATICA 10 se zaměřením na kryptografické koncepty na eliptických křivkách. Práce je rozdělená do kapitol, které postupně přinášejí informace nutné pro pochopení tématu za pomoci výkladu obecné části a příkladů vytvořených pomocí matematického softwaru. Klíčová slova: kryptografie, eliptické křivky Annotation The aim of the thesis is the analysis of mathematical concepts used in cryptography using mathematical software W OLFRAM MATHEMATICA 10 focused on cryptographic concepts on elliptic curves. The work is divided into chapters, which gradually bring the information necessary to understand the topic with the help of general part and examples created using mathematical software. Key words: cryptography, elliptic curve
Obsah
1. Úvod V roce 1984 popisoval Hendrik Lenstra důmyslný algoritmus pro násobení celých čísel, který se opíral o vlastnosti eliptických křivek. Tento objev byl impulsem pro další matematiky, aby prozkoumávali další možnosti použití eliptických křivek v kryptografii a teorii čísel. Princip kryptografie s veřejným klíčem byl teoreticky popsán v roce 1976 a zasloužili se o to zejména pánové Whitfield Diffie a Martin Hellman. První praktická realizace následovala v roce 1977, kdy Ron Rivest, Adi Shamir a Len Adleman navrhli dnes známý kryptografický systém RSA. Bezpečnost tohoto systému je zaručena na základě faktorizace celých čísel. Princip kryptografie na bázi eliptických křivek (ECC) byl objeven v roce 1985 Nealem Koblitzem a Victorem Millerem. Kryptografické systémy na bázi eliptických křivek pracují obvykle na principu veřejného klíče, a poskytují stejnou funkcionalitu jako schémata kryptografického systému RSA. Podstata jejich bezpečnosti je založena na jiném základu. Tímto základem je řešení problému diskrétního logaritmu v rámci eliptických křivek (ECDLP). V současné době nejlepší známé algoritmy pro řešení ECDLP mají plně exponenciální výpočetní čas. Oproti tomu algoritmy známé pro faktorizaci celých čísel, potřebují ke svému běhu pouze subexponenciální čas. V systémech s použitím eliptických křivek může být požadované úrovně bezpečnosti dosaženo pomocí výrazně kratší délky klíče, než je možné dosáhnout s jejich protějšky v rámci kryptografické koncepce RSA. Mezi obecně přijímaná fakta patří, že 160 bitový klíč v rámci eliptických křivek stanovuje stejnou úroveň bezpečnosti jako 1024 bitový RSA klíč. Mezi výhody, které lze zmínit při použití klíče s výrazně kratší délkou jsou rychlost, efektivní využívání výpočetního času, šířka pásma a velikost úložiště pro práci s klíčem. Pokud bychom se podívali do historie, kde nalezneme první zmínku o eliptických křivkách, dostaneme se ke studiu diofantických rovnic. Diofantické rovnice poskytují řešení polynomiálních rovnic v oboru celých a racionálních čísel. Jejich studium má historii jdoucí zpátky až do starověkého Řecka. Termín diofantické rovnice je novějšího původu a odkazuje na studie diofantických rovnice pomocí kombinace technik z algebraické teorie čísel a algebraické geometrie. Nejjednodušší druh diofantických rovnice jsou rovnice lineární, znázornitelné graficky jako eliptické křivky. 6
1.1 Dosažený stupeň poznání Hlavním cílem této diplomové práce, je studovat aritmetické vlastnosti eliptických křivek a jejich použití v kryptografii. Probereme současné znalosti matematicky zajímavých oblastí eliptických křivek, které je později možné využít v rámci kryptografických systémů. Budeme se zabývat eliptickými křivkami, které jsou dané explicitní polynomiální rovnicí, která se nazývá Weierstrassova rovnice. Pomocí těchto explicitních rovnic, ukážeme mimo jiné, že množina bodů eliptické křivky tvoří ábelovskou grupu, a že celá tato grupa je definována pomocí racionálních funkcí. Probereme kryptografické koncepty, ve kterých naleznou uplatnění eliptické křivky. Ukážeme si různá párování na eliptických křivkách a v návaznosti na použití v kryptografických systémech i diskrétní logaritmus. V rámci kapitol o diskrétním logaritmu probereme známé algoritmy, které mohou být použity pro útoky na kryptografické systémy s implementací diskrétního logaritmu. Na závěr se seznámíme s použitím eliptických křivek v praxi u různých kryptografických koncepcí. Po dobu teoretického výkladu kryptografických konceptů a algebraických konstrukcí nás v diplomové práci bude provázet matematický software WOLFRAM MATHEMATICA 10. Tam, kde je to možné a přínosné jsou s jeho pomocí vypracovány příklady, které umožní základní analýzu a zprostředkují konkrétní příklady k probíranému tématu.[13] 1.2 Zvolené metody zpracování Hlavní metoda poznání této práce spočívá v analýze, jakožto myšlenkovém rozložení zkoumaného předmětu, jevu nebo situace na jednotlivé části. Jednotlivé části zkoumaného celku mohou být od sebe tematicky vzdálené, ale na pozadí je spojuje společné vlákno, kterým je matematika. Postupné hlubší poznání dílčích částí kryptografických konceptů nebo matematického aparátu umožní lépe poznat současnou podobu kryptografie jako celku. Analýza předpokládá, že v každém jevu existuje určitý systém a platí zákonitosti, které lze nalézt a pomocí matematických nástrojů mapovat a objasnit. Cílem analýzy je tento systém, jeho jednotlivé prvky a jejich vzájemné vazby, poznat a přiblížit pravidla fungování a chování systému. 7
2. Úvod do kryptografie Tato kapitol si klade za cíl pozvolna uvést čtenáře do problematiky kryptografie. V dalších kapitolách se původní téma může ztrácet v matematické teorii. Je tedy třeba mít na zřeteli, že všechna matematika probíraná v rámci této práce, má za úkol sloužit kryptografii. 1.3 Klasický úvod s Alicí, Bobem a zvědavou Evou Již z úcty k tradici, dovolím si při výkladu kryptografických systémů použít standartní model s virtuálními účastníky Alicí a Bobem, zmiňovaný v mnoha kryptografických publikacích. Nebude chybět ani zvědavá Eva v roli třetí neautorizované strany. Alice a Bob komunikují přes nezabezpečený komunikační kanál. Veškerá komunikace probíhá v přítomnosti zvědavé Evy, jejímž cílem je zjistit o čem si Alice a Bob povídají. Eva má za úkol zjistit obsah komunikace bez ohledu na použité technologické a matematické prvky, které mají komunikaci mezi Alicí a Bobem zabezpečit. V reálném světě mohou Alice s Bobem komunikovat například přes satelitní telefon, nebo přes mobilní telefon či webový prohlížeč. Alice s Bobem nemusí nutně vystupovat jen v roli osob, mohou být například platebním terminálem a ověřovacím serverem, nebo zákazníkem a elektronickým obchodem. V další variantě odposlechu může zvědavá Eva nahrazovat e-mailové zprávy, které si posílají Alice a Bob mezi sebou, svými vlastními zprávami. Možností a scénářů, jak může komunikace mezi Alicí a Bobem v různých rolích vypadat, je celá řada. Společným jmenovatelem je nutnost zabezpečení komunikace mezi Alicí a Bobem tak, aby nedošlo k jejímu odposlechnutí nebo změně, případně nahrazení původní zprávy jinou zprávou. Požadavky na zabezpečenou komunikaci můžeme shrnout do několika samostatných kapitol. Prvním důležitým bodem je důvěrnost celé komunikace ve všech minulých, současných i budoucích stavech, časech a podobách. Hovoříme o udržování dat v tajnosti před všemi neautorizovanými stranami tak, aby autorizované strany mohly ještě stále přečíst obsah komunikace, ten aby byl chráněn před zásahem a čtením neautorizovaných třetích stran. Je potřeba zamyslet se nad problematikou důvěrnosti i z hlediska času a ukládání původních zpráv. 8
Druhou důležitou kapitolou je integrita dat. Jde o mechanismus, který umožní zjistit, zda data byla během výměny po veřejném kanále změněna, nebo odposlechnuta neautorizovanou třetí stranou. Integrita nebývá již tolik zmiňována v souvislosti s uložením, případně archivací, původně utajované komunikace. Třetí kapitolou je Ověřování původu dat. Jde o to, aby Alice i Bob měli možnost ověřit, že zprávy opravdu pochází od jednoho nebo druhého a nejsou změněny třetí neautorizovanou stranou. Čtvrtou kapitolou je ověřování subjektů. Alice a Bob musí mít vždy jistotu, že opravdu komunikují spolu. Některé aplikace a implementace mohou mít i jiné cíle, jako je anonymita, utajení identifikačních znaků komunikujících, nebo omezení přístupu ke specifickým zdrojům. Obecně přijímanou praxí v oblasti kryptografie je postulát maximalizace Eviných schopností, znalostí a technický možností. Eva v roli neautorizované třetí strany má také k dispozici neomezený rozpočet. Kromě toho, umí číst všechna data přenášen přes použité komunikační kanály bez ohledu na jejich hardwarovou podstatu. Může také zasahovat do jejich obsahu a vydávat svá vlastní data za data původní. Eva disponuje velmi vysokým výpočetním výkonem a vlastní kompletní popis komunikačních protokolů a dokumentaci pro veškeré známé šifrovací mechanismy s výjimkou tajných informací použitých při šifrování. Všem těmto výhodám, kterými potencionální třetí strana disponuje, je nutné přizpůsobit mechanismy používané v kryptografii.[10][29] 1.4 Kryptografické systémy v obecné rovině Dnešní kryptografické systémy lze v podstatě rozdělit na dva druhy. Prvním jsou systémy, které používají symetrický klíč, tedy symetrická kryptografie. Příkladem takového systému je Data Encryption Standard vyvinutý v sedumdesátých letech minulého století. Pro zajímavost si řekněme, že používá klíč o délce pouhých 64 bitů. Algoritmus Data Encryption Standardu obsahuje slabiny, kvůli kterým lze dnes tuto šifru prolomit útokem hrubou silou za méně než 24 hodin. Hlavní výhodou symetrické kryptografie je její vysoká účinnost a nízké provozní náklady. Jedním z nedostatků symetrického šifrování je takzvaný distribuční problém klíče. Hovoříme o splnění požadavku na vytvoření spolehlivého distribučního kanálu, který bude zabezpečen pro distribuci dat sloužících k šifrování symetrického klíče. Toto rozdělení na data 9
symetrického klíče a samotnou zprávu může být realizováno i fyzicky zabezpečeným kanálem. Další možností je využít služeb důvěryhodné třetí strany, která od počátku realizace zavádí tajné klíče v rámci všech subjektů sítě a pak tyto klíče bezpečně distribuuje. Taková řešení, mohou být výhodná v prostředí, kde je přijatelná a důvěryhodná kontrolní entita. Druhou nevýhodou je problém spravování klíčů většího množství subjektů. Každý subjekt zúčastněný v procesu musí udržovat klíčovací materiály všech ostatních subjektů. Tento problém lze zmírnit pomocí služby důvěryhodných třetích stran, které distribuují klíčovací materiál dle aktuálního požadavku zúčastněných stran, čímž se snižuje potřeba bezpečně ukládat více klíčů v rámci velkého množství subjektů. Druhou variantou je asymetrická kryptografie, tedy šifra s veřejným klíčem. Aplikace asymetrické kryptografie umožňuje zveřejnění šifrovacího algoritmu, šifrovacího klíče a šifrovací metody. V porovnání s mechanismy symetrické kryptografie, kde efektivitu a bezpečnost celého systému tvoří především vlastní návrh příslušného algoritmu, je u asymetrické kryptografie zásadní především použitá algebraická platforma. Příkladem kryptografického systému s veřejným klíčem je metoda RSA pojmenovaná podle iniciál jejích autorů (Rivest, Shamir, Adleman). Při dostatečné délce klíče je i dnes považována tato metoda za bezpečnou. RSA se pokouší odstranit problémy a nedostatky symetrické kryptografie. Veřejné klíče, na jejichž utajení nezáleží, mohou být distribuovány libovolnou cestou. Jediný pár klíčů je možno bezpečně použít pro komunikaci s neomezeným počtem uživatelů. Koncept RSA je také prvním příkladem, který je rozebrán v příloze této diplomové práce pomocí matematického softwaru WOLFRAM MATHEMATICA 10. [13] 1.5 Kryptografie na eliptických křivkách Na počátku je potřeba navrhnout kryptografický systém s veřejným klíčem tak aby nám umožnil výměnu klíčů, podepisování a ověřování dokumentů, šifrování a dešifrování zprávy. Systém by měl spoléhat na základní postuláty, které budou založené na kryptografických primitivech s dobře srozumitelným matematickým pozadím. Pravidla pro provoz takového kryptografického systému by měla být jasná a snadno pochopitelná. Tyto kritéria lze realizovat zcela uspokojivě systémy na základě diskrétního logaritmu. Je zřejmé, že složitost výpočtu diskrétních logaritmů ve zvolené grupě je klíčovou složkou pro bezpečnost systému. 10
Prvočíselnost a faktorizace velkých čísel jsou nezbytné v mnoha aspektech kryptografie veřejných klíčů. RSA je stále nejrozšířenější kryptografický systém s veřejným klíčem, a jeho základní myšlenka je založena na obtížnosti faktorizace velkého čísla oproti jednoduchosti testování prvočíselnosti. Také v rámci koncepce kryptografie na eliptických křivkách bude pracovat především v grupách, které obsahují prvočísla, nebo dokonce velmi velká prvočísla. Takže opět jsou zde prvočísla zásadní. Nejjednodušší prostředkem faktorizace celého čísla je jeho násobení.[9] 1.6 Testování prvočíselnosti s malým ohlédnutím do historie Teď mi prosím dovolte malé ohlédnutí do historie. Hlavní průlom v testování prvočíselnosti znamenala malá Fermatova věta a n 1 1(mod n) (2.1) kde n je prvočíslo které není dělitelné a. Pierre de Fermat, byl francouzský matematik žijící v letech 1601 až 1665. I dnes je možné tuto větu implementovat jako test zdánlivé prvočíselnosti. To ilustruje skutečnost, že matematika přináší hodnoty trvalého rázu, které přetrvávají staletí.[14] I když to není nezbytná, ale postačující podmínka pro prvočíselnost, může být tato věta upravena tak, aby se počet výjimek stal zanedbatelným. Implementace těchto změn a skupina příslušných algoritmů bývá obecně nazývána jako kompozitní testy. Složitější algoritmy a postupy vedou k opravdovému testu prvočíselnosti a mohou poskytnout opravdový důkaz prvočíselnosti. Pokud jsme spokojeni s tím, že číslo je téměř jistě, ale ještě ne prokazatelně prvočíslo, můžeme testování zastavit, a deklarovat naše n jako jakési průmyslové prvočíslo. Nevýhodou je, jak už jsme naznačili výše, že n ve skutečnosti prvočíslo být nemusí, a v důsledku tohoto můžeme vyvolat buď chyby, nebo způsobit bezpečnostní problémy v kryptografickém systému.[5] 11
3. Aritmetika konečných polí Správná implementace aritmetiky konečných polí je důležitým předpokladem pro kryptografické systémy založené na principu eliptických křivek. V následujícím textu uvedeme některé druhy polí, které mají význam pro kryptografii. Popíšeme účinné metody pro provádění základních operací, jako je sčítání, násobení, inverze, umocňování a odmocniny. Efektivní aritmetika konečných polí je zásadní pro efektivní eliptické nebo hypereliptické křivky kryptografických systémů. 1.7 Úvod do konečných aritmetických polí Matematická pole jsou definována jako rozšíření obecně známých číselných soustav. Obecně známou číselnou soustavou jsou například racionální čísla Q, reálná čísla R a komplexní čísla C. K číselným soustavám neoddělitelně patří i jejich základních vlastností. Tvoří je množina F spolu se dvěma dalšími základními matematickými operacemi sčítání (označováno jako+) a násobení (označováno jako ), které splňují obvyklé aritmetické požadavky: 1) 2) F,+ F {0 (, ) je ábelovská skupina s aditivní identitou označená jako 0. je ábelovská skupina s multiplikativní identitou označena jako 1. 3) Distributivní zákon platí také: (a+b) c=a c+b c pro všechna a, b, c F. 1.7.1 Aritmetické operace na konečných polích Pole F je tedy navíc vybaveno dvěma operacemi, sčítání a násobení. Odčítání prvků je definováno pomocí operací sčítání následovně: platí b+( b)=0 a,b F, je a b=a +( b) v případě, b je unikátní prvek v poli F tak, že Podobně operace dělení je definována pomocí násobení: pro a, b F kde b 0, a b =a b 1, kde b 1 je unikátní prvek F tak, že b b 1 =1.[2][3] 12
1.7.2 Existence grupy, řád grupy Řád grupy je určen počtem prvků v rámci této grupy. Někdy se také používá pojem mohutnost, nebo mohutnost grupy. Konečné pole F řádu q existuje právě tehdy, pokud q je kladné celé číslo umocněné na jediné prvočíslo, tedy kladné číslo. q= p m (3.1) kde p je prvočíslo které nazýváme charakteristikou pole F, a m je celé Je-li m=1, pak se F nazývá prvočíselné pole. Pokud m 2, pak F budeme nazývat jako rozšířené pole. Pro každé mocninné prvočíslo q, že je v podstatě pouze jedno konečné pole řádu q, to znamená, že jakákoliv dvě konečná pole řádu q jsou konstrukčně stejná. Říkáme, že každá dvě konečná pole řádu q jsou izomorfní a označujeme takové pole jako F q. [2][3] 1.7.3 Prvočíselná pole Nechť p je prvočíslo. Celá čísla modulo p, která se skládjí z čísel 0, 1, 2,..., p 1 se sčítáním a násobením prováděným pomocí modulo p, vytvoří konečné pole řádu p. Můžeme toto pole označit jako Fp a nazvat p modulus Fp. Pro jakékoliv celé číslo, mod p se označuje jedinečné číslo zbytkové r, 0 r p 1, získané po dělení p. Tato operace se nazývá redukce modulo p. Prvky F29 jsou 0, 1, 2,..., 28 následující jsou některé příklady aritmetických operací v F29. 1) Doplněk: 17+20=8 od 37 mod 29=8 2) Odčítání: 17 20=26 od 3 mod 29=26 3) Násobení: 17 20=21 od 340 mod 29=21 4) Inverze: 17 1=12, protože 17 12 mod 29=1 1.7.4 Binární pole Konečná pole řádu 2 m se nazývají binární pole. Prvky z F 2 m jsou binární polynomy (polynomy, jejichž koeficienty jsou v oblasti F2={0,1}) o hodnotě nejvýše m-1: F 2 m=a m 1 z m 1 +a m 2 z m 2 + +a 2 z 2 +a 1 z+a 0 :a i 0,1 13
Ireducibilní polynom f (z), stupně m existuje pro jakékoliv m a může být účinně nalezen. Neredukovatelnost f (z), znamená, že f (z) nemůže být zapracováno jako produkt binárních polynomů každého stupně menšího než m. Přidání prvků pole je obvyklé přidání polynomů, s koeficientem aritmeticky prováděným prostřednictvím modulo 2. Násobení prvků pole se provádí pomocí modulo redukce polynomu f (z).[1][2][13][28] 1.7.5 Příklad-isomorfní pole Máme tři ireducibilní polynomy čtvrtého stupně: f 1 ( z )=z 4 + z+1 (3.2) f 2 ( z )=z 4 + z 3 +1 (3.3) f 3 (z)=z 4 + z 3 +z 2 +z+1 (3.4) Každý z těchto polynomů může být použit k vytvoření pole F 2 4, můžeme je nazvat P1, P2 a P3. Na první pohled se tato pole mohou zdát odlišná, například z 3 z=z+1 v P 1 (3.5) z 3 z=z 3 +1 v P 2 (3.6) z 3 z=z 3 +z 2 + z+1 v P 3 (3.7) Nicméně, všechny pole v daném pořadí, jsou izomorfní, to znamená, že rozdíly jsou pouze v označování prvků. Podrobnější rozbor jednotlivých rovnic naleznete v přílohách této práce vytvořených pomocí programu WOLFRAM MATHEMATICA 10. 1.7.6 Prodloužení pole Základní formu binárních polí lze zobecnit na všechna další pole a jejich případná rozšíření. Nechť p je prvočíslo a m 2. Nechť F p [ z] je množina všech polynomů v proměnné z s koeficienty F p. Nechť f z je ireducibilní polynom stupně m ve F p [ z] kde jako polynom existuje pro každé p a m je možné efektivně nalézt. Neredukovatelnost f ( z) můžeme vyjádřit tak, že f (z), nemůže být zapracováno jako produkt polynomů v F p [ z] každého stupně menšího než m. Prvky F p m jsou polynomy v F p [ z] stupně nejvýše m 1 : a m 1 z m 1 +a m 2 z m 2 + +a 2 z 2 +a 1 z+a 0 :a i F p F p m= } 14
Přidání prvků pole je obvyklé přidání polynomů. Násobení prvků pole se provádí modulo polynom f (z). [28] 1.7.7 Příklad rozšíření pole Nechť p=251 a m=5. Polynom: f (z)=z 5 +z 4 +12 z 3 +9 z 2 +7 (3.8) je ireducibilní v F 251 [ z], a proto může sloužit jako redukční polynom pro konstrukci F 251 5, konečného pole řádu 251 5. Níže jsou uvedeny některé příklady aritmetických operací v takto vzniklém konečném poli F 251 5. a=123 z 4 +76 z 2 +7 z+4 (3.9) b=196 z 4 +12 z 3 +225 z 2 +76 (3.10) a+b=68 z 4 +12 z 3 +50 z 2 +7 z+80 (3.11) a b=178 z 4 +239 z 3 +102 z 2 +7 z+179 (3.12) a b=117 z 4 +151 z 3 +117 z 2 +182 z+217 (3.13) a 1 =109 z 4 +111 z 3 +250 z 2 +98 z+85 (3.14) V přílohách této diplomové práce naleznete tyto příklady řešeny pomocí programu WOLFRAM MATHEMATICA 10. 1.7.8 Báze konečného pole Konečné pole F g n lze chápat jako vektorový prostor nad polem F g. Vektory jsou prvky F g n, skaláry jsou prvky F g, sčítání vektoru je operace sčítání v F g n a skalární násobení je násobení F g n. Vektorový prostor má dimenzi n a má mnoho bází. Pokud B=b 1, b 2,,b n tvoří bázi, pak můžeme říci že a F g n je jednoznačně reprezentováno n-ticí (a 1,a 2,,a n ) prvků F g tak že: a=a 1 b 1 +a 2 b 2 ++a n b n (3.15) 1.7.9 Multiplikativní grupy konečného pole Nenulové prvky konečného pole F F g, označené q, tvoří cyklickou grupu násobení. Právě proto existují prvky b grupy. Můžeme uvést následující: F q, které můžeme nazývat generátory cyklické 15
F q =b i :0 i q 2 (3.16) Řád F q a je nejmenší kladné celé číslo t takové, že a t =1. Protože je cyklická grupa, znamená to mimo jiné, že t je dělitel q 1. F q 1.7.10 j-invariant Invariant je vlastnost, která se transformacemi nemění. Skutečnost, zda jsou dvě eliptické křivky izomorfní nad algebraicky definovaným uzavřeným polem, nám pomůže zjistit j-invariant. Pokud tedy bude E eliptická křivka dána klasickým předpisem y 2 = x 3 +ax+b (3.17) definována nad polem K tak, že (K ) 2,3. Položíme-li x 1 = μ 2 x, y 1 = μ 3 y, (3.18) tak aby zároveň bylo splněno že μ ϵ Ḱ, pak dostaneme y 1 2 = x 1 3 +a 1 x 1 +b 1 kde a 1 =u 4 a a z á rove ň b 1 =u 6 b (3.19) Můžeme tedy definovat, že j-invariant eliptické křivky E dané rovnicí y 2 = x 3 +ax+b je definován jako j= j(e )=1728 4a 3 4a 3 +27b 2 (3.20) Změna proměnných (3.18) ponechává j-invariant v původní podobě beze změny. Pokud bychom šli následující cestou a definovali dvě eliptické křivky: y 1 2 = x 1 3 +a 1 x 1 +b 1 (3.21) y 2 2 = x 2 3 +a 2 x 2 +b 2 (3.22) s j-invarianty j 1 a j 2. Vezmeme-li pod v úvahu případ kdy j 1 = j 2, pak bude existovat nenulové μ 0 pro Ḱ, takové, že bude splňovat: a 2 = μ 4 a 1,b 2 = μ 6 b 1 (3.23) Transformací x 2 = μ 2 x 1 a y 2 = μ 3 y 1 lze tedy převést jednu rovnici na druhou. Toto tvrzení lze za určitých předpokladů dokázat. Prvním z předpokladů je že a 1 0. Pokud je toto splněno, tak je to stejné jakoby j 1 0 a zároveň a 2 0. Zvolíme μ právě tak aby platilo a 2 = μ 4 a 1 a dostáváme následující: 16
3 4 a 2 4a 3 2 +27b = 4a 3 3 3 1 2 2 4a 3 2 1 +27b = 4 μ a 2 1 4 μ 12 a 3 2 2 +27b = 4 a 2 1 4 a 3 2 +27 μ 12 2 (3.24) b 1 z uvedeného vyplývá b 2 2 =( μ 6 b 1 ) 2 a potom tedy b 2 =± μ 6 b 1. Pokud b 2 =± μ 6 b 1 tak náš příklad úspěšně dospěl do cíle.[16] Pokud b 2 =μ 6 b 1, tak se nám úspěšně podařila transformace z μ do iμ. Zachovali jsme vztah a 2 = μ 4 a 1 a zároveň b 2 =μ 6 b 1. V případě, že by a 1 =0 potom i a 2 =0. Existují dvě speciální hodnoty j-invariantu, které jsou používané velmi často. První případ je, když eliptická křivka E je ve tvaru: pak j (E)=0. Druhý případ nastává, pokud E je ve tvaru: y 2 = x 3 +b (3.25) y 2 = x 3 +ax (3.26) pro které j ( E)=1728. Křivky u kterých je j=0 a s j=1728 mají jiný automorfismus (endomorfismus, který je také izomorfismem ve vztahu k symetrii objektu) který je vlastní ostatním eliptickým křivkám ve Weierstrassově formě. Zejména křivka y 2 = x 3 +b má automorfismus, který můžeme vyjádřit netriviální kubický kořen. Křivka ve tvaru vyjádřit jako x, i y (x, y) ζx, y (x, y ) ), kde ζ je y 2 = x 3 +ax má automorfismus, který můžeme ). Zde vidíme, že j-invariant nám umožňuje určit, zda jsou dvě křivky izomorfní nad algebraicky uzavřenými poli. Pokud budeme pracovat nad polem, které není algebraicky uzavřené, pak se může stát, že dvě křivky se stejným j-invariantem nebude možné transformovat pomocí racionálních funkcí s parametry v rámci použitého pole.[16] J-invarianty mohou být podobně definovány pro eliptické křivky vyjádřené v zobecněné Weierstrassově formě o které blíže pojednává následující kapitola. Křivky takto vyjádřené mají tvar daný rovnicí: y 2 +a 1 x y +a 3 y= x 3 +a 2 x 2 +a 4 x+a 6 (3.27) Pro koeficienty a 1 ;a 2 ;a 3 ; a 4 ;a 6 v rámci (4.23) jsou koeficienty 17
b 2 =a 1 2 +4 a 2 b 4 =a 1 a 3 +2 a 4 b 6 =a 2 3 +4 a 6 b 8 =a 2 1 a 6 a 1 a 3 a 4 +4 a 2 a 6 +a 2 a 2 2 3 a 4 A nakonec ještě uveďme že, j-invariant pro eliptické křivky tvaru (3.27) ve Weierstrassově formě je vyjádřen takto: j= j(e )= c 3 4 Δ (3.28) O hodnotě diskriminantu Δ je pojednáno v následující kapitole.[28] 18
4. Eliptické křivky Začneme pohledem na eliptické křivky dané explicitní polynomiální rovnicí, která se nazývá Weierstrassova rovnice. Pomocí těchto explicitních rovnic, ukážeme mimo jiné, že množina bodů eliptické křivky tvoří ábelovskou grupu, a že tato skupina může být vyjádřena racionálních funkcí. 1.8 Weierstrassova rovnice Eliptická křivka E nad polem K, označeném E / K je dána Weierstrassovou rovnicí E : y 2 +a 1 x y +a 3 y=x 3 +a 2 x 2 +a 4 x+a 6 (4.1) Koeficienty a 1, a 2, a 3, a 4, a 6 K nabývají takové hodnoty, že pro každý bod (x 1, y 1 ) o souřadnicích K, aby parciální derivace dané předpisem 2 y1 +a 1 x 1 +a 3 (4.2) 3 x 2 1 +2a 2 x 1 +a 4 a 1 y 1 (4.3) nezmizely současně. Tato podmínka říká, zda zkoumaná eliptické křivka je nebo není singulární a zda je hladká. Bod na křivce, se nazývá singulární, jestliže obě parciální derivace zmizí. Výše zmíněnou rovnici (4.25) můžeme zapsat ve tvaru E : y 2 +h( x) y= f (x) (4.4) h ( x ), f ( x ) K [ x ] (4.5) Podmínka může být také vyjádřen takto b 2 =a 1 2 +4 a 2, b 4 =a 1 a 3 +2 a 4 b 6 =a 3 2 +4 a 6,b 8 =a 1 2 a 6 a 1 a 3 a 4 +4a 2 a 6 +a 2 a 3 2 a 4 2 Pro liché charakteristiky, transformace izomorfní křivky dané rovnicí y y (a 1 x+a 3 )/ 2 vede k vytvoření y 2 = x 3 + b 2 4 x2 + b 4 2 x+ b 6 4 (4.6) 19
Polynom uvedený výše je vybaven pouze jednoduchými kořeny přes algebraickou uzávěru K tehdy a jen tehdy, pokud jeho diskriminant je nenulový. Diskriminant je proto užitečný pro určení, zda se jedná o eliptickou křivku, či nikoliv.[13][28][18] Pokud E je křivka definovaná nad K a b 2, b 4, b 6 a b 8 jsou definovány tak, jak je uvedeno výše, diskriminant křivky E který můžeme označit Δ splňuje následující podmínku Δ= b 2 2 b 8 8b 3 4 27b 2 6 +9b 2 b 4 b 6 (4.7) když Křivka E není singulární, a tak tedy je eliptickou křivkou, a to pouze v případě, Δ nenabývá nulové hodnoty. V tomto případě platí, že j-invariant: j (E)= (b 2 2 24b 4 ) 3 Δ (4.8) 1.8.1 Příklad eliptických křivek Máme Fp s p=2003, eliptická křivka je dána následovně E 1: y 2 +2 xy+8 y= x 3 +5 x 2 +1136 x+531 (4.9) Ve skutečnosti, máme b 2 =24, b 4 =285, b 6 =185, Δ=1707 0 a j=171 Pro dva body P=( x 1, y 1 ) a Q=(x 2, y 2 ), lze nakreslit přímku, která bude jejich spojnicí. K dispozici je i třetí bod, který je průsečíkem. Zrcadlením tohoto bodu na osu udává součet P Q. Stejného výsledku můžeme dosáhnout pomocí konstrukce tečny v bodě P. Bližší pohled na tuto situaci můžeme najít v přílohách k této podkapitole, zpracovaných pomocí programu WOLFRAM MATHEMATICA 10. y 2 = f ( x ) Dále je třeba definovat součet dvou bodů, se stejnými souřadnicemi x. Jako jsou k dispozici maximálně dva takové body (x 1, y 1 ) a (x 1, y 1 ). Dále musíme najít neutrální prvek celé skupiny. Nalezení neutrálního prvku skupiny lze dosáhnout zahrnutím dalšího bodu P, který se nazývá bod v nekonečnu. Tento bod může být zobrazen jako bod ležící daleko na ose y tak, že jakákoli linie x=c, pro libovolnou konstantu c, rovnoběžná s osou y, tímto bodem prochází. Tento bod je neutrální prvek skupiny. Proto, spojnice (x 1, y 1 ) a (x 1, y 1 ) prochází bodem P. Vzhledem k tomu, slouží jako neutrální prvek, zůstává beze změny tak, že (x 1, y 1 ) (x 1, y 1 )= P, to znamená že (x 1, y 1 = P). [9][18] x 20
Vezměme nyní následující příklad P Q kde x 1 x 2 podle výše uvedeného, a zkusme spočítat souřadnice R= P Q=(x 3, y 3 ). Sečná bude mít sklon daný předpisem λ= y 1 y 2 x 1 x 2 (4.10) a bude procházet bodem P. Její rovnice je tedy dána takto Průsečíky s křivkou získáme takto y=λx + x 1 y 2 x 2 y 1 x 1 x 2 (4.11) (λx+μ) 2 +(a 1 x+a 3 )( λx+ μ)=x 3 +a 2 x 2 +a 4 x+a 6 (4.12) To vede k rovnici r (x)=0 kde r (x)=x 3 +(a 2 λ 2 a 1 λ) x 2 +(a 4 2 λμ a 3 λ a 1 μ) x+a 6 μ 2 a 3 μ (4.13) Známe dva kořeny r (x), a to pro x-souřadnici na dalších dvou místech kde r (x)=( x x 1 )( x x 2 )(x x 3 ) (4.14) jeden kořen má λ 2 +a 1 λ a 2 =x 1 + x 2 + Jako x 1, x 2 jsou definované nad K, takže o x 3 a y 3 =λ x 3 + μ. Vidíme, že pokud P=( x 1, x 2 ), je na křivce pak také jsou (x 1, y 1, a 1 x 1 a 3 ), což odpovídá P. V souladu s tím, najdeme y 3 = λ x 3 μ a 1 x 3 a 3. Zdvojnásobení P=( x x 2 ), funguje stejně se sklonem získaným implicitní derivací. Získáváme: P Q=( x 3, y 3 ) a P=( x 1, y 1, a 1 x 1 a 3 ), P Q=( λ 2 +a 1 λ a 2 x 1 x 2, λ (x 1 x 2 ) y 1 a 1 x 3 a 3 ) pro které platí: pokud P ± Q a λ= y 1 y 2 x 1 x 2 (4.15) λ= 3x 2 1+2a 2 x 1 +a 4 a 1 y 1 (4.16) 2 y 1 +a 1 x 1 +a 3 21
pokud P=Q 1.9 Skalární násobení Vezměme následující n N {0 a označme skalární násobení pomocí n na množině E podle [n] nebo [n] E : [n]: E E P [n] P=P P P a tato operace je provedena n-krát. Tato definice se vztahuje na všechny n Z, v konfiguraci [0] P=P a[n] P=[ n]( P ) pron<0.[17] 1.10 Racionální body Když vezmeme v úvahu bod P na eliptické křivce E / K, tak tento bod P má své souřadnice v Ḱ. Je lepší zdůraznit, že P má přesnou polohu v K a k objasnění tohoto tvrzení uvádíme následující příklad. Nechť E je eliptická křivka definovaná nad K. Body, které leží na křivce E se souřadnicemi v K tvoří množinu K bodů v množině E, definovaných podle E (K ). Můžeme napsat následující E (K )=(x 1, y 1 ) K 2 y 2 1 +a 1 x 1 y 1 +a 3 y 1 =x 3 1 +a 2 x 2 1 +a 4 x 1 +a 6 P Strukturu skupiny Fq -racionálních bodů lze popsat. Protože E (Fq) je buď cyklický, nebo izomorfní součin dvou cyklických grup, které lze popsat jako E (Fq) Z /d 1 Z Z /d 2 Z kde d 1 d 2 a d 1 q 1 Pro kryptografické aplikace se obvykle pracuje v podskupině prvočísel ϑ. S tohoto důvodu náš zájem se bude upírat směrem ke křivkám a konečným polím které lze definovat tak, že E (Fq) cϑ pro některé malé c. Nalezení náhodného Fq -racionálního bodu P na eliptické křivice E / Fq je poměrně snadné. V případě, že má křivka kofaktor c >1, potom tento náhodný bod nemusí ležet uvnitř grupy ϑ. Nicméně, bod Q=[c] P se rovná buď P, v tomto případě je třeba se pokusit pracovat s jiným libovolným bodem P. 22
Uvažujme křivky E 1 z kapitply 5.1.1 můžeme zkontrolovat, zda E1( Fp) 1956=12 163. Takže, máme celkem 1955 afinních bodů se souřadnicemi v Fp a bod v nekonečnu P ležící na E1. Bod P 1 =(1118,269), je z řádu 1956 z čehož vyplývá, že skupina E 1 (F p ) je cyklicky generována pomocí P 1. Bod Q 1 =(892,529), je řádu 163. [9][18][28] 1.11 Torzní body Nechť E / K je eliptická křivka a n Z. Jádro [n], označíme E [n] splňuje E [n]=p E (K ) [n]p= P. Prvek P E [n] se nazývá n-torzní bod. E 1 (F P ) pro 1956=2 2 3 163, mají n-torzní body v E 1 ( F P ) pro každé n dělící číslo 1956. Například, R 1 =1700 a 299 na E1 splňuje R 1 = R 1. Tedy v R 1 je dvojnásobný torzní racionální bod. Pokud n není dělitel čísla 1956, odpovídající n-torzní body jsou souřadnice v nějakém rozšíření F P. Například, máme devítinásobný torzní bod se souřadnicemi v oblasti F p 3 F p [θ ] kde θ je definována tak tak, aby bylo splněno následující: θ 3 +θ 2 +2=0. Můžeme také zkontrolovat následující, zda S 1 =(1239θ 2 +1872θ+112, 1263θ 2 +334θ+1752) E 1 ( F p 3), S 1 =(520,1568) E 1 ( F p ), S 1 =(1239θ 2 +1872θ+112,+265 θ 2 1931θ+19)= S1 Takže můžeme prohlásit, S 1 můžeme vyslovit následující úvahu. je devítinásobný torzní bod. Po těchto zkušenostech Nechť E je eliptická křivka definovaná nad K. Je-li charakteristikou K buď nulový bod nebo prvočíslo v případě n pak E [n] Z / nz Z /nz. V opačném případě, když K = p a n= p r, pak buď E [ p r ]=P, pro všechna r 1 nebo E [ p r ] Z / p r Z, pro všechna r 1. Nechť (K )= p a křivka E ať je definována nad K. Je-li E [ p r ]=P pro jedno a ve skutečnosti i pro všechna pozitivní celá čísla r, pak křivka, která splňuje tyto 23
parametry, se nazývá supersingulární. V opačném případě jde o křivku obyčejnou. Křivka definovaná prostřednictvím prvočíselného pole F p, p>3 je supersingulární právě jen tehdy, pokud E (F p ) p+1. [16][28] 1.12 Izomorfismus Některé změny proměnných se nijak zásadně neprojeví na změně uvažované eliptické křivky. Nyní se pokusíme stručně popsat transformace, které udržují křivku ve Weierstrassově formě. 1.12.1 Přípustná změna proměnných eliptických křivek Mějme například E / K eliptickou křivku kterou můžeme také vyjádřit předpisem: E : y 2 +a 1 xy+a 3 y=x 3 +a 2 x 2 +a 4 x+a 6 (4.17) Transformační předpisy pro mapování by mohly být následující: x u 2 x ' +r a y u 3 x ' +u 2 sx+t (4.18) kde (u,r, s, t ) K K3 transformují křivku E do podoby E ' : E ' : y ' 2 +a 1 ' x ' y ' +a 3 ' y ' = x ' 3 +a 2 ' x ' 2 ' +a 4 x ' ' +a 6 (4.19) ' V tomto tvaru znamená, že a i náleží K a tyto parametry mohou být vyjádřeny v kontextu u, r, s, t. Prostřednictvím transformačního předpisu, nebo jak je také v literatuře často používáno inverzních map, přiřadíme ke každému bodu E bod náležící E ' což ukazuje, že obě křivky jsou izomorfní nad tělesem K. Tyto změny proměnných jsou jediné, které nezasahují do tvaru definované rovnice a jsou tedy pouze změnou proměnných. V případě, že (u,r, s,t), patří do Ḱ Ḱ 3 a pokud křivky E a E ' jsou stále definovány nad K pak E a E ' jsou izomorfní nad K. Předpokládejme, že jedna z charakteristik K je 6 a E je dána krátkou Weierstrassovou rovnicí ve tvaru E : y 2 =x 3 +a 4 x +a 6 (4.20) ' 1. Je-li a 4 =0, pak pro každé a 6 K křivka E bude isomorfní pro E ' : y 2 =x 3 ' +a 6 nad K (a 6 /a ' 6 ) 1/ 6, 24
2. Je-li a 6 =0, pak pro každéh a 4 ' K křivka E bude isomorfní pro E ' : y 2 =x 3 +a 4 ' x nad K (a 4 /a 4 ' ) 1/ 4, 3. Je-li a 4 a 6 0 potom pro každé v K bude křivka E isomorfní v případě kdy E v : y 2 =x 2 +a 4 ' x+a 6 ' a zároveň a 4 ' =v 2 a 4 spolu s a ' 6 =v 3 a 6 v rámci pole K ( v). Bližší pohled na tuto křivku můžeme najít v přílohách k této podkapitole, zpracovaných pomocí programu WOLFRAM MATHEMATICA 10. Křivky typu E v jsou nazývány jako kvadratické zvraty v rámci E. Můžeme si povšimnout skutečnosti, že E je isomorfní k E v nad K tehdy a právě jen tehdy, pokud v je druhou mocninou v rámci K. Existuje pouze jeden kvadratický zvrat křivky s a 4 a 6 0. Podobně lze definovat kvadratický zvrat v E jako E v : y 2 =x 3 +a 4 x+a 6, který je izomorfní výše uvedené definici, jak je vidět během dělení pomocí v 3 a transformaci ve tvaru y y/v, x x/v. Z tohoto zobrazení vidíme, že E a E v obsahují přesně dva body (x, y i ), pro každý prvek náležící x F q. Dále bude nutné zdůraznit ještě následující vlastnost. Nechť E / K a E ' / K jsou dvě eliptické křivky. Je-li E a E ' izomorfní nad K pak mají stejnou hodnotu j. Naopak, je-li j (E)= j (E ' ), pak E a E ' jsou izomorfní nad Ḱ. Použitím adekvátního izomorfismu nad K, je vždy možné najít krátkou Weierstrassovu rovnici, jejíž tvar závisí na charakteristice použitého pole a na hodnotě parametru j.[9][16][18] Všechny tyto případy jsou popsány zde: 1. Pokud K 2, 3 potom zkrácená Weirstrassva rovnice nabude tvaru y 2 = x 3 +a 4 x+a 6 hodnota = 16(4 a 3 4 +27a 2 6 ) a hodnota parametru j=1728 a 3 4 /4Δ 2. Pokud K =3 potom zkrácená Weirstrassva rovnice nabude tvaru y 2 = x 3 +a 4 x+a 6 hodnota = a 4 3 a hodnota parametru j=0 25
3. Pokud K =3 potom zkrácená Weirstrassva rovnice může také mít tvar y 2 = x 3 +a 2 x 2 +a 6 hodnota = a 2 3 a 6 a hodnota parametru j= a 3 2 a 6 4. Pokud K =2 potom zkrácená Weirstrassva rovnice nabude tvaru y 2 +a 3 y=x 3 +a 4 x+a 6 hodnota =a 3 4 a hodnota parametru j=0 5. Pokud K =2 potom zkrácená Weirstrassova rovnice nabude tvaru y 2 +xy= x 3 +a 2 x 2 +a 6 hodnota =a 6 a hodnota parametru j= 1 a 6 1.12.2 Příklad přípustné změny proměnných Na tomto příkladu můžeme ukázat, co se stane, když provedeme následující malou změnu (x, y) (x 2, y x 2) a převedeme tím rovnici z podkapitoly 4.1.1. na tvar E 2 : y 2 =x 3 +1132x+278 (4.21) Bod P1=(1118, 269), je mapována na P2=(1120,1391) E 2 (F p ). Nechť v je kvadratická modulo p=2003 a dále u F p 2 je druhá odmocnina v. Potom změna proměnných (x, y ) (x/u 2, y /u 3 ) je F p 2 isomorfismus mezi křivkou definovanou pomocí předpisu (4.43) a jeho kvadratickým ekvivalentem podle v bude ve tvaru Ẽ 2, v: y 2 = x 3 +1132 v 2 +278 v 3 (4.22), který Máme tedy Δ(Ẽ 2, v)=v 6 Δ(E 2 ) a j (Ẽ 2, v)= j(e 2 )=171. Křivky Ẽ 2 a E 2, jsou definovány nad F p vzhledem k tomu, má jejich izomorfismus koeficienty v F p 2. Podrobnější detail můžeme najít v příloze k této podkapitole, zpracované pomocí programu W OLFRAM MATHEMATICA 10. Existuje mnoho jiných způsobů, jak reprezentovat eliptickou křivku. Například, můžeme ukázat Legendreovu formu y 2 = x( x 1)(x λ) (4.23) 26
nebo Jacobiho model y 2 = x 4 +a x 2 +b (4.24) V polích s charakteristikou vyšší než 3, je také možné reprezentovat eliptický křivku jako průnik dvou kvádrů s racionálním bodem. Výsledná Jacobiho forma se používá, aby se zabránilo SPA/DPA útokům. Nedávno si pozornost získalo jiné zastoupení prezentace eliptických křivek a to takzvaná Hessova forma, která představuje řadu výhod z algoritmického a kryptografického hlediska. Hessovu formu si nyní představíme v následující kapitole.[9][13] 1.13 Hessova forma eliptických křivek Takže máme tady F q jako konečné pole, kde q je prvočíslo takové aby splňovalo podmínku q 2(mod 3) a můžeme v rámci takto definovaného pole uvažovat o eliptické křivce E nad konečným polem F q. Tyto předpoklady nejsou zásadně nutné, ale právě tyto požadavky dělají stavbu Hessovi formy snadnější a může tak být definována rovnice nad F q. Mějme křivku E, která je dána rovnicí E : y 2 +a 1 xy+a 3 y=x 3 (4.25) Nechť a 1 3 27a 3 δ= ), takže Δ=a 3 3 δ. Pokud zachováme q q2(mod 3) potom každý prvek který bude náležet konečnému poli α F q bude mít kubický základ. Z toho vyplívá, že každé α má jedinečný kubický kořen, který můžeme označit α 1/ 3, který se rovná plus nebo mínus na čtvercový kořen α (q+1)/3. Z tohoto vyplyne následující: μ= 1 3 ( 27a 3 δ 2 δ 3 ) 1/3 +δ Fq (4.26) Při tomto nastavení, ke každému bodu (x 1, y 2 ) ležícím na E odpovídají ( X 1 :Y 1 :Z 1 ) s parametry X 1 = a 1(2 μ δ) 3 μ δ x 1 + y 1 +a 3 (4.27) Y 1 = a1 μ 3 μ δ x 1 y 1 (4.28) Z 1 = a1 μ 3 μ δ x 1 a 3 (4.29) 27
a v kubické prezentaci to bude H : X 3 +Y 3 +Z 3 =cxyz,kde c=3 μ δ μ (4.30) Křivky tohoto typu jsou pojmenované po německém matematikovi Otto Hessovi 1. Hessovi křivky byly shledány jako zajímavé pro použití v kryptografii, protože aritmetika těchto křivek a jejich reprezentace v rámci výpočetních algoritmů je rychlejší a vyžaduje méně operační paměti než aritmetika eliptických křivek v klasické Weierstrassově formě. Jedním z hlavních rysů eliptických křivek vyjádřených v Hessově podobě je jednoduchost grupy, která není závislá na parametru c. Vezmeme-li v úvahu následující: P=( X 1 :Y 1 : Z 1 ) a Q=( X 2 :Y 2 : Z 2 ) na H taková, že P Q, pak bod se souřadnicemi ( X 3 :Y 3 : Z 3 ) splňující: X 3 =Y 1 2 X 2 Z 2 Y 2 2 X 1 Z 1, Y 3 = X 1 2 Y 2 Z 2 X 2 2 Y 1 Z 1, Z 3 =Z 1 2 X 2 Y 2 Z 2 2 X 1 Y 1 leží na H a odpovídá P Q Dá se zjistit, že neutrální prvek podle tohoto předpisu je (1: 1 :0), a že protějšek P1 P 1 =(Y 1 : X 1 : Z 1 ). Souřadnice P budou tedy: X 3 =Y 1 ( Z 1 3 X 13 ),Y 3 = X 1 (Y 1 3 Z 13 ), Z 3 =Z 1 ( X 1 3 Y 1 3 ). Chceme-li najít Hessovu podobu eliptické křivky E / F q v obecném tvaru může nám pomoci, že j-invariant H je roven c 3 (c 3 +216) 3 j= c 9 81 c 6 +2187 c 3 19683 (4.31) v alternativní formě j= c3 (c 3 +216) 3 (c 3 27) 3 (4.32) nebo také 1Ludwig Otto Hesse (22. dubna 1811-4. srpna 1874) byl německý matematik. Hesse se narodil v Königsbergu, tehdejším Prusku, a zemřel v Mnichově v Bavorsku. Hessovi matice, Hessova normální forma, Hesova skupina, Hessovi páry, Hessova věta. Tyto matematické objekty jsou všechny pojmenovány po něm. 28
j= c3 (c+6) 3 (c 2 6c+36) 3 (c 3) 3 (c 2 +3 c+9) 3 (4.33) Takže eliptická křivka v Hessově formě pro E je definována nad F q tehdy a pávě jen tehdy, pokud existuje C F q právě tak, aby platilo: c 3 (c 3 +216) 3 j (C 9 81c 6 +2187c 3 19683 )=0 (4.34) kde j je j-invariant E. Můžeme vzít následující příklad: E 2 : y 2 =x 3 +1132 x+278 (4.35) Definováno v rámci F p s p=2003. Pokud přesuneme bod (522,1914) E 2 ( F p ) řádu 3 pomocí transformace (x, y) (x+522, y+555x +1914) dostaneme křivku E 3: y 2 +1110 xy+1825 y=x 3 (4.36) v alternativní formě vyjádřenou jako x 3 +1110 xy+ y 2 +1825 y=0 (4.37) Tak, že δ=1427 a μ=1322 potom tedy E 3, a následně E 2 a E 1, budou izomorfní v rámci H : X 3 +Y 3 +Z 3 =274XYZ Bod (1118, 269) na E 1 je transformován na (1120,1391) na E 2, odkud je dále mapovány na (598,85) na E 3, odkud se nakonec objeví na (1451:672 :935) v rámci H. Všimněte si, že všechny tyto proměny dodržovat zákony skupiny různých křivek. Podrobnější detail můžeme najít v příloze k této podkapitole, zpracované pomocí programu W OLFRAM MATHEMATICA 10.[15] 1.14 Hasseho věta Hasseho věta, které poskytuje odhad pro počet bodů na eliptické křivce nad konečným tělesem, později značně zobecněná pány Weilem a Delignem, kteří dodali, že je to pravda až na pár náhodných výkyvů. Označíme-li jako N počet bodů na eliptické křivce E nad konečným tělesem s počtem prvků označených q, pak můžeme napsat následující 29
N ( p+1) 2 p Tak bychom mohli očekávat, že počet bodů v E ( F p ) je přibližně E (F p ) 50 2 p +1= p+1 Dále můžeme napsat, že pokud je E eliptická křivka nad F p, tak platí E (F p )= p+1 t p s t p, které by splňoval podmínku t p 2 s. Hodnota t p = p+1 E (F p ) se nazývá Frobeniova stopa E / F p. V tomto případě t p jeví jako stopa určité matice, která funguje jako lineární transformace na dvourozměrném vektorovém prostoru přidružené k E / F p.[9][21] 1.14.1 Frobeniova stopa Mějme eliptickou křivku E, která bude dána rovnicí E : y 2 =x 3 +4 x+6 (4.38) můžeme pracovat s naším E jako s eliptickou křivkou nad F p pro různá konečná pole F p a spočítat počet bodů v F E ( p). Hasseho věta (viz kapitola 4.7) dává mez pro F E ( p), ale neposkytuje metodu pro výpočet tohoto množství. V zásadě lze dosadit pro každou hodnotu x a zkontrolovat hodnotu x 3 +a x+b proti tabulce druhých mocnin modulo p, ale to vyžaduje čas O( p), můžeme tedy říci, že se jedná o neefektivní řešení. Lepší variantu jak zjistit počet F E ( p) v polynomiálním čase O(log p) 6 nalez nizozemský matematik René Schoof. Schoofův algoritmus byl vylepšen pány Elkiesem a Atkinsem, takže je nyní známý jako SEA algoritmus.[18] 1.15 Eliptické křivky nad F 2 a F 2 k Počítače mají přirozenou vlastnost, která vyplývá z jejich binární podstaty. Snadno provádí výpočty modulo 2. Takže se přirozeně nabízí používat eliptické křivky modulo 2 a je cítit, že by se někde mohla zvýšit efektivita. Bohužel, pokud E bude eliptická křivka 30
definovaná nad F 2, pak E (F 2 ) bude zahrnovat nejvýše pět bodů. Takže E (F 2 ), není bohužel vhodná pro kryptografické účely. Naštěstí existují i jiná konečná pole, kde 2=0. Jedná se o pole F 2 k které obsahuje 2k prvků. Připomeňme si, že pro každé p k existuje pole F p k které obsahuje p k prvků a že existuje právě jedno takové pole. Můžeme si půjčit eliptickou křivku, jejíž Weierstrassova rovnice má koeficienty v poli F p k a podívat se na skupinu bodů na této křivce, která má souřadnice v F p k. Hasseho větu (viz kapitola 4.7), lze v tomto případě použít v této obecnější podobě: E ( F k p )= p k k +1 t k p tak aby 2 t p k t p k 2 p (4.39) Uveďme si nyní následující příklad. Pracujeme s poli F 9 =a +bi :a, b F 3 kde i 2 = 1 Nechť E je eliptická křivka nad F 9 definována rovnicí E : y 2 =x 3 +(1+i) x+(2+i) Metodou pokusu a omylu můžeme zjistit, že existuje 10 bodů v rámci E (F 9 ), (2i,1+2i ), (2i,2+i ), (1+i,1+i ), (1+i,2+2i ), (2,0), ( 2+i,i ),( 2+i,2i ), (2+2i,1 ), (2+2i,2 ),Ω kter body je možné zdvojnásobit nebo přidat další pomocí vzorce pro přidávání bodů. Vždy musí být splněna podmínka i 2 = 1 a vše musí probíhat v rámci modulo 3. (2,0)+(2+i,2i)=(2i,1+2i) a 2(1+i,2+2i)=(2+i,i) Naším cílem je využít eliptických křivek nad F 2 k pro kryptografický koncept, ale je zde jedna potíž. Problém je v tom že jsme definovali eliptickou křivku jako křivku danou Weierstrassovou rovnicí y 2 = x 3 +ax+b s diskriminantem definovaným jako: Δ=4 a 3 +27b 2 0 Ve skutečnosti, správná definice pro diskriminant pro tento případ zní: Δ= 16(4 a 3 +27 b 2 ) A co teď? Nějakou dobu se nebude dít nic. Pokud se budeme pohybovat v oblasti, kde bude platit 2 0, pak je podmínka Δ 0 splněna. Pro pole jako je právě F 2 k, kde 2=0, máme Δ=0 pro každou standardně definovanou Weierstrassovu rovnici. 31
Řešením je zvětšit počtu přípustných Weierstrassových rovnic. Eliptická křivka E je množina řešení zobecněná Weierstrassovou rovnicí E : y 2 +a 1 x y +a 3 y=x 3 +a 2 x 2 +a 4 x+a 6 spolu s dodatečným bodem Ω. Koeficienty a 1,, a 6 musí splňovat požadavek Δ 0, kde diskriminant Δ bude definován z hlediska určité hodnoty parametrů (b 2,b 4,b 6 b 8 ) takto: b 2 =a 1 2 +4 a 2 b 6 =2 a 4 +a 1 a 3 b 6 =a 3 2 +4 a 6 b 8 =a 1 2 a 6 +4a 2 a 6 a 1 a 3 a 6 +a 2 a 3 2 a 4 2 Δ= b 2 2 b 8 8b 3 4 27b 2 6 +9 b 2 b 4 b 6 I když tyto vzorce mohou působit odstrašující dojmem tak podmínka Δ 0, je přesně to, co je zapotřebí, abychom zajistily, že křivka E není singulární. Geometrická definice sčítání na křivce E (x, y) (x, y) lze nahradit modifikovaným krokem ve tvaru (x, y) (x, y a 1 x a 3 ) Existuje celá řada výhod, které zdůvodní proč pracovat s eliptickými křivkami definovaných nad F 2 k, spíše než s eliptickými křivkami nad F p k. Již na začátku kapitoly 4.8, jsme zmínili první z nich. Touto výhodou je binární povaha počítačů, které efektivně pracují v situacích, kdy 2=0 tedy s modulem 2. Druhou výhodu můžeme využít tehdy, pokud zvolíme proměnnou k tak, aby F 2 k obsahovalo jiné konečná pole ležící mezi F 2 a F 2 k. Přesné vyjádření by mělo znít tak že F 2 j je podmnožinou pole F 2 k tehdy a právě jen tehdy pokud j k. Toto pole může být někdy využito k urychlení výpočtů, ale existují i případy, které mohou způsobit bezpečnostní problémy. Tak jak tomu často bývá, zvýšení efektivity může přijít za cenu snížené bezpečnosti. Aby se předešlo případným problémům, je často nejbezpečnější použít pole F 2 k tak, aby k bylo prvočíslo. 32
Třetí a zřejmě nejdůležitější výhodou práce v rámci pole F 2 k je založená na doporučení Neala Koblitze použít eliptické křivky E nad F 2, přičemž body E budou mít souřadnicemi v F 2 k. To umožňuje použití Frobeniovy mapy a vede k významnému nárůstu efektivity.[9][18][28] 33
1.16 Frobeniova mapa Frobeniova mapa τ je mapa vytvořená prostřednictvím pole F 2 k k sobě samému definovaná pravidlem τ : F k 2 F k 2, α α p Frobeniova mapa má překvapující vlastnost, že se zachovává sčítání a násobení. τ (α+ β )=τ (α)+τ ( β ) τ (α β )=τ (α) τ ( β ) Pravidlo násobení lze objasnit takto: τ (α β)=(α β) p =α p β p =τ (α) τ (β ) dokázat Obecně platí, že pravidlo násobení je důsledkem binomické věty. Pro p=2 lze τ (α+ β )=( α+ β ) 2 =α 2 +2α β + β 2 =α 2 + β 2 =τ (α )+τ (β ) kde se opět dostáváme k zázračné formuli, že 2=0 v rámci pole F 2 k. Bude dobré zdůraznit i skutečnost, že τ (α )=α pro každé α F 2 když F 2 =0,1., což je jednoduché v případě Uvedeme si nyní další příklad, na kterém se pokusíme vysvětlit další užitečné vlastnosti map τ. Vezmeme si na pomoc eliptickou křivku E která bude definovaná nad F 2, pomocí všeobecné Weierstrassovy rovnice s koeficienty v F 2 a P=( x, y) E ( F 2 k) je bod na této křivce E se souřadnicemi v nějaké větším poli F 2 k. [9] Definujeme Frobeniovu mapu k bodům v E (F 2 k) aplikací τ na každý koordinát takto: τ ( P)=(T ( x ), τ ( y )) τ ( P ) E (F 2 k) τ ( P+Q)=τ ( P)+τ (Q) 34
V matematické terminologii bychom řekli, že Frobeniova mapa je skupina homomorfismů skupiny E ( F 2 k ) sama na sebe. Pokusíme se to dokázat pomocí příkladu. Předpokládejme následující situaci p=( x, y ) E (F k 2 ). Z toho vyplyne následující: y 2 +a 1 xy+a 3 y x 3 a 2 x 2 a 4 x a 6 =0 Při použití τ na obou stranách rovnice a pomocí respektování τ při sčítání a násobení v F 2 k, zjistíme: τ ( y) 2 +τ (a 1 )τ (x) τ ( y)+τ (a 3 )τ ( y) τ ( x) 3 τ (a 2 )τ ( x) 2 τ (a 4 )τ ( x) τ (a 6 )=0 1.17 Racionální funkce a dělitelé na eliptických křivkách Pokud se budeme chtít přiblížit k definici Weilova a případně Tateho párování na eliptických křivkách, musíme vysvětlit, jak racionální funkce na eliptických křivkách souvisí s jejich póly a základními-nulovými hodnotami. Začneme s případem racionální funkce jedné proměnné. Racionální funkce je v tomto případě dána takto: f (x )= a 0+a 1 x+a 2 x 2 + +a n x n b 0 +b 1 x+b 2 x 2 + +b n x n S libovolnými polynomy lze počítat v určitých situacích se dobrat výsledku pouze tehdy, pokud začneme pracovat s komplexními čísly. Racionální funkce může být popsána následovně: f (x)= a (x α 1 )e 1 ( x α2 ) e 2 (x αr ) e r b(x β 1 ) d 1 ( x β2 ) d 2 (x β s ) d s Čísla α 1,, α r se nazývají základní nebo nulové body f (x ) a čísla β 1,, β s se nazývají póly f (x ). Exponenty e 1,, e r, d 1,, d s na sebe navazují díky násobnosti. Sledujeme-li základní body a póly f (x ) aby jejich součet odpovídal: f (x ) a jejich násobky tak, že definujeme dělitele ( f ( x ))=e 1 [α 1 ]+e 2 [α 2 ]+ +e r [α r ] d 1 [ β 1 ] d 2 [ β 2 ] d r [ β r ] Takto lze vyjádřit zajímavou vlastnost f (x ), která má nulovou násobnost e 1 na α 1 a taktéž na e 2 na α 2 a mohli bychom ve výčtu dále pokračovat. 35
křivky Podobným způsobem podle vzoru uvedeného výše můžeme ukázat v rámci eliptické a v případě že E : y 2 =x 3 +a x+b (4.40) f (x, y) je racionální funkce dvou proměnných, pak existují body na křivce E, kde čitatel definovaný v rámci f zmizí a zároveň existují body na křivce E, kde pro změnu zmizí jmenovatel f. Nastane situace ve které f bude mít své póly a základní body na E. Existuje tedy dělitel: ( f )= n P [ P ] P E V tomto součtu, koeficienty n P jsou celá čísla, a jen konečný počet n P je různý od nuly. Předpokládejme, že kubický polynom sloužící pro definování E je následující: x 3 +ax+b=( x α 1 ) (x α 2 ) (x α 3 ) Potom body P 1 =(α 1,0 ), P 2 =(α 2,0), P 3 =(α 3,0) jsou body řádu 2. a měli by splňovat podmínku, která je dána předpisem 2P1=2P2=2P3=Ω. O bodu Ω jsme hovořili v kapitole 4.8. Dělitel je roven (Y )= P1 + [P2 ]+[ P3 ] 3[Ω ] Všimněte si, že definujeme dělitele na E tak aby platilo: D= n P [ P] P E P1, P2, P3 jsou různé body. V obecném smyslu můžeme říci, n P Z a n P =0 pro všechna, ale konečně mnoho P. stupeň dělitele je součet jeho koeficientů: deg (D)= n P [ P ]= n P P E P E a nakonec definujeme součet dělitelů takto: ( D )= ( P E n P [P ] ) = n P P P E Všimněte si prosím, co znamená n P [ P], jde o to přiřadit P na sebe sama n P krát pomocí sčítání v rámci E. Jedná se tedy z hlediska programátorského vidění světa o 36