2017-03-02 2 views
0

Je dois écrire un générateur de nombres aléatoires qui utilise un algorithme conforme à la norme FIPS 140-2. J'ai du mal à trouver tout ce qui va marcher pour moi. Quelqu'un l'a fait avant? Je ne veux pas payer un bras et une jambe pour le faire.Générateur de nombres aléatoires compatibles FIPS 140-2 - Java

Utilisation de Java 8. Environnement de développement est Mac OS X et les serveurs sont CentOS 7.

MISE À JOUR:

code

ressemble à ceci à ce jour.

import java.security.SecureRandom; 
import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 
import java.util.stream.Collectors; 
import java.util.stream.IntStream; 
import java.util.stream.LongStream; 

public class LongRandom { 
public LongRandom(){} 
private Long minLong = new Long("1000000000000000000"); 

public List<Long> getRandomLongList(int numberOfRandom){ 
final SecureRandom random = new SecureRandom(); 
LongStream longs = random.longs(numberOfRandom, minLong, Long.MAX_VALUE).distinct(); 
long[] arrayLong = longs.toArray(); 
List<Long> list = Arrays.stream(arrayLong).boxed().collect(Collectors.toList()); 

return list; 
} 

public Long getRandomLongWinner(List<Long> potentialWinners){ 
final SecureRandom random = new SecureRandom(); 
Collections.shuffle(potentialWinners,random); 
IntStream ints = random.ints(1,0,(potentialWinners.size() - 1)); 

return potentialWinners.get(ints.findFirst().getAsInt()); 
} 

}

+1

Où êtes-vous bloqué? Qu'avez-vous écrit en ce moment? (veuillez poster votre code afin que nous puissions vous fournir une aide précise) – Adonis

+1

Un algorithme peut être conforme à la norme FIPS, une implémentation peut être certifiée FIPS (ce qui signifie qu'il passe tous les vecteurs de test, les tests de démarrage, etc.) –

+0

Avez-vous lu le Javadoc? SecureRandom'? – chrylis

Répondre

0

est ici la liste officielle des RNG adéquates. BSAFE est largement utilisé.

http://csrc.nist.gov/groups/STM/cavp/documents/rng/rngval.html

+0

BSAFE * était * largement utilisé pour les générateurs de nombres aléatoires jusqu'à la débâcle Dual EC DRBG. D'autres fournisseurs ont eu le même PRNG, mais seul BSAFE en a fait leur défaut, autant que je sache. –