Problematika převodu zprávy na body eliptické křivky Ing. Filip Buršík Ústav telekomunikací Fakulta elektrotechniky a komunikačních technologií Vysoké Učení Technické v Brně Purkyňova 118, 612 00 Brno, Czech Republic fbursik@gity.cz V dnešní době se v asymetrické kryptografii stále více prosazuje použití eliptických křivek. Cílem tohoto článku je popsat jeden z možných algoritmů převodu zprávy na body eliptické křivky, bez kterého se nelze při nasazení eliptických křivek obejít. Algoritmus je dále podroben testům na reálných křivkách doporučených organizací ECC Brainpool. 1 Úvod V dnešní době je kryptografie součástí běžného života. Má uplatnění jak v profesním, tak i v soukromém životě. Kryptografie se zabývá převodem otevřeného textu na kryptogram a následným dešifrováním do původní podoby. Existují dva základní typy kryptografických algoritmů : 1. Symetrické algoritmy pro šifrování a dešifrování se používají rozdílné klíče, kde dešifrovací klíč lze v reálném čase odvodit z klíče použitého pro šifrování. 2. Asymetrické algoritmy - pro šifrování a dešifrování se používají rozdílné klíče (tajný klíč, veřejný klíč), kde tajný klíč nelze v reálném čase z veřejného odvodit. Typickým představitelem asymetrických kryptosystémů je algoritmus RSA, jehož síla spočívá v problému řešení úlohy faktorizace velkého přirozeného čísla na součin dvou prvočísel. K tomu, aby použitý kryptosystém byl dostatečně bezpečný vůči útokům hrubou silou, je třeba stanovit dostatečnou délku klíče. V dnešní době se u algoritmu RSA za bezpečné považuje délka klíče 1024 b (v závislosti na typu aplikace), ale s rostoucím výkonem počítačů můžeme očekávat, že pro zachování stupně bezpečnosti bude muset délka klíče růst. Udává se [7], že v roce 2010 vzroste délka klíče přibližně dvojnásobně na 2048 b, což bude mít neblahé následky na náročnost implementace. Z tohoto důvodu se hledají nové algoritmy, které jsou založené na úloze s vyšší složitosti řešení, kterou musí útočník překonat. V dnešní době se stále více prosazuje použití eliptických křivek v kryptografii i přes překážky při jejich nasazení. Jednou z nich je problém, jak co nejefektivněji převést zprávu na body eliptické křivky. 2 Obecně o eliptických křivkách Využití eliptických křivek v kryptografii má svoje počátky již v roce 1985, kdy pánové V. Miller a N. Koblitz nezávisle na sobě použili teorii eliptických křivek v systémech s veřejným klíčem, kde je modulární aritmetika nahrazena operacemi definovanými nad eliptickou křivkou. Stejně jako v jiných systémech s veřejným klíčem, tak i systémy 32-1
eliptických křivek spoléhají na výpočetně těžký problém. Mějme dva body na eliptické křivce P a Q takové, že P = k * Q, kde celá bezpečnost je postavena na problému nalezení čísla k. Tomuto problému se říká problém diskrétního logaritmu nad eliptickou křivkou a jeho řešení pro speciální množinu křivek má exponenciální složitost. Ve srovnání s algoritmem RSA založeným na problému faktorizace čísla, dosahuje řešení s eliptickými křivkami mnohem kratších klíčů při srovnatelné bezpečnosti. Z tohoto hlediska mají eliptické křivky velkou budoucnost. V tab. I je srovnání délek klíčů. Jak je vidět, eliptické křivky mají nepoměrně kratší klíče, jejichž délka se dokonce blíží symetrickým šifrám. Symetrická šifra Eliptické křivky RSA 56 112 512 64 128 768 80 163 1024 112 224 2048 128 283 3072 192 409 7680 256 571 15360 Tab. I : Porovnání délek klíčů při srovnatelné bezpečnosti Pro podporu vývoje kryptografie nad eliptickými křivkami společnost CERTICOM sponzoruje prolomení eliptických křivek s různými délkami klíčů. Do této soutěže se může přihlásit každý, kdo má k dispozici značně velké množství přebytečného výpočetního výkonu. Pro představu k prolomení křivky se 109-bitovými parametry nad prvočíselným tělesem (v tab. II uvedená jako ECCp-109) potřeboval Chris Monico a jeho tým matematiků z Notre Dame v roce 2002 10 000 počítačů, které byly v provozu nepřetržitě 549 dní. V tab. II je přehled křivek, které již byly prolomeny a které ještě odolávají a příslušná odměna, která čeká na jejich přemožitele. Tab.II : přehled eliptických křivek nad F(p) 32-2
Výše uvedené vlastnosti eliptických křivek jsou velmi výhodné, ale existují i problémy, které se musí řešit při jejich implementaci. Jedním z nich je problém, jak převést data, která mají být šifrována, na eliptickou křivku. V následující kapitole je popsán algoritmus podle N. Koblize, který daný problém řeší. 3 Převod zprávy na body eliptické křivky Pokud je k šifrování použito eliptických křivek, jedním z prvních kroků musí být převod dat, která mají být šifrována, na body eliptické křivky tak, aby příjemce byl schopen z obdržených bodů zpětně zprávu rekonstruovat. Není to proces jednoduchý. To dokládá i fakt, že zatím nebyl nalezen deterministický algoritmus, který by převod realizoval v polynomiálním čase. Ale existuje alternativa, která má pravděpodobnostní charakter a využívá faktu, že hustota bodů eliptické křivky je téměř rovnoměrně rozložena. Předpokladem je, že se zpráva m jednoduchým způsobem vztahuje k x-souřadnici bodu. 3.1 Nalezení kořenů rovnice y 2 = f(x) Převod zprávy na body eliptické křivky neznamená jejich šifrování, ale jde o jednoduché zakódování dat na danou eliptickou křivku E definovanou nad konečným tělesem F(p). Obecná rovnice eliptické křivky má tvar : E : y 2 = x 3 + ax + b. (1) Po převedení pravé strany do jednodušší formy f(x) dostaneme tvar : y 2 = f(x). (2) Klíčovým místem převodu je právě rozhodnutí, zda rovnice (2) má pro dané x řešení (existuje y) a pokud ano, tak jej nalézt. Nalezení kořene kvadratické rovnice (2) popsal H. Cohen [6] následujícím způsobem: Mějme p, které je náhodné prvočíslo a f(x) je kvadratické reziduum [5], potom existuje y takové, že y 2 f(x)(mod p). V konečném tělese F(p), kde p vyhovuje vztahu p 3 (mod 4), má řešení tvar : y = f(x) (p+1)/4 (mod p). (3) 3.2 Algoritmus převodu zprávy m na body eliptické křivky podle N.Koblitze [1] 1. Mějme prvočíslo p, pro které platí p 3 (mod 4) a eliptickou křivku E : y 2 = x 3 + ax + b. 2. Zvolme číslo K takové, že 1/2 K vyjadřuje pravděpodobnost chyby při převodu. V praxi se volí K=30 nebo K=50. 3. Zpráva je z množiny {m F p m < (p-k)/k} 32-3
4. Od j = 0,1,2,, K-1 Nastav x j podle vztahu : x j = m*k + j Spočítej: w j = x j 3 + ax j + b (výpočet rovnice eliptické křivky,pro jednodušší zápis je nahrazeno y 2 veličinou w ) a z j = w j (p+1)/4 (mod p) (výpočet kořene kvadratické rovnice y 2 = f(x)) Pokud z j 2 = w j (w j je kvadratické reziduum mod p), potom (x j,z j ) je bod na eliptické křivce E, který reprezentuje zprávu m, jinak zvyš j o jednu a výpočet opakuj. Pokud j (1,2,,K-1) nevyhovuje, bod reprezentující zprávu m nenalezen. Pravděpodobnost, že se převod nepovede je 1/2 K, což pro používaná K je velmi malá. 5. Z bodu (x,y) dekódujeme zprávu m vztahem m = x/k Eliptická křivka E nad F p y 2 = x 3 + ax + b Zvolení x i, které odpovídá vztahu x i = mk + j Jednotka zprávy m, j=1 Výpočet rovnic w i = x i 3 + ax i + b z i = w i (p+1)/4 (mod p) Zvětšení j o 1 NE Je w i kvadratické reziduum (z i 2 = w i ) ANO y = z i P(x,y) je bod na eliptické křivce E, který reprezentuje zprávu m 32-4
Obr.1 : Graficky znázorněný algoritmus pro nalezení bodu na křivce E Pro popsání algoritmu byla vybrána eliptická křivka nad prvočíselným tělesem Fp, kde p je velké prvočíslo, protože je pro popis jednodušší. V praxi se dále používá těleso F2m, které obsahuje všechny m-tice bitů a pro počítačové zpracování je vhodnější. V současnosti se používají obě tělesa, neboť každé z nich má své nesporné výhody. 4 Testování 4.1 Doporučené eliptické křivky Generování eliptických křivek, není tak jednoduchý proces, protože nově vygenerované křivky se musí podrobit důkladným statistickým testům. Aby každý, kdo chce využit eliptických křivek, nemusel tento proces absolvovat, organizace, které se zabývají touto oblastí kryptografie dávají k dispozici kvalitní prověřené křivky, které splňují mezinárodní standardy. Pro testy byly zvoleny eliptické křivky, které jsou k dispozici na stránkách organizace ECC Brainpool, délek 160 b,192 b,224 b,256 b,320 b,384 b,512 b, které vyhovují standardům ETSI, ANSI, NIST, a SecG. 4.2 Výsledky testování Ke každé křivce bylo vygenerováno deset tisíc x-ových souřadnic a k nim byly dopočítávány y-ové souřadnice podle výše popsaného algoritmu. Bylo zkoumáno, kolik se k x-ové souřadnici musí přičíst (počet cyklů algoritmu), aby vyhovovala eliptické křivce. V tab.iii jsou všechny testované křivky. Ke každé křivce jsou uvedeny dva údaje. První udává kolik se muselo přičíst v nejhorším případě a druhý udává kolik se průměrně musí přičíst ke každé x-ové souřadnici aby byla nalezena y-ová. Velikost parametrů [b] 160 192 224 256 320 384 512 Max. počet cyklů 12 12 17 15 18 15 12 Průměrný počet cyklů 1,9739 2,0034 1,9816 1,9968 2,0008 2,0147 1,9758 Tab. III : Testované křivky Na obr.2 je graficky znázorněný průběh testu pro křivku se 160-bitovými parametry. Počet testu je omezen na tisíc, aby byl graf přehlednější. Z grafu je vidět, že v nejhorším případě se musela přičíst hodnota 10, naopak v některých případech náhodně vygenerovaná hodnota vyhovovala, aniž by se musela nějak upravovat. 32-5
Obr.2 : Graficky znázorněný test křivky brainpoolp192r1 V algoritmu se definuje chyba při převodu 1/2 K a K se obvykle volí 30. Z podstaty algoritmu je patrné, že hodnota K udává počet možných cyklů pro jednu souřadnici (maximálně se může přičíst 30). Pokud by mezi třiceti možnostmi žádná nevyhovovala, potom jednotka zprávy nelze na danou křivku zakódovat. 5 Závěr Použití eliptických křivek je velice nadějný směr kryptografie. Díky svým dobrým vlastnostem proniká do důležitých světových standardů jako ANSI, ISO nebo IEFT. Širokému nasazení těchto nástrojů nic nebrání. Mají své výhody zejména v rychlosti a menší náročnosti na hardware i software. Další výhodou je, že fakticky všechna již známá použití v systémech na bázi diskrétního logaritmu lze převést do systémů na bázi eliptických křivek, což dokládá např. převod DSA na ECDSA. Nesmí se ale zapomínat na některé problémy, které se při implementaci řeší a nejsou úplně triviální, jako popsaný převod zprávy na body eliptické křivky. V nejhorším případě výše popsaný algoritmus N. Koblitze provedl 18 cyklů, než našel ke zvolené x-ové souřadnici y-ovou. Tento článek vznikl za podpory Ministerstva průmyslu a obchodu ČR v rámci řešení projektu evid. č. FT-TA3/121. Reference [1] N. Koblitz, A Course in Number Theory and Cryptography, Springer, 1994. [2] http://www.certicom.com/content/live/resources/docs/wp-eccprimer.pdf 32-6
[3] http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf [4] V. Klíma, Eliptické křivky a šifrování, Chip 9/2002, str. 134-136 [5] H.Cohen, A course in computational Algebraic numer Tudory, Springer-Verlag, New York, 1995. [6] Pollard J., Monte Carlo methods for index computation mod c. Mathematics of Computation, 32 (1978). http://www.scienceworld.cz/sw.nsf/id/49552a09b436b5a8c125728300570f7f?opendocu ment&cast=1 32-7