Faktorozás elliptikus görbékkel

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2016. október 14-én felülvizsgált verziótól ; az ellenőrzések 57 szerkesztést igényelnek .

Az elliptikus görbékkel történő faktorizálás ( angol  elliptikus görbe faktorizációs módszer , rövidítés ECM ) vagy a Lenstra -féle elliptikus görbék faktorizálási módszere ( angol  Lenstra elliptic curve factorization ) egy természetes szám elliptikus görbék segítségével történő faktorálási algoritmusa . Ez az algoritmus szubexponenciális bonyolultságú [1] . Az ECM a harmadik leggyorsabban futó [2] az általános számmezőszita módszer és a kvadratikus szita módszer után .

A gyakorlatban ez a legalkalmasabb egy szám kis prímosztóinak megtalálására, ezért rendkívül speciális [3] algoritmusnak tekintik.

Ez a legjobb algoritmus [4] 20-25 karakter hosszúságú (64…83 bites) prímosztók keresésére, mivel bonyolultsága elsősorban a legkisebb p prímosztótól függ , és nem a faktorizált számtól.

Gyakran használják egy szám kis prímosztóinak azonosítására (eldobására). Ha az algoritmus működése után kapott szám továbbra is összetett, akkor a fennmaradó tényezők nagy számok, és a további bővítéshez célszerű általánosabb faktorizációs algoritmusokat alkalmazni.

Az ezzel az algoritmussal talált legnagyobb osztó 83 karakter hosszú, és Ryan Propper találta meg 2013.  szeptember 7-én [5] .

Algoritmus

Természetes szám faktorizációs algoritmusa (nem triviális osztó keresése) [6] :

  1. Egy véletlenszerű elliptikus görbét választunk : alakú egyenlettel , és ezen a görbén választunk egy nem triviális pontot . Ezt így lehet megtenni:
    1. A számok véletlenszerűen kerülnek kiválasztásra .
    2. Kiszámolva .
  2. Olyan egész számot választunk , amely nagyszámú kis szám szorzata. Például, ahogy választhat:
    • Néhány kis szám faktorál .
    • Több kis prímszám szorzata kis hatványokkal. Ez azt jelenti, hogy a prímszámokat (amelyek nem haladják meg a bizonyos számot ), és a fokokat úgy választják meg, hogy a megfelelő hatványra emelés eredménye ne haladjon meg egy bizonyos számot :
    hol  a legnagyobb a lehetséges mutatók közül, amelynél .
  3. Az elliptikus görbén lévő szorzat kiszámítása : , ahol a csoporttörvény  által meghatározott összeadási művelet . Az összeadás művelethez meg kell találni az összegzett pontokat összekötő szakasz meredekségét , ezért szükséges a modulo n osztás művelete . A modulo művelet a kiterjesztett Euclid algoritmussal történik . Konkrétan, ha valamilyen v számmal osztunk (mod n ), akkor a gcd ( v ,  n ) megtalálását jelenti . A gcd( vn ) 1 esetén gcd( vn ) n , -összeadás nem ad értelmes pontot az elliptikus görbén, ami azt jelenti, hogy gcd( vn ) n  nem triviális osztója . . Ennek alapján a számítási folyamatban a következő esetek lehetségesek:
    • Ha a számítás során nem fordult elő irreverzibilis elem (mod  n ) , akkor másik elliptikus görbét és pontot kell választani, és az algoritmust elölről meg kell ismételni.
    • Ha valamelyik szakaszban , ahol ( ), akkor másik elliptikus görbét és pontot kell választani, és az algoritmust elölről meg kell ismételni, mert a pont a további összeadási műveletek után változatlan marad.
    • Ha a számítás valamely szakaszában gcd( vn ) 1 és gcd( vn ) n , akkor gcd( vn ) n  szükséges nem triviális osztója .

Indoklás

Az n számra felvett egyenlet egy elliptikus görbét határoz meg . Ha a p és q számok az n  szám két prímosztói , akkor a fenti egyenlet akkor is igaz, ha modulo p vagy modulo q felvesszük . Azaz : és : két elliptikus görbét határoz meg (kisebb, mint ). Azonban még egy adott összeadási művelet  mellett is nemcsak elliptikus görbék, hanem csoportok is . Legyen bennük N p és N q elem, akkor ha:

  1.  - az eredeti görbe bármely pontja
  2. pozitív számok  , például:
  3.  a minimuma

Akkor Lagrange tétele szerint igaz, hogy

  1.  - osztó

Hasonló állítás igaz a modulo q görbére is .

A Z p feletti elliptikus görbén fekvő pontok csoportjának sorrendjét a Hasse-tétel határolja : p  + 1 − 2 p p + 1 + 2 √ p

Véletlenszerűen választott elliptikus görbe esetén az N p és N q rendek a Hasse-tétel által határolt véletlen számok (lásd alább). Nem valószínű, hogy N p és N q prímosztóinak többsége megegyezik, és valószínű, hogy az eP kiszámításakor néhány modulo p , de nem mod q fog találkozni , vagy fordítva. Ha ez a helyzet, akkor kP nem létezik az eredeti görbén, és a számításokban olyan v -t találtunk, hogy vagy gcd( v , p ) = p vagy gcd( v , q ) = q , de mindkettő nem. Ekkor gcd( v , n ) n nem triviális osztója .

Az ECM a régebbi Pollard-féle P-1 módszer finomítása [7] . A p  - 1 algoritmus megtalálja p prímosztóit úgy, hogy ( p  - 1)  B -sima valamilyen kis B esetén . Bármely e -re, amelyik többszöröse ( p  − 1) , és bármely a -ra , amely p - hez viszonylag prím , a Fermat-tétel szerint a e  ≡  1 (mod p ) . Ekkor gcd ( a e  − 1,  n ) nagy valószínűséggel osztója lesz n -nek . A p  − 1 algoritmus azonban meghiúsul [7] , ha p -nek nagy prímosztói vannak. Az ECM ebben az esetben helyesen működik, mert ahelyett, hogy a Z p feletti multiplikatív csoportot vesszük figyelembe , amelynek sorrendje mindig p  − 1 , egy Z p véges mező feletti véletlenszerű elliptikus görbe csoportját tekintjük .

A Z p feletti elliptikus görbén fekvő pontcsoportok sorrendjét a Hasse-tétel határolja : p  + 1 − 2 p p  + 1 + 2 p . Fontosnak tűnik megvizsgálni [8] , hogy mekkora a valószínűsége annak, hogy ebben az intervallumban sima szám található (ebben az esetben vannak görbék, amelyek sorrendje sima szám). Nincs bizonyíték arra, hogy a Hasse-intervallumban mindig van valamilyen sima szám, de heurisztikus valószínűségi módszerekkel, a Canfield –Erdős–Pomerance-tétellel [ 9] és az L-jelöléssel azt a becslést kapjuk, hogy elegendő L -t venni [ 2 /2, 2 ] görbék, amíg sima csoportsorrendet nem kapunk. Ez a heurisztikus becslés jól alkalmazható a gyakorlatban.  

Példa

Az n = 455839 szám faktorizálása [10] .

Egy elliptikus görbe és egy ezen a görbén fekvő pont kerül kiválasztásra

10-et szekvenciálisan számítanak ki! P :

1. A pontkoordináták kiszámítása .

.

2. Számított .

. Az 593/106 modulo n kiszámításához használhatja a kiterjesztett Euklidész algoritmust : 455839 = 4300 106 + 39, majd 106 = 2 39 + 28, majd 39 = 28 + 11, majd 28 = 2 11 + 1 = 6 + 5, majd 6 = 5 + 1. Ezért GCD(455839, 106) = 1, és fordítva: 1 = 6 - 5 = 2 6 - 11 = 2 28 - 5 11 = 7 28 - 5 39 = 7 106 - 19 39 = 81707 106 - 19 455 839. Ahonnan 1/106 = 81707 (mod 455839), így −593 / 106 = 322522 (mod 455839).

3. Hasonlóképpen kiszámíthatja a , , és így tovább. A 640 P kiszámításakor észreveheti, hogy az inverz elemet 599-re (mod 455839) kell kiszámítani. Mivel a 455839 osztható 599-cel, a szükséges bontás megtalálható: 455839 = 599 761.

Számítási összetettség

Legyen n legkisebb osztója p . Ekkor a végrehajtott aritmetikai műveletek száma a [11] : értékkel becsülhető (vagy L-jelölésben ) . Ha p - t helyettesítjük -re, akkor szubexponenciális komplexitásbecslést kapunk: .

Ha összehasonlítjuk az elliptikus görbék módszerét más faktorizációs módszerekkel, akkor ez a módszer a szubexponenciális [1] faktorizációs módszerek osztályába tartozik , ezért gyorsabban működik, mint bármely exponenciális módszer. Ha összehasonlítjuk a kvadratikus szita módszerrel (QS) és a számmező szita módszerrel (NFS) , akkor mindez az n legkisebb osztójának méretétől függ [12] . Ha az n számot, mint az RSA -ban, két, megközelítőleg azonos hosszúságú prímszám szorzataként választjuk, akkor az elliptikus görbe módszere ugyanolyan becsléssel rendelkezik, mint a másodfokú szita módszer, de rosszabb, mint a számmező szita módszer [13 ] .

Algoritmus projektív koordinátákkal

Mielőtt a projektív síkot a felettinek tekintenénk, érdemes figyelembe venni a szokásos projektív síkot ℝ felett: pontok helyett a 0-n átmenő egyeneseket vesszük figyelembe. Egy egyenest nullától eltérő pont használatával a következőképpen definiálhatunk: ennek az egyenesnek bármely pontjára ⇔ ∃ c ≠ 0, úgy, hogy x' = c x , y' = c y és z' = c z . Ennek az ekvivalenciarelációnak megfelelően a teret projektív síknak nevezzük . A sík pontjai a 0-n átmenő háromdimenziós tér egyeneseinek felelnek meg . Vegye figyelembe, hogy a pont nem létezik ebben a térben, mivel nem definiál 0-n átmenő egyenest. A Lenstra-algoritmus nem igényli a ℝ mező használatát. , a véges mező a csoport szerkezetét is megadja az elliptikus görbe felett. Ugyanez a görbe azonban a következő műveletekkel nem alkot csoportot, ha nem prímszám. Az elliptikus görbéket alkalmazó faktorizációs módszer az összeadás törvényének jellemzőit használja olyan esetekben, amikor  nem egyszerű.

Faktorizációs algoritmus projektív koordinátákban [14] :. A semleges elemet ebben az esetben a végtelenben lévő pont adja . Legyen n  egész és pozitív szám, elliptikus görbe .

  1. Kiválasztva ( a ≠ 0).
  2. Kiszámolva . Az E elliptikus görbét adjuk meg (Weierstrass-forma). A projektív koordináták segítségével egy elliptikus görbe homogén egyenletként írható fel . ezen a görbén fekszik.
  3. A felső határ van kiválasztva . Megjegyzés: csak akkor lehetnek tényezők, ha az E csoport sorrendje B -  sima szám . Ez azt jelenti, hogy az összes E over prímtényezőnek kisebbnek vagy egyenlőnek kell lennie B -nél .
  4. A NOC kiszámítása megtörténik .
  5. A ringben számolva . Fontos megjegyezni, hogy ha | | - B-sima , és n  egyszerű (jelen esetben  mező), akkor . Ha azonban | | - B-sima néhány p számra, amely n osztója , az eredmény nem biztos, hogy (0:1:0) lesz, mert az összeadás és a szorzás nem működik jól, ha n nem prímszám. Így meg lehet találni n nem triviális osztóját .
  6. Ha az osztó nem található, akkor az algoritmus megismétlődik a 2. lépéstől.

Az 5. pontban előfordulhat, hogy a számítás nem lehetséges, mivel egy elliptikus görbe két pontjának összeadásához ki kell számítani , ami nem mindig lehetséges, ha n nem prímszám. Két pont összegét a következő módon lehet kiszámítani, amihez nem szükséges n elsősége (nem kell, hogy mező legyen):

Edwards-görbék használata

Az Edwards-görbék használata lehetővé teszi [15] számára, hogy csökkentse a moduláris műveletek számát, és csökkentse az algoritmus végrehajtási idejét a Weierstrass ( ) és a Montgomery ( ) alakú elliptikus görbékhez képest .

Definíció: Legyen  olyan mező, amelynek jellemzője nem szám , és legyen . Ekkor az Edwards-görbe a következőképpen definiálható. Ötféle módon lehet pontkészletet létrehozni egy Edwards-görbén: affin pontok halmaza, projektív pontok halmaza, fordított pontok halmaza , kiterjesztett pontok halmaza és egy halmaz teljesített pontok . ). Például az affin pontok halmaza így van megadva: .    

Összeadás művelet: Az összeadás törvényét a képlet adja meg .

A (0,1) pont a semleges elem, a pont inverze pedig .

Más formákat hasonló módon kapunk, mint ahogyan egy projektív Weierstrass-görbét kapunk egy affin görbéből.

Összeadási példa: Az összeadási törvényt demonstrálhatja egy Edwards alakú elliptikus görbe példájával, ahol d =2: , és pontok vannak rajta. Javasoljuk annak ellenőrzését, hogy P 1 összege a semleges elemmel (0,1) egyenlő-e P 1 -gyel . Igazán:

Az Edwards-alakú minden elliptikus görbének van egy 4-es sorrendje. Ezért az Edwards-görbe feletti periodikus csoport izomorf -val vagy -vel .

A Lenstra algoritmussal végzett faktorizálásnál a legérdekesebb [16] eset a és .

Példa egy olyan görbére, amely a következővel izomorf periodikus csoportot tartalmaz :

az egységkörön fekvő ponttal , amelynek középpontja a (0,-1) pontban van.

Lásd még

Jegyzetek

  1. 1 2 Bressoud, 2000 , p. 331.
  2. Parker, 2014 .
  3. Bressoud, 2000 .
  4. Brent, 1998 .
  5. Az ECM által talált 50 legnagyobb osztó . Hozzáférés dátuma: 2016. november 27. Az eredetiből archiválva : 2009. február 20.
  6. Lenstra, 1987 , p. 16-20.
  7. Lenstra 12. , 1987 .
  8. Lenstra, Számelméleti algoritmusok, 1986 , p. 16.
  9. Canfield, 1983 .
  10. Bevezetés a kriptográfiába kódoláselmélettel, 2006 .
  11. Vasilenko, 2006 , p. 109.
  12. Lenstra, Számelméleti algoritmusok, 1986 , p. 331.
  13. Brent, 1998 , p. 12.
  14. Vasilenko, 2006 , p. 112.
  15. ECM Edwards-görbék használatával, 2013 , p. 2-3.
  16. ECM Edwards-görbék használatával, 2013 , p. 19.

Irodalom

Linkek