In pratica la formula che utilizzi per per generare un numero primo è la seguente:
b^n+RAND([1;MAX])
A questo punto mi sorgono tre domande:
1) Quali sono i valori assumibili (in termini di range) da b
, n
e MAX
?
2) Ovviamente il valore (chiamiamolo m
) ritornato dalla suddetta formula non sempre è un numero primo, quindi nel caso come passi da m
ad un numero primo p
? E che legame c'è tra tali m
e p
? E' per caso p=nextprime(m)
?
3) Sia s=p1*p2
il semiprimo passato alla funzione di fattorizzazione, esiste un legame tra p1
e p2
o sono due numeri primi generici? Infine, oltre ad s
, la funzione di fattorizzazione riceve in input anche altri parametri?
Questo metodo è molto nuovo e sicuramente ci sarebbe da studiarlo a fondo per capire appieno la sicurezza dei numeri trovati.
Adesso non voglio farti tutta la storia perchè sarebbe complessa e richiederebbe molto tempo. Ti invito comunque a leggere sul sito che ho creato dove potrai trovare tutte le informazione relative alla sua nascita e agli step che lo hanno fatto diventare quello che è adesso.
Qui posso dirti che i numeri presi in considerazione sono stati sperimentati negli anni con dei test eseguiti sugli algoritmi conosciuti come
pari/gp, ECM, GNFS, e librerie come Sympy che con le sua funzione di factorint è molto potente. Quello che ho potuto notare è che gioca molto la distanza degli esponentim e la struttura del numero, come per esempio potrebbe essere un 7856234671**20 che pur non essendo un numero primo genera una struttura molto complicata da identificare.
In pratica noi ci troviamo di fronte a due domande serie: I numeri primi utilizzati sono banali? Perchè una chiave riesce a fattorizzare miliardi di miliardi di semiprimi senza eseguire nessun incremento o ricerca per tentativi come fanno gli algoritmi fino ad ora conosciuti?
Alla prima domanda mi sento di rispondere con assoluta certezza che i numeri primi utilizzati non sono banali e questo lo dimostra anche il fatto che numero creati in questo modo, anche di solo di poche centinaia di cifre, non vengono risolti dai più capaci algoritmi conosciuti. Provare per credere.
La seconda domanda apre invece un dibattito non indifferente, a mio parere. Ogni algoritmo conosciuto per arrivare alla soluzione deve trovare per tentativi uno dei numeri primi che compongono il semiprimo. Con più è grande il semiprimo con più saranno i tentativi e con più il tempo si allungherà. Il GC57 mette in campo una terza opzione che è quella della chiave. La chiave è un elemento in più che ti porta alla soluzione indicandoti la via più breve, e questa chiave è contenuta nel semiprimo stesso.
Comunque stiano le cose non sarò certo io a dare una spiegazione scintifico matematica a questa chiave perchè non ne ho la capacità. Con questo non dico che la cosa mi è capitata tra le mani così, dal cielo, perchè gli ho dedicato tre anni incessanti di test e sperimentazione. Ho avuto un intuito e l'ho sfruttato. Funziona, e funziona molto bene, a tal punto che sfido chiunque nel cercare di fattorizzare questi semiprimi in un tempo O(1) meno di un secondo o anche fattorizzarli nel tempo che decidono loro.
mi avete fatto venire il mal di testa...io sono sulla via dell'anzianità porca di quella miseria
anche io