Arduino เหมาะสำหรับการสร้าง HRNG (ตัวสร้างหมายเลขสุ่มฮาร์ดแวร์) หรือไม่?


21

ฉันรวบรวมการออกแบบสำหรับตัวสร้างหมายเลขสุ่มฮาร์ดแวร์ที่จะใช้เอนโทรปี ( รวมกัน ) หลายแหล่ง:

  • แสงโดยรอบ
  • เสียงรอบข้าง (และระดับเสียง)
  • อุณหภูมิแวดล้อม
  • ความชื้นโดยรอบ
  • ตำแหน่งของอุปกรณ์เอง (กลับหัวเอียงซ้ายเอียงขวา ฯลฯ )
  • แหล่งข้อมูลอื่น ๆ ในอนาคตอาจเป็นข้อมูล GPS (ทำเครื่องหมายได้เนื่องจากผู้ใช้สองคนอาจยืนอยู่ติดกันดังนั้นอาจกำหนดได้ถ้าคุณรู้จัก)

ความคิดของฉันคือการทำให้ 'รีชาร์จเจอร์' ของเอนโทรปีพูลที่ผู้คนสามารถพกพาไปกับพวกเขาในระหว่างวันในขณะที่มันยังคงเขียนลงในไดรฟ์ USB

หลังจากผ่านไปสองสามชั่วโมงผู้ใช้จะมีพูลเอนโทรปี ~ 4GB ที่สามารถต่อเชื่อมกับพีซีและใช้งานได้ ฉันไม่สามารถซื้อ QRNG ที่มีราคาแพงจริง ๆ โดยอาศัยการสลายตัวของแสงหรือกัมมันตภาพรังสีดังนั้นฉันจึงพยายามหาสิ่งที่ถูกกว่า

ในความเห็นของคุณ Arduino เป็นตัวเลือกที่ดีที่สุดสำหรับการทำต้นแบบนี้หรือไม่? ถ้าไม่คุณจะแนะนำอะไร

คำตอบ:


22

ฉันคิดว่าคุณจะต้องเดินไปตามเส้นทางที่แนะนำให้ ค้นหาแนวคิด "diode noise" จุดแยก PN ในไดโอดและทรานซิสเตอร์สามารถสร้างเสียงรบกวนแบบเกาส์เซียนสีขาวได้อย่างสมบูรณ์แบบ การสุ่มตัวอย่างที่ควรจะเป็นแหล่งที่มาของเอนโทรปีที่ดีกว่าแหล่งสิ่งแวดล้อมใด ๆ

ปัญหาเกี่ยวกับข้อมูลด้านสิ่งแวดล้อม / สภาพแวดล้อมส่วนใหญ่คือค่าที่ไม่เปลี่ยนแปลงตลอดเวลา: อุณหภูมิความชื้นแสงและเสียงล้วนมีค่าความแปรปรวนน้อยกว่าด้วยโหมดที่แข็งแกร่งมาก มาตรวัดความเร่งในการวัดการเคลื่อนไหวอาจเป็นแหล่งที่มาของความแปรปรวนที่ดีหากติดตั้งกับบุคคล แต่คุณอาจต้องทำการประมวลผลสัญญาณเล็กน้อยเพื่อลบโหมดปกติของการสั่นซึ่งมีอยู่ในการเคลื่อนไหวของมนุษย์ แหล่งกำเนิดแสงและเสียงรอบข้างอาจมีความแปรปรวนค่อนข้างสูงหากวางไว้ในพื้นที่ในเมืองที่มีความหนาแน่นสูง แต่อีกครั้งฉันคิดว่าจะมีการทำซ้ำมาก


8

มีวงจรที่น่าสนใจสำหรับ HRNG โดยไม่จำเป็นต้องใช้แหล่งข้อมูลเอนโทรปีแวดล้อม: http://www.cryogenius.com/hardware/rng/ http://robseward.com/itp/adv_tech/random_generator/ และอื่น ๆ ...

มันเป็นไปได้แน่นอนที่จะปรับตัวหนึ่งของวงจรเหล่านี้ไปยังโล่ Arduino Arduino จะทำหน้าที่เป็นเกตเวย์ระหว่าง HRNG และพีซี

หากคุณต้องการอินพุตเอนโทรปีแวดล้อมโดยรอบ arduino มีช่องสัญญาณอนาล็อก 6 ช่องเพื่อให้คุณสามารถอ่านเซ็นเซอร์เกือบทุกชนิดที่คุณสามารถคิดและใช้ข้อมูลเป็นแหล่งข้อมูลสำหรับเมล็ดสุ่ม


6

สองความคิดเห็น:

  1. ดูอัลกอริทึมYarrow PRNG ของ Bruce Schneier ประเด็นหลักคือคุณสามารถมีแหล่งข้อมูลสุ่ม "จริง" ที่น่ารังเกียจได้ ตราบใดที่คุณยังมีเวลามากพอความไม่แน่นอนที่เกิดขึ้นสามารถนำมารวมกับเทคนิคการสร้างตัวเลขสุ่มหลอกเพื่อให้ได้ตัวเลขสุ่มที่เหมาะสม

  2. ในทางกลับกันฉันต้องเห็นด้วยกับผู้ตอบคำถามส่วนใหญ่ สัญญาณที่เปลี่ยนแปลงอย่างช้า ๆ จากเซ็นเซอร์ตรวจจับสภาพแวดล้อมเป็นแหล่งของเอนโทรปีหมัดและอาจได้รับอิทธิพลอย่างง่ายดาย ตรวจสอบให้แน่ใจว่าคุณใช้สิ่งที่อยู่บนพื้นฐานของสัญญาณรบกวนของอุปกรณ์ภายในและมันจะไม่รู้สึกถึงการเปลี่ยนแปลงสิ่งแวดล้อม


6

ฉันเพิ่งเห็นตัวสร้างตัวเลขสุ่มนี้:

เครื่องกำเนิดตัวเลขสุ่มแบบนาฬิกาทราย

มากกว่าในMake: บล็อกและคิดว่าคุณอาจสนใจ


คุณหมายถึง"ตัวกำเนิดหมายเลขสุ่ม USB USB"หรือไม่?
davidcary

ใช่นั่นคือสิ่งนั้น ลิงค์เดิมคือไปที่ 'หน้าแรกของมันที่ comcast ซึ่งไม่มีอยู่อีกต่อไป ขอบคุณ แก้ไขลิงก์ทันที
Amos

3

ฉันเห็นด้วยกับคำตอบสองข้อข้างต้น กิจกรรมของมนุษย์และการอ่านโดยรอบจะทำให้สระสุ่มที่แย่มาก แต่ดูเหมือนคุณจะเชื่อมั่นในสิ่งนี้โดยการลองและตรวจสอบการสุ่มที่เกิดขึ้นด้วยตัวคุณเอง มันจะเป็นประสบการณ์การเรียนรู้ที่ยอดเยี่ยมสำหรับคุณ!

Arduino เหมาะสำหรับแอพพลิเคชั่นนี้ เซ็นเซอร์ทั้งหมดที่คุณสนใจสามารถติดกับ Arduino และมีห้องสมุด Arduino สำหรับเซ็นเซอร์เหล่านั้น

ลองดูบทช่วยสอนเหล่านี้เกี่ยวกับการเชื่อมต่อเซ็นเซอร์กับ Arduino: http://www.ladyada.net/learn/sensors/


3

นี่อาจเป็นตัวเลือกสำหรับคุณ มันมาจาก sparkfun และไม่ถูก แต่มันอาจจะยอดเยี่ยมในฐานะเครื่องกำเนิดตัวเลขสุ่ม 'จริง' มันใช้ตัวชี้วัดทางภูมิศาสตร์เพื่อสร้างตัวเลขสุ่ม

https://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=132


นั่นดูน่าสนใจ
Amos

3

เครื่องกำเนิดเสียงสีขาวจำนวนหนึ่งในเครื่องสังเคราะห์เสียงดนตรีอะนาล็อก (Moog และ Arp) จะถล่มทรานซิสเตอร์ หากคุณค้นหาแบบออนไลน์สำหรับ Minimoog schematic หรือ ARP4027 คุณควรค้นหาแผนงาน

ฉันทำโครงร่าง PCB สำหรับ ARP4027 หากคุณไม่พบแผนผังให้ส่งอีเมลมาหาฉัน

National ได้สร้างตัวสร้างตัวเลขสุ่มแบบดิจิตอล - MM5437 IIRC มีบางโปรแกรมสำหรับ AT-จิ๋วที่จะทำเช่นนี้ด้วย อาจเป็นโครงการเล็ก ๆ ที่สนุก


2

ฉันได้อ่านเมื่อเร็ว ๆ นี้การสนทนาที่น่าสนใจมากเกี่ยวกับการใช้ตัวต้านทานเพื่อสร้างเสียงรบกวนแบบสุ่ม เนื่องจากผลกระทบเชิงควอนตัมตัวต้านทานจะสร้างแรงดันไฟฟ้าขนาดเล็กมาก สิ่งนี้สามารถขยายได้ด้วย op-amp เพื่อสร้างแหล่งกำเนิดเสียงที่มีคุณภาพสูง


2

คุณสามารถใช้อินพุตเซ็นเซอร์เป็นเมล็ดพืชให้กับตัวสร้างตัวเลขแบบหลอกเทียม Linux OS ใช้อินพุตจากคีย์บอร์ด / เมาส์เป็นเมล็ดถึง / dev / random แค่ความคิด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.