2013-03-20 3 views
7

나는에의사 랜덤 찾고 일대일 int32-> INT32 기능

  • 전단 사 함수 (일대일 대응)
  • 저렴있는 int32-> INT32 기능을 찾고 있는데요 적어도 한 방향으로 계산하십시오.
  • 은 증가하는 시퀀스 0, 1, 2, 3, ...을 좋은 의사 랜덤 시퀀스처럼 보이는 시퀀스로 변환합니다. 패턴)
+0

시도해 보셨습니까? –

+2

비슷한 질문 [[Obfuscating an ID] (http://stackoverflow.com/q/8554286/1009831). –

+0

"저렴한"가격은 어떻게됩니까? 합리적인 블록 암호는 의사 랜덤/비트 플립 욕구를 제공해야합니다. –

답변

10

ge 홀수와 xor 또는 다른 xor.

바이어 싱 : 홀수는 2의 역 승산 역수를 갖기 때문에 곱셈은 역함수에 의한 곱셈에 의해 취소됩니다. 그리고 xor는 물론 다른 xor에 의해 실행 취소됩니다.

이것은 기본적으로 선형 합동 의사 난수 생성기가 작동하는 방식입니다.

3

아마도이 작업에 과도한 공격이 될 수 있지만 pseudo random permutation 또는 다른 프리미티브를 적용하는 것을 고려한 사람은 block ciphers입니다. 예를 들어 카운터 모드에서 알려진 키를 사용하여 des를 사용하여 수행 할 수 있습니다.

younumber xor (des (key, number counter))