Arduino는 HRNG (하드웨어 난수 생성기)를 만드는 데 이상적입니까?


21

여러 엔트로피 소스 ( 결합 )를 활용하는 하드웨어 난수 생성기를위한 설계를 준비하고 있습니다 .

  • 주변 광
  • 주변 소리 (및 소리 레벨)
  • 주변 온도
  • 주위 습도
  • 장치 자체의 위치 (거꾸로, 왼쪽으로 기울임, 오른쪽 제목 등)
  • 미래의 다른 소스, 아마도 GPS 데이터 (두 명의 사용자가 서로 옆에 서있을 수 있기 때문에 가능한 것으로 표시되므로 알고 있다면 결정적 일 수 있음)

내 생각은 사람들이 하루 동안 USB 드라이브에 쓰는 동안 사람들이 가지고 다닐 수있는 엔트로피 풀 '충전기'를 만드는 것입니다.

몇 시간 후, 사용자는 PC에 연결하여 사용할 수있는 멋진 ~ 4GB 엔트로피 풀을 갖게됩니다. 가벼운 또는 방사성 붕괴에 기반한 정말 비싼 QRNG를 감당할 수 없기 때문에 더 저렴한 것을 생각해 내려고 노력하고 있습니다.

귀하의 의견으로는, Arduino가 이것을 프로토 타이핑하기위한 최선의 선택입니까? 그렇지 않다면 무엇을 추천 하시겠습니까?

답변:


22

나는 당신이 busz가 제안한 길을 가고 싶을 것이라고 생각합니다. "다이오드 노이즈"개념을 검색하십시오. 다이오드 및 트랜지스터의 PN 접합은 완벽한 가우시안 화이트 노이즈에 가깝습니다. 어떤 환경 적 소스보다 나은 엔트로피의 소스가되어야하는 샘플링.

대부분의 환경 / 주변 데이터의 문제점은 온도, 습도, 빛 및 소리가 모두 매우 강력한 모드에서 변동성의 크기보다 작다는 점에서 시간이 지나도 값이 크게 변하지 않는다는 것입니다. 모션 측정을위한 가속도계는 사람에게 장착 된 경우 변동성의 좋은 원인이 될 수 있지만 사람이 움직이는 방식에 존재하는 정상적인 진동 모드를 제거하려면 약간의 신호 처리를 수행해야 할 것입니다. 주변 조명 및 사운드 소스는 고밀도 도시 공간에 배치하면 약간의 변동성이있을 수 있지만 다시 많은 반복이있을 것이라고 생각합니다.


8

주변 엔트로피 소스가 필요없는 HRNG에 대한 흥미로운 회로가 있습니다 : http://www.cryogenius.com/hardware/rng/ http://robseward.com/itp/adv_tech/random_generator/ 등 ...

이러한 회로 중 하나를 Arduino 쉴드 에 적용하는 것이 가능합니다 . Arduino는 HRNG와 PC 사이의 게이트웨이 역할을합니다.

주변 엔트로피 입력이 실제로 필요한 경우 arduino에는 6 개의 아날로그 입력 채널이 있으므로 데이터를 임의 시드의 소스로 생각 하고 사용할 수있는 거의 모든 센서를 읽을 수 있습니다 .


6

두 의견 :

  1. Bruce Schneier의 Yarrow PRNG 알고리즘을 살펴보십시오 . 요점은 "진정한"임의의 정보의 소스가 정말 대단하다는 것입니다. 시간이 지남에 따라 충분히 축적되는 한 결과 불확실성은 소프트웨어 의사 난수 생성 기술과 결합하여 적절한 난수를 생성 할 수 있습니다.

  2. 반면에, 나는 대부분의 다른 응답자들과 동의해야합니다. 환경 센서로부터 느리게 변화하는 신호는 엔트로피의 소스가 크며 쉽게 영향을받을 수 있습니다. 본질적인 장치 소음에 기반한 것을 사용하고 환경 변화에 영향을받지 않습니다.


6

"USB 모래 시계 난수 생성기" 를 참조하고 있습니까?
davidcary

그렇습니다. 원래 링크는 더 이상 존재하지 않는 comcast의 홈페이지로 연결되었습니다. 감사. 지금 링크를 수정했습니다.
Amos

3

위의 두 가지 답변에 동의합니다. 인간 활동과 주변 독서는 끔찍한 무작위 풀을 만듭니다. 그러나 그것을 시도하고 결과 임의성을 직접 확인하여 확신 할 것 같습니다. 그것은 당신에게 훌륭한 학습 경험이 될 것입니다!

Arduino는이 응용 프로그램에 적합합니다. 관심있는 모든 센서를 Arduino에 연결할 수 있으며 해당 센서에 사용할 수있는 Arduino 라이브러리가 있습니다.

Arduino에 센서를 연결하는 방법에 대한 다음 자습서를 확인하십시오. http://www.ladyada.net/learn/sensors/



3

아날로그 음악 신시사이저 (Moog and Arp)의 다수의 백색 잡음 발생기는 트랜지스터를 애벌랜치 (avalanche) 할 것이다. Minimoog 회로도 또는 ARP4027을 온라인으로 조회하면 회로도를 찾아야합니다.

ARP4027에 대한 PCB 레이아웃을 수행했습니다. 회로도를 찾을 수 없으면 나에게 이메일을 보내십시오.

내셔널은 디지털 난수 생성기 인 MM5437을 만들었습니다. IIRC는 이것을 할 AT-tiny를위한 몇 가지 프로그램이있었습니다. 재미있는 작은 프로젝트가 될 수 있습니다.


2

최근에 랜덤 노이즈를 생성하기 위해 저항을 사용하는 것에 대한 매우 흥미로운 토론을 읽었습니다. 양자 효과로 인해 저항은 매우 작은 전압을 생성합니다. 이것은 연산 증폭기로 증폭되어 고품질의 랜덤 노이즈 소스를 생성 할 수 있습니다.


2

의사 난수 생성기에 센서 입력을 시드로 사용할 수 있습니다. Linux OS는 키보드 / 마우스의 입력을 / dev / random의 시드로 사용합니다. 그냥 생각이야

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