PDA

View Full Version : [java] Grandi numeri randon davvero random


arcer
16-08-2007, 10:44
salve ragazzi devo generare delle chiavi per l'algoritmo RSA, questo algoritmo nella generazione delle chiavi ha bisogno di due numeri primi molto grandi e casuali...

per il fatto che i numeri primi siano grandi non è un problema perche uso i BigInteger, per il fatto di essere primi non è neanche un problema perche uso i crivelli(eratostene o atkin), ma per il fatto che devono essere casuali potrebbe rappresentare un problema perche :


non saprei come generare un numero (abbastanza grande), da cui partire per la ricerca del numero primo, in modo che questo numero sia ogni volta diverso e la generazione di questo numero mi porti sempre a numeri primi diversi. Perche essendo che la distribuzione dei numeri primi per numeri grandi è abbastanza dilatata se io genero dei semi di partenza molto vicini otterrò presumibilmente sempre gli stessi numeri primi...



avete una soluzione?

arcer
16-08-2007, 12:55
ho trovato nella classe BigInteger il metodo probablePrime(lungBit,random)

avete idea di come usarlo per ottenere un numero primo certamente giocando sul secondo parametro?

Ziosilvio
16-08-2007, 15:21
Prova a cercare qualche implementazione del Mersenne twister (http://en.wikipedia.org/wiki/Mersenne_twister): ce ne dovrebbero sicuramente di già pronte anche in Java.

fuocofatuo
16-08-2007, 15:58
Il crivello di eratostene non è gran che efficiente come test di primalità. Garda qui, invece:
http://it.wikipedia.org/wiki/Test_di_Miller-Rabin

Può darsi che il metodo da te citato implementi questo algoritmo. Guarda la documentazione.

PGI-Bis
16-08-2007, 16:14
Per i numeri casuali, in rete ci sono dei servizi per la produzione di numeri veramente casuali. Fino a qualche tempo fa ce ne aveva uno l'università di zagabria ma ora non riesco ad accedere. Comunque il link è (era):

http://random.irb.hr/index.php