????? 在SoC(System on Chip)廣泛應用的今天,如何設計一個基于Ic的RiNG就成為安全通信應用的急切需要。隨機噪聲源(如熱噪聲和發射噪聲)存在于IC中卻總是被人為地屏蔽掉了。因此,利用電路噪聲放大的商用RNG設計需要專門的外部組件和特殊硬件來與那些需要屏蔽噪聲的組件隔開。在IC設計中,對數模混合信號的處理經驗表明,底層噪聲和電源噪聲電平總是高于隨機噪聲源電平。所以一個不被干擾的白噪聲源在一個基于IC的數字加解密系統的RNG中是不可能被使用的,必須考慮如何利用抗干擾的隨機源來實現隨機數生成器。
本文提出一種新的混沌RNG的實現方案,更易于用硬件即IC實現。首先討論其原理和模型及其實驗,并對其進行隨機性測試;然后討論它的FPGA實現方案。
1 模型及實驗
1.1 隨機數生成器的定義
定義1 一個理想的隨機數生成器是一個生成等概率符號的離散無記憶信息源(DMIS),RNG是一個有著正熵的離散信息源。
但是,現實中的RNG都是產生非均勻概率符號的離散有記憶信息源。因此采用有偏差的RNG來區別于定義1中理想的RNG。一個有偏差的RNG性能的好壞可通過它的冗余度ρ=log2Q-h來衡量,其中Q和h分別是離散符號集的基數和相關信源的熵。一個理想RNG的冗余度應該等于O,而一個有偏差的RNG的冗余度則標志這個RNG跟理想RNG的差距。例如一個冗余度為ρ的RNG產生長度為N位的密鑰,則攻擊方平均要嘗試2(1-ρ)N個密鑰才能找到正確的密鑰,因此密鑰的有效長度可以被定義為Ne=(1-ρ)N。
1.2 混沌隨機數生成器模型
混沌理論作為非線性動態系統的分支,近年來受到越來越多的關注。它使得一個低維動態系統也可以擁有復雜的、不可預料的行為,使復雜的方程不再是生成隨機數序列的必要條件。
混沌系統可以用基于下列迭代關系式描述的Bemouli移位映射:
式中,e(n)表示一個高斯噪聲信號。這個迭代式表明由(1)式產生的序列是極為平滑和均一分布的。另外,與混沌相關的軌跡發散包含了噪聲,(1)式產生的序列在一定范圍內是不可預測的,從而使系統能被當作一個真隨機比特源。離散時間混沌法不受其他噪聲源影響。
在電路上實現Bemouli移位映射的關鍵在于實現一個抗干擾的高斯噪聲信號。傳統的混沌隨機數生成器是用一個偽隨機數生成器產生一個偽高斯噪聲信號來實現(1)中的e(n),如圖1所示,這在一定程度上降低了混沌隨機數生成器的安全性和真隨機性。
典型的振蕩器采樣法是利用時鐘的相位噪聲(理論上是MOSFET熱噪聲的副產品)產生隨機數。通過一個由較慢時鐘信號控制的D觸發器對一個高速時鐘進行采樣,高速時鐘的相位抖動導致具體采樣值的不確定性,如圖2所示,理論上每次采樣都會產生一個隨機比特。典型采樣后的抖動電平是符合高斯分布的,而且這種抖動不會受到電路中其他噪聲的干擾。另外,振蕩器采樣法的隨機性可以通過仔細挑選快的和慢的時鐘頻率比來人為增強。采樣時發生的非線性偏移現象使得這種振蕩器采樣技術比目前的確定性噪聲更健壯。
基于上述原理,提出用振蕩器采樣輸出作為一個高斯噪聲信號e(n)實現(1)式。結合兩種隨機數生成器方案實現混沌隨機數生成器,系統原理框圖如圖3所示。
其中S/H(Shilt/Hold)為一個移位保持電路,用來實現2(x(n-1)+e(n))。低速時鐘控制D觸發器、寄存器和S/H。寄存器中殘余信號作為初始輸人信號,然后與振蕩1.3 實驗結果及討論
根據前面的定義l來檢測本文中提出的混沌RNG的性能,用它生成不同長度的8bit隨機數序列,計算其冗余度,并與參考文獻中的傳統混沌RNG方案做對比,如圖4所示,點線表示本文提出的方案,實線表示69是文獻中的方案。通過對比可以很明顯地看出改進后的混沌RNC性能優于采用偽隨機高斯噪聲的傳統混沌RNG方案。
僅僅由冗余度來衡量一個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)被反饋到寄存器中進行下次操作。
本文提出一種新的混沌RNG的實現方案,更易于用硬件即IC實現。首先討論其原理和模型及其實驗,并對其進行隨機性測試;然后討論它的FPGA實現方案。
1 模型及實驗
1.1 隨機數生成器的定義
定義1 一個理想的隨機數生成器是一個生成等概率符號的離散無記憶信息源(DMIS),RNG是一個有著正熵的離散信息源。
但是,現實中的RNG都是產生非均勻概率符號的離散有記憶信息源。因此采用有偏差的RNG來區別于定義1中理想的RNG。一個有偏差的RNG性能的好壞可通過它的冗余度ρ=log2Q-h來衡量,其中Q和h分別是離散符號集的基數和相關信源的熵。一個理想RNG的冗余度應該等于O,而一個有偏差的RNG的冗余度則標志這個RNG跟理想RNG的差距。例如一個冗余度為ρ的RNG產生長度為N位的密鑰,則攻擊方平均要嘗試2(1-ρ)N個密鑰才能找到正確的密鑰,因此密鑰的有效長度可以被定義為Ne=(1-ρ)N。
1.2 混沌隨機數生成器模型
混沌理論作為非線性動態系統的分支,近年來受到越來越多的關注。它使得一個低維動態系統也可以擁有復雜的、不可預料的行為,使復雜的方程不再是生成隨機數序列的必要條件。
混沌系統可以用基于下列迭代關系式描述的Bemouli移位映射:
式中,e(n)表示一個高斯噪聲信號。這個迭代式表明由(1)式產生的序列是極為平滑和均一分布的。另外,與混沌相關的軌跡發散包含了噪聲,(1)式產生的序列在一定范圍內是不可預測的,從而使系統能被當作一個真隨機比特源。離散時間混沌法不受其他噪聲源影響。
在電路上實現Bemouli移位映射的關鍵在于實現一個抗干擾的高斯噪聲信號。傳統的混沌隨機數生成器是用一個偽隨機數生成器產生一個偽高斯噪聲信號來實現(1)中的e(n),如圖1所示,這在一定程度上降低了混沌隨機數生成器的安全性和真隨機性。
典型的振蕩器采樣法是利用時鐘的相位噪聲(理論上是MOSFET熱噪聲的副產品)產生隨機數。通過一個由較慢時鐘信號控制的D觸發器對一個高速時鐘進行采樣,高速時鐘的相位抖動導致具體采樣值的不確定性,如圖2所示,理論上每次采樣都會產生一個隨機比特。典型采樣后的抖動電平是符合高斯分布的,而且這種抖動不會受到電路中其他噪聲的干擾。另外,振蕩器采樣法的隨機性可以通過仔細挑選快的和慢的時鐘頻率比來人為增強。采樣時發生的非線性偏移現象使得這種振蕩器采樣技術比目前的確定性噪聲更健壯。
基于上述原理,提出用振蕩器采樣輸出作為一個高斯噪聲信號e(n)實現(1)式。結合兩種隨機數生成器方案實現混沌隨機數生成器,系統原理框圖如圖3所示。
其中S/H(Shilt/Hold)為一個移位保持電路,用來實現2(x(n-1)+e(n))。低速時鐘控制D觸發器、寄存器和S/H。寄存器中殘余信號作為初始輸人信號,然后與振蕩1.3 實驗結果及討論
根據前面的定義l來檢測本文中提出的混沌RNG的性能,用它生成不同長度的8bit隨機數序列,計算其冗余度,并與參考文獻中的傳統混沌RNG方案做對比,如圖4所示,點線表示本文提出的方案,實線表示69是文獻中的方案。通過對比可以很明顯地看出改進后的混沌RNC性能優于采用偽隨機高斯噪聲的傳統混沌RNG方案。
僅僅由冗余度來衡量一個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)被反饋到寄存器中進行下次操作。
評論
查看更多