Special number field sieve-metoden ( engelska special number field sieve , SNFS) är en metod för att faktorisera heltal av ett speciellt slag. Från den härleddes den allmänna talfältssiktmetoden , som är den mest effektiva faktoriseringsalgoritmen för stora heltal . Metoden är effektiv för heltal av formen r e ± s , där r N s Z, r och s är små (t.ex. Mersenne-tal ).
Den heuristiska uppskattningen av komplexiteten av faktorisering av talet n uttrycks med formeln [1] :
Med SNFS faktoriserades Fermat-numret med 155 decimalsiffror [2] .
Grundidén med metoden föreslogs först John Pollard sin artikel [3] som han skickade till sina kollegor 1988. I den illustrerade han sin metod på det sjunde Fermat-numret . Tanken var att utföra siktningen inte på en ring av heltal, som i kvadratisk siktmetoden , utan på ett algebraiskt talfält. 1990 bröts det nionde Fermat-numret ned med denna metod . Inledningsvis var metoden endast tillämpbar för nummer av en speciell form 2 n ± c , varför den kallades för "specialnummerfältsållmetoden". Metoden modifierades senare för godtyckliga siffror och döptes till den allmänna numeriska siktmetoden .
SNFS bygger på den enklare rationella sållmetoden . Läsaren uppmanas att bekanta sig med denna metod innan de lär sig om SNFS.
SNFS fungerar så här. Låt n vara talet som ska faktoriseras. I likhet med den rationella siktmetoden kan SNFS-algoritmen delas upp i två steg:
Det andra steget är identiskt med steget i den rationella siktmetoden och är ett linjärt algebraproblem . Till skillnad från det första steget, som i denna metod är mer effektivt.
Låt n vara ett faktoriserbart tal. Ta ett irreducerbart polynom f och ett heltal m så att f ( m ) ≡ 0 ( mod n ) (principerna för att välja dem kommer att förklaras i nästa avsnitt). Låt α vara roten till f ; då finns det en ring Z [α]. Sedan finns det en unik homomorfismring φ mellan Z [ α ] och Z /n Z som mappar α till m . För enkelhetens skull antar vi att Z [ α ] är en faktoriell ring ; metoden kan modifieras för de fall då detta villkor inte är uppfyllt, vilket kommer att leda till ytterligare beräkningar.
Sedan skapar vi två faktorbaser , en för Z [ α ] och en för Z. Faktorbasen Z [ α ] innehåller alla primtal Z [ α ] vars storlek är begränsad av . Faktorbasen Z , som i den rationella siktmetoden, består av primtal upp till något gränstal.
Sedan letar vi efter coprimtal ( a , b ) så att:
Dessa par av siffror hittas genom en sållningsmetod som liknar Eratosthenes såll ; detta förklarar namnet på talfältsållmetoden.
För varje sådant par av tal ( a , b ) kan vi tillämpa homomorfismringen φ för att faktorisera a + bα och den kanoniska homomorfismringen från Z till Z /n Z för att faktorisera a + bm . Genom att likställa dem får vi multiplikativa relationer för elementen i faktorbasen Z /n Z . Efter att ha hittat ett tillräckligt antal sådana förhållanden multiplicerar vi dem sinsemellan enligt beskrivningen ovan.
Inte alla tal är lämpliga för faktorisering med SNFS-metoden: det är nödvändigt att i förväg hitta ett polynom f av lämplig grad (den optimala graden antas vara ; för tal som kan faktoriseras vid det givna ögonblicket är N 4,5 eller 6) med små koefficienter och x så att , där N är talet för faktorisering . Även x måste vara sådan att det gäller för a och b inte stora .
En av de typer av tal som sådana polynom finns för är nummer av formen ; till exempel, när NFSNET dekomponerade talet 3^479+1 använde de x^6+3-polynomet för x=3^80, eftersom (3^80)^6+3 = 3^480+3 och .
Tal definierade av linjära återkommande relationer, som Fibonacci-tal och Lucas-tal , har också SNFS-polynom, men de är lite svårare att få fram. Har till exempel ett polynom och ett x -värde som uppfyller . [fyra]
Om du känner till några divisorer för ett stort SNFS-tal kan du göra SNFS-beräkningar för resten; för exemplet ovan från NFSNET, 3^479+1 = (4 158071 7167757 7759574882776161031) gånger ett 197-siffrigt sammansatt nummer (små delare eliminerades med ECM -metoden ), och SNFS användes för ett 197-siffrigt tal. Antalet operationer för NFS beror på storleken på det ursprungliga numret, men vissa beräkningar är snabbare modulo ett mindre antal.
Denna metod, som noterats ovan, är mycket effektiv för tal av formen r e ± s , där r och s är relativt små. Det är också effektivt för tal som kan representeras som ett polynom med små koefficienter. Faktum är att den speciella nummerfältsållmetoden sållar för två nummerfält. Metodens effektivitet är starkt beroende av storleken på vissa element inom dessa områden. Om ett tal kan representeras som ett polynom med små koefficienter är talen som beräknas mycket mindre än de tal som man har att göra med om ett sådant polynom inte finns.