Metoda generală de sită a câmpului cu numere

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 7 decembrie 2019; verificările necesită 9 modificări .

Metoda generală a câmpului numeric ( în engleză  general number field sieve , GNFS) este o metodă de factorizare pentru numere întregi . Este cel mai eficient algoritm de factorizare pentru numere mai lungi de 110 zecimale. Complexitatea algoritmului este estimată prin formula euristică [1]

Metoda este o generalizare a metodei speciale a site-ului câmpului numeric: în timp ce aceasta din urmă permite doar factorizarea numerelor de un fel special, metoda generală funcționează pe mulțimea numerelor întregi, cu excepția puterilor primelor (care sunt factorizate trivial prin prinzând rădăcini).

Istorie

În 1988, matematicianul englez John Pollard a descris o nouă metodă de factorizare a numerelor întregi de o formă specială ( ), ilustrând-o cu extinderea celui de-al șaptelea număr Fermat . Spre deosebire de metoda sităi pătratice , în care cernerea se efectuează pe inelul tuturor numerelor întregi, metoda propunea folosirea inelului de numere întregi peste un câmp numeric . Manuscrisul a fost anexat cu o scrisoare adresată lui Andrew Odlyzko , iar Richard Brent , John Brillhart , Hendrik Lenstra , Klaus Schnorr și H. Suyama au primit de asemenea copii . În această scrisoare, Pollard a sugerat că poate această metodă ar putea fi folosită pentru a extinde al nouălea număr Fermat . [2]

În 1990, A. Lenstra , H. Lenstra, Mark Manasse și Pollard au descris prima implementare pe scară largă a noii metode, cu unele îmbunătățiri. Ei au arătat că algoritmul funcționează mai rapid pe numere de tip special decât toate celelalte metode de factorizare cunoscute. Lucrarea discută, de asemenea, ideea lui Joe Buhler și Karl Pomerans de a îmbunătăți metoda de descompunere a oricăror numere întregi și prezintă soluția la această problemă. [3]

Mai târziu , Leonard Max Adleman a propus utilizarea caracterului pătratic pentru a găsi pătrate într-un câmp numeric. Aceasta a oferit o soluție alternativă la problema ridicată de Buchler și Pomerance și a îmbunătățit timpul de funcționare estimat al site-ului de câmp numeric atunci când este aplicat numerelor de tip nespecial. [patru]

În același an, A. Lenstra, H. Lenstra, Manasse și Pollard au prezentat extinderea celui de-al nouălea număr Fermat folosind metoda câmpului numeric. În lucrarea corespunzătoare, sunt discutate multe detalii despre această descompunere. [5]

În cele din urmă, în „Factorizarea numerelor întregi cu sită de câmp numeric”, Buchler, H. Lenstra și Pomerance au descris metoda sită a câmpului numeric ca fiind aplicată numerelor care nu au neapărat o formă specială. [6] Această implementare a algoritmului a inclus un pas care implică calcule folosind numere extrem de mari. Jean-Marc Kuwaignes în lucrarea sa a descris o modalitate de a ocoli acest lucru. [7]

Rezultatele dezvoltării timpurii a metodei au fost rezumate de o colecție de articole editate de A. Lenstra și H. Lenstra. [8] Printre altele, colecția a inclus un articol de Bernstein și A. Lenstra, care descrie o altă implementare îmbunătățită a algoritmului. Articolul a fost inclus în colecția la rubrica „Metoda generală a sitei câmpului numeric”. [9]

Esența metodei

Metoda sită câmp numeric (atât specială, cât și generală) poate fi gândită ca o îmbunătățire a unei metode mai simple, metoda sită rațională sau metoda sită pătratică. Algoritmii asemănători lor necesită găsirea unor numere netede de ordine . Mărimea acestor numere crește exponențial cu . Metoda sită a câmpului numeric, la rândul său, necesită găsirea numerelor netede care sunt subexponențiale în raport cu dimensiunea. Deoarece aceste numere sunt mai mici, este mai probabil ca un număr de această dimensiune să fie neted, motiv pentru care metoda sită a câmpului numeric este atât de eficientă. Pentru a obține accelerarea calculelor în cadrul metodei, acestea sunt efectuate în câmpuri numerice , ceea ce complică algoritmul, în comparație cu o sită rațională mai simplă.

Principii de bază

Algoritm

Fie un număr compus impar de factorizat.

  1. Alegem gradul unui polinom ireductibil (căci nu va exista un câștig în comparație cu metoda sităi pătratice).
  2. Alegem un număr întreg astfel încât și extindem n în bază : (unu)
  3. Să asociem cu expansiunea (1) polinomul, ireductibil în inelul de polinoame cu coeficienți întregi
  4. Definim polinomul de cernere ca un polinom omogen în două variabile și : (2)
  5. Definim al doilea polinom și polinomul omogen corespunzător .
  6. Să alegem două numere pozitive și , definind regiunea de cernere (ing. regiune de sită ):
  7. Să fie o rădăcină . Să considerăm un inel polinomial . Să definim o mulțime numită baza factorilor algebrici , constând din polinoame de ordinul întâi de forma cu norma (2), care este un număr prim. Aceste polinoame sunt câmpuri simple indecompuse în inelul numerelor întregi algebrice . Să limităm valorile absolute ale normelor de polinoame de la o constantă .
  8. Să definim o bază rațională a factorilor , constând din toate numerele prime mărginite de sus de o constantă .
  9. Definim o mulțime numită baza factorilor de caractere pătratice . Este un set de polinoame de ordinul întâi a căror normă este un număr prim. Condiția trebuie îndeplinită .
  10. Să efectuăm cernerea polinoamelor după baza factorilor și a numerelor întregi după baza factorilor . Ca rezultat, obținem o mulțime formată din perechi netede , adică astfel de perechi care mcd (a,b) = 1, un polinom și un număr și sunt extinse complet în și, respectiv.
  11. Găsiți un submult astfel încât
  12. Să definim un polinom unde este derivata
  13. Polinomul este un pătrat perfect în inelul polinoamelor . Fie atunci o rădăcină a lui și să fie o rădăcină a lui .
  14. Construim o mapare , înlocuind polinomul cu un număr . Această mapare este un homomorfism inel al inelului de numere întregi algebrice în inel , de unde obținem relația:
  15. Lasă . Să găsim o pereche de numere astfel încât . Apoi găsim divizorul numărului calculând mcd(n, A ± B), așa cum se face, de exemplu, în metoda sităi pătratice.

O descriere detaliată a algoritmului poate fi găsită, de exemplu, în [11] și [12] .

Implementări

Până în 2007, software -ul dezvoltat și distribuit de Centrul pentru Matematică și Informatică (CWI) din Țările de Jos, distribuit sub o licență proprietară , a fost considerat cea mai de succes implementare .

În 2007, Jason Papadopoulos a implementat partea finală de procesare a algoritmului, astfel încât să ruleze mai rapid decât versiunea CWI. Acest cod face parte din biblioteca msieve. Msieve este scris în C de Papadopoulos și alții din proiect și include implementări ale metodei de sită generală a câmpului numeric și a metodei de sită pătratică. Distribuit sub drepturi de domeniu public . Suporta calculul distribuit. Cea mai recentă versiune a msieve poate fi găsită pe site-ul autorului .

Alte implementări ale metodei de sită a câmpurilor cu numere generale:

Realizări

În 1996, descompunerea numărului RSA-130 a fost obținută folosind algoritmul . Ulterior, folosind metoda, de exemplu, numerele RSA-140 [13] și RSA-155 [14] au fost factorizate . Acesta din urmă a durat peste 8000 de mips ani pentru a se descompune. Pe 9 mai 2005, F. Bahr, M. Bohm, Jens Franke și T. Kleinjung au anunțat că au descompus numărul RSA-200 utilizând metoda sită a câmpului cu numere generale.

În 2009, un grup de oameni de știință din Elveția, Japonia, Franța, Țările de Jos, Germania și Statele Unite au calculat cu succes datele criptate folosind o cheie criptografică RSA de 768 de biți . [15] După cum reiese din descrierea lucrării, calculul valorilor cheie a fost efectuat prin metoda generală a site-ului de câmp numeric. Potrivit cercetătorilor, după munca lor, doar cheile RSA cu o lungime de 1024 de biți sau mai mult pot fi considerate un sistem de criptare fiabil. [16]

Vezi și

Note

  1. Pomerance, Carl. A Tale of Two Sieves  (engleză)  // Notices of the AMS  : journal. - 1996. - Vol. 43 , nr. 12 . - P. 1473-1485 .
  2. JM Pollard (1988), Factorizarea cu numere cubice 
  3. A. K. Lenstra, H. W. Lenstra, Jr., MS Manasse, J. M. Pollard (1990), The number field sieve , p. 564-572 , ISBN 0-89791-361-2 
  4. Leonard M. Adleman (1991), Factorizarea numerelor folosind numere întregi singulare , p. 64-71, ISBN 0-89791-397-3 
  5. A. K. Lenstra, H. W. Lenstra, Jr., MS Manasse, J. M. Pollard. Factorizarea celui de-al nouălea număr Fermat   // Math . Comp. : jurnal. - 1993. - Vol. 61 . - P. 319-349 . - doi : 10.1090/S0025-5718-1993-1182953-4 .
  6. JP Buhler, HW Lenstra, Carl Pomerance. Factorizarea numerelor întregi cu sita câmpului numeric  (nedefinit)  // Note de curs la Matematică. - 1993. - T. 1554 . - S. 50-94 . - doi : 10.1007/BFb0091539 .
  7. Jean-marc Couveignes. Calcularea unei rădăcini pătrate pentru sita câmpului numeric  (nedefinită)  // Note de curs la matematică. - 1993. - T. 1554 . - S. 95-102 . - doi : 10.1007/BFb0091540 .
  8. ↑ A. K. Lenstra, H. W. Lenstra (1993), The Development of the Number Field Sieve , Springer, ISBN 9783540570134 
  9. Jean-marc Couveignes. O implementare generală a sită a câmpurilor cu numere  (nedefinită)  // Note de curs la matematică. - 1993. - T. 1554 . - S. 103-126 . - doi : 10.1007/BFb0091541 .
  10. I. V. Agafonova Factorizarea numerelor întregi mari și criptografia Copie de arhivă din 26 februarie 2015 la Wayback Machine .
  11. Briggs M. (1998), An Introduction to the General Number Field Sieve , < http://www.math.vt.edu/people/brown/doc/briggs_gnfs_thesis.pdf > Arhivat la 8 august 2017 la Wayback Machine 
  12. Ishmukhametov Sh. T. Metode de factorizare pentru numere naturale . - Kazan: Kazan. un.. - 2011. - 190 p.
  13. Cavallar S., Dodson B., Lenstra AK, Leyland PC, Lioen WM, Montgomery PL, Murphy B., te Riele HJJ, Zimmerman P. Factorization of RSA-140 using the number field sieve / CWI Report MAS-R9925, September 1999.
  14. Cavallar S., Lioen WM, te Riele HJJ, Dodson B., Lenstra AK, Montgomery PL, Murphy B. et al. Factorizarea modulului RSA de 512 biți / Raport CWI MAS-R0007, februarie 2000.
  15. Anunț de factorizare RSA-768 Arhivat 13 aprilie 2014 la Wayback Machine  
  16. ↑ Factorizarea RSA-768 Arhivat 13 decembrie 2012 la Wayback Machine