Arduino có lý tưởng để chế tạo HRNG (bộ tạo số ngẫu nhiên phần cứng) không?


21

Tôi đang kết hợp một thiết kế cho một trình tạo số ngẫu nhiên phần cứng sẽ sử dụng nhiều nguồn entropy ( kết hợp ):

  • Ánh sáng môi trường xung quanh
  • Âm thanh xung quanh (và mức âm thanh)
  • Nhiệt độ xung quanh
  • Độ ẩm môi trường xung quanh
  • Vị trí của thiết bị (lộn ngược, nghiêng trái, có tiêu đề phải, v.v.)
  • Các nguồn khác trong tương lai, thậm chí có thể là dữ liệu GPS (được đánh dấu là có thể vì hai người dùng có thể đứng cạnh nhau, do đó có thể có tính quyết định nếu bạn biết họ.)

Ý tưởng của tôi là tạo ra một "bộ sạc" entropy mà mọi người có thể mang theo bên mình trong ngày trong khi nó tiếp tục ghi vào ổ USB.

Sau một vài giờ, người dùng sẽ có một hồ bơi entropy ~ 4GB đẹp có thể được cắm vào PC và sử dụng. Tôi không thể mua QRNG thực sự đắt tiền dựa trên sự phân rã ánh sáng hoặc phóng xạ, vì vậy tôi đang cố gắng tìm ra thứ gì đó rẻ hơn.

Theo bạn, Arduino có phải là sự lựa chọn tốt nhất để tạo mẫu này không? Nếu không, bạn muốn giới thiệu gì?

Câu trả lời:


22

Tôi nghĩ bạn sẽ muốn đi theo con đường busz gợi ý. Tìm kiếm khái niệm "nhiễu diode". Các mối nối PN trong điốt và bóng bán dẫn có thể tạo ra tiếng ồn trắng Gaussian hoàn hảo. Lấy mẫu phải là một nguồn entropy tốt hơn bất kỳ nguồn môi trường nào.

Vấn đề với hầu hết dữ liệu môi trường / môi trường xung quanh là các giá trị không thay đổi nhiều theo thời gian: nhiệt độ, độ ẩm, ánh sáng và âm thanh đều có độ biến thiên lớn hơn với các chế độ thực sự mạnh. Máy đo gia tốc để đo chuyển động có thể là một nguồn thay đổi tốt nếu được gắn trên người, nhưng bạn có thể phải thực hiện một chút xử lý tín hiệu để loại bỏ các chế độ dao động thông thường có trong cách con người di chuyển. Một nguồn ánh sáng và âm thanh xung quanh có thể có một số biến thiên khá cao nếu được đặt trong một không gian đô thị mật độ cao, nhưng một lần nữa tôi nghĩ rằng sẽ có rất nhiều sự lặp lại.


8

Có một số mạch thú vị cho HRNG mà không cần nguồn entropy xung quanh: http://www.cryogenius.com/hardware/rng/ http://robseward.com/itp/adv_tech/random_generator/ và hơn thế nữa ...

Chắc chắn có thể điều chỉnh một trong các mạch này thành khiên Arduino . Arduino sau đó sẽ hoạt động như một cửa ngõ giữa HRNG và PC.

Nếu bạn thực sự cần đầu vào entropy xung quanh, arduino có 6 kênh đầu vào tương tự để bạn có thể đọc hầu hết mọi cảm biến mà bạn có thể nghĩ ra và sử dụng dữ liệu làm nguồn cho một hạt giống ngẫu nhiên.


6

Hai bình luận:

  1. Nhìn vào thuật toán Yarrow PRNG của Bruce Schneier . Điểm chính là bạn có thể có một nguồn thông tin ngẫu nhiên "thật" tệ hại; miễn là bạn tích lũy đủ theo thời gian, độ không đảm bảo có thể được kết hợp với các kỹ thuật tạo số giả ngẫu nhiên phần mềm để mang lại số ngẫu nhiên khá.

  2. Mặt khác, tôi phải đồng ý với hầu hết những người trả lời khác. Các tín hiệu thay đổi chậm từ các cảm biến môi trường là nguồn entropy tệ hại và có thể dễ dàng bị ảnh hưởng. Hãy chắc chắn rằng bạn sử dụng một cái gì đó dựa trên tiếng ồn thiết bị nội tại, và nó sẽ không nhạy cảm với những thay đổi môi trường.


6

Tôi vừa phát hiện ra Trình tạo số ngẫu nhiên này :

Trình tạo số ngẫu nhiên đồng hồ cát http://makezineblog.files.wordpress.com/2009/12/usbsand.jpg?w=600&h=703

trên Make: Blog và nghĩ rằng bạn có thể quan tâm.



Vâng, đó là một trong những. Liên kết ban đầu là trang chủ của nó trên comcast không còn ở đó nữa. Cảm ơn. Đã sửa các liên kết bây giờ.
A-mốt

3

Tôi đồng ý với hai câu trả lời trên. Các hoạt động của con người và các bài đọc xung quanh sẽ tạo ra một nhóm ngẫu nhiên khủng khiếp. Nhưng có vẻ như bạn sẽ chỉ bị thuyết phục về điều này bằng cách thử nó và tự kiểm tra kết quả ngẫu nhiên. Nó sẽ là một kinh nghiệm học tập tuyệt vời cho bạn!

Arduino là tốt cho ứng dụng này. Tất cả các cảm biến bạn quan tâm có thể được gắn vào Arduino và có thư viện Arduino cho các cảm biến đó.

Kiểm tra các hướng dẫn về kết nối cảm biến với Arduino: http://www.ladyada.net/learn/sensors/



3

Một số bộ tạo tiếng ồn trắng trong các bộ tổng hợp âm nhạc tương tự (Moog và Arp) sẽ làm hỏng một bóng bán dẫn. Nếu bạn truy vấn trực tuyến cho sơ đồ Minimoog hoặc ARP4027, bạn nên tìm sơ đồ.

Tôi đã làm một bố trí PCB cho ARP4027. Nếu bạn không thể tìm thấy sơ đồ gửi cho tôi một email.

National đã chế tạo một bộ tạo số ngẫu nhiên kỹ thuật số - MM5437. IIRC có một số chương trình cho một AT-tiny cũng sẽ làm điều này. Có thể là một dự án nhỏ vui vẻ.


2

Tôi đã đọc gần đây một cuộc thảo luận rất thú vị về việc sử dụng điện trở để tạo ra tiếng ồn ngẫu nhiên. Do hiệu ứng lượng tử, một điện trở sẽ tạo ra một điện áp rất nhỏ. Điều này có thể được khuếch đại với op-amp để tạo ra nguồn nhiễu ngẫu nhiên chất lượng cao.


2

Bạn có thể sử dụng đầu vào cảm biến làm hạt giống cho trình tạo số giả ngẫu nhiên. Hệ điều hành Linux sử dụng đầu vào từ bàn phím / chuột làm hạt giống / dev / ngẫu nhiên. Chỉ là một ý tưởng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.