專利名稱:一種真隨機(jī)數(shù)生成方法及發(fā)生器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及加密技術(shù)領(lǐng)域,尤其涉及一種真隨機(jī)數(shù)生成方法及發(fā)生器。
背景技術(shù):
在密碼學(xué)的各種應(yīng)用的中,隨機(jī)數(shù)更是必不可少的。隨機(jī)數(shù)最重要的特性是它在產(chǎn)生時,后一個產(chǎn)生的數(shù)與前一個產(chǎn)生的數(shù)毫無關(guān)系。通常采用一個固定的、可以重復(fù)的計算方法產(chǎn)生隨機(jī)數(shù),這種人為得到的隨機(jī)數(shù)被稱為偽隨機(jī)數(shù)。但是在一些加密系統(tǒng)的應(yīng)用中,已經(jīng)證明有很多途徑可以攻擊用偽隨機(jī)數(shù)加密的系統(tǒng),所以必須使用真隨機(jī)數(shù),才能保證系統(tǒng)的安全?,F(xiàn)有技術(shù)中通常利用電子元件噪聲引起的數(shù)字邏輯中的隨機(jī)晃動來產(chǎn)生真隨機(jī)數(shù),其中應(yīng)用最為廣泛的是振蕩器采樣法,通常使用獨(dú)立工作的高頻振蕩器進(jìn)行異或采樣, 但是必須要上百組的振蕩器進(jìn)行異或才能得到隨機(jī)性較好的隨機(jī)數(shù),占用較大的資源。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種真隨機(jī)數(shù)生成方法及發(fā)生器,其具體方案如下所述一種真隨機(jī)數(shù)生成方法,包括利用多個獨(dú)立的高頻振蕩環(huán)產(chǎn)生多路輸出信號;從所述多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。優(yōu)選的,還包括利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣。優(yōu)選的,還包括對所述真隨機(jī)數(shù)組進(jìn)行糾偏后處理。優(yōu)選的,采用循環(huán)編碼的基于異或的后處理方法對所述固定頻率采樣后的真隨機(jī)數(shù)組進(jìn)行糾偏后處理。一種真隨機(jī)數(shù)發(fā)生器,包括高頻振蕩環(huán)組、第一采樣器和異或模塊,其中所述高頻振蕩組內(nèi)包含多個環(huán)獨(dú)立工作的高頻振蕩環(huán),用于產(chǎn)生多路輸出信號;所述第一采樣器用于,利用所述從多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;所述異或模塊用于,將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。優(yōu)選的,還包括第二采樣器,用于利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣。優(yōu)選的,還包括糾偏后處理模塊,用于對所述固定頻率時鐘采樣后的真隨機(jī)數(shù)組進(jìn)行糾偏后處理。優(yōu)選的,所述振蕩環(huán)由依次串接的奇數(shù)個反相器和一個與門構(gòu)成。優(yōu)選的,所述第一采樣器包括與所述被采樣的其他路輸出信號數(shù)量相同的子采樣器,分別針對每一路輸出信號進(jìn)行采樣。優(yōu)選的,所述子采樣器包括計數(shù)器和兩個D觸發(fā)器,所述采樣時鐘與所述計數(shù)器和第一 D觸發(fā)器的時鐘信號端相連,被采樣輸出信號與所述第一 D觸發(fā)器的輸入端相連,所述第一 D觸發(fā)器的輸出與第二 D觸發(fā)器的時鐘信號端相連,所述計數(shù)器的輸出與所述第二 D觸發(fā)器的輸入端相連。本發(fā)明實(shí)施例公開的真隨機(jī)數(shù)生成方法,采用多個獨(dú)立工作的高頻振蕩環(huán)產(chǎn)生多路輸出信號,選擇其中輸出信號作為采樣時鐘信號,對其他的輸出信號進(jìn)行采樣的方式獲得真隨機(jī)數(shù),增加了隨機(jī)數(shù)的隨機(jī)性,不需要利用現(xiàn)有技術(shù)中的上百組振蕩器,簡化了系統(tǒng)結(jié)構(gòu)和復(fù)雜度,并且易于實(shí)現(xiàn)。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例1公開的真隨機(jī)數(shù)生成方法流程圖;圖2為本發(fā)明實(shí)施例2公開的真隨機(jī)數(shù)生成方法流程圖;圖3為本發(fā)明實(shí)施例3公開的真隨機(jī)數(shù)生成方法流程圖;圖4為本發(fā)明公開的真隨機(jī)數(shù)發(fā)生器結(jié)構(gòu)示意圖;圖5為本發(fā)明公開的振蕩環(huán)結(jié)構(gòu)示意圖;圖6為本發(fā)明公開的振蕩環(huán)與子采樣器的連接結(jié)構(gòu)示意圖;圖7為本發(fā)明公開的子采樣器的結(jié)構(gòu)示意圖;圖8為采樣過程中波形示意圖;圖9為糾偏后處理模塊結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明公開了一種真隨機(jī)數(shù)的生成方法,采用多個獨(dú)立工作的高頻振蕩環(huán)產(chǎn)生多路輸出信號,選擇其中輸出信號作為采樣時鐘信號,對其他的輸出信號進(jìn)行采樣的方式獲得真隨機(jī)數(shù),增加了隨機(jī)數(shù)的隨機(jī)性,同時簡化了系統(tǒng)的結(jié)構(gòu)。該方法可以基于FPGA (Field-Programmable Gate Array,現(xiàn)場可編程門陣列)實(shí)現(xiàn),也可以使用單立電子元器件來實(shí)現(xiàn)。只是采用在FPGA中實(shí)現(xiàn)的方式會更方便的實(shí)現(xiàn), 并且易于擴(kuò)展。其具體的實(shí)現(xiàn)方式如下所述實(shí)施例一本發(fā)明實(shí)施例1公開的真隨機(jī)數(shù)生成方法的流程如圖1所示,包括步驟S11、利用多個獨(dú)立的高頻振蕩環(huán)產(chǎn)生多路輸出信號;振蕩環(huán)本身的晃動是由于電子的熱噪聲引起的,具有隨機(jī)性。使用頻率接近的振蕩環(huán)可以很容易地將這種隨機(jī)性采樣出來,因此本實(shí)施例中采用頻率非常接近的振蕩環(huán)產(chǎn)生多路輸出信號。同樣也可以選用其他頻率的振蕩環(huán)。步驟S12、從所述多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;從多路輸出信號中選擇一路或者多路信號作為采樣時鐘信號,分別對其他路輸出信號進(jìn)行采樣。步驟S13、將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。將采樣得到的結(jié)果進(jìn)行異或,得到一組真隨機(jī)數(shù),作為真隨機(jī)數(shù)組。本實(shí)施例公開的真隨機(jī)數(shù)生成方法,采用利用多路輸出信號中的一路或者多路采樣其他路輸出信號的方式,增加了輸出信號的隨機(jī)性,獲得了隨機(jī)性較好的真隨機(jī)數(shù)。本實(shí)施例中,可以根據(jù)實(shí)際情況設(shè)定采樣時鐘信號為一路或者多路,采樣時鐘越多,采樣次數(shù)越多,真隨機(jī)數(shù)的性能就越好,但是,其耗費(fèi)的時間也就越多。所以,可以根據(jù)實(shí)際情況設(shè)定采樣信號的路數(shù),采樣的次數(shù),已達(dá)到最佳效果。實(shí)施例二本實(shí)施例公開的真隨機(jī)數(shù)生成方法的流程如圖2所示,包括步驟S21、利用多個獨(dú)立的頻率非常接近的高頻振蕩環(huán)產(chǎn)生多路輸出信號;步驟S22、從所述多路輸出信號中選擇一或多路作為采樣時鐘,分別采樣其他路輸出信號;步驟S23、將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組;步驟S24、利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣。本實(shí)施例中加入了對真隨機(jī)數(shù)組進(jìn)行固定頻率時鐘采樣的過程,通過該過程可以實(shí)現(xiàn)從真隨機(jī)數(shù)中按照一定的頻率選擇出真隨機(jī)數(shù)用于后續(xù)處理。實(shí)施例三本實(shí)施例公開的真隨機(jī)數(shù)生成方法的流程如圖3所示,包括步驟S31、利用多個獨(dú)立的頻率非常接近的高頻振蕩環(huán)產(chǎn)生多路輸出信號;步驟S32、從所述多路輸出信號中選擇一或多路作為采樣時鐘,分別采樣其他路輸出信號;步驟S33、將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組;步驟S34、利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣;步驟S35、采用循環(huán)編碼的基于異或的后處理方法對所述固定頻率采樣后的真隨機(jī)數(shù)組進(jìn)行糾偏后處理。由于經(jīng)過固定頻率采樣后產(chǎn)生的隨機(jī)數(shù)往往具有偏置的特性,所以本實(shí)施例公開的真隨機(jī)數(shù)產(chǎn)生方法中,增加了對采樣后的真隨機(jī)數(shù)進(jìn)行糾偏后處理的步驟,對原始隨機(jī)數(shù)序列進(jìn)行糾偏后處理。本實(shí)施例中并不限定采用循環(huán)編碼的基于異或的后處理方法對數(shù)據(jù)進(jìn)行糾偏后處理,同樣也可以采用基于異或的糾偏處理方法,或者其他的糾偏處理方法, 只是相對于基于異或的處理方法,本實(shí)施例中使用的采用循環(huán)編碼的基于異或的后處理方法具有更好的糾偏效果和更高的處理速率。同時,本發(fā)明公開了一種真隨機(jī)數(shù)發(fā)生器,其結(jié)構(gòu)如圖4所示,包括高頻振蕩環(huán)組41、第一采樣器42和異或模塊43,其中所述高頻振蕩環(huán)組41內(nèi)包含多個頻率非常接近的高頻振蕩環(huán),每個振蕩環(huán)獨(dú)立工作,產(chǎn)生多路輸出信號;所述第一采樣器42用于,利用所述從多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;所述異或模塊43用于,將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。此外,還包括第二采樣器44,用于利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣;糾偏后處理模塊45,用于對所述固定頻率時鐘采樣后的真隨機(jī)數(shù)組進(jìn)行糾偏后處理。 其中,糾偏后處理模塊45可以為采用循環(huán)編碼的基于異或的后處理方法對數(shù)據(jù)進(jìn)行糾偏后處理的處理器,也可以為采用基于異或的處理方法對數(shù)據(jù)進(jìn)行糾偏后處理的處理器。上述各個模塊的工作過程如上述實(shí)施例所述,在此不再贅述。本發(fā)明公開的真隨機(jī)數(shù)發(fā)生器的實(shí)現(xiàn)方式有多種,下面就其以FPGA為基礎(chǔ)實(shí)現(xiàn)的方式進(jìn)行詳細(xì)說明。真隨機(jī)數(shù)中振蕩環(huán)利用FPGA中具有一定的延時功能的反相器來完成,這些反相器的延時很接近,但是又不完全相同,所以在FPGA中要完成頻率接近的振蕩環(huán),只需要把相同的振蕩環(huán)在不同的位置實(shí)現(xiàn)即可,具體的振蕩環(huán)的結(jié)構(gòu)如圖5所示,包括依次串接的奇數(shù)個反相器51、一個與門52和使能端53。使能端53和與門52的一個輸入端相連,與門 52的輸出端與第一個反相器的輸入端相連,最后一個反相器的輸出端作為輸出信號的端口,同時將信號返回給與門52的另一個輸入端。每個振蕩環(huán)的反相器個數(shù)相同,并進(jìn)行手動布線,使得相鄰的反相器在相鄰的位置上且不同振蕩環(huán)之間的頻率差異細(xì)微,在系統(tǒng)使能端53給出使能信號之后,振蕩環(huán)開始工作。由于振蕩環(huán)是利用數(shù)字電路中時鐘信號存在的抖動現(xiàn)象來產(chǎn)生隨機(jī)信號,而時鐘的抖動是由于電子的熱噪聲引起的,因此其產(chǎn)生的隨機(jī)數(shù)為真隨機(jī)數(shù)。振蕩環(huán)的個數(shù)和長度可以根據(jù)實(shí)際情況來設(shè)定,可以選用11個反相器連接成一個振蕩環(huán),選用四個振蕩環(huán)產(chǎn)生輸出信號。當(dāng)然也可以為其他組合,只是振蕩環(huán)長度為11,個數(shù)為的4的情況下,其得到的隨機(jī)數(shù)的隨機(jī)性能較好。為了增強(qiáng)隨機(jī)性,第一采樣器采用一路振蕩環(huán)同時采樣多路振蕩環(huán)的方式,第一采樣器包括多個子采樣器,每一個子采樣器分別與其對應(yīng)的振蕩環(huán)相連,其結(jié)構(gòu)圖如圖6 所示,包括振蕩環(huán)組61和子采樣器組62,子采樣器的數(shù)量比振蕩環(huán)的個數(shù)少1,分別根據(jù)從所述第η個振蕩環(huán)的輸出信號分別對其他n-1路輸出信號進(jìn)行采樣。每一個子采樣器的結(jié)構(gòu)如圖7所示,包括第一 D觸發(fā)器71、第二 D觸發(fā)器72和計數(shù)器73。其中,第η路振蕩環(huán)的輸出信號作為采樣時鐘74與所述計數(shù)器73和第一 D觸發(fā)器71的時鐘信號端相連,與該子采樣器對應(yīng)的被采樣的振蕩環(huán)的輸出信號75與所述第一 D觸發(fā)器71的輸入端相連,所述第一 D觸發(fā)器71的輸出端與第二 D觸發(fā)器72的時鐘信號端C相連,所述計數(shù)器73的輸出端與所述第二 D觸發(fā)器72的輸入端D相連。其采樣過程中的波形圖如圖8所示。通過FPGA中的異或門,如圖6中異或門63所示,對采樣后得到的數(shù)據(jù)進(jìn)行異或處理,得到真隨機(jī)數(shù)組。第二采樣器的具體實(shí)現(xiàn)時,其時鐘信號為一固定頻率的信號,根據(jù)此信號,從真隨機(jī)數(shù)組中選取真隨機(jī)數(shù)。糾偏后處理模塊可以利用多個移位寄存器實(shí)現(xiàn),其結(jié)構(gòu)如圖9所示,圖中從第二移位寄存器開始,前一個的輸出端與下一個的輸入依次相連,采樣時鐘分別與每一個移位寄存器的時鐘端相連,然后根據(jù)需要,分別引出不同位置移位寄存器的輸出進(jìn)行異或,得到不同的糾偏效果。通過糾偏處理后的數(shù)據(jù)位最終的真隨機(jī)數(shù)序列。本發(fā)明公開的真隨機(jī)數(shù)發(fā)生器,結(jié)構(gòu)簡單,只需要較少的振蕩環(huán)就可以產(chǎn)生隨機(jī)性高的真隨機(jī)數(shù),而且其產(chǎn)生速率也較高。本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1.一種真隨機(jī)數(shù)生成方法,其特征在于,包括利用多個獨(dú)立的高頻振蕩環(huán)產(chǎn)生多路輸出信號;從所述多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括對所述真隨機(jī)數(shù)組進(jìn)行糾偏后處理。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,采用循環(huán)編碼的基于異或的后處理方法對所述固定頻率采樣后的真隨機(jī)數(shù)組進(jìn)行糾偏后處理。
5.一種真隨機(jī)數(shù)發(fā)生器,其特征在于,包括高頻振蕩環(huán)組、第一采樣器和異或模塊, 其中所述高頻振蕩組內(nèi)包含多個環(huán)獨(dú)立工作的高頻振蕩環(huán),用于產(chǎn)生多路輸出信號;所述第一采樣器用于,利用所述從多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;所述異或模塊用于,將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。
6.根據(jù)權(quán)利要求5所述的發(fā)生器,其特征在于,還包括第二采樣器,用于利用固定頻率時鐘對所述真隨機(jī)數(shù)組進(jìn)行采樣。
7.根據(jù)權(quán)利要求6所述的發(fā)生器,其特征在于,還包括糾偏后處理模塊,用于對所述固定頻率時鐘采樣后的真隨機(jī)數(shù)組進(jìn)行糾偏后處理。
8.根據(jù)權(quán)利要求5所述的發(fā)生器,其特征在于,所述振蕩環(huán)由依次串接的奇數(shù)個反相器和一個與門構(gòu)成。
9.根據(jù)權(quán)利要求5所述的發(fā)生器,其特征在于,所述第一采樣器包括與所述被采樣的其他路輸出信號數(shù)量相同的子采樣器,分別針對每一路輸出信號進(jìn)行采樣。
10.根據(jù)權(quán)利要求9所述的發(fā)生器,其特征在于,所述子采樣器包括計數(shù)器和兩個D 觸發(fā)器,所述采樣時鐘與所述計數(shù)器和第一 D觸發(fā)器的時鐘信號端相連,被采樣輸出信號與所述第一 D觸發(fā)器的輸入端相連,所述第一 D觸發(fā)器的輸出與第二 D觸發(fā)器的時鐘信號端相連,所述計數(shù)器的輸出與所述第二 D觸發(fā)器的輸入端相連。
全文摘要
本發(fā)明公開了一種真隨機(jī)數(shù)生成方法及發(fā)生器,包括利用多個獨(dú)立的高頻振蕩環(huán)產(chǎn)生多路輸出信號;從所述多路輸出信號中選擇采樣時鐘信號,分別采樣其他路輸出信號;將所述采樣結(jié)果進(jìn)行異或,得到真隨機(jī)數(shù)組。本發(fā)明實(shí)施例公開的真隨機(jī)數(shù)生成方法,采用多個獨(dú)立工作的高頻振蕩環(huán)產(chǎn)生多路輸出信號,選擇其中輸出信號作為采樣時鐘信號,對其他的輸出信號進(jìn)行采樣的方式獲得真隨機(jī)數(shù),增加了隨機(jī)數(shù)的隨機(jī)性,不需要利用現(xiàn)有技術(shù)中的上百組振蕩器,簡化了系統(tǒng)結(jié)構(gòu)和復(fù)雜度,并且易于實(shí)現(xiàn)。
文檔編號H04L9/22GK102375722SQ20101025354
公開日2012年3月14日 申請日期2010年8月9日 優(yōu)先權(quán)日2010年8月9日
發(fā)明者崔珂, 張鴻飛, 梁昊, 王堅(jiān), 金革, 高原 申請人:中國科學(xué)技術(shù)大學(xué)