Garbell sobre el cos de nombres generalitzat: diferència entre les revisions

Contingut suprimit Contingut afegit
m Robot: Reemplaçament automàtic de text (- + )
Línia 3:
:<math>O\left(e^{(c+o(1))(\log n)^{\frac{1}{3}}(\log \log n)^{\frac{2}{3}}}\right)=L_n\left[1/3,c\right]</math>
 
(en notacions O i L notacions) per a una constant <math>c</math> que depèn de la mesura de complexitat i de la variant de l'algorisme.<ref>{{Ref-llibre|last = Pomerance|first = Carl|author-link = Carl Pomerance|date = December 1996|títol = A Tale of Two Sieves|periodical = Notices of the AMS|volume = 43|issue = 12|pages = 1473–1485|url = http://www.ams.org/notices/199612/pomerance.pdf|format = PDF}}</ref> És una generalització del [[sedàs de cos de nombres especial]]: mentre que aquest últim només pot factoritzar nombres d'una certa forma especial, el sedàs de cos de nombres general pot factoritzar qualsevol nombre (a banda de [[potències de nombres primers]], però això és un problema menor). Quan es fa servir el terme ''sedàs de cos de nombres'' (NFS) és sense qualificatiu, es refereix al sedàs de cos de nombres general.
 
El principi del sedàs de cos de nombre (tant especial com general) es pot entendre com a ampliació del [[sedàs racional]] més simple. Quan es fa servir el sedàs racional per factoritzar un nombre gran ''n'', és necessari buscar [[nombres llisos]] (i.e. nombres amb factors primers petits) d'ordre ''n''; la raresa d'aquests fan que el sedàs racional sigui poc practic. El sedàs de cos de nombre general, per altra banda, només exigeix una cerca de nombres llisos d'ordre ''n'' <sup>1/''d'' </sup>, on ''d'' és algun enter més gran que u. Ja que els nombres més grans tenen moltes menys possibilitats de ser llissos que els nombres més petits, això és la clau a l'eficiència del sedàs de cos de nombres. Però per a aconseguir això augmentar la velocitat, el sedàs de cos de nombre ha de realitzar càlculs i factorizations en el [[cos de nombres]]. Això ocasiona molts aspectes bastant complicats de l'algorisme, en comparació amb el sedàs racional que és més simple.
 
Fixeu-vos que log ''n'' és el nombre de dígits en la representació binària de ''n'', aixó és la mida de l'entrada a l'algorisme. En el (pitjor cas) el temps d'execució és superpolinomic respecte a la mida de l'entrada. És un problema obert important saber si la factorització es pot fer en termini prudencial — [[temps polinòmic]] — en un ordinador clàssic. En un [[computació quàntica|ordinador quàntic]], la factorització és un problema tractable que fa servir l'[[algorisme de Shor]].
 
== Cos de nombres ==
Línia 19:
 
== Mètode ==
S'escullen dos [[polinomi]]s ''f'' (''x'') i ''g'' (''x'') de [[gau d'un polinomi|graus]] petits ''d'' i ''e'', que tinguin coeficients enters, i que siguin [[factorització dels polinomis|irreductibles]] sobre els [[nombre racional|rationals]], i que, quan s'interpreten [[aritmètica modular|mod ''N'']], tenen una [[arrel aritmètica|arrel]] entera comuna ''m''. No es coneix una estratègia òptima per escollir aquests polinomis; un mètode simple és triar un grau ''d'' per a un polinomi, considerar l'expansió de ''n'' en [[Base (àlgebra) |base]] ''M'' (acceptant dígits −''m'' i ''m'' ) per a un nombre de diferent ''m'' d'ordre ''n''<sup>1/''d''</sup>, i agafar ''f'' (''x'' ) com el polinomi amb els coeficients més petits i ''g'' (''x'') com ''x'' − ''m''.
 
Es consideren els anells del cos de nombres '''Z'''[''r'' <sub>1</sub>] i '''Z'''[''r'' <sub>2</sub>], on ''r'' <sub>1</sub> i ''r'' <sub>2</sub> són arrels complexes dels polinomis ''f'' i ''g'' . Com que ''f'' és de grau ''d'' amb coeficients enters, si ''a'' i ''b'' són enters, llavors també ho serà ''b'' <sup>''d''</sup>·''f'' (''a'' /''b'' ), que s'anomena ''r'' . De forma similar ''s'' = ''b''<sup>''e''</sup>·''g'' (''a'' /''b'' ) és un enter. Es procura trobar valors enters de ''a'' i ''b'' que simultàniament facin que ''r'' i ''s'' tinguin facors primers petits respecte a la base escollida de nombres primers. Si ''a'' i ''b'' són petits, llavors ''r'' i ''s'' seran també petits, al voltant de la mida de ''m'', i es tenen més probabilitats que siguin llisos alhora. L'aproximació més coneguda actual per a aquesta cerca és el [[tamisatge d'enreixat]]; per aconseguir rendiments acceptables, és necessari fer servirr una base de factor gran.
 
Tenint prou quantitat de parells d'aquests, fent servir el [[mètode de reducció de Gauss]], es pot obtenir productes de cert ''r'' i del corresponent ''s'' que siguin quadrats alhora. Es necessita una condició una mica més dura, que siguin [[norma d'una cos|normes]] de quadrats en els nostres cosos de nombres, però es pot obtenir aquella condició per aquest mètode també. Cada ''r'' és una norma de ''a'' − ''r'' <sub>1</sub>''b'' i per això es té que el producte dels factors corresponents ''a'' − ''r'' <sub>1</sub>''b'' és una quadrat en '''Z'''[''r'' <sub>1</sub>], amb una "arrel quadrada" que pot ser determinada (com a producte de factors coneguts en '''Z'''[''r'' <sub>1</sub>])—; aixó es representa normalment com a [[nombre algebraic]] irracional. De forma similar, es té que el producte dels factors ''a'' − ''r'' <sub>2</sub>''b'' és una quadrat en '''Z'''[''r'' <sub>2</sub>], amb una "arrel quadrada" que també es pot calcular.
 
Com que ''m'' és una arrel dels dos ''f'' i ''g'' mod ''n'', hi ha [[homomorfisme]]s des dels anells '''Z'''[''r'' <sub>1</sub>] i '''Z'''[''r'' <sub>2</sub>] a l'anell '''Z/nZ''' (el [[Aritmètica modular|mod ''N'']] ), que relaciona ''r'' <sub>1</sub> i ''r'' <sub>2</sub> amb ''m'', i aquests homomorfismes faran correspondre cada "arrel quadrada" (típicament no representada com a nombre racional) al seu representant enter. Ara el producte dels factors ''a'' − ''mb'' mod ''n'' es pot obtinir com a quadrat en les dues bandes del homomorfisme. Així, es tenen dos nombres ''x'' i ''y'', amb ''x'' <sup>2</sup> − ''y'' <sup>2</sup> divisible entre ''n'' i una altra vegada amb la probabilitat com a mínim 1/2 de tenir un factor de ''n'' trobant el [[màxim comú divisor]] de ''n'' i ''x'' − ''y'' .
 
== Millorant l'elecció del polinomi ==
L'elecció de polinòmic pot afectar dramàticament el temps de completar la resta de l'algorisme. El mètode simple explicat abans d'escollir polinomis basat en l'expansió de ''n'' en base ''m'' és subòptim en moltes situacions pràctiques, aixó porta al desenvolupament de millors mètodes.
 
Un mètode d'aquests era suggerit per Murphy i Brent.;<ref>B. Murphy i R. P. Brent. "Sobre polinomis quadràtics per al sedàs de cos de nombres". ''Comunicacions d'Informàtica Australianes'' '''20''' (1998), pàg. 199–;213.</ref> presenten un resultat dos parts per a polinomis, basat en la presència de d'arrels mòdul nombres primers petits i de valor mitjà que el polinomi pren sobre l'àrea de tamisatge.
 
Els millors resultats publicats<ref>{{cita llibre | last=Franke |first=Jens |year=2006 |title=On RSA 200 and larger projects |url=http://www.hyperelliptic.org/tanja/SHARCS/talks06/Jens_Franke.pdf |format=PDF}}</ref>s'aconsegien pel mètode de [[Thorsten Kleinjung]].,<ref>{{cite journal | last=Kleinjung |first=Thorsten |year=2006 |month=October |title=On polynomial selection for the general number field sieve |journal=Mathematics of Computation |volume=75 |number=256 |pages=2037–2047 |url=http://www.ams.org/mcom/2006-75-256/S0025-5718-06-01870-9/S0025-5718-06-01870-9.pdf |format=PDF|accessdate=2007-12-13 |doi=10.1090/S0025-5718-06-01870-9}} </ref> que permet ''g'' (''x'' ) = ''ax'' + ''b'', i busca sobre ''a'' compost de factors primers petits congruent a 1 modulo 2''d'' i sobre coeficients principals de ''f'' que són divisibles entre 60.
 
== Implementacions ==
Fins a 2007, l'aplicació estàndard era una paquet de programari desenvolupat i distribuït per [[National Research Institute for Mathematics and Computer Science|CWI]] als Països Baixos, que estava disponible només sota una llicència relativament restrictiva. El 2007, [[Jason Papadopoulos]] desenvolupava una aplicació més ràpida de processament final com part de msieve, que és de domini públic. msieve, tanmateix, només pot córrer en un únic ordinador [[symmetric multiprocessing|SMP]], mentre l'aplicació de CWI es pot distribuir entre uns quants nusos en un grup amb conexions prou ràpides.
 
La selecció del polinomi és fa normalment pel programari de [[GPL]] escrit per Kleinjung, o per msieve, i el tamisatge d'enreixat per programari de [[GPL]] escrit per Franke i Kleinjung; aquests es distribueixen a GGNFS.