Shuf algoritmusa

A Schuf -algoritmus  egy hatékony algoritmus [1] egy véges mező feletti elliptikus görbén lévő pontok számának megszámlálására . Az algoritmusnak vannak alkalmazásai az elliptikus kriptográfiában , ahol fontos tudni a pontok számát, hogy megítélhessük egy diszkrét logaritmus probléma megoldásának nehézségét egy elliptikus görbe pontcsoportján .

Az algoritmust 1985-ben publikálta René Chouf , és ez elméleti áttörést jelentett, mivel ez volt az első determinisztikus polinomiális időalgoritmus az elliptikus görbén lévő pontok számlálására . A Schuf-algoritmus előtt az elliptikus görbék pontjainak megszámlálásának megközelítései, mint például a kis és nagy lépések egyszerű algoritmusa , többnyire munkaigényesek voltak, és exponenciális futási időt igényeltek.

Ez a cikk elmagyarázza Schuf megközelítését, az algoritmus mögött meghúzódó matematikai ötletekre összpontosítva.

Bevezetés

Legyen  egy véges mező felett meghatározott elliptikus görbe , ahol prím és egész szám . Egy karakterisztikus mező felett egy elliptikus görbe adható meg (röviden) a Weierstrass-egyenlettel

-val . A pontok halmaza a görbe és a végtelenben lévő pont egyenletét kielégítő megoldásokból áll . Ha a csoporttörvényt használjuk az elliptikus görbékre ezen a halmazon, akkor láthatjuk, hogy ez a halmaz egy Abel-csoportot alkot , amelyben nulla elemként működik. Az elliptikus görbe pontjainak megszámlálásához kiszámoljuk a halmaz számosságát . A Schuf-megközelítés Hasse-féle elliptikus görbe tételét , valamint a kínai maradéktételt és az osztáspolinomokat használja a kardinalitás kiszámításához .

Hasse tétele

Hasse tétele kimondja, hogy ha egy elliptikus görbe egy véges mező felett, akkor teljesül az egyenlőtlenség

Ez az erős eredmény, amelyet Hasse 1934-ben ért el, leegyszerűsíti a feladatunkat azáltal , hogy a lehetőségek véges (bár nagy) halmazára leszűkíti. Ha meghatározzuk , hogyan és ezt az eredményt használjuk, akkor azt kapjuk, hogy a modulo teljesítmény kiszámítása , ahol , elegendő a kiszámításához , és így megkapjuk . Bár nincs hatékony módszer az általános számok közvetlen kiszámítására , egy kis prímszámra meglehetősen hatékonyan lehet számítani. Különböző prímszámok halmazaként választunk úgy, hogy . Ha mindenre adott , a kínai maradéktétel lehetővé teszi a számítást .

A prím kiszámításához a Frobenius endomorfizmus elméletét és az osztáspolinomokat használjuk . Megjegyzendő, hogy a prímszámok figyelembevétele nem okoz problémát, hiszen mindig választhatunk nagyobb prímszámot, hogy a szorzat elég nagy legyen. Mindenesetre a Schuf algoritmust használják leggyakrabban az esetre , mivel vannak hatékonyabb, úgynevezett -adic algoritmusok a kis karakterisztikájú mezőkre.

Frobenius endomorfizmus

Ha adott egy felett definiált elliptikus görbe , akkor a feletti pontokat tekintjük a mező algebrai lezárásának . Vagyis megengedjük, hogy a pontok koordinátái legyenek -ben . A Frobenius-endomorfizmus egy elliptikus görbét kiterjeszt egy leképezéssel .

Ez a térkép megegyezik a ponttal, és egy ponttal a végtelenig kiterjeszthető , így csoportmorfizmussá válik önmagától .

A Frobenius-endomorfizmus a következő tétellel teljesíti a hatványra vonatkozó másodfokú egyenletet :

Tétel: A leképezés által adott Frobenius endomorfizmus kielégíti a karakterisztikus egyenletet

, ahol

Ekkor mindenre , ahol a + egy elliptikus görbe összeadását jelenti, és a és egy -on lévő pont és egy pont skaláris szorzatát jelenti [2] .

Megpróbálhatja ezeket a pontokat szimbolikus formában és a görbén lévő koordinátagyűrű függvényeiként kiszámítani , majd keresni egy értéket , amely kielégíti az egyenletet. A fokozatok azonban nagyon nagynak bizonyulnak, és ennek a megközelítésnek nincs gyakorlati értéke.

Schuf ötlete az volt, hogy ilyen számításokat hajtson végre, korlátozva magát a különböző kis prímszámok pontjaira . Egy páratlan prímszám rögzítése után továbblépünk annak a feladatnak a megoldásához , hogy egy adott prímhez definiáljuk a -t . Ha a pont a -torziós alcsoportban van , akkor , ahol az egyetlen olyan egész szám, amelyre és . Jegyezzük meg ezt és azt minden olyan egész számra , amelyre . Így a sorrendje megegyezik a . Ekkor a -hoz tartozó -hoz van még if . Következésképpen a problémánkat az egyenlet megoldására redukáltuk

hol és fekszik az intervallumban .

Számítások modulo

Az l indexű  osztáspolinom olyan polinom, amelynek gyökei pontosan az l rendű pontok x koordinátái. Ekkor a számításnakaz l -torziós pontokra való korlátozása ezeknek a kifejezéseknek az E koordinátagyűrű és az l -edik osztású polinom modulusának függvényében történő kiszámítását jelenti. Vagyis ben dolgozunk. Ez különösen azt jelenti, hogy az X és Y mértékenem haladja meg az 1-et az y változóhoz ésaz x változóhoz képest .

A pontszorzat elkészíthető a dupla-összeadás módszerrel , vagy a th osztásos polinommal. A második megközelítés a következőket adja:

,

ahol  az n- edik osztású polinom. Vegye figyelembe, hogy ez csak x függvénye, jelöljük ezt a függvényt -vel .

A problémát két esetre kell felosztanunk: arra az esetre, amelyben , és arra az esetre, amelyben .

1. eset:

A csoport összeadási képletével a következőt kapjuk:

Megjegyzendő, hogy ez a számítás lehetetlen, ha az egyenlőtlenség feltételezése meghiúsul.

Az x -koordináta választását most két lehetőségre szűkíthetjük, nevezetesen a pozitív és a negatív esetekre. Az y koordináta segítségével meghatározzuk, hogy a két eset közül melyik történik.

Először megmutatjuk, hogy X csak x függvénye . Fontolja meg . Mivel páros, a -re cserélve a kifejezést átírjuk így

és van

Nos, ha -ra , akkor az egyenlőség erre igaz

a P l -torzió minden pontjára.

Ahogy korábban említettük, az Y és a segítségével most már meghatározhatjuk, hogy a két érték ( vagy ) közül melyik működik. Értelmet ad . A Schoof-algoritmus megjegyzi a változó értékeit minden egyes figyelembe vett l prímhez .

2. eset:

Tegyük fel, hogy . Mivel l páratlan prímszám, lehetetlen , és ezért . A karakterisztikus egyenletből az következik, hogy , tehát az . Ebből következik, hogy q négyzetmodulo l . Hadd . Számítsa ki és ellenőrizze, hogy . Ha igen, akkor az y koordinátától függően.

Ha q nem négyzetmodulo l , vagy ha az egyenlőség meghiúsul valamilyen w és esetén, akkor a feltevésünk hibás, tehát . A karakterisztikus egyenlet ad .

További eset

Ne feledje, eredeti megállapodásaink nem veszik figyelembe az esetet . Mivel feltételeztük, hogy q páratlan, és különösen akkor és csak akkor, ha van 2. rendű eleme. Az összeadás definíciója szerint egy csoportban minden 2. rendű elemnek formájúnak kell lennie . Így akkor és csak akkor, ha a polinomnak van gyöke -ben , akkor és csak akkor, ha gcd .

Algoritmus

Bemenet: 1. Elliptikus görbe . 2. Egy q egész szám egy véges mezőhöz -val . Következtetés:A feletti E pontok száma . Kiválasztjuk a páratlan S prímek halmazát , amelyek nem tartalmazzák p -t, így elfogadjuk , ha gcd , ellenkező esetben elfogadjuk . Kiszámoljuk az osztáspolinomot . Az alábbi ciklusban szereplő összes számítást a gyűrűben hajtjuk végre. Mert végrehajtjuk : Legyen az egyetlen olyan egész szám , amelyre és . Kiszámoljuk , és . Ha akkor Compute . for doing : if then if then ; különben . egyébként, ha q egy négyzet modulo l , akkor számítsa ki w -t a számítással , ha akkor különben, ha akkor másképp Használja a kínai maradéktételt a t modulo N kiszámításához az egyenletből, ahol . származtatjuk .

Nehézség

A legtöbb számítás magában foglalja a kiszámítását és minden prímszámhoz , azaz , , , minden prímszámhoz való kiszámítását . A számítások hatványozást tartalmaznak a gyűrűben , és szorzást igényelnek . Mivel a fokszám , a gyűrű minden eleme fokszámú polinom . A prímszámtétel szerint körülbelül méretű prímek vannak , ami megadja a -t , és megkapjuk . Így a gyűrűben minden szorzáshoz szorzásra van szükség -ben , ami viszont bitenkénti műveleteket igényel. Összességében az egyes prímszámokhoz tartozó bitműveletek száma . Feltételezve, hogy ezt a számítást minden prímre el kell végezni , a Schuf-algoritmus teljes összetettsége . A gyors polinomiális műveletek és az egész számok használata ezt az időt csökkenti .

A Schuf-algoritmus továbbfejlesztései

Az 1990-es években Noam Elkis , majd A. O. L. Atkin az alapvető Schuf-algoritmus továbbfejlesztésével állt elő azáltal, hogy a prímszámokat bizonyos típusú számokra korlátozta. Ezek a számok Elkis-prímként, illetve Atkin-prímként váltak ismertté. Egy prímszámot Elkis-prímnek nevezünk, ha a karakterisztikus egyenlőség felbontható felett , és az Atkin-prímek olyan prímek, amelyek nem Elkis-prímek. Atkin megmutatta, hogyan lehet kombinálni az Atkin-prímekből nyert információkat az Elkis-prímekből nyert információkkal, hogy hatékony algoritmust kapjunk, amelyet " Schoof-Elkis-Atkin Algoritmusnak neveztek . Az első feladat annak meghatározása, hogy egy adott prím Elkis- vagy Atkin-prím-e. Ennek eléréséhez moduláris polinomokat használunk, amelyek a moduláris formák tanulmányozása során keletkeznek, és a komplex számok mezője feletti elliptikus görbéket rácsként értelmezzük . Miután meghatároztuk, hogy melyik eset áll rendelkezésünkre, az osztási polinomok helyett dolgozhatunk olyan polinomokkal, amelyeknek alacsonyabb fokuk van, mint az osztási polinomoknak: helyett . A hatékony megvalósítás érdekében valószínűségi gyökérkereső algoritmusokat használnak, amelyek az algoritmust Las Vegas -i algoritmussá teszik determinisztikus algoritmus helyett. Abban a heurisztikus feltevésben, hogy a kisebb vagy egyenlő prímek körülbelül fele Elkis-prím, ez egy olyan algoritmust eredményez, amely hatékonyabb, mint a Schoof-féle algoritmus, és ennek az algoritmusnak a várható futási ideje közönséges aritmetika esetén , és . gyors aritmetika. Meg kell jegyezni, hogy ez a heurisztikus feltevés igaz a legtöbb elliptikus görbére, de általános esetben nem ismert, még akkor sem, ha az általánosított Riemann-hipotézis igaz .

Megvalósítások

Az algoritmusok egy részét Mike Scott C++ nyelven implementálta, és forráskódban is elérhetők . A megvalósítás teljesen ingyenes (feltételek, korlátozások nélkül), de a MIRACL könyvtárat használja , amely az AGPLv3 licenc alatt kerül terjesztésre .

Lásd még

Jegyzetek

  1. Bár az ECDSA cikke a következőket mondja: A Skoof-algoritmus a gyakorlatban meglehetősen hatástalan az igazán érdekes p értékek esetében, azaz p > 2 160 .
  2. Az mP pontot, amely megegyezik a P pont m-szeres összeadásával egy elliptikus görbe pontcsoportjában, a pont és az m szám skaláris szorzatának nevezzük , magukat az mP pontokat pedig a pont skaláris többszörösének. a lényeg ( Rybolovlev 2004 ). Tiborg könyvében ( van Tilborg 2006 ) ugyanezt a fogalmat skaláris többszörösnek nevezik.

Irodalom