Factorizarea cu curbe eliptice

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 14 octombrie 2016; verificările necesită 57 de modificări .

Factorizarea folosind curbe eliptice ( metoda de factorizare a curbei elliptice în engleză  , prescurtare ECM ) sau metoda lui Lenstra de factorizare folosind curbe eliptice ( în engleză Lenstra elliptic curve factorization ) este un algoritm pentru factorizarea unui număr natural folosind curbe eliptice . Acest algoritm are complexitate subexponențială [1] . ECM este a treia cea mai rapidă rulare [2] după metoda sită de câmp cu număr general și metoda sită pătratică .  

În practică, este cel mai potrivit pentru a găsi divizori primi mici ai unui număr și, prin urmare, este considerat un algoritm [3] foarte specializat.

Este cel mai bun algoritm [4] pentru găsirea divizorilor primi cu lungimea de 20-25 de caractere (dimensiune 64…83 de biți), deoarece complexitatea sa depinde în principal de cel mai mic divizor prim p, și nu de numărul factorizat.

Adesea folosit pentru a identifica (renunța) divizorii primi mici ai unui număr. Dacă numărul obținut după operarea algoritmului este încă compus, atunci factorii rămași sunt numere mari, iar pentru extinderea ulterioară este logic să folosiți algoritmi de factorizare mai generali.

Cel mai mare divizor găsit folosind acest algoritm are 83 de caractere și a fost găsit de Ryan Propper pe 7  septembrie 2013 [5] .

Algoritm

Algoritm de factorizare (găsirea unui divizor non-trivial) al unui număr natural [6] :

  1. Se alege o curbă eliptică aleatorie peste , cu o ecuație de forma : , iar pe această curbă se alege un punct netrivial . Acest lucru se poate face astfel:
    1. Numerele sunt selectate aleatoriu .
    2. Calculat .
  2. Se alege un număr întreg care este produsul unui număr mare de numere mici. De exemplu, după cum puteți alege:
    • Factorial al unui număr mic .
    • Produsul mai multor numere prime mici la puteri mici. Adică, sunt alese numere prime (care nu depășesc un anumit număr ) și grade astfel încât rezultatul ridicării la puterea corespunzătoare să nu depășească un anumit număr :
    unde  este cel mai mare dintre indicatorii posibili, la care .
  3. Produsul pe curba eliptică se calculează : , unde  este operația de adăugare definită de legea grupului . Operația de adunare necesită găsirea pantei segmentului care leagă punctele însumate și, prin urmare, necesită operația de împărțire modulo n . Operația modulo se face folosind algoritmul Euclid extins . În special, împărțirea la un număr v (mod n ) implică găsirea mcd -ului ( v ,  n ) . În cazul mcd( vn ) 1, mcd( vn ) n , -adunarea nu va da niciun punct semnificativ pe curba eliptică, ceea ce implică faptul că mcd( vn )  este un divizor non-trivial al lui n . Pe baza acestui fapt, în procesul de calcul sunt posibile următoarele cazuri:
    • Dacă nu au fost întâlnite elemente ireversibile (mod  n ) în timpul calculului , atunci este necesar să alegeți o altă curbă eliptică și un punct și să repetați algoritmul de la început.
    • Dacă la un moment dat , unde ( ), atunci trebuie să alegeți o altă curbă eliptică și un punct și să repetați algoritmul de la început, deoarece punctul va rămâne neschimbat după operațiuni suplimentare de adăugare.
    • Dacă la o anumită etapă de calcul mcd( vn ) 1 și mcd( vn ) n , atunci mcd( vn )  este divizorul netrivial necesar al lui n .

Motivație

Ecuația luată modulo numărul n definește o curbă eliptică . Dacă numerele p și q  sunt doi divizori primi ai numărului n , atunci ecuația de mai sus va fi adevărată și atunci când este luată modulo p sau modulo q . Adică : și : definesc, respectiv, două curbe eliptice (mai mici decât ). Cu toate acestea, chiar și cu o operație de adunare dată  , nu numai curbe eliptice sunt, ci și grupuri . Fie ca acestea să conțină N p și , respectiv, N q elemente, atunci dacă:

  1.  - orice punct al curbei inițiale
  2. sunt  numere pozitive astfel încât:
  3.  este minimul de

Apoi, după teorema lui Lagrange este adevărat că

  1.  - separator

O afirmație similară este valabilă și pentru o curbă modulo q .

Ordinea unui grup de puncte situate pe o curbă eliptică peste Z p este mărginită de teorema lui Hasse : p  + 1 − 2 p p + 1 + 2 √ p

Pentru o curbă eliptică aleasă aleatoriu, ordinele N p și N q sunt numere aleatoare mărginite de teorema lui Hasse (vezi mai jos). Este puțin probabil ca majoritatea divizorilor primi ai lui N p și N q să fie aceiași și este probabil ca atunci când se calculează eP , să se întâlnească unele modulo p , dar nu mod q , sau invers. Dacă acesta este cazul, atunci kP nu există pe curba inițială, iar în calcule s-a găsit un v astfel încât fie gcd( v , p ) = p fie gcd( v , q ) = q , dar nu ambele. Atunci mcd( v , n ) este un divizor netrivial al lui n .

ECM este o rafinare a metodei mai vechi P-1 de către Pollard [7] . Algoritmul p  − 1 găsește divizori primi ai lui p astfel încât ( p  − 1)  este B-neted pentru un B mic . Pentru orice e care este un multiplu al lui ( p  − 1) și pentru orice a care este relativ prim pentru p , teorema lui Fermat susține că a e  ≡  1 (mod p ) . Atunci mcd ( a e  − 1,  n ) va fi un divizor al lui n cu probabilitate mare . Totuși, algoritmul p  − 1 va eșua [7] când p are divizori primi mari. ECM funcționează corect în acest caz, deoarece în loc să luăm în considerare grupul multiplicativ peste Z p , a cărui ordine este întotdeauna p  − 1 , considerăm grupul unei curbe eliptice aleatoare peste un câmp finit Z p .

Ordinea unui grup de puncte situate pe o curbă eliptică peste Z p este mărginită de teorema lui Hasse : p  + 1 − 2 p p  + 1 + 2 p . Pare important să investigăm [8] probabilitatea ca un număr neted să se afle în acest interval (în acest caz, există curbe a căror ordine este un număr neted). Nu există dovezi că există întotdeauna un număr neted în intervalul Hasse, dar folosind metode probabilistice euristice , teorema Canfield –Erdős–Pomerance [ 9] și notația L , obținem o estimare că este suficient să luăm L [ 2 /2, 2 ] până când se obține o ordine de grup netedă. Această estimare euristică este bine aplicabilă în practică.  

Exemplu

Factorizarea [10] a numărului n = 455839.

Sunt selectate o curbă eliptică și un punct situat pe această curbă

10 sunt calculate succesiv! P :

1. Coordonatele punctului sunt calculate .

.

2. Calculat .

. Pentru a calcula 593 / 106 modulo n , puteți folosi algoritmul Euclid extins : 455839 = 4300 106 + 39, apoi 106 = 2 39 + 28, apoi 39 = 28 + 11, apoi 28 = 2 11 + 6, apoi 6 + 5, apoi 6 = 5 + 1. Prin urmare, GCD(455839, 106) = 1 și invers: 1 = 6 - 5 = 2 6 - 11 = 2 28 - 5 11 = 7 28 - 5 39 = 7 106 - 19 39 = 81707 106 - 19 455839. De unde 1/106 = 81707 (mod 455839), deci −593 / 106 = 322522 (mod 455839).

3. În mod similar, puteți calcula , , și așa mai departe. În momentul calculării 640 P , puteți observa că este necesar calculul elementului invers la 599 (mod 455839). Deoarece 455839 este divizibil cu 599, se găsește descompunerea necesară: 455839 = 599 761.

Complexitate computațională

Fie cel mai mic divizor al lui n p . Atunci numărul de operații aritmetice efectuate poate fi estimat cu valoarea [11] : (sau în notația L ). Dacă înlocuim p cu , atunci obținem o estimare a complexității subexponențiale: .

Dacă comparăm metoda curbelor eliptice cu alte metode de factorizare, atunci această metodă aparține clasei metodelor de factorizare subexponențială [1] și, prin urmare, funcționează mai rapid decât orice metodă exponențială. În comparație cu metoda sită pătratică (QS) și metoda sită câmp numeric (NFS) , totul depinde de mărimea celui mai mic divizor al lui n [12] . Dacă numărul n este ales, ca în RSA , ca produs a două numere prime de aproximativ aceeași lungime, atunci metoda curbei eliptice are aceeași estimare ca metoda sită pătratică, dar este inferioară metodei sită câmp numeric [13]. ] .

Algoritm cu coordonate proiective

Înainte de a considera planul proiectiv peste , merită să luăm în considerare planul proiectiv obișnuit peste ℝ: în loc de puncte, luăm în considerare drepte care trec prin 0. O dreaptă poate fi definită folosind un punct diferit de zero astfel: pentru orice punct al acestei drepte ⇔ ∃ c ≠ 0, astfel încât x' = c x , y' = c y și z' = c z . Conform acestei relaţii de echivalenţă spaţiul se numeşte plan proiectiv . Punctele planului , corespund dreptelor spațiului tridimensional care trec prin 0. Rețineți că punctul nu există în acest spațiu, deoarece nu definește o dreaptă care trece prin 0. Algoritmul lui Lenstra nu necesită utilizarea câmpului ℝ , câmpul finit oferă și structura grupului peste curba eliptică . Totuși, aceeași curbă, dar cu operații pe , nu formează un grup dacă nu este un număr prim. Metoda factorizării folosind curbe eliptice folosește trăsăturile legii adunării în cazurile în care nu  este simplă.

Algoritm de factorizare în coordonate proiective [14] :. Elementul neutru în acest caz este dat de punctul de la infinit . Fie n  un număr întreg și pozitiv, o curbă eliptică .

  1. Selectat ( a ≠ 0).
  2. Calculat . Curba eliptică E este dată ca (forma Weierstrass). Folosind coordonatele proiective, o curbă eliptică poate fi scrisă ca o ecuație omogenă . se află pe această curbă.
  3. Limita superioară este selectată . Notă: pot exista factori numai dacă ordinea grupului E peste  este un număr B-neted . Aceasta înseamnă că toți factorii primi E peste trebuie să fie mai mici sau egali cu B .
  4. Se calculează NOC .
  5. Calculat în inel . Este important de reținut că dacă | | - B-smooth , iar n  este simplu (în acest caz  , un câmp), atunci . Cu toate acestea, dacă | | - B-neted pentru un număr p care este un divizor al lui n , rezultatul poate să nu fie (0:1:0) deoarece adunarea și înmulțirea pot să nu funcționeze la fel de bine dacă n nu este un număr prim. Astfel este posibil să găsim un divizor non-trivial al lui n .
  6. Dacă divizorul nu a fost găsit, atunci algoritmul se repetă de la pasul 2.

La punctul 5, calculul poate să nu fie posibil, deoarece adăugarea a două puncte peste o curbă eliptică necesită calculul lui , ceea ce nu este întotdeauna posibil dacă n nu este un număr prim. Este posibil să se calculeze suma a două puncte în felul următor, care nu necesită primătatea lui n (nu necesită ca acesta să fie un câmp):

Folosind curbele Edwards

Utilizarea curbelor Edwards permite [15] reducerea numărului de operații modulare și reducerea timpului de execuție a algoritmului în comparație cu curbele eliptice în forma Weierstrass ( ) și în forma Montgomery ( ).

Definiție: Fie  un câmp a cărui caracteristică nu este un număr și fie . Apoi curba Edwards este definită ca. Există cinci moduri de a construi un set de puncte pe o curbă Edwards: un set de puncte afine , un set de puncte proiective , un set de puncte inversate , un set de puncte extinse și un set de puncte. puncte completate . puncte ). De exemplu, setul de puncte afine este dat ca: .    

Operația de adunare: Legea adunării este dată de formula .

Punctul (0,1) este elementul neutru, iar inversul punctului este .

Alte forme sunt obținute într-un mod similar cu modul în care se obține o curbă Weierstrass proiectivă dintr-o curbă afină.

Exemplu de adunare: Puteți demonstra legea adunării folosind un exemplu de curbă eliptică în forma Edwards cu d =2: , și puncte pe ea. Se propune să se verifice dacă suma lui P 1 cu elementul neutru (0,1) este egală cu P 1 . Într-adevăr:

Fiecare curbă eliptică în forma Edwards are un punct de ordin 4. Prin urmare, grupul periodic al unei curbe Edwards peste este izomorf la sau .

Pentru factorizarea folosind algoritmul Lenstra, cele mai interesante cazuri [16] sunt și .

Un exemplu de curbă care conține un grup periodic izomorf la :

cu un punct situat pe cercul unitar centrat în punctul (0,-1).

Vezi și

Note

  1. 1 2 Bressoud, 2000 , p. 331.
  2. Parker, 2014 .
  3. Bressoud, 2000 .
  4. Brent, 1998 .
  5. 50 cei mai mari divizori găsiți de ECM . Data accesului: 27 noiembrie 2016. Arhivat din original pe 20 februarie 2009.
  6. Lenstra, 1987 , p. 16-20.
  7. 12 Lenstra , 1987 .
  8. Lenstra, Number-Theoretic Algorithms, 1986 , p. 16.
  9. Canfield, 1983 .
  10. Introducere în Criptografie cu Teoria Codării, 2006 .
  11. Vasilenko, 2006 , p. 109.
  12. Lenstra, Number-Theoretic Algorithms, 1986 , p. 331.
  13. Brent, 1998 , p. 12.
  14. Vasilenko, 2006 , p. 112.
  15. ECM folosind curbele Edwards, 2013 , p. 2-3.
  16. ECM folosind curbele Edwards, 2013 , p. 19.

Literatură

Link -uri