一種新的混沌RNG的實現方案及FPGA實現
僅僅由冗余度來衡量一個RNG是不夠的。為了了解本文提出的混沌RNG輸出序列的隨機性是否實現了“隨機”,我們根據美國國家標準及技術研究所(NIST)的要求對本文的混沌RNC方案產生的隨機數序列的隨機性進行一系列測試。測試所用數據為慢速時鐘=8kHz,高速時鐘=100MHz,輸出精度為8bit的輸出值,測試長度為3 000 000個8位隨機數的序列,表1為測試結果。

經過以上一系列的隨機性測試,RNG表現良好,在置信水平為95%的情況下通過了全部測試,沒有表現出非隨機性,并且在信源相關度的測試(correlation order test)中性能超過了參考文獻中的混沌RNG方案。這項測試是測試一個隨機數序列的相鄰隨機數的相關度。一個理想RNG的前后隨機數相關度應該為0。由表1中數據可知,本文的混沌RNG測試結果更接近于理想RNG。因此可以認為,就目前已知的測試隨機數的隨機性的測試結果表明,本文介紹的混沌RNG生成的隨機數序列是比較好的。
光譜測試可以直觀地顯示出隨機數序列與其自身的相關情況。通過圖5可以更直觀地看到一個相關度低的RNG與一個偽RNG(用10位線性反饋移位寄存器來做例子)的對比。相關度為0的理想RNG應該均勻分布在整個二維空間內,線性反饋移位寄存器的測試結果(圖b)就反映出了它的高相關度,而本文提出的混沌RNG方案的測試結果(圖a)則顯示了其不可預測性與無規則性分布。

2 硬件實現
本文采用Xilinx公司的xuPV2P30開發板實現這個混沌KNG,這塊開發板上自帶兩個獨立的(不同相位)時鐘源,二者都可以輸出8k~100MHz的不同頻率的時鐘。選擇慢速時鐘信號頻率范圍為8k~1MHz,高速時鐘信號頻率為100MHz,輸出精度為8bit。其邏輯使用資源情況如表2所示。

從表2可以看到,在硬件上以極低的邏輯資源使用(18個Slices約合1800+門)實現了本文提出的混沌RNG方案,對比參 考文獻中的方案(3000+門),該電路得到大大簡化,而參考文獻中的偽高斯噪聲生成器占用了很大的硬件資源。該方案的最高輸出速率受到了板載最高時鐘頻率的限制。如果本文的混沌RNG用IC方案實現,則可以進一步減小所需要的硬件資源并進一步提高輸出速率。
本文提出的方案通過了一系列高要求的隨機性測試,其邏輯資源的占用遠小于傳統的混沌RNG方案,最高輸出速率可達8Mbps。因而這種RNG方案可以用于對安全性和性能需求日益增長的加密系統中。
生成器采樣輸出信號進行模2加操作(異或),再通過S/H產生最后的輸出x(n),x(n)被反饋到寄存器中進行下次操作。














評論