Crivello quadratico

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:S

Il crivello quadratico è un algoritmo di fattorizzazione creato da Carl Pomerance. Questo algoritmo è particolarmente famoso perché nel 1994 ha fattorizzato il numero RSA-129, composto da 129 cifre in base dieci.

Algoritmo

L'algoritmo consta di 8 passi:

  1. Viene dato in input il numero naturale dispari n>1.
  2. Si sceglie un naturale k>0.
  3. Si esaminano tutti i primi pk e si eliminano tutti i primi dispari tali che (np)1, dove con (np) si intende il simbolo di Legendre, e si ottiene così la base di fattori B={p1,p2,,pt}.
  4. Facendo assumere ad r valori interi successivi a n, si trovano almeno t+1 valori y=r2n che abbiano tutti i loro fattori primi in B.
  5. Per ognuno dei valori y1,y2,,yt+1 si calcola il vettore in (/2)t:v2(yi)=(e1,e2,,et) dove ei è la riduzione modulo 2 dell'esponente di pi nella fattorizzazione di yi.
  6. Con il metodo di eliminazione di Gauss si determinano alcuni dei vettori v2(yi) che danno somma uguale al vettore nullo.
  7. Si pone x uguale al prodotto degli ri corrispondenti agli yi trovati nel passo 6) e si pone y uguale al prodotto delle potenze di p1,p2,,pt con esponenti uguali alla semisomma degli esponenti della fattorizzazione degli stessi yi.
  8. Si calcola d=mcd(xy,n) e se 1<d<n allora d è divisore non banale di n, altrimenti si torna al passo 2) con una scelta di k più grande.

Collegamenti esterni

Template:Portale