Eliptická kryptografie

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 23. listopadu 2021; kontroly vyžadují 37 úprav .

Eliptická kryptografie je odvětví kryptografie , které studuje asymetrické kryptosystémy založené na eliptických křivkách nad konečnými poli . Hlavní výhodou eliptické kryptografie je to, že dodnes nejsou známy subexponenciální diskrétní logaritmické algoritmy .

Použití eliptických křivek k vytvoření kryptosystémů nezávisle navrhli Neil Koblitz a Victor Miller v roce 1985 [1] .

Úvod

V roce 1985 bylo nezávisle navrženo Neilem Koblitzem a Victorem Millerem použít algebraické vlastnosti eliptických křivek v kryptografii . Od tohoto okamžiku začal prudký rozvoj nového směru v kryptografii, pro který se používá termín „kryptografie na eliptických křivkách“. Úlohu hlavní kryptografické operace plní operace skalárního násobení bodu na eliptické křivce daným celým číslem, které je určeno operacemi sčítání a zdvojování bodů eliptické křivky. Ty se zase provádějí na základě operací sčítání, násobení a inverze v konečném poli, nad kterým je křivka uvažována. Zvláštní zájem o kryptografii eliptických křivek je způsoben výhodami, které její použití v bezdrátové komunikaci poskytuje – vysoká rychlost a malá délka klíče [2] . Asymetrická kryptografie je založena na složitosti řešení některých matematických problémů. Rané kryptosystémy s veřejným klíčem, jako je algoritmus RSA , jsou bezpečné kvůli skutečnosti, že je obtížné započítat složené číslo do prvočísel. Při použití algoritmů na eliptických křivkách se předpokládá, že neexistují žádné subexponenciální algoritmy pro řešení problému diskrétního logaritmu ve skupinách jejich bodů. V tomto případě pořadí skupiny bodů eliptické křivky určuje složitost problému. Má se za to, že pro dosažení stejné úrovně šifrovací síly jako v RSA jsou nutné skupiny menších objednávek, což snižuje náklady na ukládání a přenos informací. Například na konferenci RSA 2005 oznámila Národní bezpečnostní agentura vytvoření „Suite B“, která používá pouze eliptické kryptografické algoritmy a pouze 384bitové klíče se používají k ochraně informací klasifikovaných až do „Přísně tajné“.

Eliptické křivky nad konečnými poli

Eliptická křivka je množina bodů , které splňují rovnici:

Tuto rovnici lze uvažovat nad libovolnými poli a zejména nad konečnými poli , která jsou zvláště zajímavá pro kryptografii.

V kryptografii jsou eliptické křivky uvažovány přes dva typy konečných polí : jednoduchá pole liché charakteristiky ( , kde je prvočíslo) a pole charakteristiky 2 ( ).

Eliptické křivky nad poli liché charakteristiky

Přes charakteristické pole lze rovnici eliptické křivky E zredukovat do tvaru:

kde jsou konstanty vyhovující .

Skupina bodů eliptické křivky E nad polem je množina dvojic ležících na E v kombinaci s nulovým prvkem :

Je třeba poznamenat, že v každém nenulovém prvku jsou buď dvě odmocniny, nebo žádná, takže body eliptické křivky jsou rozděleny do dvojic tvaru a .

Příklad

Uvažujme eliptickou křivku nad polem . Na této křivce zejména leží bod , protože . Je snadné zkontrolovat, že body , , , jsou všechny body dané křivky.

Hasseho věta

Hasseova věta o eliptické křivce říká, že počet bodů na eliptické křivce se blíží velikosti konečného pole:

co přináší:

Eliptické křivky nad poli charakteristiky 2

Nad polem charakteristiky 2 jsou uvažovány dva typy eliptických křivek:

Zvláštní výhoda supersingulárních eliptických křivek spočívá v tom, že je snadné vypočítat jejich pořadí, zatímco výpočet řádu nesupersingulárních křivek je obtížný. Supersingulární křivky jsou zvláště vhodné pro vytvoření domácího kryptosystému ECC (Elliptic-Curve cryptography). Pro jejich použití se obejdete bez časově náročné procedury výpočtu objednávky.

Projektivní souřadnice

K výpočtu součtu dvojice bodů na eliptické křivce je potřeba nejen několik operací sčítání a násobení v , ale také operace inverze , tedy pro daný nález takový , že , což je jeden nebo dva řády pomalejší než násobení. Naštěstí body na eliptické křivce mohou být reprezentovány v různých souřadnicových systémech , které nevyžadují použití inverze při přidávání bodů:

Je důležité si uvědomit, že mohou existovat různé názvy – například IEEE P1363-2000 volá projektivní souřadnice, které se obvykle nazývají Jacobiho souřadnice.

Šifrování/dešifrování pomocí eliptických křivek

Prvním úkolem v uvažovaném systému je zašifrovat prostý text zprávy , který bude odeslán jako hodnota (Jak?) [3] za tečku . Zde bude tečka představovat text do ní zakódovaný a následně bude dekódován. Všimněte si, že není možné zakódovat zprávu pouze pomocí souřadnic nebo bodu, protože ne všechny takové souřadnice jsou v . Stejně jako v případě systému výměny klíčů jsou i v systémech šifrování a dešifrování bod a eliptická skupina považovány za parametry . Uživatel si vybere soukromý klíč a vygeneruje veřejný klíč . K zašifrování a odeslání zprávy uživateli uživatel vybere náhodné kladné celé číslo a vypočítá šifrový text sestávající z dvojice teček.

. V tomto případě pár bodů.

Všimněte si, že strana používá veřejný klíč strany : . Chcete-li tento šifrovaný text dešifrovat, vynásobte první tečku v páru tajným klíčem a odečtěte výsledek od druhé tečky:

Uživatel zamaskoval zprávu přidáním . Nikdo kromě tohoto uživatele nezná hodnotu , takže ačkoli je to veřejný klíč, nikdo nemůže demaskovat . Uživatel však do zprávy vloží i „nápovědu“, která bude stačit k odstranění masky tomu, kdo má soukromý klíč . Pro obnovení zprávy bude muset protivník vypočítat z dat a , což se zdá být obtížný úkol [4] .

Aritmetické operace s body na eliptické křivce nejsou ekvivalentní těmto aritmetickým operacím na jejich souřadnicích.

Body eliptické křivky nad konečným polem představují grupu [5] . Násobení je redukováno na opakované zdvojování a sčítání.

Například G+G ≠ 2G ( toto jsou různé operace ), 2G + 2^115G = 2^115G + 2G (součet je komutativní);

2G = 2*G; 4G=2*2G; 8G=2*4G; 16G = 2*8G atd. (pro dva stejné body - pouze operace zdvojení);

25*G; 25 = 11001 (binárně); 25 = 1*2^0 + 0*2^1 + 0*2^2 + 1*2^3 + 1*2^4 = 1 + 8 + 16; 25G = 16G + 8G + G = 1*(2^4)G + 1*(2^3)G + 1*G (operace součtu).

24G/3 = 24G * (3^-1 mod P); kde 3^(-1) mod P - modulární multiplikativní inverzní ,

5G - 3G = 5G+ (-3G); kde -3G = nG - 3G = O - 3G - aditivní inverzní, bod opačný .

Příklad

Uvažujme případ , , který odpovídá křivce

a .

Předpokládejme, že se uživatel chystá odeslat uživateli zprávu, která je zakódována eliptickou tečkou , a že uživatel vybere náhodné číslo . Veřejný klíč je . My máme:

.

Uživatel tedy musí odeslat šifrovaný text .

Implementace šifrování

Konkrétní implementace šifrovacích algoritmů eliptických křivek jsou popsány níže. Zde uvažujeme o obecných principech eliptické kryptografie.

Sada parametrů

Pro použití eliptické kryptografie se musí všichni účastníci shodnout na všech parametrech, které definují eliptickou křivku, tzn. sada parametrů kryptografického protokolu. Eliptická křivka je určena konstantami a z rovnice (2). Abelovská podskupina bodů je cyklická a je dána jedním generujícím bodem G . V tomto případě kofaktor , kde n je řád bodu G , musí být malý ( , nejlépe sudý ).

Takže pro pole charakteristiky 2 je množina parametrů: , a pro konečné pole , kde , množina parametrů: .

Existuje několik doporučených sad parametrů:

Chcete-li vytvořit vlastní sadu parametrů, proveďte následující.

  1. Vyberte sadu možností.
  2. Najděte eliptickou křivku, která splňuje tuto sadu parametrů.

K nalezení křivky pro danou sadu parametrů se používají dvě metody.

Existuje několik tříd kryptograficky „slabých“ křivek, kterým je třeba se vyhnout:

Rychlé snížení (křivky NIST)

Dělení modulo p (které je nezbytné pro sčítání a násobení) lze provádět rychleji, pokud je p vybráno jako prvočíslo blízké mocnině 2. Zejména p může být Mersennovo prvočíslo . Například, nebo jsou dobré volby . Národní institut pro standardy a technologie (NIST) doporučuje používat podobná prvočísla jako p .

Další výhodou křivek doporučených NIST je volba , která urychluje operaci sčítání v Jacobiho souřadnicích.

Eliptické křivky doporučené NIST

NIST doporučuje 15 eliptických křivek, z nichž mnohé odvodil Jerry Solinas (NSA) na základě práce Neila Koblitz [10] . Konkrétně FIPS 186-3 [11] doporučuje 10 koncových polí. Někteří z nich:

Navíc je doporučena jedna eliptická křivka pro každé konečné pole. Tato konečná pole a eliptické křivky jsou často mylně zvoleny kvůli vysoké úrovni zabezpečení. Podle NIST byla jejich volba zdůvodněna efektivitou implementace softwaru [13] . O bezpečnosti minimálně několika z nich existují pochybnosti [14] [15] [16] .

Velikost klíče

Nejrychlejší algoritmus, který řeší problém diskrétního logaritmu na eliptických křivkách, jako je Shanksův algoritmus a Pollardova ρ-metoda , vyžaduje operace. Proto musí být velikost pole alespoň dvojnásobkem velikosti klíče. Například pro 128bitový klíč se doporučuje použít eliptickou křivku nad polem , kde p je 256 bitů dlouhé.

Nejsložitější dosud veřejně prolomené obvody eliptických křivek obsahovaly 112bitový klíč pro konečné prvočíslo a 109bitový klíč pro konečné pole charakteristiky 2. . V červenci 2009 našel shluk více než 200 Sony Playstation 3 109bitový klíč za 3,5 měsíce. Klíč nad polem vlastností 2 byl nalezen v dubnu 2004 pomocí 2 600 počítačů po dobu 17 měsíců .

Obdoba výměny klíčů Diffie-Hellman

Předpokládejme, že účastníci A a B se chtějí dohodnout na klíči, který následně použijí v nějakém klasickém kryptosystému. Nejprve si otevřeně zvolí nějaké konečné pole a nad ním nějakou eliptickou křivku . Jejich klíč je postaven z náhodného bodu na této eliptické křivce. Pokud mají náhodný bod , pak například jeho -souřadnice dává náhodný prvek , který lze následně převést na -bitové celé číslo v -ární číselné soustavě (kde ), a toto číslo může sloužit jako klíč v jejich klasickém kryptosystém. Musí si vybrat bod tak, aby všechny jejich zprávy pro sebe byly otevřené a přitom nikdo kromě nich dvou o ničem nevěděl .

Předplatitelé (uživatelé) A a B nejprve otevřeně zvolí bod ∈ jako „základnu“; hraje stejnou roli jako generátor v systému Diffie-Hellman pro konečná pole. Nepožadujeme však, aby to byl generující prvek ve skupině bodů křivky . Tato skupina nemusí být cyklická. I když je cyklický, neztrácejme čas zjišťováním, co je generujícím prvkem (nebo dokonce zjišťováním celkového počtu N bodů, které v následujícím nebudeme potřebovat). Chtěli bychom, aby podskupina generovaná B byla velká, pokud možno stejného řádu jako ona sama . Prozatím předpokládáme, že se jedná o otevřený bod na velmi velkém řádu (rovný buď , nebo velký dělitel ).

K vytvoření klíče se nejprve náhodně vybere celé číslo srovnatelné v řádu velikosti s (které se blíží ); toto číslo drží v tajnosti. Vypočítá ∈ a tento bod projde otevřeně. Účastník B dělá totéž: vybírá náhodně a veřejně vysílá ∈ . Potom tajný klíč, který používají, je ∈ . Tento klíč mohou vypočítat oba uživatelé. Například zná (bod byl přenesen otevřeně) a své vlastní tajemství . Jakákoli třetí strana však zná pouze a . Kromě vyřešení problému diskrétního logaritmu - hledání a od a (nebo hledání od a ), se zdá, že neexistuje způsob, jak najít , znát pouze a [17] .

Příklad výměny klíčů Diffie-Hellman

Jako příklad uveďme

.. _

která odpovídá křivce

a .

Dá se to spočítat . Soukromý klíč uživatele A je , takže veřejný klíč A je

.

Soukromý klíč uživatele B je , takže veřejný klíč B je

.

Sdílené tajemství je

.

Zabezpečení kryptografie pomocí eliptických křivek

Zabezpečení poskytované kryptografickým přístupem eliptické křivky závisí na tom, jak obtížné je vyřešit problém určení z dat a . Tento problém se obvykle nazývá problém diskrétního logaritmu na eliptické křivce. Nejrychlejší dnes známou metodou pro logaritmy na eliptické křivce je takzvaná Pollardova metoda. Tabulka (viz níže) porovnává účinnost této metody s metodou prvočíselného rozkladu v obecném číselném poli. Je z něj vidět, že ve srovnání s RSA je v případě použití kryptografických metod na eliptických křivkách dosaženo přibližně stejné úrovně ochrany s výrazně menšími délkami klíčů.

Vzhledem ke stejné délce klíče se také výpočetní úsilí vyžadované RSA a kryptografií eliptických křivek příliš neliší. Ve srovnání s RSA při stejných úrovních ochrany tak jasná výpočetní výhoda náleží kryptografii založené na eliptických křivkách s kratší délkou klíče [18] .

Tabulka: Výpočetní úsilí potřebné pro kryptoanalýzu pomocí eliptických křivek a RSA

Velikost klíče MIPS let
150 3,8*10^10
205 7,1*10^18
234 1,6*10^28
Velikost klíče MIPS let
512 3*10^4
768 3*10^7
1024 3*10^11
1280 3*10^14
1536 3*10^16
2048 3*10^20

Konstrukce elektronického digitálního podpisu pomocí eliptických křivek

Algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm) byl přijat jako standardy ANSI X9F1 a IEEE P1363 .

Vytváření klíčů

  1. Je vybrána eliptická křivka . Počet bodů na něm musí být dělitelný velkým prvočíslem n.
  2. Je vybrán základní bod objednávky .
  3. Je vybráno náhodné číslo .
  4. Vypočteno .
  5. Soukromý klíč je d, veřejný klíč je n-tice <a, b, G, n, Q>.

Vytvoření podpisu

  1. Je vybráno náhodné číslo .
  2. a počítá se .
  3. Podmínka je zkontrolována , protože jinak nebude podpis záviset na soukromém klíči. Je-li r = 0, zvolí se jiné náhodné číslo k.
  4. Vypočteno .
  5. Vypočteno .
  6. Podmínka je zkontrolována , protože v tomto případě číslo potřebné k ověření podpisu neexistuje. Je-li s = 0, zvolí se jiné náhodné číslo k.

Podpis pro zprávu M je dvojice čísel (r, s).

Ověření podpisu

  1. Zkontrolujme, že čísla r a s patří do oboru čísel (1, n). V opačném případě je výsledek ověření negativní a podpis je odmítnut.
  2. Vypočítejte a H(M).
  3. Vypočítejte a .
  4. Vypočítejte .
  5. Podpis je pravdivý právě tehdy, když v = r [19] .

Aplikace

Většinu kryptosystémů moderní kryptografie lze přirozeně „přenést“ do eliptických křivek. Základní myšlenkou je, že známý algoritmus používaný pro konkrétní konečné grupy je přepsán tak, aby používal skupiny racionálních bodů eliptických křivek:

Je třeba poznamenat, že bezpečnost takových systémů digitálního podpisu nespočívá pouze na šifrovací síle šifrovacích algoritmů, ale také na šifrovací síle použitých šifrovacích hašovacích funkcí a generátorů náhodných čísel .

Podle přehledu z roku 2013 jsou nejčastěji používané křivky nistp256, nistp384, nistp521, secp256k1, secp384r1, secp521r1 [20] .

Poznámky

  1. Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. Úvod do matematické kryptografie . - Springer, 2008. - 524 s. - (Pregraduální texty z matematiky). — ISBN 9780387779942 .
  2. Bolotov A. A., Gashkov S. B., Frolov A. B., Chasovskikh A. A. . Základní úvod do eliptické kryptografie. 11 str.
  3. Kódování čísel do bodů na eliptické křivce v konečném poli a jejich šifrování-dešifrování. . Staženo 29. října 2019.
  4. Ždanov O.N., Zolotarev V.V. Metody a prostředky kryptografické ochrany informací. 167 str.
  5. Eliptická kryptografie: teorie . Staženo 13. října 2016.
  6. Doporučené eliptické křivky pro vládní použití
  7. SEC 2: Doporučené parametry domény eliptické křivky
  8. Schoofův algoritmus  (downlink)
  9. Algoritmus Schoof–Elkies–Atkin
  10. Neal Koblitz. Náhodné křivky: Cesty matematika . - Springer, 2009. - S. 312-313. — 402 s. — ISBN 9783540740780 .
  11. FIPS 186-3 Archivováno 7. října 2013. // NIST, 2009; zastaralá v roce 2013 s vydáním FIPS 186-4
  12. Tato sekvence se může jevit jako chyba. Poslední hodnota je však přesně 521, nikoli 512 bitů.
  13. Daniel J. Bernstein , Tanja Lange, Bezpečnostní nebezpečí křivek NIST // 2013.09.16: "Proč si NIST vybral tyto křivky? * Většina lidí, kterých jsme se ptali: bezpečnost * Aktuální návrhový dokument NIST: účinnost" ( [1] )
  14. Daniel J. Bernstein a Tanja Lange. SafeCurves: výběr bezpečných křivek pro kryptografii eliptických křivek.  (anglicky) . safecurves.cr.yp.to (18. listopadu 2013). Staženo: 20. prosince 2013.
  15. Jevgenij Zolotov . Snowden a eliptické krypto: Bitcoin a TOR jsou mimo podezření, ale co jiné projekty? , Computerra (16. září 2013). Staženo 20. prosince 2013.
  16. Dr. Michael Scott, Backdoors in NIST elliptic curves Archivováno 20. prosince 2013 na Wayback Machine , 24. října 2013: "Křivky samotné navrhl Jerry Solinas, který pracoval v NSA."
  17. Chalkin T.A. Ždanov O.N. Aplikace eliptických křivek v kryptografii.
  18. Ždanov O.N., Zolotarev V.V. Metody a prostředky kryptografické ochrany informací. 186 str.
  19. Ishmukhametov Sh.T. Faktorizační metody pro přirozená čísla.99 s.
  20. Bos et al, Elliptic Curve Cryptography in Practice // MSR-TR-2013-119, listopad 2013

Odkazy