2012-08-17 7 views
0

난 임의의 숫자와 그 생성자에 대한 다양한 기사를 읽었습니다. 나는 그들로부터 끌어 보통 3 중요한 결론이 있습니다난수 생성기를 본 사람은 어떻게 알 수 있습니까?

  • 임의의 숫자는 정말 무작위로하지 않습니다들은 바이어스 (모듈로 바이어스)가 시간
  • 인간은 난수 발생기 인 능력이있는 대부분
  • 그들이 함께,

그래서 "무작위 행동"하려고 할 때, 후자의 가장 마음에 이러한 관찰은, 우리가 어떻게

    할 수있을 것입니다
  1. 우리가 보는 일련의 숫자가 정말로 무작위인지, 더 중요하게 말해야합니까?
  2. 이 시퀀스가 ​​실제로 무작위임을 증명할 수있는 방법이 있습니까?

답변

0

충분히 큰 샘플 세트 1,000,000+를 생성하면 (의사) 난수의 균일 한 분산이 발생한다는 것을 알 수 있습니다. 그러나 수학의 천재성이 이것을 의심하는 방법이있을 것이라고 확신합니다. 확률 법칙에 따라 다른 시퀀스와 마찬가지로 하나의 숫자가 나오기 때문입니다.

내가 읽은 것부터, 암호화 라이브러리가 사용하는 것을 재사용하기 위해 난수가 필요하다면 읽어보십시오. 암호화 분야는 분명히 복잡하며 키 생성을 위해 난수에 의존합니다. 그것은이 말한다 OWASP's guide titled "Reversible Authentication Tokens"에 절 ...

보안 인증 토큰을 생성 할 수있는 유일한 방법에서 자신의 순서를 예측할 수있는 방법이 없기를 보장하는 것입니다. 다른 말로하면 : true random 숫자입니다.

컴퓨터가 진정한 임의 번호를 생성 할 수 있다고 주장하지만, 그러한 크게 난수 발생기의 임의성을 증가 엔트로피를 개선하기 위해 마우스의 움직임과 키 스트로크를 읽고 새로운 기술을 사용 할 수있다. 이 방법을 직접 구현하려고하지 않는 것이 중요합니다. 기존의 입증 된 구현을 사용하는 것이 매우 바람직합니다.

대부분의 운영 체제에는 거의 모든 프로그래밍 언어에서 호출 할 수있는 난수 을 생성하는 함수가 포함되어 있습니다.

필자가 암호화 라이브러리를 직접 코딩하지 않으면 Java Cryptography Extension을 사용하여 자신을 관리 할 필요가 없습니다.

0

아주 간단한 테스트 :

당신이 정말로 임의의 숫자를 테스트로 얻고 싶은 경우에, 당신은 예를 들어 1-100 100 배에서 임의의 숫자를 출력하는 프로그램을 시뮬레이션 할 수 있습니다. 그런 다음 그 숫자를보고 패턴이 있는지 확인하십시오. 그런 다음 프로그램을 여러 번 다시 시작하고 프로세스를 반복하여 테스트를 수행하십시오. 모든 데이터를 검토하여 난수가 항상 무작위인지, 개별 테스트 중에 무작위인지 또는 전혀 테스트되지 않는지를 확인하십시오. : P

0

난수 생성기 테스트는 대부분 원하는대로 할 수 있습니다. 순수한 비 반복성조차도 임의성을 보장하지 않습니다.

인증을 위해 난수 생성기 (예 : 온라인 카지노)를 테스트하는 회사가 있습니다. their testing methodology page이 기술적 인면에서 많은 부분을 차지하기는하지만, 빨리 발견 한 것은 iTech Labs입니다.

기타 테스터 및 인증 기관 publish the required data for a certification; 여기에는 구체적인 세부 사항이 있지만 원하는만큼 많지는 않습니다.

잠재적으로 통계 분석을하고 난수 생성기의 결과를 "실제"임의의 소스와 비교할 수 있지만 어쨌든 진정한 무작위 소스를 가능성있는 공간으로 변환하려고 시도하는 편견에 대한 논쟁이있을 수 있습니다.

0

임의성 테스트는 시퀀스의 수학적 특성을 검증합니다. 예를 들어 진입 빈도 (모든 기호는 동일한 빈도를 가질 것으로 예상 됨), 지역 분산, 순서 분석 (기호의 확률은 이전 것에 의존하지 않아야 함). 확실한 증거는 존재하지 않지만 품질 요소 - 실제로 시퀀스가 ​​임의적 일 확률. 또 다른 기준은 압축성을 기반으로 할 수 있습니다. 참 임의성은 최대 엔트로피를 가지므로 압축 할 수 없습니다. 이 테스트는 물론 임의성에 대해서는 신뢰할 수 없지만 zlib와 같은 준비 도구로 빠르고 더러운 테스트를 수행 할 수 있습니다.