2011-01-30 4 views
0

브라우저 나 플레이어의 다음 트랙에서 다음 트랙을 무작위로 선택하는 경우 '자연 현상'으로 시간을 사용할 수 있습니다. 예를 들어 괜찮은 RPNG는 프로그램 요청없이 다음 임의의 숫자를 계속 얻을 수 있습니다 (예를 들어, 수 밀리 초마다 스레드 또는 이벤트가 더 자주 발생하는 경우) 사용자 선택에 따라 시간이 오면 자연스럽게이 사용자 지연의 영향을받습니다.랜덤 테이크간에 사용자 지연이 PRNG에 대한 좋은 개선입니까?

이 방법이 충분히 좋으며 어떻게 테스트 할 수 있습니까? 수동으로 테스트 할 때의 문제는 테스트 프로그램에 피드를 제공하기에 충분한 난수를 저장하기 위해 오래 기다릴 수 없다는 것입니다. 이 작업 속도를 높이기위한 인위적 시도는 메소드 자체를 유효하지 않게 만듭니다.

감사

+1

여기서 질문은 무엇입니까? – Pointy

+1

다음과 같이 유용 할 수 있습니다. http://en.wikipedia.org/wiki//dev/random 동일한 개념을 사용하지만 조금 더 걸립니다. – biziclop

+0

biziclop, 지적 주셔서 감사합니다, 최근에 나는 또한 좋은 개념을 발견했지만 Windows에서는 사용할 수 없습니다. – Maksee

답변

2

좋은 난수 생성기가 정말 개선이 필요하지 않습니다, 그것은했다하더라도 사용자의 입력 타이밍 도움이 될 것이 분명하지 않다.

사용자가 LCG에서 선택한 트랙에서 패턴을 감지 할 수 있습니까? 플랫폼이 무엇이든, 내장 된 random() 함수는 충분히 유용 할 것입니다 (즉, 은 완전히 사용자에게 무작위로 나타납니다).

그러나 여전히 걱정되는 경우 암호화 된 품질의 RNG를 사용하고 시스템의 전용 무작위 근원에있는 데이터를 시드하십시오. 요즘, 이러한 시스템 RNG의 대부분은 하드웨어에서 양자 이벤트를 통해 생성 된 진정한 무작위 비트를 사용합니다. 그러나 비트 생성 속도가 느릴 수 있으므로 알고리즘 PRNG의 시드로 사용하는 것이 가장 좋습니다.

이러한 접근 방식이 충분하다고 확신하지 못하면 사용자 입력의 타이밍이 좋은 소스라는 사실에 매우 회의적이어야합니다. 사용중인 제한된 어휘와 제한된 단어 집합 내에서 나타나는 경향이있는 패턴을 고려할 때 사용자가 누르는 키는 입니다. 문자 시퀀스의 예측 가능성은 주요 프레스 사이의 타이밍에서 예측 가능성을 높입니다.

많은 보안 프로그램이 키 생성 중에이 기술을 사용한다는 것을 알고 있습니다. 나는 그것이 순수한 뱀 기름이라고 생각하지 않지만, 사용자를 달래기위한 위약 일 수 있습니다. 좋은 제품은 시스템 RNG에 따라 다릅니다.

1

설명하는 시간 정보를 획득하면 실제로 엔트로피를 PRNG에 추가 할 수 있습니다. 그러나 의도 한 응용 프로그램에 대한 설명에서 필자는 필요하다고 생각하지 않습니다. "플레이어 나 브라우저의 다음 페이지에서 다음 트랙을 예로 들어 무작위로 선택"하는 경우, 사소하고 수정되지 않은 PRNG가 좋습니다. nonce 등과 같은 보안 응용 프로그램의 경우 훨씬 더 중요합니다.

어쨌든, 당신은 PRNG 엔트로피 소스에 대해 읽어야합니다.

0

사용자 지연으로 인해 PRNG가 향상되지 않습니다. 주로 매우 규칙적이기 때문에 PRNG를 향상시키지 않습니다. 동일한 속도로 입력하면 클릭과 다른 것 사이의 지연을 측정하는 데 너무 오래 걸립니다 (정상적인 사용으로 가정). 차라리 다른 사용자가 트리거 한 이벤트를 사용하고 싶습니다. 누를 키, 각 클릭 사이의 거리, 주어진 순간의 마우스 위치입니다.