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 de factorizare (găsirea unui divizor non-trivial) al unui număr natural [6] :
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ă:
Apoi, după teorema lui Lagrange este adevărat că
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ă.
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 .
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.
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]. ] .
Î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ă .
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):
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).
Algoritmi teoretici numerelor | |
---|---|
Teste de simplitate | |
Găsirea numerelor prime | |
Factorizarea | |
Logaritm discret | |
Găsirea GCD | |
Modul de aritmetică | |
Înmulțirea și împărțirea numerelor | |
Calcularea rădăcinii pătrate |