天天看點

關于真随機數生成器

有關如何産生随機數的理論有許多,如果要詳細地讨論,需要厚厚的一本書的篇幅。

有限狀态機不能産生真正的随機數的,是以在現在的計算機中并沒有一個真正的随機數生成算法,現有的随機數生成算法生産的随機數隻不過因為重複的周期比較大,可以做到使産生的數字重複率很低,這樣看起來好象是真正的随機數,一般稱作叫僞随機數發生器。

真正的随機數是使用實體現象産生的:比如擲錢币、骰子、轉輪、使用電子元件的噪音、核裂變等等。這樣的随機數發生器叫做實體性随機數發生器,它們的缺點是技術要求比較高。真随機數生産效率沒有僞随機數高,還有就是"資訊熵的資訊量如果很有限的話,就不是一定是真的随機數了。"

還有人質疑真正的随機數的存在,這是哲學問題,不在此涉及。

查了下現有的真随機數生成器,比如PuTTYgen的随機數是讓使用者移動滑鼠達到一定的長度,之後把滑鼠的運動軌迹轉化為種子;Intel通過電阻和振蕩器來生成熱噪聲作為資訊熵資源;Unix/Linux的dev/random和/dev/urandom采用硬體噪音生成随機數;(待補充)

基于特定Intel晶片組中random number generator(RNG)單元的真随機數生成器.在Intel 815E晶片組的個人電腦上安裝Intel Security Driver(ISD)後,可以通過程式設計讀取寄存器擷取RNG中的随機數.

有人在BBS上提到:RSA的書上介紹過一種随機數發生器,根據的是劣質記憶體晶片工作在高溫下,其資料是不可預測的,讀取這裡面的資料,就會得到難以預測的随機數。有采用這種技術制作随機數發生器闆卡。

關于Linux系統的真随機數生成器在《Linux核心設計與實作》一書的附錄B中有詳細介紹

Linux自1.3.30版就在核心提供了真随機數生成器,至少是理論上能産生真随機數,它利用機器的噪音生成随機數,噪音源包括各種硬體運作時速,使用者和計算機互動時速。比如擊鍵的間隔時間、滑鼠移動速度、特定中斷的時間間隔和塊IO請求的響應時間等。

此外還有提供真随機數的網站,如:

1。 http://random.irb.hr/ 是一個免費為學術和科研機構提供真随機數字服務的網站。全名是Quantum Random Bit Generator Service (QRBGS),由克羅地亞的計算機科學家開發。其随機性依賴于半導體光子發散量子實體過程中内在的随機性,光子通過光電效應進行檢測。這些随機檢測到的光子都是互相獨立的。

可以通過C/C++庫、Web Service、Mathmatic/Matlab插件等多種方式通路。将來會提供基于SSL的安全通路。

它甚至還有個小小的Erlang的用戶端通路程式

http://code.google.com/p/qrbgerl/

2. 還有http://random.org/,從1998年開始就在Internet上提供真随機數服務了,它用大氣噪音生成真随機數

有人還提到

用Java可以使用java.security.SecureRandom 産生真随機數(待查);

Linux系統有/dev/random,/dev/urandom向使用者提供真随機數;

Windows系統有CryptGenRandom 函數生成真随機數(待查)

在《數字追兇 numb3rs》第6季中有一集是通過預測彩票所采用的僞随機數算法進行彩g票f詐w騙的。

2010年,德國研究人員開發出一種産生真随機數的新方法,他們希望能改進網際網路安全。

随機數是計算機和網際網路安全的重要組成部分,網站和浏覽器利用一把會話鑰匙加密兩者之間發送的資料。僞随機數可以預測和破解,研究人員一直在研究能産生真正的、無法預測的随機數方法。德國的研究團隊現在開發出一種真随機數發生器,它使用的計算機記憶體雙态觸發器作為随機的一個額外層,觸發器可随機的在1或0狀态中切換,在切換之前,觸發器處于行為無法預測的“亞穩态”。在亞穩态結束時,記憶體中的内容為完全随機。研究人員對一個觸發器單元陣列的實驗顯示,這種方法産生的随機數比傳統方法“随機”約20倍。

經典實體學不存在真正的随機性,而量子世界從本質上講就是真正随機的,是不可預測的。根據發表在2010年4月最新一期《自然》雜志上的報告,比利時實體學家S. Pironio和同僚利用“遠距離的幽靈般作用”創造出了[url=http://www.natureasia.com/ch/nature/updates/index.php?i=77607&issue=7291]真随機數[/url]。

他們利用了糾纏粒子的随機性和非局域性屬性。研究人員首先在理論上發現,一個[url=http://baike.qiji.cn/Detailed/20705.html]“貝爾不等式”[/url]的破壞證明新的随機性的産生,它獨立于任何實作細節。為了闡釋該方法,他們随後進行了一個實驗,在該實驗中,正如用他們建立的理論工具所證明的那樣,産生了42個新的随機位。研究人員稱,這項研究可用于設計出真正的無法預測随機數生成器。

http://developers.solidot.org/article.pl?sid=10/02/23/0645203

http://www.sciencedaily.com/releases/2010/02/100222082529.htm?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+sciencedaily+(ScienceDaily:+Latest+Science+News)

2011年,加拿大渥太華的實體學家Ben Sussman利用雷射脈沖和鑽石[url=http://www.ottawacitizen.com/business/Ottawa+physicist+uses+science+generate+truly+random+numbers/5780237/story.html]創造了真随機數[/url]。用真随機數編碼的資訊将難以被黑客破解。

Sussman的實驗室使用持續幾萬億分之一秒的雷射脈沖照射鑽石,雷射進入和出來的方向發生了變化。Sussman稱改變與量子真空漲落的互相作用有關,量子力學與大多數實體學法則不同,不可能知道真正發生了什麼。他認為這可以用于創造真正的随機數。

2012年,[url=http://phys.org/news/2012-04-fastest-random-silence.html]史上最快的随機數生成器[/url]:從真空中的亞原子噪音擷取随機數

量子力學告訴我們亞原子對會持續自發的産生和湮滅,即使是在真空裡也一樣。通過監聽真空内亞原子粒子量子漲落産生的噪音,澳洲國立大學的科學家們建造了世界上最快的随機數發生器。研究小組開發了可以通過雷射監聽真空中随機噪音的工具并以此産生真正的随機數。

[url=http://photonics.anu.edu.au/qoptics/Research/qrng.php]随機數生成網頁[/url]

http://article.yeeyan.org/view/219269/266017

參考:

http://www.cnblogs.com/hehehu/archive/2005/08/23/221125.html

http://bbs.chinaunix.net/viewthread.php?tid=1054170&extra=&page=1

繼續閱讀