2009-03-06 6 views
0

그런 방식으로 PRNG를 쉽게 구성 할 수 있습니까? 왜 안되니?계산 가능한 일반 숫자의 Psuedo-Random-Number-Generator

즉, 우리가 알고있는 한 단순히 씨앗 n을 갖는 PRNG를 가질 수 있습니다. 랜덤 비트를 요구할 때, 계산 가능한 정상 수의 2 진 확장의 n 번째 자릿수를 취하고 n을 증가시킵니다.

내 첫 번째 생각은 아마 계산 가능한 표준 숫자를 찾지 못했지만, have입니다. 나머지 생각은 좋은 방법이 없다는 것입니다. PRNG의 일부 속성에 대해 익숙하지 않은 경우 그러한 방법을 사용할 수 없거나 어떻게 든 비실용적이거나 그렇지 않으면 다른 방법으로 쫓겨나게됩니다.

+0

이 문서를 살펴보십시오. http://www.emis.de/journals/EM/expmath/volumes/11/11.4/pp527_546.pdf – dirkgently

+0

PSRG 란 무엇입니까? PRNG를 의미합니까? – hop

+0

예, 가능합니다. 어떻게 혼합했는지 모르겠지만 그렇게했습니다. 몇 시간 후에 신문을 보겠습니다. 나는 밖으로 나가야합니다. –

답변

3

이렇게하면 출력을 매우 간단하게 예측할 수 있습니다.

예를 들어 정수 0x54a30b7f를 생성한다고 가정 해보십시오. 4GiB의 파이 (또는 랜덤 노이즈 또는 실제 정상 수)가있는 경우 특정 정수가 한 번만 (또는 아마도 소수) 발생 할 가능성이 있으며 미래의 모든 수치를 합리적으로 높은 확률로 예측할 수 있습니다. 이는 암호가 강한 PRNG의 경우 심각한 문제입니다. 간단한 순차 스캔 대신에 일부 기능을 사용하는 경우, 따라하기에 충분히 어려운 경우 PRNG로 바뀌는 기능을 따라야합니다.

발전기의 암호화 강도에 관심이 없다면 난수 생성 방법이 훨씬 간단합니다. 예를 들어, Mersenne Twister은 4GiB 룩업 테이블을 필요로하지 않고 훨씬 더 큰 기간을 갖는다.

+0

우선, pi (sqrt (2) 및 e와 같은 대부분의 다른 상수와 함께)는 정상인 것으로 입증되지 않았습니다. 두 번째로, 계산이 가능하며 더 중요한 것은 n-1을 계산하지 않고 pi의 n 번째 자릿수를 계산할 수 있기 때문에 조회 테이블이 불필요합니다. 새로운 코멘트에서 더 말할 것입니다. –

+0

죄송합니다. 크기 제한을 게시하십시오. 둘째, 정상적인 숫자는 확장시 무한 수의 숫자가 발생한다는 것입니다. 또한 다른 번호와 마찬가지로 가능성이 있습니다. 따라서 정상적인 숫자의 전체 또는 임의의 큰 범위가 주어지면 추측 할 수 없습니다. –

+0

...하지만 당신의 시드는 32 비트보다 커야합니다 (그렇지 않으면 처음 4GiB 만 사용하는 것입니다). 시드의 생성은 충분히 안전해야만 간단히 공격 할 수 없습니다. –