一種高速并行真隨機(jī)數(shù)發(fā)生器的制造方法
【專利摘要】本發(fā)明公開了一種高速并行真隨機(jī)數(shù)發(fā)生器,包括隨機(jī)源、采集器和數(shù)據(jù)處理部分;其特征在于:所述隨機(jī)源使用FPGA內(nèi)部產(chǎn)生的震蕩環(huán)抖動(dòng),所述采集器采集抖動(dòng)隨機(jī)信號(hào);所述數(shù)據(jù)處理部分對(duì)采集后的隨機(jī)信號(hào)處理,生成高速、并行的真隨機(jī)數(shù);該方法基于FPGA系統(tǒng),利用FPGA內(nèi)部震蕩環(huán)采集系統(tǒng)時(shí)鐘抖動(dòng)作為原始隨機(jī)數(shù)信號(hào),經(jīng)過校正、并行處理得到隨機(jī)性良好的高速并行隨機(jī)數(shù),具有良好的隨機(jī)性和可靠性。
【專利說明】
一種高速并行真隨機(jī)數(shù)發(fā)生器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種真隨機(jī)產(chǎn)生器以及發(fā)生方法,特別涉及一種高速并行真隨機(jī)數(shù)發(fā)生器以及產(chǎn)生方法。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的日新月異,隨機(jī)數(shù)發(fā)生器(RNG)在許多方面有著廣泛的應(yīng)用,如通信安全、娛樂、音樂、圖像多媒體、模擬和測(cè)試、數(shù)學(xué)、電子商務(wù)電子政務(wù)等等。本項(xiàng)目正是應(yīng)用于圖像處理的隨機(jī)數(shù)發(fā)生器的一種實(shí)現(xiàn)。由于硬件真隨機(jī)數(shù)發(fā)生器(TRNG)在隨機(jī)性上有著軟件偽隨機(jī)數(shù)發(fā)生器(PRNG)不可逾越的優(yōu)勢(shì)。本設(shè)計(jì)基于FPGA生成高速并行隨機(jī)數(shù),速度穩(wěn)定,符合隨機(jī)數(shù)要求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是利用的FPGA固有特性,設(shè)計(jì)一種硬件實(shí)現(xiàn)簡(jiǎn)單,隨機(jī)性好的高隨并行隨機(jī)數(shù)發(fā)生設(shè)備。
[0004]本發(fā)明解決技術(shù)問題采用如下技術(shù)方案:
一種用于高速并行真隨機(jī)數(shù)發(fā)生器系統(tǒng),包括隨機(jī)源、數(shù)據(jù)采集器、數(shù)據(jù)處理器;其特征在于:所述隨機(jī)源基于FPGA時(shí)鐘源提供原始隨機(jī)信號(hào),所述的數(shù)據(jù)采集器是由多個(gè)震蕩環(huán)以及異或門組成,所述多個(gè)震蕩環(huán)分別采集原始隨機(jī)信號(hào),經(jīng)過異或門處理后,得到隨機(jī)性更好的連續(xù)的串行隨機(jī)信號(hào),連續(xù)的串行隨機(jī)信號(hào)經(jīng)過數(shù)據(jù)處理器的校正、串并轉(zhuǎn)換后得到并行隨機(jī)數(shù)信號(hào),作為隨機(jī)數(shù)種子;
所述隨機(jī)源基于FPGA時(shí)鐘源提供原始隨機(jī)信號(hào),所述的FPGA時(shí)鐘源包括高速時(shí)鐘源CLK0、低速時(shí)鐘源CLKl;所述的數(shù)據(jù)采集器2是由3個(gè)震蕩環(huán)以及異或門組成,所述的每個(gè)震蕩環(huán)包括與門、緩沖鏈、反相器以及D觸發(fā)器,高速時(shí)鐘源CLKO接入與門的輸入端,與門的輸出端接入緩沖鏈,緩沖鏈的輸出端接入反相器,反相器的輸出端輸出反饋分別與門輸入端和D觸發(fā)器輸入端;同時(shí),低速時(shí)鐘源CLKl作為D觸發(fā)器的時(shí)鐘信號(hào),采集反相器的輸出結(jié)果,得到原始隨機(jī)信號(hào);
所述的緩沖鏈包括三個(gè)首尾依次相連的緩沖器,分別為緩沖器O、緩沖器1、緩沖器2。
[0005]所述數(shù)據(jù)處理部分包括馮.諾依曼校正器、FIF0、LSFR,所述的馮.諾依曼校正器前端連接異或門,所述異或門對(duì)所述多路隨機(jī)信號(hào)進(jìn)行異或處理,生成一位二進(jìn)制數(shù)據(jù);二進(jìn)制數(shù)據(jù)經(jīng)過馮.諾依曼校正器處理,形成隨機(jī)性良好的隨機(jī)位串;所述隨機(jī)位串輸入至FIFO中進(jìn)行串并轉(zhuǎn)化后FIFO輸出速度穩(wěn)定、高速、并行的隨機(jī)數(shù)序列,所述隨機(jī)數(shù)序列作為隨機(jī)數(shù)種子輸入所述LFSR中,用于后續(xù)處理。
[0006]本發(fā)明高速并行真隨機(jī)數(shù)發(fā)生器產(chǎn)生高速并行真隨機(jī)數(shù)的方法包括以下的步驟:
(1)所述高速時(shí)鐘源CLKO作為所述隨機(jī)源輸入信號(hào)至所述震蕩環(huán)中;
(2)所述震蕩環(huán)輸出隨機(jī)信號(hào),經(jīng)過異或門處理后,生成O或I隨機(jī)數(shù),該隨機(jī)數(shù)輸入至所述馮.諾依曼校正器; (3)所述馮.諾依曼校正器對(duì)隨機(jī)數(shù)進(jìn)行校正,得到隨機(jī)性良好但速度不穩(wěn)需要進(jìn)行串轉(zhuǎn)并處理的位串;
(4)隨機(jī)性良好但速度不穩(wěn)需要進(jìn)行串轉(zhuǎn)并處理的位串輸入至FIFO中進(jìn)行串并轉(zhuǎn)換;
(5)所述FIFO的輸出并行隨機(jī)數(shù)作為隨機(jī)種子,利用LFSR算法處理后,供實(shí)際使用;
(6)所述LSFR對(duì)輸入的隨機(jī)種子進(jìn)行處理,如果沒有新的隨機(jī)數(shù)種子輸入,則所述LFSR用當(dāng)前的輸出反饋結(jié)果作為L(zhǎng)SFR的輸入,進(jìn)行下一次隨機(jī)數(shù)處理;如果有新的隨機(jī)數(shù)種子輸入,則處理新的隨機(jī)數(shù)種子生成隨機(jī)數(shù)序列;不斷的改變LSFR的輸入隨機(jī)種子,得到隨機(jī)性良好的高速、并行真隨機(jī)數(shù)序列。
[0007]本發(fā)明對(duì)照現(xiàn)有技術(shù)的有益效果是:
1、硬件實(shí)現(xiàn)簡(jiǎn)單
利用FPGA時(shí)鐘產(chǎn)生隨機(jī)源,對(duì)隨機(jī)源采樣產(chǎn)生多組隨機(jī)數(shù),對(duì)隨機(jī)數(shù)進(jìn)行異或、校正等處理,產(chǎn)生高速穩(wěn)定并行的隨機(jī)數(shù);
2、隨機(jī)質(zhì)量好
本方案,采集多路隨機(jī)信號(hào),對(duì)多路隨機(jī)信號(hào)進(jìn)行異或處理,利用馮.諾依曼校正器進(jìn)行校正,確保產(chǎn)生的隨機(jī)數(shù)與同類方案相比具有更好的隨機(jī)特性。
[0008]3、并行,穩(wěn)定
利用FIFO的固有特點(diǎn),可以同時(shí)實(shí)現(xiàn)對(duì)串行數(shù)據(jù)的并行化處理以及穩(wěn)定輸出。
[0009]4、高速
不斷的改變LSFR的輸入種子,可以得到隨機(jī)性良好的高速、并行真隨機(jī)數(shù)序列。
【附圖說明】
[0010]圖1為本發(fā)明的系統(tǒng)整體框圖;
圖2為本發(fā)明的系統(tǒng)邏輯結(jié)構(gòu)圖;
圖3為本發(fā)明的數(shù)據(jù)采集示意圖;
圖4為本發(fā)明的震蕩環(huán)示意圖;
圖5為本發(fā)明的數(shù)據(jù)處理示意圖。
【具體實(shí)施方式】
[0011]如圖1-2所示,一種用于高速并行真隨機(jī)數(shù)發(fā)生器系統(tǒng),包括隨機(jī)源、數(shù)據(jù)采集器、數(shù)據(jù)處理器;其特征在于:所述隨機(jī)源基于FPGA時(shí)鐘源提供原始隨機(jī)信號(hào),所述的數(shù)據(jù)采集器是由多個(gè)震蕩環(huán)以及異或門組成,所述多個(gè)震蕩環(huán)分別采集原始隨機(jī)信號(hào),經(jīng)過異或門處理后,得到隨機(jī)性更好的連續(xù)的串行隨機(jī)信號(hào),連續(xù)的串行隨機(jī)信號(hào)經(jīng)過數(shù)據(jù)處理器3的校正、串并轉(zhuǎn)換后得到并行隨機(jī)數(shù)信號(hào),作為隨機(jī)數(shù)種子;
如圖3-5所示,所述隨機(jī)源基于FPGA時(shí)鐘源提供原始隨機(jī)信號(hào),所述的FPGA時(shí)鐘源包括高速時(shí)鐘源CLK0、低速時(shí)鐘源CLKl;所述的數(shù)據(jù)采集器是由3個(gè)震蕩環(huán)以及異或門組成,所述的每個(gè)震蕩環(huán)包括與門、緩沖鏈、反相器以及D觸發(fā)器,高速時(shí)鐘源CLKO接入與門的輸入端,與門的輸出端接入緩沖鏈,緩沖鏈的輸出端接入反相器,反相器的輸出端輸出反饋分別與門輸入端和D觸發(fā)器輸入端;同時(shí),低速時(shí)鐘源CLKl作為D觸發(fā)器的時(shí)鐘信號(hào),采集反相器的輸出結(jié)果,得到原始隨機(jī)信號(hào); 所述的緩沖鏈包括三個(gè)首尾依次相連的緩沖器,分別為緩沖器O、緩沖器1、緩沖器2。
[0012]如圖5所示,所述數(shù)據(jù)處理器包括馮.諾依曼校正器、FIF0、LSFR,所述馮.諾依曼校正器前端連接異或門,所述異或門對(duì)所述多路隨機(jī)信號(hào)進(jìn)行異或處理,生成一位二進(jìn)制數(shù)據(jù);二進(jìn)制數(shù)據(jù)經(jīng)過馮.諾依曼校正器處理,形成隨機(jī)性良好的隨機(jī)位串;所述隨機(jī)位串輸入至FIFO中進(jìn)行串并轉(zhuǎn)化后,F(xiàn)IFO輸出速度穩(wěn)定、高速、并行的隨機(jī)數(shù)序列,所述隨機(jī)數(shù)序列作為隨機(jī)數(shù)種子輸入所述LFSR中,用于后續(xù)處理。
[0013]所述馮.諾依曼校正器對(duì)二進(jìn)制數(shù)據(jù)校正時(shí)輸入與輸出的組合如下:
(1)輸入組合為“01”,輸出為O;
(2)輸入組合為“10”,輸出為I;
(3)輸入組合為“00”,無輸出;
(4)輸入組合為“11”,無輸出;
經(jīng)過所述馮.諾依曼校正器處理后,得到隨機(jī)性更強(qiáng)的串行非勻速輸出隨機(jī)位串,將隨機(jī)位串輸入至FIFO中,得到穩(wěn)定的32位并行隨機(jī)數(shù)種子。
[0014]所述FIFO處理隨機(jī)位串的過程如下:
(1)隨機(jī)位串輸入到FIFO中,并緩存在所述FIFO的RAM中;
(2)所述FIFO對(duì)外界有兩個(gè)輸入狀態(tài),EMPTY和FULL,當(dāng)FIFO內(nèi)部的RAM為空時(shí),對(duì)外輸出為uEMPTY=I,F(xiàn)ULL=0”,當(dāng)FIFO內(nèi)部數(shù)據(jù)滿后,對(duì)外輸出為uEMPTY=O,F(xiàn)ULL=1” ;
(3)所述FIFO不斷接收連續(xù)的隨機(jī)位串,輸出穩(wěn)定的32位并行隨機(jī)數(shù);
經(jīng)過FIFO輸出的并行隨機(jī)數(shù)可以作為系統(tǒng)的隨機(jī)數(shù)種子,輸入到所述LSFR進(jìn)行隨機(jī)處理,進(jìn)一步增強(qiáng)隨機(jī)性;所述LSFR度隨機(jī)數(shù)種子進(jìn)行隨機(jī)處理的處理過程如下:
(1)所述LSFR用軟件實(shí)現(xiàn),對(duì)于一個(gè)隨機(jī)數(shù)種子,可以得到多組隨機(jī)數(shù)輸入序列;
(2)所述LSFR模塊工作在高速狀態(tài),不停的向系統(tǒng)輸入隨機(jī)數(shù)組合;
(3)所述FIFO不停的向所述LSFR輸入原始隨機(jī)數(shù)種子;
(4)由于所述FIFO處理隨機(jī)位串需要一定的時(shí)間,因而其輸出速度低于所述LFSR的輸出速度;
(5)所述LSFR對(duì)輸入的并行隨機(jī)數(shù)進(jìn)行處理,如果沒有新的隨機(jī)數(shù)種子輸入,則所述LFSR用當(dāng)前的輸出反饋結(jié)果作為L(zhǎng)SFR的輸入,進(jìn)行下一次隨機(jī)數(shù)處理;如果有新的隨機(jī)數(shù)種子輸入,則處理新的隨機(jī)數(shù)種子生成隨機(jī)數(shù)序列;
(6)不斷的改變LSFR的輸入種子,得到隨機(jī)性良好的高速、并行真隨機(jī)數(shù)序列。
【主權(quán)項(xiàng)】
1.一種高速并行真隨機(jī)數(shù)發(fā)生器,包括隨機(jī)源、數(shù)據(jù)采集器、數(shù)據(jù)處理器;其特征在于:所述隨機(jī)源基于FPGA時(shí)鐘源提供原始隨機(jī)信號(hào),所述的數(shù)據(jù)采集器是由多個(gè)震蕩環(huán)以及異或門組成,所述多個(gè)震蕩環(huán)分別采集原始隨機(jī)信號(hào),經(jīng)過異或門處理后,得到隨機(jī)性更好的連續(xù)的串行隨機(jī)信號(hào),連續(xù)的串行隨機(jī)信號(hào)經(jīng)過數(shù)據(jù)處理器的校正、串并轉(zhuǎn)換后得到并行隨機(jī)數(shù)信號(hào),作為隨機(jī)數(shù)種子; 所述隨機(jī)源基于FPGA時(shí)鐘源提供原始隨機(jī)信號(hào),所述的FPGA時(shí)鐘源包括高速時(shí)鐘源CLKO、低速時(shí)鐘源CLKl; 所述的數(shù)據(jù)采集器是由3個(gè)震蕩環(huán)以及異或門組成,所述的每個(gè)震蕩環(huán)包括與門、緩沖鏈、反相器以及D觸發(fā)器,高速時(shí)鐘源CLKO接入與門的輸入端,與門的輸出端接入緩沖鏈,緩沖鏈的輸出端接入反相器,反相器的輸出端輸出反饋分別與門輸入端和D觸發(fā)器輸入端;同時(shí),低速時(shí)鐘源CLKl作為D觸發(fā)器的時(shí)鐘信號(hào),采集反相器的輸出結(jié)果,得到原始隨機(jī)信號(hào); 所述數(shù)據(jù)處理部分包括馮.諾依曼校正器、FIFO、LSFR,所述的馮.諾依曼校正器前端連接異或門,所述異或門對(duì)所述多路隨機(jī)信號(hào)進(jìn)行異或處理,生成一位二進(jìn)制數(shù)據(jù);二進(jìn)制數(shù)據(jù)經(jīng)過馮.諾依曼校正器處理,形成隨機(jī)性良好的隨機(jī)位串;所述隨機(jī)位串輸入至FIFO中進(jìn)行串并轉(zhuǎn)化后FIFO輸出速度穩(wěn)定、高速、并行的隨機(jī)數(shù)序列,所述隨機(jī)數(shù)序列作為隨機(jī)數(shù)種子輸入所述LFSR中,用于后續(xù)處理。2.根據(jù)權(quán)利要求1的高速并行真隨機(jī)數(shù)發(fā)生器,其特征在于,產(chǎn)生高速并行真隨機(jī)數(shù)的方法包括以下的步驟: (1)所述高速時(shí)鐘源CLKO作為所述隨機(jī)源輸入信號(hào)至所述震蕩環(huán)中; (2)所述震蕩環(huán)輸出隨機(jī)信號(hào),經(jīng)過異或門處理后,生成O或I隨機(jī)數(shù),該隨機(jī)數(shù)輸入至所述馮.諾依曼校正器; (3)所述馮.諾依曼校正器對(duì)隨機(jī)數(shù)進(jìn)行校正,得到隨機(jī)性良好但速度不穩(wěn)需要進(jìn)行串轉(zhuǎn)并處理的位串; (4)隨機(jī)性良好但速度不穩(wěn)需要進(jìn)行串轉(zhuǎn)并處理的位串輸入至FIFO中進(jìn)行串并轉(zhuǎn)換; (5)所述FIFO的輸出并行隨機(jī)數(shù)作為隨機(jī)種子,利用LFSR算法處理后,供實(shí)際使用; (6)所述LSFR對(duì)輸入的隨機(jī)種子進(jìn)行處理,如果沒有新的隨機(jī)數(shù)種子輸入,則所述LFSR用當(dāng)前的輸出反饋結(jié)果作為L(zhǎng)SFR的輸入,進(jìn)行下一次隨機(jī)數(shù)處理;如果有新的隨機(jī)數(shù)種子輸入,則處理新的隨機(jī)數(shù)種子生成隨機(jī)數(shù)序列;不斷的改變LSFR的輸入隨機(jī)種子,得到隨機(jī)性良好的高速、并行真隨機(jī)數(shù)序列。3.根據(jù)權(quán)利要求1-2任一項(xiàng)所述的高速并行真隨機(jī)數(shù)發(fā)生器,其特征在于:所述的緩沖鏈包括三個(gè)首尾依次相連的緩沖器,分別為緩沖器0、緩沖器1、緩沖器2。4.根據(jù)權(quán)利要求1-2任一項(xiàng)所述的一種高速并行真隨機(jī)數(shù)發(fā)生器,其特征在于:所述的并行真隨機(jī)數(shù)序列寬度為32bit。
【文檔編號(hào)】G06F7/58GK105867878SQ201610268917
【公開日】2016年8月17日
【申請(qǐng)日】2016年4月26日
【發(fā)明人】史久根, 邾偉, 賈坤滎, 徐穎, 許輝亮, 陸立鵬
【申請(qǐng)人】合肥工業(yè)大學(xué)