무작위 추출기의 구현에 대한 현재 연구가 있습니까?


20

무작위 추출기 구성 구현에 대한 연구가 있었습니까?

추출기 증명은 Big-Oh를 사용하여 숨겨진 숨겨진 상수가 많을 수 있으므로 프로그래밍 방식으로 구현하는 것은 비현실적입니다.

몇 가지 맥락 : Monte Carlo 시뮬레이션에 사용하기 위해 임의 추출기 (아마도?)의 빠른 소스로 임의 추출기를 사용하는 데 관심이 있습니다. 우리 (ETHZ Computational Physics 그룹)는 무작위 추출을 원하는 양자 난수 생성기에서 높은 엔트로피 소스를 바이어스했습니다. 이전의 학생은 Trevisan 건축 을 구현하려고 시도했고 공간 복잡성 문제가 발생했습니다. 그 학생을 제외하고는 추출기를 구현하려는 사람들에 대한 언급을 찾지 못했습니다.

참고 : 저는 이론적 CS 및 임의 추출기 영역에 대해 매우 새로운 CS 학부입니다.


내 질문에 대한 arnab의 답변이 흥미로울 수도 있습니다. cstheory.stackexchange.com/questions/36/…
Suresh Venkat

답변:


19

추출기 문헌의 대부분은 종자 길이를 최소화하는 것인데, 이는 무작위 화 적용에 중요합니다. 그러나 그것은 당신에게 중요하지 않을 수 있습니다. 또한, 종종 문헌은 비교적 큰 오차 (예를 들어, 1/100)에 중점을 두는데, 이는 무작위 화에는 적합하지만 기하 급수적으로 작은 오차를 요구하는 다른 환경에서는 문제가 될 수 있습니다.

당신의 환경에서, 무작위로 긴 무작위 시드를 생성하고 (예 : 동전 던지기) 그것을 사용하여 추출하는 것이 좋습니다. 이 경우 다소 효율적인 구현이 가능한 페어 단위 독립 해시 함수를 사용할 수 있습니다. 이 문제에 대해 Shaltiel과 Tromer와 함께 논문을 썼습니다 . 거의 독립적 인 해시 함수를 사용할 수도 있습니다.이 함수는 더 효율적이고 더 작은 시드를 가질 수 있습니다. (이에 대한 몇 가지 연구가 있었음에도 불구하고 효율적인 구현에 대한 좋은 참고 자료를 모릅니다.)

독립적 인 여러 소스가있는 경우 더 나은 작업을 수행 할 수 있습니다. 엔트로피 비율이 50 %보다 크면 고전적인하다 마드 추출기가 작동합니다 (위의 조사에서 언급해야 함). 엔트로피가 50 %보다 작 으면 Impagliazzo와 Wigderson으로 간단한 구조를 만들었습니다 . 엔트로피 속도에서 달성 된 소스 수와 오류 사이의 의존성은 이상적이지는 않지만 실제로 이해하려면 오늘날의 최첨단 합계 제품 이론에 의해 주어진 정확한 경계를 살펴볼 필요가 있습니다. (그리고 특정 수의 이론적 추측을 기꺼이 받아들이려면 더욱 효율적인 추출기를 얻을 수 있습니다.)이 구성은 다양한 방식으로 크게 개선되었으며 일부는 응용 프로그램과 관련이있을 수 있습니다.Anup Rao의 논문 .


잘 작성된 답변 / 개요에 감사드립니다. Shaltiel과 Tromer와 함께 작성한 TRNG 논문을 살펴 보았습니다. 꽤 유망 해 보인다. 논문의 링크 ( people.csail.mit.edu/tromer/trng )에 정보가 포함되어 있지 않기 때문에 논문의 웹 페이지 (및 구현 코드)를 어디에서나 사용할 수 있는지 궁금 합니다.
Phillip Mates

6

우선, Wikipedia 에서 관련 주제 를 참조하십시오 . 둘째로, 다음 논문을 살펴볼 수 있습니다.

Ronen Shaltiel 의 추출기의 명시 적 구성에 대한 최근 개발 .

이 논문은 설문 조사 형태로 작성되었으며 "최근 개발"을 찾는 데 도움이 될 수 있습니다.

마지막으로, 원하는 것이 무작위로 보이는 비트 시퀀스 (암호 적으로 안전하지는 않지만) 일 경우, 높은 엔트로피 소스에 해시 함수 (예 : MD5 또는 SHA-1)를 적용하고 거의 즉각적인 결과 (물리적 실험).


1
해싱 제안 및 링크에 감사드립니다. 링크에서 나는 추출기를 구현하려는 사람들에 대한 언급을 보지 못했습니다. 이것이 시도되고 있는지 궁금합니다. 필자가 읽은 대부분의 추출기 논문은 추출기의 실제 적용을 언급했지만 시도 된 구현에 대해서는 언급하지 않습니다. 나는 우리가 해싱 함수를 피한 이유는 그것들이 무작위로 존재하지 않기 때문에 의사 -RNG가 때때로 부정확 한 결과를 생성하기 때문에 MC 시뮬레이션 영역에서 매우 유용하다는 것입니다 [참조 : prl. aps.org/abstract/PRL/v69/i23/p3382_1 ]
Phillip Mates

4

Dodis, Gennaro 멋진 논문 도 있습니다 . 추출에 사용할 수있는 실용적인 암호화 기본 요소를 고려합니다. 해시 함수는 좋은 추출기로 알려져 있지 않지만 CBC-MAC 모드의 블록 암호는 (일부 미세 인쇄) 가능합니다. 또한 HMAC 구조도 고려합니다. 표준 암호화 라이브러리를 사용할 수 있으므로이 방법이 구현에 호소력이 있습니다.

CBC-MAC의 경우 "미세 인쇄"는 대략 다음과 같습니다.

  • 블록 암호가 의사 난수 순열이라고 가정합니다.
  • 재사용 할 수있는 완전 무작위 (그러나 반드시 비밀은 아님) 키로 입력해야합니다.
  • 출력이 m 비트 인 경우 입력에 최소 엔트로피의 2m 비트가 있어야합니다.
  • 블록 길이와 키 길이가 같아야합니다 (따라서 AES를 사용하는 경우 AES-128 만 작동 함)
  • 입력 길이는 제한되어 있지만 한계는 높습니다

3

암호화 의사 난수 생성기 사례의 경우 HKDF를 살펴볼 수도 있습니다 . 에서 종이 그들은 개념과 실질적으로 랜덤 추출기를 논의하고, 좋은 참조를 제공합니다.

Monte Carlo에 대한 임의성을 생성하는 것에 대한 참고로 물론 HAVEGE가 있습니다. 비트 속도와 "확률"이 충분하면 양자 발생기와 함께 뭉칠 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.