A matematikában az elliptikus görbéket alkalmazó primalitás-vizsgálati módszerek (eng. - Elliptic Curve Primality Proving , röv. ECPP ) az egyik leggyorsabb és legszélesebb körben használt módszer a primalitás vizsgálatára [1] . Ezt az ötletet Shafi Goldwasser és Joe Kilian terjesztette elő 1986-ban; A.O.L algoritmussá alakították át . Atkin ugyanabban az évben. Ezt követően az algoritmust többször módosították és javították, leginkább Atkin és François Morain 1993-ban [2] . Az elliptikus görbe-faktorizáció alkalmazásának koncepcióját Hendrik Lenstra dolgozta ki 1985-ben, és hamarosan ezt követte a számok elsődlegességének tesztelésére és bizonyítására való alkalmazása.
A primalitásteszt Fermat kora óta létezik , amikor a legtöbb algoritmus faktorizáción alapult , ami nehézkessé válik, ha nagy a bemenet. A modern algoritmusok egyenként oldják meg annak meghatározását, hogy egy szám prím-e, és melyek a tényezői . A kriptográfia fejlődésének modern korszakának beköszöntével ez jelentős gyakorlati jelentőséggel bírt. Bár sok modern teszt csak valószínűségi eredményt ad (vagy azt mutatja, hogy N összetett, vagy valószínűleg prím , mint például a Miller-Rabin teszt ), az elliptikus görbe teszt azt mutatja, hogy egy szám prím (vagy összetett) egy gyorsan ellenőrzött tanúsítvány [3] ( angol ).
Az elliptikus görbe primalitási teszt alternatívája (többek között) a Pocklington-tesztnek, amelyet a gyakorlatban nehéz lehet megvalósítani. Az elliptikus görbe teszt a Pocklington-teszthez hasonló kritériumokon alapul , amelyen a megfelelő teszt is alapul [4] . Most megfogalmazunk egy javaslatot, amely alapján a Pocklington-kritériumhoz hasonló tesztünk az elliptikus primalitásgörbe teszt Goldwasser-Kilian-Atkin tesztjét eredményezi.
Ez egy általános algoritmus , ami azt jelenti, hogy nem függ speciális űrlapszámoktól. Jelenleg az ECPP a gyakorlatban a leggyorsabb ismert algoritmus a számok elsődlegességének ellenőrzésére, de a legrosszabb eset végrehajtási ideje (az a maximális idő, ameddig egy feladat egy adott hardverplatformon elvégezhető) nem ismert. Az ESRR időben működik: [5]
egyesek számára . Heurisztikai okokból ez a mutató bizonyos esetekben csökkenthető. Az ECPP ugyanúgy működik, mint a legtöbb más elsődlegességi teszt , megkeres egy csoportot , és megmutatja, hogy annak mérete akkora, hogy elsődleges. Az ECPP esetében a csoport egy elliptikus görbe a másodfokú formák véges halmazán, amely triviális a csoporttényező*(?) szempontjából.
Az ECPP rekurzió segítségével létrehoz egy Atkin-Goldwaser-Kilian-Morain elsődlegességi tanúsítványt, majd megpróbálja ellenőrizni a tanúsítványt. A legtöbb CPU -időt igénylő lépés a tanúsítvány generálása, mivel a faktorizációt az osztálymezőn kell végrehajtani . A tanúsítvány gyorsan érvényesíthető, így a művelet késleltetése nagyon rövid.
2015 szeptemberében az ECPP módszerrel talált legnagyobb prímszám [6] 30950 jegyű érték, amelyet a Lucas-szekvencia szempontjából a következőképpen jelölünk :
Paul Underwoodnak 9 hónapba telt, mire megszerezte a Primo tanúsítványt (Marcel Martin szoftvere).
Legyen N pozitív egész szám, E pedig halmaz, amelyet a képlet határoz meg . Tekintsük E - t a szokásos összeadási törvényt használva E -n , és írjunk 0-t semleges elemnek E -re .
Legyen m egész szám. Ha van egy q prímszám , amely osztója m -nek és nagyobb, mint , és van egy P pont E -n ,
(1) mP = 0
2) ( m / q ) P definiált, és nem egyenlő 0-val
Ekkor N egy prímszám.
Ha N összetett, akkor van egy prímszám , amely osztja N -t. Elliptikus görbeként definiáljuk ugyanazzal az egyenlettel, mint E , de modulo p definiáljuk , nem modulo N. Határozzuk meg a csoport sorrendjét . Hasse elliptikus görbékről szóló tétele alapján tudjuk
és így gcd , és van egy u egész szám a tulajdonsággal
Legyen egy P pont becsült modulo p. Így van nálunk
(1), mert ugyanazokkal a módszerekkel számítjuk ki, mint mP , kivéve a p modulusát, nem pedig az N (és ) modulusát.
Ez ellentmond (2-nek), mert ha ( m/q ) P definiálva van, és nem egyenlő 0-val (mod N ), akkor ugyanaz a modulo p metódus adja a mod N helyett
Ebből az állításból egy algoritmus készíthető annak bizonyítására, hogy az N egész szám prím. Ez a következő módon történik:
Válasszunk ki három véletlenszerű egész számot : a, x, y és halmazt
Legyen most P = ( x , y ) egy E - hez tartozó pont , ahol E : . Ezután szükségünk van egy algoritmusra, amely megszámolja az E pontok számát . E - re alkalmazva ez az algoritmus (Koblitz és mások Schuf algoritmusát javasolják [egy véges mező feletti elliptikus görbe pontjainak számlálására szolgáló algoritmus]) egy m számot ad, amely kifejezi az E görbe pontjainak számát F N felett , feltéve, hogy N az elsődleges. Ezután van egy kritériumunk annak eldöntésére, hogy az E görbénk elfogadható-e.
Ha felírhatjuk m -t úgy, hogy ahol egy kis egész szám, és q valószínűleg prímszám (például átment néhány korábbi valószínűségi primalitási teszten ) , akkor E -t nem hagyjuk el . Ha nem lehet m -et ebben a formában felírni, akkor eldobjuk a görbét, és véletlenszerűen választunk egy másik hármast ( a, x, y ) az újrakezdéshez.
Tegyük fel, hogy találtunk egy görbét, amely átmegy a kritérium alatt, akkor folytatjuk az mP és kP kiszámítását . Ha a számítás bármely szakaszában definiálatlan kifejezéssel találkozunk (a P számításából vagy a pontszámláló algoritmusból), akkor egy nem triviális N tényezőt kapunk.
Ha , akkor világossá válik, hogy N nem prím, mert ha N prím lenne, akkor E -nek m rendje lenne , és E bármely eleme 0 lesz, ha megszorozzuk m -rel . Ha Kp = 0, akkor zsákutcába kerülünk, és újra kell kezdenünk egy másik triplával.
Nos, ha és , akkor az előző állításunk azt mondja, hogy N prím. Van azonban egy lehetséges probléma, ez a q egyszerűsége . Ezt ugyanazzal az algoritmussal kell ellenőrizni. Így leírtunk egy lépésről lépésre történő eljárást, ahol N prímsége q prímszámával és kis valószínűségi prímszámokkal igazolható, addig ismételve, amíg el nem érünk bizonyos prímeket, és befejezzük. [8] [9]
Atkin és Moraine azt mondta, hogy "a Goldwasser-Kilian algoritmus problémája az, hogy a Schouf-algoritmust szinte lehetetlen megvalósítani." [10] Nagyon lassú és körülményes az E -n lévő összes pont kiszámítása a Schuf algoritmussal, amely a Goldwasser-Kilian algoritmus előnyben részesített algoritmusa. Schoof eredeti algoritmusa azonban nem elég hatékony ahhoz, hogy rövid időn belül kiszámolja a pontok számát. [11] Ezeket a megjegyzéseket történelmi kontextusban kell szemlélni, mielőtt Elkis és Atkin javította a Schuf-módszert.
Egy 1993-as cikkében Atkin és Moraine leírt egy ECPP algoritmust, amely elkerüli a nehézkes pontszámláláson alapuló algoritmus (Schoof-algoritmus) használatának nehézségeit. Az algoritmus továbbra is a fenti állításokra támaszkodik, de ahelyett, hogy véletlenszerűen generálnának elliptikus görbéket, majd megtalálnák a megfelelő m -t, ötletük egy olyan E görbe felépítése , amelyen könnyen kiszámítható a pontok száma. A komplex szorzás kulcsfontosságú a görbe felépítésében.
Most egy bizonyos N , amelynek egyszerűségét igazolni kell, megfelelő m -t és q -t kell találnunk , akárcsak a Goldwasser-Kilian algoritmusban, amely kielégíti a tételt és bizonyítja N egyszerűségét . (természetesen meg kell találni a P pontot és magát az E görbét is )
Az ECPP komplex szorzást használ az E görbe felépítéséhez , ezzel a módszerrel könnyen kiszámítható m (pontok száma az E -n ). Most írjuk le ezt a módszert:
A komplex szorzás használatához szükség van egy negatív diszkriminánsra , D, így D felírható két elem szorzataként , vagy teljesen ekvivalensként felírhatjuk az egyenletet:
Néhány a, b . Ha N - t le tudjuk írni ezen formák bármelyikével, akkor komplex szorzással E on elliptikus görbét készíthetünk (lásd alább), és a pontok számát a következőképpen adjuk meg:
Ahhoz, hogy N -t két elemre osszuk, szükségünk van (ahol a Legendre szimbólumot jelöli ). Ez szükséges feltétel, és akkor érjük el az elégségességet, ha a h (D) csoport sorrendje 1. Ez csak a D 13 értékére történik, amelyek a {-3, -4, -7 elemek. , -8, -11, -12 , -16, -19, -27, -28, -43, -67, -163}