新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 一種基于FPGA的真隨機數(shù)發(fā)生器設(shè)計與實現(xiàn)

一種基于FPGA的真隨機數(shù)發(fā)生器設(shè)計與實現(xiàn)

作者: 時間:2012-02-07 來源:網(wǎng)絡(luò) 收藏

摘要:設(shè)計并實現(xiàn)了一種基于的真,利用一對振蕩環(huán)路之間的相位漂移和抖動以及亞穩(wěn)態(tài)作為隨機源,使用線性反饋移位寄存器的輸出與原始序列運算作為后續(xù)處理。在Xilinx Virtex-5平臺的測試實驗中,探討了振蕩器數(shù)量以及采樣頻率等參數(shù)對隨機序列的統(tǒng)計特性的影響。測試結(jié)果表明本設(shè)計產(chǎn)生的隨機序列能夠通過DIEHARD測試,性能滿足要求。由于僅使用了普通邏輯單元,使得本設(shè)計能夠迅速移植到ASIC設(shè)計,大大縮短了開發(fā)周期。
關(guān)鍵詞:真;振蕩環(huán);相位漂移與抖動;亞穩(wěn)態(tài);

(TRNG)在統(tǒng)計學(xué)、信息安全等領(lǐng)域有著廣泛的應(yīng)用。在這些領(lǐng)域中,不僅要求數(shù)據(jù)序列分布均勻、彼此獨立,而且要求其具有不可預(yù)測性,能夠抵御針對隨機性的攻擊。B.Sunar,W.J.Martin和D.R.Stinson提出,真隨機數(shù)發(fā)生器的性能受3個因素的影響:熵源(Entropy Source),采集方式(Harvesting Mechanism)和后續(xù)處理(Post-Processing)。在電路系統(tǒng)中最常見的三種真隨機數(shù)產(chǎn)生方法為:1)直接放大法:放大電路中的電阻熱噪聲等物理噪聲,通過比較器進行比較后獲得隨機數(shù)序列;2)振蕩采樣法:用帶有抖動的慢振蕩器通過D觸發(fā)器采樣一個周期固定的快振蕩器,輸出隨機序列;3)離散時間混沌法:利用混沌電路不可預(yù)測以及對初始條件敏感的依賴性的特點產(chǎn)生隨機序列?;谀M電路的結(jié)構(gòu),熵源的統(tǒng)計分布更加理想,且熵源噪聲不隨采樣周期的變化而改變;基于數(shù)字電路的結(jié)構(gòu),集成度高,便于在等通用可編程平臺上實現(xiàn),但熵源的統(tǒng)計特性與模擬電路相比不夠理想。
本文嘗試了一種用純數(shù)字電路實現(xiàn)的TRNG結(jié)構(gòu),且不使用諸如PLL等特殊資源,便于設(shè)計由FPGA驗證移植到芯片設(shè)計。其核心思想是使用反相器和延時單元構(gòu)成兩個相互獨立的振蕩器,由于內(nèi)部噪聲的差異引起的相位偏移作為熵源,經(jīng)過一段時間振蕩后,隨機的狀態(tài)由數(shù)字雙穩(wěn)態(tài)電路鎖存。多組振蕩器的輸出,經(jīng)過異或和同步處理后得到隨機序列。該TRNG在FPGA物理平臺上實現(xiàn)并進行了測試驗證。

1 TRNG的設(shè)計
1.1 相位漂移與抖動
由于受到電路中噪聲的影響,數(shù)字電路中時鐘信號的周期在每個不同的周期上可能縮短或者加長,這就是時鐘抖動。抖動可以用許多方法來衡量和表征,它是一個均值為零的隨機變量。振蕩器起振時刻的差異和電路元件的工藝偏差,使得振蕩器間存在相位漂移。因此抖動信號和相位漂移適合在數(shù)字電路中作為TRNG的隨機源。
1.2 亞穩(wěn)態(tài)
鎖存器是有邏輯‘1’和‘0’兩個穩(wěn)定狀態(tài)的雙穩(wěn)態(tài)器件,但是在特殊情況下其可能進入亞穩(wěn)態(tài),此時它的輸出是介于‘1’和‘0’之間的中間電平。如圖1所示鎖存器用兩個反相器和兩個開關(guān)表征。當(dāng)鎖存器導(dǎo)通時,采樣開關(guān)閉合,保持開關(guān)打開(圖a);當(dāng)鎖存器關(guān)閉時,采樣開關(guān)打開,保持開關(guān)閉合(圖b)。圖c展示了兩個反相器的直流傳輸特性。當(dāng)鎖存器關(guān)閉時A=B,穩(wěn)態(tài)是A=B=0和A=B=VDD,亞穩(wěn)態(tài)為A=B= Vm,其中Vm不是一個合理的邏輯值。因為電平在該點是相互穩(wěn)定的并且可以無限期停留,所以稱該點為亞穩(wěn)態(tài)。但是,任何噪聲或者其他干擾都會使得A和B最終穩(wěn)定在兩個穩(wěn)態(tài)中的一個狀態(tài)。圖d非常形象地表征了亞穩(wěn)態(tài),它就好像處于山頂?shù)男∏蛉魏胃蓴_都會使小球滾落到山兩端的穩(wěn)定狀態(tài)。

本文引用地址:http://butianyuan.cn/article/190794.htm

a.jpg


1.3 振蕩器的設(shè)計
如圖2所示,二選一復(fù)用器既作為延遲單元又作為選通單元使用。當(dāng)選通信號為‘1’時,形成兩個相互獨立、自由振蕩的環(huán)形振蕩器。當(dāng)選通信號為‘0’時,兩組反相器交叉相連形成雙穩(wěn)態(tài)器件。自由振蕩時,兩個振蕩器之間存在著抖動和相位偏移。在振蕩的停止時刻,即振蕩環(huán)路斷開、兩組反相器交叉連接時,反相器的瞬時輸出電壓以及內(nèi)部噪聲的絕對和相對值決定了電路最終穩(wěn)定在哪個邏輯值上。有時即使反相器跨接在一起,電路也會振蕩很長一段時間才能穩(wěn)定下來,形成亞穩(wěn)態(tài)。綜上所述,隨機序列的來源用到了抖動和亞穩(wěn)態(tài)兩種機制。
波形如圖3所示,為了方便數(shù)據(jù)采集選通信號是由時鐘經(jīng)過分頻得到的。在自由振蕩階段,輸出信號快速變化不屬于任何穩(wěn)定狀態(tài),在圖中用斜線表示。在解析階段,電路是雙穩(wěn)態(tài)器件,此時應(yīng)該保持解析時間足夠長,從而使輸出電平在大多數(shù)情況下穩(wěn)定在邏輯‘1’或‘0’。

b.jpg

c.jpg


上一頁 1 2 3 下一頁

關(guān)鍵詞: FPGA 隨機數(shù)發(fā)生器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉