題:
Arduino是製作HRNG(硬件隨機數生成器)的理想選擇嗎?
Tim Post
2009-11-15 23:00:14 UTC
view on stackexchange narkive permalink

我正在整理一個硬件隨機數生成器的設計,它將利用多個熵源(組合):

  • 環境光
  • 環境聲音(和聲級)
  • 環境溫度
  • 環境濕度
  • 設備本身的位置(上下顛倒,向左傾斜,標題為右側,等等)
  • 將來還會有其他來源,甚至可能還有GPS數據(標記為可能是因為兩個用戶可能彼此並排站立,因此如果您知道他們,則可能是確定性的。)

我的想法是製作一個熵池“充電器”,讓人們在白天繼續隨身攜帶,同時繼續寫入USB驅動器。

幾個小時後,用戶將擁有一個不錯的〜4GB熵池,可以將其插入PC並使用。我負擔不起基於光衰變或放射性衰變的真正昂貴的QRNG,因此我試圖提供更便宜的產品。

您認為,Arduino是進行此原型設計的最佳選擇嗎?如果沒有,您會推薦什麼?

九 答案:
todbot
2009-11-16 01:38:19 UTC
view on stackexchange narkive permalink

我認為您會想遵循busz建議的方法。搜索“二極管噪聲”的概念。二極管和晶體管中的PN結會產生接近完美的高斯白噪聲。採樣應該是比任何環境源都要好的熵源。

大多數環境/環境數據的問題在於這些值不會隨時間變化太多:溫度,濕度,光線和聲音的可變性都小於一個數量級,而真正的強度卻很強。模式。如果將加速度計安裝在人身上,則可能是測量變化的一個很好的來源,但是您可能必須做一些信號處理才能消除人體運動中出現的正常振盪模式。如果將環境光&聲源放置在高密度的城市空間中,則可能會有相當高的可變性,但我仍然想重複很多。我仍然認為,熵的最佳來源將是降低諸如二極管噪聲之類的材料的基本物理特性,而不是擴大規模並關注能夠被微控制器讀取的環境因素。

bpijls
2009-11-16 00:15:32 UTC
view on stackexchange narkive permalink

HRNG有一些有趣的電路,不需要環境熵源: http://www.cryogenius.com/hardware/rng/ http://robseward.com/ itp / adv_tech / random_generator / 以及更多...

絕對有可能使其中一種電路適應 Arduino屏蔽。然後,Arduino將充當HRNG和PC之間的網關。

如果您確實需要環境熵輸入,則arduino具有6個模擬輸入通道,因此您可以讀出幾乎可以想到的任何傳感器,並且將數據用作隨機種子的來源。

Jason S
2009-11-25 07:14:09 UTC
view on stackexchange narkive permalink

兩個評論:

  1. 看看布魯斯·施耐爾(Bruce Schneier)的 Yarrow PRNG算法。要點是,您可以擁有一個非常糟糕的“真實”隨機信息源。只要您在一段時間內積累了足夠多的誤差,就可以將所產生的不確定性與軟件偽隨機數生成技術結合使用,以生成體面的隨機數。

  2. 我必須同意大多數其他答复者的意見。來自環境傳感器的變化緩慢的信號是糟糕的熵源,很容易受到影響。確保您使用的是基於設備固有噪聲的東西,並且對環境變化不敏感。

  3. ol>
Amos
2009-12-28 05:33:14 UTC
view on stackexchange narkive permalink

我剛剛發現了這個隨機數生成器

沙漏隨機數生成器http://makezineblog.files.wordpress.com/2009/12/usbsand。 jpg?w = 600&h = 703

Make:Blog上,並認為您可能會感興趣。

您是指[“ USB Hourglass隨機數生成器”](http://blog.makezine.com/2009/12/23/usb-hourglass-random-number-generat/)嗎?
是的,那是一個。原始鏈接是在comcast上其首頁的,不再存在。謝謝。現在修復了鏈接。
SiliconFarmer
2009-11-16 15:20:15 UTC
view on stackexchange narkive permalink

我同意以上兩個回答。人類活動和環境讀數將造成可怕的隨機事件。但是聽起來您只有通過嘗試一下並自己檢查由此產生的隨機性,才能確信這一點。對於您來說,這將是一個很棒的學習經驗!您感興趣的所有傳感器都可以連接到Arduino,並且有適用於這些傳感器的Arduino庫。

查看以下有關將傳感器連接到Arduino的教程: http://www.ladyada .net / learn / sensors /

Seidleroni
2009-11-21 23:16:07 UTC
view on stackexchange narkive permalink

這可能是您的選擇。它來自sparkfun,而且價格不菲,但作為“真實”隨機數生成器,它可能會很棒。它使用geigercounter生成隨機數。

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

看起來很有趣。
jluciani
2009-12-16 05:50:53 UTC
view on stackexchange narkive permalink

模擬音樂合成器(Moog和Arp)中的許多白噪聲發生器將使晶體管變白。如果在線查詢Minimoog原理圖或ARP4027,則應找到原理圖。

我為ARP4027進行了PCB佈局。如果找不到原理圖,請給我發送電子郵件。

National製造了一個數字隨機數生成器-MM5437。 IIRC有一些AT微型程序也可以做到這一點。可能是一個有趣的小項目。

wackyvorlon
2009-11-25 09:00:44 UTC
view on stackexchange narkive permalink

我最近閱讀了有關使用電阻器產生隨機噪聲的非常有趣的討論。由於量子效應,電阻器將產生非常小的電壓。可以用運放將其放大,以產生高質量的隨機噪聲源。

J. Polfer
2010-01-06 23:09:57 UTC
view on stackexchange narkive permalink

您可以將傳感器輸入用作偽隨機數生成器的種子。 Linux OS使用來自鍵盤/鼠標的輸入作為/ dev / random的種子。只是一個主意。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...