国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用FPGA產(chǎn)生真隨機(jī)噪聲技術(shù)分析

2016-06-29 20:00徐修峰
科技視界 2016年16期

徐修峰

【摘 要】在工程應(yīng)用中,經(jīng)常需要產(chǎn)生隨機(jī)數(shù),從而對實(shí)際的工程算法進(jìn)行仿真驗(yàn)證,并且最好是在項(xiàng)目調(diào)試現(xiàn)場進(jìn)行仿真輸入從而對系統(tǒng)的整體性能進(jìn)行測試,規(guī)避了常見的在計(jì)算機(jī)上驗(yàn)證正常,在實(shí)際系統(tǒng)中工作不正常的問題,并且由于在Matlab中常見的偽隨機(jī)數(shù)的算法均較為復(fù)雜,不利于實(shí)現(xiàn).本文采用了一種基于FPGA中非門邏輯單元來實(shí)現(xiàn)真隨機(jī)數(shù)的方式,利于嵌入到實(shí)際運(yùn)行的工程中,從而進(jìn)行現(xiàn)場驗(yàn)證.

【關(guān)鍵詞】真隨機(jī)數(shù);FPGA;非門環(huán)

0 引言

真隨機(jī)數(shù)在密碼學(xué)以及其它的學(xué)科中有著重要并廣泛的應(yīng)用,工程應(yīng)用中的隨機(jī)數(shù)常常用來產(chǎn)生實(shí)際環(huán)境中的本底噪聲附加到理想信號上用于仿真實(shí)際情況下的輸入信號.隨機(jī)數(shù)分為偽隨機(jī)數(shù)以及真隨機(jī)數(shù),通常在計(jì)算機(jī)系統(tǒng)中產(chǎn)生的隨機(jī)數(shù)都是偽隨機(jī)數(shù),所謂的偽隨機(jī)數(shù)通常是利用特定的函數(shù)來生成的,雖然在不同程度上逼近真隨機(jī)數(shù),但是它的致命的弱點(diǎn)是可追溯的.真隨機(jī)數(shù),顧名思義,即是真正的隨機(jī)數(shù),一般都是由物理過程產(chǎn)生的隨機(jī)數(shù),不能預(yù)先演算得到的,具有天然的不可破解的特性.

產(chǎn)生真隨機(jī)數(shù)的方式有很多,其中利用FPGA內(nèi)部時鐘抖動產(chǎn)生真隨機(jī)數(shù)的方式已經(jīng)廣泛被使用[1-2],利用FPGA產(chǎn)生真隨機(jī)數(shù)利用的是時鐘的抖動,時鐘抖動越大,真隨機(jī)性能越好.本文中給出了一種經(jīng)過實(shí)際驗(yàn)證的真隨機(jī)數(shù)的產(chǎn)生方式,利用該種方式產(chǎn)生的隨機(jī)數(shù)能夠通過NIST推出的專用軟件進(jìn)行性能測試,之后才能夠投入到實(shí)際的生產(chǎn)使用中.

1 FPGA中真隨機(jī)數(shù)產(chǎn)生

產(chǎn)生真隨機(jī)數(shù)的基礎(chǔ)是利用真實(shí)存在的熵源,F(xiàn)PGA中的真實(shí)熵源是時鐘JITTER,例如在D觸發(fā)器時鐘到達(dá)的時候,數(shù)據(jù)線處在跳變的過程中,導(dǎo)致不能滿足其常規(guī)工作時所需要的建立保持時間的要求,輸出的數(shù)據(jù)處于不穩(wěn)定的隨機(jī)狀態(tài),這是利用FPGA產(chǎn)生隨機(jī)數(shù)的基本原理.

在FPGA中產(chǎn)生真隨機(jī)數(shù)的方式是利用三個非門組成的非門環(huán),在將多個非門環(huán)進(jìn)行異或操作,最終再進(jìn)行時鐘采樣的方式,如圖1所示.非門環(huán)本身運(yùn)轉(zhuǎn)起來之后,線上的數(shù)字在高速的進(jìn)行跳變,在高電平以及低電平之間高速的切換,然后將其中一個非門的輸出接到D觸發(fā)器上,這樣D觸發(fā)器根據(jù)其工作時鐘定期到非門環(huán)上取一個數(shù)據(jù)進(jìn)行鎖存,這樣有一定概率出現(xiàn)取數(shù)時D觸發(fā)器的數(shù)據(jù)線正好在進(jìn)行跳變的過程中,這樣其輸出的數(shù)值就是真正意義上的隨機(jī)數(shù).但是,單個非門環(huán)的數(shù)據(jù)中真隨機(jī)數(shù)的概率有限,還不能做到真正意義上的真隨機(jī)數(shù),必須要利用多個非門環(huán)進(jìn)行聯(lián)合工作,然后再進(jìn)行全局的異或操作,只要有一個狀態(tài)為真隨機(jī)數(shù),則最終輸出為真隨機(jī)數(shù).

如圖1所示,該種方式產(chǎn)生的隨機(jī)數(shù)為真隨機(jī)數(shù),非門環(huán)本身運(yùn)轉(zhuǎn)的速度很高,高低跳變的周期小于1ns,并且各個非門環(huán)之間的狀態(tài)是完全獨(dú)立的,故在進(jìn)行異或操作時,如果非門環(huán)輸出為1的個數(shù)為偶數(shù)時,則輸出為0,個數(shù)為奇數(shù)時,輸出為1;在進(jìn)入D觸發(fā)器時,由于采樣時鐘為低速時鐘,在D觸發(fā)器采樣時鐘到來時,數(shù)據(jù)線上的輸入如果發(fā)生跳變,則會產(chǎn)生真隨機(jī)數(shù),我們通過增加非門環(huán)的個數(shù)來增加該真隨機(jī)數(shù)出現(xiàn)的概率.

在工程應(yīng)用中,可以控制不同的M,N,L值,從而獲得不同效果的真隨機(jī)數(shù),N值主要控制單路的非門環(huán)之后的非門的個數(shù),M值主要控制非門環(huán)的個數(shù),M個非門環(huán)最終通過1個異或門從而得到1路真隨機(jī)數(shù)輸出,該路輸出再經(jīng)過L個非門之后再送入到一路D觸發(fā)器中進(jìn)行時鐘采樣,從而得到最終的輸出.異或門是整個系統(tǒng)中的關(guān)鍵部位之一,它的作用是將所有的單路中的真隨機(jī)數(shù)的因素匯總起來,在這里合成到一路中,其基本原理是真隨機(jī)數(shù)和任何數(shù)據(jù)進(jìn)行異或的結(jié)果都是真隨機(jī)數(shù),這種結(jié)構(gòu)下要想得不是真隨機(jī)數(shù)的情況只有所有路的輸出都是非隨機(jī)數(shù),即每一路都能滿足建立保持時間的要求,這個要求隨著路數(shù)的增加,變得越來越難滿足,概率越來越小.通過增加非門環(huán)的數(shù)量從而減少輸出端非真隨機(jī)數(shù)的出現(xiàn)概率,最終得到真隨機(jī)數(shù).

2 真隨機(jī)數(shù)測試

3 結(jié)論

利用FPGA產(chǎn)生真隨機(jī)數(shù)能夠達(dá)到較高的速度,且利于系統(tǒng)集成,并且能夠進(jìn)行位擴(kuò)展,能夠同時生成多個真隨機(jī)數(shù)源,再通過并串轉(zhuǎn)換再產(chǎn)生更高速率的真隨機(jī)數(shù),并且集成度高,能夠在系統(tǒng)現(xiàn)場進(jìn)行仿真輸入,測試系統(tǒng)工作的穩(wěn)定性,可以應(yīng)用于工程實(shí)踐中.

【參考文獻(xiàn)】

[1]張聰,于忠臣.一種基于FPGA的真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,19(10):176-179.

[2]霍文捷,劉政林,陳毅成,等.一種基于FPGA的真隨機(jī)數(shù)生成器的設(shè)計(jì)[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2009,37(1):73-76.

[責(zé)任編輯:楊玉潔]