Schoofův algoritmus je efektivní algoritmus, na který se počítají body eliptické křivky přes konečná pole. Algoritmus má aplikace v kryptografie eliptické křivky kde je důležité znát počet bodů k posouzení obtížnosti řešení problém diskrétního logaritmu v skupina bodů na eliptické křivce.
Algoritmus publikoval René Schoof v roce 1985 a byl to teoretický průlom, protože to byl první deterministický polynomiální časový algoritmus pro počítání bodů na eliptických křivkách. Před Schoofovým algoritmem se přístupy k počítání bodů na eliptických křivkách, jako jsou naivní a baby-step obří krok algoritmy byly z větší části zdlouhavé a měly exponenciální dobu běhu.
Tento článek vysvětluje Schoofův přístup a klade důraz na matematické myšlenky, které jsou základem struktury algoritmu.
Úvod
Nechat
být eliptická křivka definováno přes konečné pole
, kde
pro
hlavní a
celé číslo
. Přes pole charakteristik
eliptická křivka může být dána (krátkou) Weierstrassovou rovnicí

s
. Sada definovaných bodů
se skládá z řešení
splnění křivkové rovnice a bod v nekonečnu
. Za použití skupinové právo na eliptických křivkách omezených na tuto množinu je vidět, že tato množina
tvoří abelianská skupina, s
jako nulový prvek. Abychom mohli spočítat body na eliptické křivce, vypočítáme mohutnost
.Schoofův přístup k výpočtu mohutnosti
využívá Hasseova věta o eliptických křivkách spolu s Čínská věta o zbytku a dělící polynomy.
Hasseova věta
Hasseova věta říká, že pokud
je eliptická křivka přes konečné pole
, pak
splňuje

Tento silný výsledek, který poskytl Hasse v roce 1934, zjednodušuje náš problém zúžením
do konečné (byť velké) sady možností. Definování
být
a s využitím tohoto výsledku nyní máme výpočetní hodnotu
modulo
kde
, postačuje k určení
, a tudíž
. I když neexistuje žádný efektivní způsob výpočtu
přímo pro generála
, je možné počítat
pro
malý prime, spíše efektivně. Vybíráme si
být soubor odlišných prvočísel taková, že
. Dáno
pro všechny
, Čínská věta o zbytku umožňuje nám počítat
.
Aby bylo možné počítat
pro nejlepšího
, využíváme teorii Frobeniova endomorfismu
a dělící polynomy. Vezměte na vědomí, že vzhledem k prvočíslům
není žádná ztráta, protože vždy můžeme vybrat větší prime, aby se ujistil, že je produkt dostatečně velký. V každém případě se při řešení případu nejčastěji používá Schoofův algoritmus
protože existují účinnější, tzv
adické algoritmy pro pole s malou charakteristikou.
Frobeniova endomorfismus
Vzhledem k eliptické křivce
definováno přes
považujeme body za
přes
, algebraické uzavření z
; tj. povolujeme body se souřadnicemi v
. The Frobeniova endomorfismus z
přes
sahá až k eliptické křivce o
.
Tato mapa je totožnost na
a lze jej rozšířit do bodu v nekonečnu
, což je a skupinový morfismus z
pro sebe.
Frobeniova endomorfismus uspokojuje kvadratický polynom, který souvisí s mohutností
podle následující věty:
Teorém: Frobeniova endomorfismus daná
splňuje charakteristickou rovnici
kde 
Tak to máme pro všechny
že
, kde + označuje sčítání na eliptické křivce a
a
označit skalární násobení
podle
a ze dne
podle
.
Jeden by se mohl pokusit tyto body symbolicky spočítat
,
a
jako funkce v souřadnicový kruh
z
a poté vyhledejte hodnotu
který splňuje rovnici. Stupně se však velmi zvětšují a tento přístup je nepraktický.
Schoofovým nápadem bylo provést tento výpočet omezený na procedurální body
pro různé malé prvočísla
. Oprava lichého prime
nyní přejdeme k řešení problému určování
, definováno jako
, pro dané prvočíslo
. Pokud bod
je v
-torzní podskupina
, pak
kde
je jedinečné celé číslo takové, že
a
. Všimněte si, že
a to pro jakékoli celé číslo
my máme
. Tím pádem
bude mít stejné pořadí jako
. Tak pro
patřící
, také máme
-li
. Proto jsme náš problém zredukovali na řešení rovnice

kde
a
mít celočíselné hodnoty v
.
Výpočet modulo připraví
The lth dělení polynomu je takový, že jeho kořeny jsou přesně X souřadnice bodů objednávky l. Tedy omezit výpočet
do l-torsion points means computing these expressions as functions in the coordinate ring of E a modulo the lpolynom 5.tý dělení. Tj. pracujeme
. To zejména znamená, že stupeň X a Y definováno prostřednictvím
je maximálně 1 palec y a nanejvýš
v X.
Skalární násobení
lze provést buď pomocí zdvojnásobit a přidat metod nebo pomocí
polynom 5.tý dělení. Druhý přístup dává:

kde
je npolynom 5.tý dělení. Všimněte si, že
je funkce v X pouze a označte to
.
Musíme rozdělit problém na dva případy: případ, ve kterém
a případ, ve kterém
. Všimněte si, že tyto rovnosti jsou kontrolovány modulo
.
Případ 1: 
Pomocí sčítací vzorec pro skupinu
získáváme:

Všimněte si, že tento výpočet selže, pokud byl předpoklad nerovnosti špatný.
Nyní jsme schopni používat X-koordinovat zúžit výběr
na dvě možnosti, a to pozitivní a negativní případ. Za použití y-koordinovaný jeden později určí, který ze dvou případů platí.
Nejprve to ukážeme X je funkce v X sama. Zvážit
.Od té doby
je dokonce nahrazením
podle
, přepíšeme výraz na

a mít to

Tady, zdá se, není správné, zahodíme
?
Teď když
pro jednoho
pak
splňuje

pro všechny l- torzní body P.
Jak již bylo zmíněno dříve, pomocí Y a
nyní jsme schopni určit, která ze dvou hodnot
(
nebo
) funguje. To dává hodnotu
. Schoofův algoritmus ukládá hodnoty
v proměnné
za každé prvočíslo l považováno.
Případ 2: 
Začínáme s předpokladem, že
. Od té doby l je liché prvočíslo, to nemůže být ono
a tudíž
. Charakteristická rovnice to dává
. A následně to
. To z toho vyplývá q je čtvercové modulo l. Nechat
. Vypočítat
v
a zkontrolujte, zda
. Pokud ano,
je
v závislosti na souřadnici y.
Li q Ukázalo se, že to není čtvercové modulo l nebo pokud rovnice neplatí pro žádný z w a
, náš předpoklad
je tedy nepravdivé
. Charakteristická rovnice dává
.
Další případ 
Pokud si vzpomínáte, naše první úvahy případ vynechávají
. Protože předpokládáme q být lichý,
a zejména
kdyby a jen kdyby
má prvek pořadí 2. Podle definice přidání do skupiny musí být jakýkoli prvek pořadí 2 ve formě
. Tím pádem
právě když je polynom
má kořen v
, právě když
.
Algoritmus
Vstup: 1. Eliptická křivka
. 2. Celé číslo q pro konečné pole
s
. Výstup: Počet bodů E přes
. Vyberte si sadu lichých prvočísel S neobsahující p takhle
Dát
-li
, jiný
. Vypočítejte dělící polynom
. Jsou provedeny všechny výpočty ve smyčce níže v ringu
Pro
dělat: Nechat
být jedinečné celé číslo takhle
a
. Vypočítat
,
a
. -li
pak Vypočítat
. pro
dělat: -li
pak -li
pak
; jiný
. jinak pokud q je čtvercové modulo l pak vypočítat w s
vypočítat
-li
pak
jinak pokud
pak
jiný
jiný
Použijte Čínská věta o zbytku počítat t modulo N z rovnic
, kde
. Výstup
.
Složitost
Většina výpočtu je převzata z vyhodnocení
a
, pro každý prime
, to je výpočetní technika
,
,
,
za každé prvočíslo
. To zahrnuje umocňování v kruhu
a vyžaduje
násobení. Od stupně
je
, každý prvek v kruhu je polynom stupně
. Podle věta o prvočísle, jsou kolem
prvočísla velikosti
, což dává
je
a my to získáme
. Tedy každé násobení v kruhu
vyžaduje
násobení v
což zase vyžaduje
bitové operace. Celkově počet bitových operací pro každé prvočíslo
je
. Vzhledem k tomu, že tento výpočet je třeba provést pro každou z
prvočísla, celková složitost Schoofova algoritmu se ukáže být
. Použití rychlé polynomiální a celočíselné aritmetiky to snižuje na
.
Vylepšení Schoofova algoritmu
V 90. letech Noam Elkies, následován A. O. L. Atkin, vymyslel vylepšení základního algoritmu Schoofa omezením množiny prvočísel
považována za prvočísla určitého druhu. Tito se začali jmenovat Elkiesova prvočísla a Atkinova prvočísla. Prime
se nazývá Elkies prime, pokud je charakteristická rovnice:
rozdělí se
, zatímco Atkin prime je prime, který není elkies prime. Atkin ukázal, jak kombinovat informace získané z Atkinových prvočísel s informacemi získanými z Elkiesových prvočísel, aby vytvořil efektivní algoritmus, který se stal známým jako Algoritmus Schoof – Elkies – Atkin. Prvním problémem, který je třeba řešit, je zjistit, zda daný prime je Elkies nebo Atkin. K tomu využíváme modulární polynomy, které vycházejí ze studia modulární formy a výklad eliptické křivky nad komplexními čísly jako mříže. Jakmile jsme určili, ve kterém případě se nacházíme, místo použití dělící polynomy, jsme schopni pracovat s polynomem, který má nižší stupeň než odpovídající dělící polynom:
spíše než
. Pro efektivní implementaci se používají pravděpodobnostní algoritmy pro hledání kořenů, což z ní činí Algoritmus Las Vegas spíše než deterministický algoritmus. Za heuristického předpokladu, že přibližně polovina připraví až
svázané jsou Elkiesovy prvočísla, získá se algoritmus, který je efektivnější než Schoofův, s očekávanou dobou chodu
pomocí naivní aritmetiky a
pomocí rychlé aritmetiky. Ačkoli je známo, že tento heuristický předpoklad platí pro většinu eliptických křivek, není známo, že platí ve všech případech, dokonce ani za GRH.
Implementace
V systému bylo implementováno několik algoritmů C ++ Mike Scott a jsou k dispozici u zdrojový kód. Implementace jsou zdarma (žádné podmínky, žádné podmínky) a využívají MIRACL knihovna, která je distribuována pod AGPLv3.
- Schoofův algoritmus implementace pro
s prime
. - Schoofův algoritmus implementace pro
.
Viz také
Reference
- R. Schoof: Elliptic Curves over Finite Fields and the Computation of Square Roots mod str. Matematika. Comp., 44 (170): 483–494, 1985. Dostupné na http://www.mat.uniroma2.it/~schoof/ctpts.pdf
- R. Schoof: Počítání bodů na eliptických křivkách přes konečná pole. J. Theor. Nombres Bordeaux 7: 219–254, 1995. Dostupné na http://www.mat.uniroma2.it/~schoof/ctg.pdf
- G. Musiker: Schoofův algoritmus pro počítání bodů
. Dostupné v http://www.math.umn.edu/~musiker/schoof.pdf - V. Müller: Die Berechnung der Punktanzahl von elliptischen kurven über endlichen Primkörpern. Diplomová práce. Universität des Saarlandes, Saarbrücken, 1991. Dostupné na http://lecturer.ukdw.ac.id/vmueller/publications.php
- A. Enge: Eliptické křivky a jejich aplikace v kryptografii: Úvod. Kluwer Academic Publishers, Dordrecht, 1999.
- L. C. Washington: Eliptické křivky: teorie čísel a kryptografie. Chapman & Hall / CRC, New York, 2003.
- N. Koblitz: Kurz teorie čísel a kryptografie, postgraduální texty z matematiky. No. 114, Springer-Verlag, 1987. Druhé vydání, 1994