A speciális számmezőszita módszer ( angolul special number field szita , SNFS) egy speciális típusú egész számok faktorálási módszere. Ebből származtatták az általános számmező szita módszert , amely a leghatékonyabb faktorizációs algoritmus nagy egész számok esetén . A módszer r e ± s alakú egész számokra hatásos , ahol r N s Z, r és s kicsik (pl . Mersenne-számok ).
Az n szám faktorizálásának összetettségének heurisztikus becslését az [1] képlet fejezi ki :
SNFS segítségével a 155 tizedesjegyből álló Fermat-számot [2] faktorizáltuk .
A módszer alapötletét először John Pollard cikkében [3] amelyet 1988-ban küldött el kollégáinak. Ebben a hetedik Fermat-számon illusztrálta módszerét . Az ötlet az volt, hogy a rostálást ne egész számok gyűrűjén végezzük, mint a másodfokú szita módszernél , hanem egy algebrai számmezőn. 1990-ben ezzel a módszerrel bontották fel a kilencedik Fermat-számot . A módszer kezdetben csak speciális 2 n ± c alakú számokra volt alkalmazható , ezért nevezték "speciális számmezőszita módszernek". A módszert később tetszőleges számokra módosították és általános numerikus szita módszernek nevezték el .
Az SNFS az egyszerűbb racionális szita módszeren alapul . Javasoljuk, hogy az olvasó ismerkedjen meg ezzel a módszerrel, mielőtt megismerné az SNFS-t.
Az SNFS így működik. Legyen n az a szám, amelyet a faktorizáláshoz kell tenni. A racionális szita módszerhez hasonlóan az SNFS algoritmus két lépésre bontható:
A második lépés megegyezik a racionális szita módszer lépésével, és egy lineáris algebrai feladat . Ellentétben az első lépéssel, amely ennél a módszernél hatékonyabb.
Legyen n faktorizálható szám. Vegyünk egy f irreducibilis polinomot és egy m egész számot , amelyekre f ( m ) ≡ 0 ( mod n ) (a választásuk alapelveit a következő részben magyarázzuk el). Legyen α f gyöke ; akkor van egy Z [α] gyűrű . Ezután van egy egyedi homomorfizmusgyűrű φ Z [ α ] és Z /n Z között , amely leképezi α -t m -re . Az egyszerűség kedvéért feltételezzük, hogy Z [ α ] faktoriális gyűrű ; a módszer módosítható arra az esetre, ha ez a feltétel nem teljesül, ami további számításokhoz vezet.
Ezután létrehozunk két faktorbázist , egyet Z [ α ] -hoz, egyet pedig Z -hez. A Z [ α ] faktorbázis tartalmazza az összes Z [ α ] prímet , amelynek mérete korlátozott . A Z faktorbázis , akárcsak a racionális szita módszernél, prímszámokból áll valamilyen határszámig.
Ezután keresünk olyan másodpímszámokat ( a , b ), hogy:
Ezeket a számpárokat Eratoszthenész szitájához hasonló szitálási módszerrel találjuk meg ; ez magyarázza a számmező szita módszer nevét.
Minden ilyen számpárra ( a , b ) alkalmazhatjuk a φ homomorfizmus gyűrűt a + bα faktorizálására és a kanonikus homomorfizmus gyűrűt Z -ről Z /n Z -re az a + bm faktorizálására . Ezeket egyenlítve multiplikatív összefüggéseket kapunk a Z /n Z faktorbázis elemeire . Miután elegendő számú ilyen arányt találtunk, a fent leírtak szerint megszorozzuk őket egymás között.
Nem minden szám alkalmas az SNFS módszerrel történő faktorizálásra: előre meg kell találni egy megfelelő fokú f polinomot (az optimális fokot feltételezzük ; az adott pillanatban faktorizálható számoknál N 4,5 vagy 6) kis együtthatók és x úgy, hogy ahol N a faktorizálás száma. Az x -nek is olyannak kell lennie, hogy a- ra és b-re érvényes legyen, ne legyen nagy .
Az egyik olyan számtípus, amelyre ilyen polinomok léteznek, a következő alakú számok ; például amikor az NFSNET felbontotta a 3^479+1 számot, az x^6+3 polinomot használta az x=3^80-hoz, mert (3^80)^6+3 = 3^480+3 és .
A lineáris ismétlődési relációk által meghatározott számok, mint például a Fibonacci-számok és a Lucas-számok is rendelkeznek SNFS-polinomokkal, de ezeket egy kicsit nehezebb megszerezni. Például van egy polinomja és egy x értéke , amely kielégíti a . [négy]
Ha ismeri egy nagy SNFS-szám néhány osztóját, akkor a többihez SNFS-számításokat végezhet; a fenti példában az NFSNET-ből 3^479+1 = (4 158071 7167757 7759574882776161031) szorozva egy 197 jegyű összetett számot (a kis osztókat az ECM módszerrel eltávolítottuk ), és az SNFS-t egy 197-es számjegyhez alkalmaztuk. Az NFS-hez tartozó műveletek száma az eredeti szám méretétől függ, de egyes számítások gyorsabbak egy kisebb számnál.
Ez a módszer, amint fentebb megjegyeztük, nagyon hatékony r e ± s alakú számok esetén , ahol r és s viszonylag kicsik. Hatásos olyan számokra is, amelyek kis együtthatókkal polinomként ábrázolhatók. A helyzet az, hogy a speciális számmező szita módszer két számmezőre szitál. A módszer hatékonysága nagymértékben függ ezeken a területeken az egyes elemek méretétől. Ha egy szám kis együtthatójú polinomként ábrázolható, akkor a kiszámított számok sokkal kisebbek, mint azok a számok, amelyekkel akkor kell foglalkozni, ha ilyen polinom nem létezik.