Fattorizzazione dei numeri interi

  • View
    2.067

  • Download
    3

Embed Size (px)

DESCRIPTION

metodi per fattorizzare numeri interi molto grandi

Text of Fattorizzazione dei numeri interi

  • 1. FrontPagePage 1 of 7 armellini: FrontPage Fattorizzare i numeri interi Ci sono molti algoritmi efficienti per fattorizzare numeri interie molti sono i testi dove possibile trovare una completa trattazione sull'argomento, Qui vogliamo proporre dei sistemi (in parte abbastanza originali e forse relativamente veloci ma senza nessuna pretesa da parte nostra) per cercare di trovare i fattori di un numero intero con metodi algebrici e facilmente implementabili in un moderno calcolatore. A breve verranno pubblicati dei programmi in Visual Basic .Net con i quali sar possibile fare delle simulazioni numeriche. La cosa migliore per verificare formule e algoritmi usare un software come il Mathematica o il C/C++. (software ancora in fase di test -versione beta). L'idea comunque quella di trovare dei limiti entro cui cercare con maggiori probabilit le soluzioni. Nella ricerca delle soluzioni prendiamo in esame solo valori interi positivi bench in linea di principio potremmo considerare anche i negativi dal momento che 9 = 3*3 = (-3)*(-3). Fancendo girare tutti gli algoritmi in parallelo aumenta la probabilit di trovare soluzioni in tempi rapidi. Considerazione preliminare Dato un numero p da fattorizzare di n cifre facile provare che almeno un fattore deve deve essere dell'ordine dicio deve avere almeno int(n/2) cifre. Gli altri fattori potrebbero avere int(n/2) +1, int(n/2) + 2 cifre, ecc. Questa semplice osservazione gi ci indica dei limiti, degli intervalli in cui agire per la ricerca dei fattori. Per la ricerca del primo fattore = W (iniettore di potenza) ove int(x) la parte intera di x. Inoltre quando si sommano due fattori di p l'ordine di grandezza della somma dei fattori sempre quello del fattore maggiore.Primo algoritmo(in generale non detto che ci siano solo due fattori come nell'RSA ma il procedimento di fattorizzazione pu essere reteirato per ognuno dei due fattori trovati finch non si arriva a fattori che non hanno decomposizione non banale cio che sono primi) http://armellini.pbworks.com/FrontPage?mode=print20/05/2010

2. FrontPagePage 2 of 7 tutti i numeri interi positivi (ove la ricerca pu essere fatta in modo sequenziale oppure random)Attenzione: per P molto grande A(p) cio il numero dei primi minori di P approssimativamente p/log(p)Secondo algoritmo tentiamo di velocizzare la ricerca delle soluzioni con l'iniettore di potenza W precedentemente introdottodove OR sta ad indicare che la relazione vale per una radice o per entrambe, da questa diseguaglianza mi trovo un limite massimo per s ciohttp://armellini.pbworks.com/FrontPage?mode=print20/05/2010 3. FrontPagePage 3 of 7 per X2 (radice con il -) oppure vale l'oppostoper X1 (radice con il +) (punto nodale utile come punto di partenza nelle due opposte direzioni)S intero positivo (la ricerca di S pu essere fatta in modo sequenziale oppure random) Nel caso che si sappia che si sta trattando di un problema RSA i due fattori essendo primi hanno come somma un numero pari cos che i casi da esaminare si dimezzano. In ogni caso un quadrato perfetto e i metodi di ricerca devono tener conto di questoequivale alla ben nota relazioneTerzo algoritmo dove m intero allora http://armellini.pbworks.com/FrontPage?mode=print20/05/2010 4. FrontPagePage 4 of 7da cui si pu partire direttamente da m per trovare le soluzioni un quadrato perfetto e i metodi di ricerca devono tener conto di questotentiamo di velocizzare la ricerca delle soluzioni con l'iniettore di potenza W precedentemente introdottodove OR sta ad indicare che la relazione vale per un radice o per entrambre (da questa disuguaglianza mi trovo una condizione perm) cioper X1 oppure per X2(m comunque deve essere positivo)Quarto algoritmo http://armellini.pbworks.com/FrontPage?mode=print20/05/2010 5. FrontPage Page 5 of 7 tentiamo di velocizzare la ricerca delle soluzioni con l'iniettore di potenza W precedentemente introdotto(dove OR sta ad indicare che la relazione vale per una radice o per enrambe, da questa diseguaglianza mi trovo un condizione per a e/o per b cio (radice con il +) oppure vale l'opposto(radice con il -) (punto nodale) dipende dalla soluzione che troviamo per prima Quinto algoritmoSe allora sostituendo le variabili ottengo chequindi applichiamo anche qui la condizione http://armellini.pbworks.com/FrontPage?mode=print 20/05/2010 6. FrontPage Page 6 of 7 abbiamo chenel caso opposto cio cheabbiamo che . nel caso della radice con il (-) nel caso della radice con il segno (+) Fattorizzazione e ricerca operativa Possiamo vedere le cose anche da un altro punto di vista, dal punto di vista della ricerca operativa (programmazione non lineare). Il nostro problema diventa un problema di programmazione non lineare a variabili intere: funzione obiettivo P = X1 X2 variabili: X1, X2 vincoli: X1, X2 >0 e interioppure: funzione obiettivo max(X1 X2) o min(X1 X2) variabili X1, X2 vincoli X1, X2 > 0 e interi con X1 X2 < P o X1X2 > Pe applicare i metodi della ricerca operativa e/o i software gi predisposti per questo tipo di problemi Conseguenze http://armellini.pbworks.com/FrontPage?mode=print 20/05/2010 7. FrontPagePage 7 of 7 Usando un sistema di calcolo parallelo ove ogni algoritmo fatto girare su un pc abbastanza potente e veloce si potrebbero fattorizzare numeri interi anche molto grandi.A breve pubblicher una applicazione in EXCEL dove mostrer alcune simulazioni numeriche con tutti gli algoritmi descritti sopraAutore: C. Armellini armellini74@alice.it http://armellini.pbworks.com/FrontPage?mode=print20/05/2010