基于Virtex-5平臺的真隨機數發生器的設計實現
2 TRNG的FPGA實現與測試
本文引用地址:http://www.104case.com/article/269579.htm整個TRNG的實驗環境由外部時鐘源、FPGA開發板以及邏輯分析儀組成。TRNG采用Xilinx公司的Virtex-5系列中的XC5VLX110作為物理實現平臺,外部時鐘頻率為64 MHz。由FPGA產生的隨機數據,經邏輯分析儀采集后,使用DIEHARD battery of tests of randomness隨機數測試程序進行測試,檢驗隨機序列的性能。
DIEHARD測試是由16項測試組成的用來度量隨機數發生器性能的一組統計學測試,它由George Marsaglia開發并于1995年首次發布。DIE HARD的測試結果叫做P-value,它由方程P-value=Fi(X)計算得到,其中Fi試圖建立樣本X在0和1間服從均勻分布的分布函數。因為Fi是漸進逼近的,它在尾部的近似效果變差,所以數值接近0或1的P-value在真隨機序列中極少出現。當被測序列隨機性能很差時,會有很多P-value的值是精確到小數點后數位的0或者1,例如1.000 000。需要強調的是,P-value等于1.000 000或0.000000是序列為真隨機序列的充分不必要條件。
2.1 FPGA位置約束
為保證每個振蕩器中的兩個獨立振蕩環的理論振蕩周期相同,以便更容易在鎖定期間產生亞穩態,加大噪聲對輸出電平的影響,同時盡量讓各個振蕩器的輸出在進行異或運算前延遲不出現太大偏差。所以對TRNG中的振蕩環進行位置約束:將振蕩環中的反相器約束在左右相鄰的邏輯單元(Slice)中,讓各個振蕩環分別約束在上下相鄰的邏輯單元中。
2.2 振蕩器數目對統計特性的影響
在32 MHz的采樣頻率下,分別以15組、19組、27組和32組振蕩器作為TRNG的隨機源,隨機序列經過同步器后不與PRBS運算直接輸出。將采集到的隨機序列送入測試程序進行測試以后,其結果如表1所示。

可以看出,振蕩器的數目直接影響隨機源模塊產生序列的統計性能,振蕩器數目越多,TRNG輸出序列的隨機性越好。但是如果振蕩器的數目太多,會消耗過多的硬件資源,功耗也過大。因此,不宜通過單純地增加振蕩器數目的方法提高隨機序列的性能。
定性分析如下:將序列的每位看作是一個隨機的二進制變量X,定義b是序列的偏置。即
b=|P(X=1)-1/2|=|P(X=0)-1/2| (2)
根據Piling-up引理,輸出序列的偏置是:

其中n是輸入序列的個數,bi是每個序列的偏置。容易看出b≤bi(1≤i≤n),等式當且僅當在bi=0(

2.3 后續處理模塊對統計性能的改善
由上一節的分析可知,增加振蕩器數量是改善序列統計特性的有效方法。但前提條件是各個振蕩器相互獨立。當振蕩器數量過多時位置約束很可能與相互獨立的要求相互矛盾。因為高速的振蕩信號往往發生相互串擾的情況,并且消耗更多資源和功耗,所以有必要在保證TRNG包含一定數量的振蕩器的前提下,引入后續處理模塊。從而達到消耗資源較少,序列性能較好的目的。
本項測試以19組振蕩器作為TRNG的隨機源,輸出序列與PRBS模塊輸出進行異或運算,然后分別使用32,16,8,2 MHz的采樣時鐘采集數據。將數據送入測試程序進行測試以后,結果如表2所示。

可以看出,TRNG生成的隨機序列全部達到了預定的性能指標。同時不難發現,采樣時鐘頻率對TRNG的輸出統計特性是有影響的,當采樣頻率逐漸降低時,TRNG的隨機性能逐步提高。出現這種現象是由于采樣頻率越高,就與振蕩頻率越接近,二者的相位偏移干擾了隨機信號的獲取影響了統計特性。
3 結束語
本文嘗試了一種純數字形式的真隨機數發生器結構,規模較小、易于移植。電路包含兩個振蕩環,分為自由振蕩和鎖存至雙穩態兩個工作狀態。利用振蕩環之間的相位偏移和抖動以及雙穩態器件的亞穩態作為隨機源。本文探討了振蕩器數量對序列統計特性的影響,并在加入后續處理模塊的情況下試驗了多種采樣頻率,經測試隨機序列完全符合預定指標。
負離子發生器相關文章:負離子發生器原理
評論