文獻翻譯|Design of True Random Number Generator Based on Multi-stage Feedback Ring Oscillator(基於多級反饋環形振盪器的真隨機數發生器設計)

北闕微涼發表於2021-10-31

基於多級反饋環形振盪器的真隨機數發生器設計

摘要

真隨機數生成器(trng)在加密系統中起著重要的作用。本文提出了一種在現場可程式設計門陣列(FPGA)上生成真隨機數的新方法,該方法以 多級反饋環形振盪器(MSFRO) 的隨機抖動為熵源。在傳統環形振盪器的基礎上,增加了多級反饋結構,擴大了時鐘抖動的範圍,提高了時鐘取樣頻率和熵源的隨機性。與傳統的時鐘取樣結構不同,我們利用MSFRO產生的時鐘抖動訊號對FPGA的鎖相環(PLL)產生的時鐘訊號進行取樣。對得到的輸出值進行異或運算,以減小輸出值的偏差,提高其隨機性。TRNG在Xilinx Virtex-6 FPGA中實現,硬體資源消耗低,吞吐量高。將熵源分類、硬體資源和吞吐量與現有trng進行了比較。結果表明,擬合成的TRNG只消耗24個lut和2個DFFs。與其他trng相比,該設計硬體資源消耗非常低,吞吐量可達290 Mbps。此TRNG生成的隨機位序列通過NIST SP800-22測試和NIST SP80090B測試。

關鍵詞:真隨機數發生器、FPGA、多級反饋、頻率積累

一、引入

真隨機數發生器(TRNG)在許多密碼系統中都扮演著重要的角色,包括密碼生成、認證協議、金鑰生成、隨機填充和數字影像加密[1]、[2]。此外,真隨機數在數值計算、統計模擬、隨機抽樣和量子金鑰分配等方面也有重要的應用。

TRNG的效能指標包括吞吐量、硬體資源消耗和隨機數統計。TRNG嚴格滿足統計要求,具有不可預測性,利用隨機物理過程作為熵源產生隨機數。熵源包括熱噪聲、亞穩態[3]、時鐘抖動[4]、混沌[5]和磁隧道結(MTJ)[6]、[7]、[8]。

如果原始隨機位元流的隨機性不好,則需要進行馮·諾伊曼校正或引入雜湊函式等後處理操作來提高隨機性。

基於FPGA設計的trng的熵源一般是環振盪器、DCM[9]、自定時環(STR)[4]以及觸發[3]的設定時間和保持時間的違反所引起的亞穩定。

TRNGs利用RO電路中的時鐘抖動作為熵源,在長時間抖動積累下可以獲得良好的隨機性,但吞吐量會降低,硬體資源消耗大。主要受RO階數的影響,輸出頻率降低,導致吞吐量降低。提出的基於快速進位邏輯的TRNG可以提高吞吐量,但為了獲得更嚴重的路徑延遲,需要繁瑣的佈線以提高隨機性。在採用鎖相環或數字時鐘管理器(DCM)作為熵源的trng中,熵源結構簡單,但隨機性較差,需要進行復雜的計算才能找到合適的引數[9]。

因此,為了提高trng的吞吐量,減少FPGA上的硬體資源消耗。在本文中,我們提出了一種可以提高熵源隨機性的熵源結構。由該熵源組成的TRNG具有以下三個優點:熵源質量好。採用多級反饋結構可以在短時間內增加時鐘的相位抖動,改善熵源的隨機性。該方法的吞吐率高,且熵源產生的抖動訊號頻率高。我們使用抖動訊號對傳統時鐘訊號進行取樣,隨機位元流產生的速率就是抖動訊號的頻率。取樣電路簡單。並且可以進一步降低硬體資源的消耗。

為了證明該結構的這些優點,我們在幾個Virtex-6和Spartan-6 fpga上實現了TRNG。本文的其餘部分結構如下。在第二部分,我們介紹了時鐘抖動的產生原理和相關的研究。在第三部分,我們從理論上介紹了我們提高時鐘抖動隨機性的出發點,然後系統地介紹了我們提出的TRNG。第四部分介紹並討論了隨機性檢驗。最後,在第五部分中得出結論。

二、相關研究

時域時鐘抖動和頻域相位噪聲是噪聲影響時鐘訊號的兩種方式。理想情況下,頻率為F的固定脈衝的持續時間應為T=1/F,間隔為T/2的跳變邊緣。然而,這樣的訊號並不存在。

如圖1a所示,由於電路的熱噪聲和干擾,訊號週期的長度總是會發生一定程度的變化,導致下一個跳邊到達時間的不確定性。因此,在時域上,時脈頻率的變化表現為時鐘抖動,在頻域上表現為相位噪聲。

我們以時鐘訊號T1~TN的週期為樣本,∆?為時間間隔。我們對T1~TN樣本進行統計分析。

如圖1a所示,當∆?趨於無窮大時,隨機抖動的統計分佈為?(T,?2)的高斯分佈,其中T為理想邊變化的時間點,?2為抖動的方差。

利用時鐘抖動產生隨機數的基本原理是獲得時鐘訊號上升沿或下降沿的不確定性。抖動定義為訊號的定時事件與其期望位置之間的偏差。總抖動可分為隨機抖動和確定性抖動。

隨機抖動被認為是一種熵源,主要是由系統中的噪聲或其他干擾引起的。如果我們對抖動範圍內的資料進行取樣,就可以得到一個隨機數。

在基於FPGA的TRNG設計中,常用RO的時鐘抖動作為熵源。然而,抖動範圍很窄,難以提取。為了擴大抖動範圍,RO需要長時間累積時鐘抖動或增加階數,但此時RO的頻率會降低。

因此,基於RO設計的trng的吞吐量普遍較低。在[10]中,使用多個並行ROs生成隨機位元流,如圖1b所示。其目的是提高熵源的質量和吞吐量,但這將增加電路設計的複雜性,並消耗大量的硬體資源。我們可以在不增加電路複雜度的情況下,通過改進熵源結構來提高吞吐量,減少硬體資源的消耗。

三、多級反饋環形振盪器

在數位電路中,由於半導體噪聲、溫度變化、串擾和傳播延遲,抖動會出現在RO時鐘的上升沿或下降沿,並在RO中傳播和累積。RO的週期大約是 ?=2??elay*?,這裡的??elay是一個逆變器(反相器)延遲,N是RO中逆變器(反相器)的數量。為了提高RO的頻率,需要減少??elay和逆變器(反相器)的數量?。同時,為了改善RO的時鐘抖動,需要增加逆變器的數量?;這也將減少RO的頻率。

在[11]中,提出了環形振盪器相位噪聲與振盪器階數的關係。它的表示式是:

其中?為玻爾茲曼常數;?為絕對溫度;η,VDD, V, R, I為常數;?0為RO的頻率;?為偏移頻率;?為環形振盪器的功耗;?是環振子的階數。當頻率不固定時,增加?會降低?0頻率,優化相位噪聲,降低吞吐量。

頻域相位噪聲與時域平均抖動的關係為:

由式(2)可知,平均抖動與相位噪聲正相關。此外,當訊號頻率?0增大時,平均抖動??MS變小,可以優化時鐘抖動。因此,熵源的隨機性變得更差。

為了解決這種矛盾,我們在RO電路中增加了多級反饋結構,反饋結構為單逆變器,這相當於增加RO的順序。我

們的目的是將每個反饋結構和部分反激電路逆變器結合起來,形成一個可以獨立工作的新的反激電路,使整個電路可以連續振盪。反饋結構增加了相位噪聲,從而改善了熵源的隨機性。

如圖2所示,所提出的MSFRO是一個多級反饋結構。反饋結構的數量是奇數,因為當反饋結構成對出現時,由於耦合,它們會高度相關,這將大大降低TRNG[12]輸出位元流的隨機性。

如圖3a所示,在反饋的第j階段,當A=1,B=0是通過反饋部分的逆變器得到的。C是從前一個順序傳播的值。然後用NAND運算B和C=0,得到D=1。D通過逆變器後,A的值從1變為0,形成振盪環,振盪週期縮短。

同樣,當A=0時也可以形成振盪環。如圖3b所示,在反饋的第i階段,當A=1時,反饋後得到B=0。然後通過NAND運算B和C=0得到一個值。在通過m個逆變器後,這個值產生D=1/0,其中m = j-i+1。D通過m個逆變器後,值從1變為0。通過電路的反饋部分,可以有效地縮短振盪週期,提高振盪頻率。

在本文中,我們提出了一種使該結構的頻率高於傳統RO的方法。這種方法叫做頻率累積。首先,對方波進行傅立葉變換,得到:

E是方波的振幅。通過在RO環中引入多個反饋階段,可以在內部構建一個新的RO。每一個新的RO同時輸出一個方波,這些方波累積形成一個新的方波。我們假設每個方波的傅立葉變換是擴大?1(?),?2(?),…,??(?)。對這些方波展開求和,得到如下表示式:

式(4)可近似等於:

其中?=[?1,?2,?3,…,??]。由此可見,式(5)應為方波。此外,頻率的平方為:,MSFRO結構使用以下反饋多項式定義:

其中?=(n−3)/2,?>3且?=2?+1,?>1且?∈?*。j為反饋部分逆變器個數,n為傳統RO中逆變器個數,P(x)為反饋多項式係數且為常數表示式,即P(x)=1或P(x)=0。P(x)=1表示環路中有反饋連線,P(x)=0表示環路中沒有反饋連線。如果反饋多項式P(x)的所有係數都為0,則反饋多項式為f(x)=1,表明迴路中沒有反饋。

我們用四種不同的模式對九階MSFRO進行了實驗。公式分別是f(x)=x+1, f(x)=x^2+1, f(x)=x^3+1, f(x)=x^3 +x^2+x+1。如圖4所示,我們的TRNG結構使用兩個msfro作為抖動訊號源。

鎖相環產生兩個正常時鐘。鎖相環的輸出作為觸發器的資料輸入,MSFRO的輸出作為觸發器的時鐘訊號輸入。每次上升邊緣的MSFRO輸出訊號來了,D觸發器將取樣鎖相環輸出訊號產生一個隨機位元。噪聲引起的相位抖動範圍很小,使用觸發器取樣時會取樣很多確定的值,降低了隨機數的隨機性。因此,本文提出的TRNG採用兩個MSFRO作為熵源,提取其隨機性後直接通過異或輸出得到隨機數。

四、實驗結果

A.NIST SP 800-22測試

本次試驗驗證了所提出的TRNG在標準操作條件(25℃,1.0V)下產生的序列的隨機性。為了保證實驗資料的準確性,避免單個開發板實驗資料的偶然性,實驗是在三個不同的Virtex-6 fpga開發板上進行的。

在不同的工作條件下,連續生成100萬位元來測試隨機性。Prop是十項測試的隨機通過率。測試結果如表I所示,隨機位元流可以通過每個高p值的隨機測試。p值偏低可能是由於裝置差異和單板佈局的影響。但都通過了測試,說明TRNG可以生成真隨機數。

B.NIST SP 800-90B測試

NIST SP800-90B測試比現有的熵估計方法更加複雜和嚴格。表II給出了IID檢驗、卡方檢驗和最長重複子串長度檢驗(LRS檢驗)的結果。實驗結果表明,TRNG生成的位元流序列的最小熵為0.985281,通過了NIST SP800-90B測試中的IID測試。

C.NIST測試結果在四種不同的模式

為了進一步驗證結構的可靠性和合理性,我們對四種模態進行了試驗。生成的隨機位元流通過NIST SP800-22和SP800-90B進行測試。

如圖5所示,所有的位流都通過了NIST SP800-22測試,表明它們是真正的隨機數。所有資料均通過NIST SP800-90B重新檢驗,以進一步確定所獲得隨機數的熵源質量。

圖6折線表示四種模式的最小熵值。模態4的最小熵為0.946909,高於其他三種模態。這是因為模式4有三種反饋結構,這會顯著增加電路中的相位噪聲,增加熵源的質量。

D.偏差檢驗和自相關檢驗

圖6a顯示了由三組100萬連續位元生成的影像。我們可以清楚地看到,在本研究生成的影像中,黑白畫素的分佈非常均勻,因此生成的資料沒有偏移,隨機性好。檢驗隨機序列的自相關就是檢驗序列的隨機性。相關程度用相關係數表示。根據Karl Pearson設計的統計指標,相關係數小於0.3,可以認為相關不相關。

圖6b為模式4結構測量的三組資料的自相關檢驗結果。從圖中可以看出,各組資料的相關係數都在0.3以下。因此,所提出的TRNG生成的隨機序列不具有自相關。

E.重啟測試

在重新啟動測試[13]中,我們繪製了6個重新啟動測試的前幾個取樣位的資料。如圖7所示,如果隨機序列顯示不同的圖,則得到的資料為真正的隨機序列。實驗結果表明,每個測試產生了不同的隨機序列。因此,本文設計的TRNG產生的隨機序列不具有可重複性和相似性,是一個真正的隨機序列。

F.電壓和溫度測試

我們在Xilinx Virtex-6 FPGA上評估了TRNG在不同電壓和溫度下的效能。在不同的環境(溫度0℃~80℃)和電壓(0.8 V~1.2V)下進行了一些實驗。如圖8所示,在不同的溫度和電壓下進行了100組實驗,每組實驗採集了100萬位元的位元流資料。對每一組測量資料進行NIST測試,以確定通過測試的百分比。由圖8可以看出,在1.0V、20℃條件下,通過率最好,隨機性最好。電壓變化時,通過率減小,隨機性減小。隨著溫度從20℃開始升高,通過率逐漸降低,隨機性逐漸變差。

G.與其他基於FPGA的TRNG比較

我們將模式4的實驗結果與其他trng進行比較,結果如表III所示。

[1]的結構採用RRAM作為熵源,吞吐量低,只有6mbps。

[14]的結構採用STR作為熵源,吞吐量低,僅為4mbps。

[4]中,該結構採用STR作為熵源並行取樣多個DFFs,吞吐量高達200mbps,但硬體資源消耗嚴重。這對於資源非常有限的FPGA來說非常不利。

[15],[10],[16]和[14]中的結構都使用RO作為熵源。

[15]和[16]的吞吐量分別為100 Mbps和120 Mbps,顯著高於[10]和[13],但低於我們建議的TRNG (150 Mbps)。而且[15]和[16]的硬體資源消耗非常大。

[13]中的TRNG硬體資源消耗低,吞吐量低。

[10]中的TRNG不僅消耗大量硬體資源,而且吞吐量低。

[17]的結構採用FIGARO作為熵源,吞吐量低,只有6.25 Mbps。

[18]結構採用GARO作為熵源,吞吐量為280mbps。

[19]結構採用CMOS作為熵源,吞吐量為192.3 Mbps,但低於我們提出的TRNG (290mbps)。

總體而言,與其他架構相比,本文提出的TRNG具有更少的硬體資源消耗和更高的吞吐量。我們設定外部週期訊號的頻率範圍為285~295MHz,用於注入鎖定測試。共測試10組隨機位元流資料,隨機通過率為70%。

此外,我們在ISE中使用Xilinx XPower Analyzer來分析四種模式的功耗。如表4所示,由於存在多個反饋結構,模式4的功耗相對較高。

五、結論

我們利用本文提出的MSFRO時鐘抖動來產生隨機性。與現有的TRNG相比,我們的TRNG可以獲得更高的吞吐量和更低的硬體資源開銷,而且不需要複雜的提取結構。實驗分析表明,所設計的TRNG效能良好,均通過了隨機性測試。

提出的TRNG在spartan6 FPGA上的吞吐量為150 Mbps,在Virtex-6 FPGA上的吞吐量為290 Mbps,硬體資源開銷僅為24個lut和2個DFFs。因此,我們節省了大量的硬體資源,並提供了更緊湊的TRNG設計。

REFERENCES

[1] R. Govindaraj, S. Ghosh and S. Katkoori, "CSRO-Based Reconfigurable True Random Number Generator Using RRAM," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 26, no. 12, pp. 2661-2670, Dec. 2018, doi: 10.1109/TVLSI.2018.2823274.

[2] P. Poudel, B. Ray and A. Milenkovic, "Microcontroller TRNGs Using Perturbed States of NOR Flash Memory Cells," in IEEE Transactions on Computers, vol. 68, no. 2, pp. 307-313, 1 Feb. 2019, doi: 10.1109/TC.2018.2866459.

[3] P. Z. Wieczorek and K. Gołofit, "Dual-Metastability Time-Competitive True Random Number Generator," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 61, no. 1, pp. 134-145, Jan. 2014, doi: 10.1109/TCSI.2013.2265952.

[4] Cherkaoui A et al., “A Very High Speed True Random Number Generator with Entropy Assessment”. In Cryptographic Hardware and Embedded Systems - CHES 2013, vol. 8086. pp179-196, Aug.2013, Doi: 10.1007/978-3-642-40349-1_11.

[5]Y Hosokawa and Y Nishio, "Simple chaotic circuit using cmos ring oscillators," Internalional Journal of Bijllrcalion and Chaos, vol. 14, no. 07, pp. 2513-2524, 2004

[6] E. I. Vatajelu and G. Di Natale, "High-Entropy STT-MTJ-Based TRNG," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 27, no. 2, pp. 491-495, Feb. 2019, doi: 10.1109/TVLSI.2018.2879439.

[7] A. Amirany, K. Jafari and M. H. Moaiyeri, "True Random Number Generator for Reliable Hardware Security Modules Based on a Neuromorphic Variation-Tolerant Spintronic Structure," in IEEE Transactions on Nanotechnology, vol. 19, pp. 784-791, 2020, doi: 10.1109/TNANO.2020.3034818.

[8] I. Alibeigi, A. Amirany, R. Rajaei, M. Tabandeh, and S. B. Shouraki, "A Low-Cost Highly Reliable Spintronic True Random Number Generator Circuit for Secure Cryptography," Spin, vol. 10, no. 01, 2019, doi: 10.1142/s2010324720500034.

[9] N. Fujieda, M. Takeda and S. Ichikawa, "An Analysis of DCM-Based True Random Number Generator," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 67, no. 6, pp. 1109-1113, June 2020, doi: 10.1109/TCSII.2019.2926555.

[10] N. Nalla Anandakumar, S. K. Sanadhya and M. S. Hashmi, "FPGA-Based True Random Number Generation Using Programmable Delays in Oscillator-Rings," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 67, no. 3, pp. 570-574, March 2020, doi: 10.1109/TCSII.2019.2919891.

[11] A. Hajimiri, S. Limotyrakis and T. H. Lee, "Jitter and phase noise in ring oscillators," in IEEE Journal of Solid-State Circuits, vol. 34, no. 6, pp. 790-804, June 1999, doi: 10.1109/4.766813.

[12] K. Wold and S. Petrović, "Security properties of oscillator rings in true random number generators," 2012 IEEE 15th International Symposium on Design and Diagnostics of Electronic Circuits & Systems (DDECS), 2012, pp. 145-150, doi: 10.1109/DDECS.2012.6219041.

[13] Sivaraman R, Rajagopalan, S. & Amirtharajan, “FPGA based generic RO TRNG architecture for image confusion,” Multimed Tools Appl, vol 79, pp 13841–13868, Feb 2020, doi: 10.1007/s11042-019-08592-z.

[14] H. Martin, P. Peris-Lopez, J. E. Tapiador and E. San Millan, "A New TRNG Based on Coherent Sampling With Self-Timed Rings," in IEEE Transactions on Industrial Informatics, vol. 12, no. 1, pp. 91-100, Feb. 2016, doi: 10.1109/TII.2015.2502183.

[15] K. Wold and C. H. Tan, "Analysis and Enhancement of Random Number Generator in FPGA Based on Oscillator Rings," 2008 International Conference on Reconfigurable Computing and FPGAs, 2008, pp. 385-390, doi: 10.1109/ReConFig.2008.17.

[16] Wang Y, Hui C, Liu C, Xu C. Theory and implementation of a very high throughput true random number generator in field programmable gate array. Rev Sci Instrum. 2016;87(4):044704. doi:10.1063/1.4945564.

[17] K. Demir and S. Ergun, "Random Number Generators Based on Irregular Sampling and Fibonacci–Galois Ring Oscillators," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 66, no. 10, pp. 1718-1722, Oct. 2019, doi: 10.1109/TCSII.2019.2933280.

[18] J. Lin, Y. Wang, Z. Zhao, C. Hui and Z. Song, "A New Method of True Random Number Generation based on Galois Ring Oscillator with Event Sampling Architecture in FPGA," 2020 IEEE International Instrumentation and Measurement Technology Conference (I2MTC), 2020, pp. 1-6, doi: 10.1109/I2MTC43012.2020.9129357.

[19] S. Larimian, M. R. Mahmoodi and D. B. Strukov, "Lightweight Integrated Design of PUF and TRNG Security Primitives Based on eFlash Memory in 55-nm CMOS," in IEEE Transactions on Electron Devices, vol. 67, no. 4, pp. 1586-1592, April 2020, doi: 10.1109/TED.2020.2976632.

相關文章