天天看點

[nRF51822] 16、nRF51822的随機數生成器,及随機數生成器的一些知識(可以幫您補補随機數發生器的知識)

随機數生成器在通信、加密、圖像傳輸等領域應用廣泛,且一般起到關鍵性作用。我在最近設計的一個近場射頻通信協定的碰撞避退算法的過程中,便對此有深深體會。

随機數發生器一般包括僞随機數發生器和真随機數發生器。僞随機數發生器的僞随機序列是由數學公式計算産生,如果生成随機數的算法确定了,那麼這個随機數序列也就确定了。是以從數學意義上講,僞随機數并不随機,序列本身也必然會重複。但是隻要僞随機數發生器所産生的僞随機序列的周期足夠成并且通過相應的檢驗,就可以在一定範圍内使用。而且僞随機數發生器在實體實作上比真随機數簡單的多,它的生成速度比真随機數快得多,因而廣泛被使用。對僞随機數而言,其算法顯得尤為重要。

<a></a>

但是對于一個更複雜的系統,例如:如果運作上述代碼的多台主機其系統時間相差在毫秒内,那麼就很可能達不到想要的随機效果了,而這種情況在一個傳感器網絡中是比較常見的!一種更靠譜的做法是用真随機數發生器産生僞随機數發生器的種子。

而真随機數發生器所産生的随機數來源于自然界實體現象的随機特性,因而徹底地消除了僞随機數的周期性問題。由于真随機數發生器産生的真随機序列是不可預測的,因而不可能找到兩個完全相同的真随機序列。而用真随機做種子的僞随機生成器仍然有可能産生由于種子相同而後續序列相同的情況,這如果發生在碰撞避退中,則将産生無限的碰撞!隻有真随機數發生器才能提供真正的、永不重複的随機數序列。真随機數發生器從本質上來講是非确定性的,不像僞随機數發生器通過算法産生随機數,因而無法推算以後産生的僞随機序列。是以真随機發生器可以滿足一些需要獨立産生随機數序列的場合,比如射頻通信協定裡的碰撞避退算法。

是以提取真随機序列的最好的方法就是提取真是世界的随機序列!而随機事件是自然界存在的客觀現象,這種現象是普遍存在的,是不依賴于事件、空間或者其它的條件。是以,可以使用随機噪聲選取真是世界的自然随機性。用人們打字的随機方式來産生随機位,測量連續擊鍵的時間,然後取這些測量的最低有效位,即測量鍵盤反應時間作為随機源;利用電子器件中的熱噪聲作為随機源,該類熱噪聲源有電阻、半導體二極管和密封的磁盤驅動器中的空氣擾動;也可以利用CMOS電路中存在着的噪聲。随着微電子學的發展,廉價的高品質內建電路晶片的出現,是的電路的噪聲成為最容易獲得的随機實體信号。

[nRF51822] 16、nRF51822的随機數生成器,及随機數生成器的一些知識(可以幫您補補随機數發生器的知識)

随着計算機科學與通信技術的快速發展,資訊在存儲、傳送、接收和處理過程中的安全問題已受到人們的廣泛關注,對高品質随機數的要求也與日俱增。随機數在資訊安全系統中扮演着重要的角色,在基于計算機或internet的通信和交易中有着廣泛的應用。比如資料加密、密鑰管理、電子商務、數字簽名、身份鑒定以及蒙特卡羅仿真等都要用到随機數。對于很多加密系統而言,其安全性完全取決于使用的密鑰和一些協定中的參數等條件,若采用傳統模型産生的僞随機序列作為密鑰,如果攻擊者擁有足夠的計算能力,則完全可以預測到僞随機數的産生規律。對于許多使用僞随機數的安全系統來說,由于軟體方法不能保證足夠的不确定性,僞随機數注定成為它們性能提高的瓶頸。即使一個安全系統的其他部件都足夠安全,使用僞随機數也會使整個系統變得很脆弱、易受到攻擊。

如果安全系統内部使用的是真随機數的話,即使攻擊者有很強的計算能力,并且已知所有産生的序列,也不能預測系統下一個要産生的随機數。這樣就提高了安全系數,降低了安全隐患。

[nRF51822] 16、nRF51822的随機數生成器,及随機數生成器的一些知識(可以幫您補補随機數發生器的知識)

系統晶片就是将一個系統的多個部分內建在一個晶片上,能夠完成某種完整電子系統功能的晶片系統。該系統由硬體部分和軟體部分兩個部分構成。硬體部分包括uP、BUS、ROM/RAM、數字接口等計算機的基本部件;軟體部分主要包括作業系統和應用軟體。SOC設計的三大支撐技術包括軟硬體協同設計技術、IP設計和複用技術、超深亞微米設計技術等。

系統晶片通常包含一些具有通用功能的元件。例如,很多系統晶片都帶有鎖相環用以産生内部時鐘,也需要用到随機數來完成某些功能。以前的做法就是使用外部随機數發生器來提供随機數,或者通過軟體方法産生僞随機數來滿足其需要。第一種方法浪費資源、費用、功耗較大;第二種方法難以滿足安全性需要。是以,利用系統晶片的片上資源來實作一個随機數發生器成為一種現實的需要。片上內建系統減少了片外器件和晶片引腳的數量,避免了用大電流驅動晶片引腳,降低了各種封裝寄生效應的影響,使電路更緊湊,可靠性更高,功耗、體積和成本都能夠進一步降低。

利用系統晶片的片上資源來實作一個随機數發生器的方法簡單可行,産生的随機數具有真随機性、安全性更高,适應當代系統晶片技術發展的要求,易于系統內建,也可以作為一個核應用于加密晶片、智能卡晶片、嵌入式系統、通信系統等産品中,應用前景廣闊。

在高端測量儀器領域,比如核試驗儀器研制,需要研制可靠的信号發生器來對探測器的輸出信号進行模拟和仿真,用于原子核科學技術測試研究。其中,信号發生器一個重要的功能是模拟核信号在時間上的統計規律:即先後相鄰兩脈沖信号的時間間隔服從指數分布,是以就需要研究怎樣産生高品質的均勻分布的随機序列,進而産生指數分布的随機序列來滿足系統的功能需求,可以友善而快捷地開展數字化核測量系統的研究。

nRF51822_Product Specification_v3.1.pdf中介紹nrf自帶真随機生成器:

The Random Number Generator (RNG) generates true non-deterministic random numbers derived from thermal noise that are suitable for cryptographic purposes. The RNG does not require a seed value.
[nRF51822] 16、nRF51822的随機數生成器,及随機數生成器的一些知識(可以幫您補補随機數發生器的知識)

The random number generator (RNG) driver includes two layers: the hardware access layer (HAL) and the driver layer (DRV).

上面給出的一個簡單的例子:

相關連結:

本文轉自beautifulzzzz部落格園部落格,原文連結:http://www.cnblogs.com/zjutlitao/p/6336607.html,如需轉載請自行聯系原作者

繼續閱讀