Allmänt nummerfältsållmetod
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 7 december 2019; kontroller kräver
9 redigeringar .
Den allmänna talfältsållmetoden ( engelsk general number field sieve, GNFS) är en faktoriseringsmetod för heltal . Det är den mest effektiva faktoriseringsalgoritmen för tal längre än 110 decimaler. Algoritmens komplexitet uppskattas av den heuristiska formeln [1]
Metoden är en generalisering av den speciella metoden för talfältssilen: medan den senare endast tillåter en att faktorisera tal av något speciellt slag, fungerar den allmänna metoden på mängden heltal, med undantag för primpotenser (som faktoriseras trivialt av slå rötter).
Historik
1988 beskrev den engelske matematikern John Pollard en ny metod för att faktorisera heltal av en speciell form ( ), som illustrerar den med expansionen av det sjunde Fermat-talet . Till skillnad från den kvadratiska siktmetoden , där siktningen utförs på ringen av alla heltal, föreslog metoden att använda ringen av heltal över ett talfält . Manuskriptet bifogades med ett brev adresserat till Andrew Odlyzko , och Richard Brent , John Brillhart , Hendrik Lenstra , Klaus Schnorr och H. Suyama fick också kopior . I detta brev föreslog Pollard att denna metod kanske skulle kunna användas för att utöka det nionde Fermat-numret . [2]
År 1990 beskrev A. Lenstra , H. Lenstra, Mark Manasse och Pollard den första storskaliga implementeringen av den nya metoden, med några förbättringar. De visade att algoritmen fungerar snabbare på tal av en speciell typ än alla andra kända faktoriseringsmetoder. Tidningen diskuterar också idén om Joe Buhler och Karl Pomerans att förbättra metoden för att bryta ned alla heltal och skisserar lösningen på detta problem. [3]
Senare föreslog Leonard Max Adleman att använda kvadrattecknet för att hitta kvadrater i ett nummerfält. Detta gav en alternativ lösning på problemet som Buchler och Pomerance tog upp och förbättrade den beräknade körtiden för nummerfältssilen när den tillämpades på nummer av ett icke-speciellt slag. [fyra]
Samma år presenterade A. Lenstra, H. Lenstra, Manasse och Pollard expansionen av det nionde Fermat-numret med hjälp av talfältsmetoden. I motsvarande artikel diskuteras många detaljer om denna nedbrytning. [5]
Slutligen, i "Factorizing Integers with the Number Field Sieve", beskrev Buchler, H. Lenstra och Pomerance att talfältssiktmetoden tillämpas på tal som inte nödvändigtvis har en speciell form. [6]
Denna implementering av algoritmen inkluderade ett steg som involverade beräkningar med extremt stora tal. Jean-Marc Kuwaignes beskrev i sitt arbete ett sätt att komma runt detta. [7]
Resultaten av den tidiga utvecklingen av metoden sammanfattades av en samling artiklar redigerade av A. Lenstra och H. Lenstra. [8]
Samlingen innehöll bland annat en artikel av Bernstein och A. Lenstra, som beskrev en annan förbättrad implementering av algoritmen. Artikeln ingick i samlingen under rubriken "The General Method of the Number Field Sieve". [9]
Kärnan i metoden
Talfältsållmetoden (både speciell och generell) kan tänkas som en förbättring av en enklare metod, den rationella sållmetoden eller den kvadratiska sållmetoden. Algoritmer som liknar dem kräver att man hittar jämna ordningstal . Storleken på dessa siffror växer exponentiellt som . Nummerfältssiktmetoden kräver i sin tur att man hittar jämna tal som är subexponentiella med avseende på storlek. Eftersom dessa siffror är mindre är det mer sannolikt att ett antal av denna storlek kommer att vara jämna, vilket är anledningen till att talfältssiktmetoden är så effektiv. För att uppnå acceleration av beräkningar inom ramen för metoden utförs de i numeriska fält , vilket komplicerar algoritmen, jämfört med en enklare rationell såll.
Grundläggande principer
- Fermats faktoriseringsmetod för att faktorisera naturliga udda tal n , bestående av att hitta heltal x och y så att , vilket leder till en faktorisering av .
- Att hitta en delmängd av mängden heltal vars produkt är en kvadrat [10]
- Sammanställning av faktorbasen: en mängd , där p i är primtal så att för vissa B .
- Sållningen görs som sikten från Eratosthenes (därav metoden har fått sitt namn). Silen är primtalen för faktorbasen och deras styrkor. Vid siktning är siffran inte "överstruken", utan delas med siffran från sikten. Om numret som ett resultat visade sig vara ett, så är det B -slät.
- Huvudtanken är att istället för att iterera över tal och kontrollera om deras kvadrater är delbara modulo n med primtal från faktorbasen, sorteras primtalen från basen ut och omedelbart för alla tal i formen kontrolleras om de är delbart med detta primtal eller dess potens .
Algoritm
Låt vara ett udda sammansatt tal som ska faktoriseras.
-
Vi väljer graden av ett irreducerbart polynom (för det blir ingen vinst i jämförelse med den kvadratiska siktmetoden).
-
Vi väljer ett heltal så att , och expanderar n i basen :
(ett)
-
Låt oss associera med expansion (1) polynomet, irreducerbart i ringen av polynom med heltalskoefficienter
-
Vi definierar sållningspolynomet som ett homogent polynom i två variabler och :
(2)
-
Vi definierar det andra polynomet och det motsvarande homogena polynomet .
-
Låt oss välja två positiva tal och definiera siktningsregionen (eng. sieve region ):
-
Låt vara en rot . Betrakta en polynomring . Låt oss definiera en mängd som kallas den algebraiska faktorbasen , bestående av första ordningens polynom av formen med norm (2), som är ett primtal. Dessa polynom är enkla fält oupplösliga i ringen av algebraiska heltal . Låt oss begränsa de absoluta värdena för normerna för polynom från en konstant .
-
Låt oss definiera en rationell faktorbas som består av alla primtal som avgränsas uppifrån av en konstant .
-
Vi definierar en mängd som kallas faktorbasen av kvadratiska tecken . Det är en uppsättning första ordningens polynom vars norm är ett primtal. Villkoret måste vara uppfyllt .
-
Låt oss utföra siktningen av polynom med faktorbasen och heltal med faktorbasen . Som ett resultat får vi en mängd som består av jämna par , det vill säga sådana par att gcd (a,b) = 1, ett polynom och ett tal och expanderas helt i resp .
-
Hitta en delmängd sådan att
-
Låt oss definiera ett polynom
var är derivatan
-
Polynomet är en perfekt kvadrat i ringen av polynom . Låt då vara en rot till och vara en rot till .
-
Vi konstruerar en mappning och ersätter polynomet med ett tal . Denna mappning är en ringhomomorfism av ringen av algebraiska heltal in i ringen , varifrån vi får förhållandet:
-
Låt . Låt oss hitta ett par siffror så att . Sedan hittar vi talets divisor genom att räkna ut gcd(n, A ± B), som man till exempel gör i kvadratsiktsmetoden.
En detaljerad beskrivning av algoritmen finns till exempel i [11] och [12] .
Implementeringar
Fram till 2007 ansågs programvara som utvecklats och distribueras av Center for Mathematics and Informatics (CWI) i Nederländerna, distribuerad under en egen licens
, vara den mest framgångsrika implementeringen .
År 2007 implementerade Jason Papadopoulos den slutliga bearbetningsdelen av algoritmen så att den gick snabbare än CWI-versionen. Denna kod är en del av msieve-biblioteket. Msieve är skriven i C av Papadopoulos och andra i projektet och inkluderar implementeringar av den allmänna talfältssiktmetoden och den kvadratiska siktmetoden. Distribueras under allmän egendomsrätt . Stöder distribuerad datoranvändning. Den senaste versionen av msieve finns på författarens webbplats .
Några andra implementeringar av den allmänna nummerfältssiktmetoden:
Prestationer
1996 erhölls RSA-130- nummernedbrytningen med hjälp av algoritmen . Senare, med hjälp av metoden, till exempel, faktoriserades siffrorna RSA-140 [13] och RSA-155 [14] . Den senare tog över 8000 mips år att bryta ner. Den 9 maj 2005 tillkännagav F. Bahr, M. Bohm, Jens Franke och T. Kleinjung att de hade dekomponerat RSA-200- numret med den allmänna sifferfältsmetoden.
Under 2009 beräknade en grupp forskare från Schweiz, Japan, Frankrike, Nederländerna, Tyskland och USA framgångsrikt data krypterad med en 768-bitars RSA -krypteringsnyckel. [15] Som följer av beskrivningen av arbetet utfördes beräkningen av nyckelvärden med den allmänna metoden för nummerfältssikten. Enligt forskarna kan endast RSA-nycklar med en längd på 1024 bitar eller mer efter deras arbete betraktas som ett tillförlitligt krypteringssystem. [16]
Se även
Anteckningar
- ↑ Pomerance, Carl. A Tale of Two Sieves (engelska) // Notices of the AMS : journal. - 1996. - Vol. 43 , nr. 12 . - P. 1473-1485 .
- ↑ JM Pollard (1988), Factoring med kubiktal
- ↑ A. K. Lenstra, H. W. Lenstra, Jr., MS Manasse, J. M. Pollard (1990), The number field sieve , sid. 564-572, ISBN 0-89791-361-2
- ↑ Leonard M. Adleman (1991), Faktorisering av tal med singulära heltal , s. 64-71, ISBN 0-89791-397-3
- ↑ A. K. Lenstra, H. W. Lenstra, Jr., MS Manasse, J. M. Pollard. Faktoriseringen av det nionde fermatnumret // Math . Comp. : journal. - 1993. - Vol. 61 . - s. 319-349 . - doi : 10.1090/S0025-5718-1993-1182953-4 .
- ↑ JP Buhler, HW Lenstra, Carl Pomerance. Faktorering av heltal med talfältssilen (obestämd) // Föreläsningsanteckningar i matematik. - 1993. - T. 1554 . - S. 50-94 . - doi : 10.1007/BFb0091539 .
- ↑ Jean-marc Couveignes. Computing A Square Root For The Number Field Sieve (obestämd) // Lecture Notes in Mathematics. - 1993. - T. 1554 . - S. 95-102 . - doi : 10.1007/BFb0091540 .
- ↑ A. K. Lenstra, H. W. Lenstra (1993), The Development of the Number Field Sieve , Springer, ISBN 9783540570134
- ↑ Jean-marc Couveignes. Implementering av ett generellt antal fältsikter (obestämd) // Lecture Notes in Mathematics. - 1993. - T. 1554 . - S. 103-126 . - doi : 10.1007/BFb0091541 .
- ↑ I. V. Agafonova Faktorisering av stora heltal och kryptografi Arkivexemplar av 26 februari 2015 på Wayback Machine .
- ↑ Briggs M. (1998), An Introduction to the General Number Field Sieve , < http://www.math.vt.edu/people/brown/doc/briggs_gnfs_thesis.pdf > Arkiverad 8 augusti 2017 på Wayback Machine
- ↑ Ishmukhametov Sh. T. Faktoriseringsmetoder för naturliga tal . - Kazan: Kazan. un.. - 2011. - 190 sid.
- ↑ 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.
- ↑ Cavallar S., Lioen WM, te Riele HJJ, Dodson B., Lenstra AK, Montgomery PL, Murphy B. et al. Faktorisering av 512-bitars RSA-modul / CWI-rapport MAS-R0007, februari 2000.
- ↑ RSA-768 faktoriseringsmeddelande Arkiverad 13 april 2014 på Wayback Machine
- ↑ RSA-768- faktorisering Arkiverad 13 december 2012 på Wayback Machine