2017-03-02 11 views
0

FIPS 140-2 호환/인증 알고리즘을 사용하는 난수 생성기를 작성해야합니다. 나는 나를 위해 일할만한 것을 찾는 데 어려움을 겪고 있습니다. 누구든지 전에 해본 적있어? 나는 이것을하기 위해 팔과 다리를 치고 싶지 않습니다. 자바 8. 개발 환경을 사용FIPS 140-2 호환 난수 생성기 - Java

맥 OSX이며, 서버는

가 UPDATE 가상 코어 7은 다음과 같습니다

코드는 현재까지 다음과 같습니다.

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

차단 된 곳은 어디입니까? 당신은 현재 무엇을 썼습니까? (정확한 도움말을 제공 할 수 있도록 코드를 게시하십시오.) – Adonis

+1

알고리즘은 FIPS와 호환 될 수 있습니다. 구현은 FIPS 인증을받을 수 있습니다. 즉, 모든 테스트 벡터를 통과하고 시동 테스트 등을 수행합니다. –

+0

Javadoc for' SecureRandom'? – chrylis

답변

0

여기에 적절한 된 RNG의 공식 목록입니다. BSAFE가 널리 사용됩니다.

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

+0

BSAFE *는 이중 EC DRBG 파손이 발생할 때까지 난수 생성기로 널리 사용되었습니다. 다른 공급자는 동일한 PRNG를 가졌지 만 BSAFE만이 알고있는 한 기본값으로 만들었습니다. –