專利名稱:一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種真隨機(jī)數(shù)發(fā)生器,尤其涉及一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器。
背景技術(shù):
隨機(jī)數(shù)在密碼學(xué)中占有重要的地位,幾乎所有的密碼算法和協(xié)議都要用到一些對(duì)攻擊者來(lái)說(shuō)必須是秘密的數(shù)據(jù),比如對(duì)一個(gè)密碼算法來(lái)說(shuō),如果將秘密寓于密鑰之中,那么密鑰就是秘密,包括對(duì)稱密碼算法(DES、AES等)的密鑰和非對(duì)稱密碼算法(RSA、DSA等)的密鑰對(duì)等等,而這些密鑰必須是隨機(jī)數(shù)。對(duì)于唯一已經(jīng)證明了的完善保密系統(tǒng)一次一密系統(tǒng)來(lái)說(shuō),其安全性就依賴于密鑰,其密鑰必須是隨機(jī)數(shù)。隨著加解密技術(shù)的發(fā)展,對(duì)高質(zhì)量隨機(jī)數(shù)的要求也與日俱增。軟件方法實(shí)現(xiàn)的隨機(jī)數(shù)發(fā)生器是利用軟件算法產(chǎn)生隨機(jī)數(shù)序列。然而,這個(gè)序列決定于采用的算法和初始種子,且具有一定的周期性。由于存在這個(gè)特性,軟件實(shí)現(xiàn)的隨機(jī)數(shù)發(fā)生器通常被稱為偽隨機(jī)數(shù)發(fā)生器(Pseudo Random Number Generator, PRNG)。如果攻擊者擁有足夠的計(jì)算能力,則完全可以預(yù)測(cè)到偽隨機(jī)數(shù)的產(chǎn)生規(guī)律。對(duì)于許多使用偽隨機(jī)數(shù)的安全系統(tǒng)而言,偽隨機(jī)數(shù)注定成為它們性能提高的瓶頸。即使一個(gè)安全系統(tǒng)的其他部件都足夠安全,使用偽隨機(jī)數(shù)也會(huì)使整個(gè)系統(tǒng)變得很脆弱、易受到攻擊。而真隨機(jī)數(shù)序列是不可預(yù)測(cè)的,因而也不可能出現(xiàn)周期性重復(fù)的真隨機(jī)數(shù)序列。它只能由隨機(jī)的物理過(guò)程所產(chǎn)生,如電路的熱噪聲、宇宙噪聲、放射性衰變等。硬件方法實(shí)現(xiàn)真隨機(jī)數(shù)發(fā)生器(True Random Number Generator, TRNG)主要依賴于物理元件的隨機(jī)特征,例如弧光燈、原子核的射線衰變、電阻或者二極管的噪聲。真隨機(jī)數(shù)發(fā)生器不像偽隨機(jī)數(shù)發(fā)生器那樣需要設(shè)定初始種子,所產(chǎn)生的隨機(jī)數(shù)來(lái)源于真實(shí)的隨機(jī)物理過(guò)程,因而徹底地消除了偽隨機(jī)數(shù)的周期性問(wèn)題,只有真隨機(jī)數(shù)發(fā)生器才能提供真正的、永不重復(fù)的隨機(jī)數(shù)序列。在集成電路中,大多數(shù)真隨機(jī)數(shù)發(fā)生器設(shè)計(jì)方案通??梢詺w為三大類放大電路噪聲、混沌電路、振蕩采樣。目前,隨機(jī)數(shù)發(fā)生器設(shè)計(jì)中最流行的方法是振蕩器采樣法,其基本設(shè)計(jì)思想是利用兩個(gè)獨(dú)立工作的高、低頻振蕩器之間的相對(duì)關(guān)系來(lái)得到非確定噪聲源,用低頻振蕩器采樣高頻振蕩器,從而產(chǎn)生真隨機(jī)數(shù)序列。真隨機(jī)數(shù)發(fā)生器作為現(xiàn)代密碼芯片系統(tǒng)的核心組成部分之一,發(fā)揮著極其重要的作用,片上真隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)工作也越來(lái)越得到人們的重視?;谖锢黼S機(jī)源產(chǎn)生的真隨機(jī)數(shù)雖然在隨機(jī)序列的長(zhǎng)度、獨(dú)立性等方面相比偽隨機(jī)數(shù)發(fā)生器得到了突破性進(jìn)展,但是其產(chǎn)生的真隨機(jī)數(shù)序列的隨機(jī)性不夠穩(wěn)定,隨機(jī)數(shù)的質(zhì)量不高。一般而言,高質(zhì)量的真隨機(jī)數(shù)序列具有分布均勻、周期長(zhǎng)、序列無(wú)關(guān)等特性。檢驗(yàn)序列質(zhì)量有跟隨性、游程、均勻性、獨(dú)立性、相關(guān)性等一系列檢驗(yàn)指標(biāo)以及譜分析、ENT (—種隨機(jī)數(shù)性能檢測(cè)程序)等測(cè)試方法。物理隨機(jī)源雖然能夠提供真正意義上的真隨機(jī)數(shù)序列,但是并不代表其產(chǎn)生的真隨機(jī)數(shù)序列具有很高的質(zhì)量,也不一定能夠滿足上述測(cè)試的要求。若能將數(shù)學(xué)方法和物理方法結(jié)合起來(lái),則可能產(chǎn)生高質(zhì)量的真隨機(jī)數(shù)。從實(shí)現(xiàn)方法來(lái)說(shuō),有以軟件為主、以硬件為主以及軟硬結(jié)合等方法
發(fā)明內(nèi)容
針對(duì)上述現(xiàn)有技術(shù),本發(fā)明提供一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,通過(guò)對(duì)傳統(tǒng)的真隨機(jī)數(shù)發(fā)生器結(jié)構(gòu)進(jìn)行改進(jìn),增加數(shù)字后處理電路,提高了物理隨機(jī)源產(chǎn)生的隨機(jī)數(shù)序列的質(zhì)量,最終所輸出的隨機(jī)數(shù)序列具有均勻性好、獨(dú)立性高等特點(diǎn),提高了密碼芯片的信息存儲(chǔ)的安全性,在密碼芯片、信息安全等方面具有較高的實(shí)際應(yīng)用價(jià)值。本發(fā)明中,一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器實(shí)現(xiàn)的技術(shù)方案是包括真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器,其特征在于所述真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器之間連接有數(shù)字后處理電路,所述數(shù)字后處理電路由自所述真隨機(jī)數(shù)源連接至所述真隨機(jī)數(shù)輸出寄存器的曼徹斯特編碼器、線性反饋移位寄存器和DES加密單元構(gòu)成;所述真隨機(jī) 數(shù)輸出寄存器用來(lái)鎖存所述DES加密單元輸出的密文,最終真隨機(jī)數(shù)由所述真隨機(jī)數(shù)輸出寄存器輸出至芯片。進(jìn)一步講,本發(fā)明帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,其中,所述曼徹斯特編碼器由一個(gè)異或門、一個(gè)非門與一個(gè)觸發(fā)器組成,從而實(shí)現(xiàn)從NRZ碼到曼徹斯特碼的轉(zhuǎn)換,并由編碼控制端控制曼徹斯特編碼的開(kāi)始和停止。所述線性反饋移位寄存器采用128位線性反饋移位寄存器,其反饋函數(shù)為Afl=A^A, Afi Am,其產(chǎn)生的隨機(jī)數(shù)的序列周期長(zhǎng)度為2128-1 ;所述線性反饋移位寄存器工作時(shí),首先由曼徹斯特碼序列作為線性反饋移位寄存器的種子填充至該128位線性反饋移位寄存器中,此時(shí),線性反饋移位寄存器輸出使用信號(hào)為0,曼徹斯特碼序列逐比特進(jìn)入線性反饋移位寄存器中;當(dāng)線性反饋移位寄存器的128位全部填充結(jié)束后,線性反饋移位寄存器使能信號(hào)變?yōu)?,此時(shí),線性反饋移位寄存器開(kāi)始工作,線性反饋移位寄存器輸出端開(kāi)始輸出隨機(jī)數(shù)序列。所述DES加密單元由密鑰和明文生成單元和DES運(yùn)算單元構(gòu)成;所述明文和密鑰生成單元通過(guò)獲取線性反饋移位寄存器輸出的隨機(jī)數(shù)生成DES運(yùn)算所需的64bits的明文和密鑰,所述明文和密鑰生成單元由明文寄存器和密鑰寄存器組成,用于分別鎖存64bits的隨機(jī)數(shù);所述DES運(yùn)算單元完成16輪的DES加密運(yùn)算,從而向所述真隨機(jī)數(shù)輸出寄存器輸出64bits密文。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是真隨機(jī)數(shù)發(fā)生器是密碼芯片及安全芯片中的重要單元電路,用來(lái)產(chǎn)生芯片工作所需要的真隨機(jī)數(shù)序列。本發(fā)明對(duì)傳統(tǒng)的基于物理隨機(jī)源的真隨機(jī)數(shù)發(fā)生器結(jié)構(gòu)進(jìn)行了改進(jìn),將數(shù)學(xué)方法和物理方法結(jié)合起來(lái),能夠產(chǎn)生高質(zhì)量的真隨機(jī)數(shù),能夠使密碼芯片的信息保密性得到很大程度的提升,既能達(dá)到相關(guān)測(cè)試指標(biāo)及標(biāo)準(zhǔn)的要求,又能有效保障信息安全。通過(guò)在真隨機(jī)數(shù)源后加入數(shù)字后處理電路,使真隨機(jī)數(shù)源產(chǎn)生的真隨機(jī)數(shù)序列在經(jīng)過(guò)數(shù)字電路的后處理后,再送入芯片中的其他單元使用。本發(fā)明真隨機(jī)數(shù)發(fā)生器可以有效的提聞?wù)骐S機(jī)數(shù)的隨機(jī)性,提筒芯片的安全性能。
圖1是本發(fā)明真隨機(jī)數(shù)發(fā)生器的結(jié)構(gòu)示意圖2是本發(fā)明中真隨機(jī)數(shù)源的結(jié)構(gòu)示意圖;圖3是本發(fā)明中曼徹斯特編碼器結(jié)構(gòu)示意圖;圖4是本發(fā)明中線性反饋移位寄存器結(jié)構(gòu)示意圖;圖5是本發(fā)明中DES加密單元結(jié)構(gòu)示意圖;·圖6本發(fā)明真隨機(jī)數(shù)發(fā)生器的工作流程圖。
具體實(shí)施例方式下面結(jié)合具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)地描述。如圖1所示,本發(fā)明一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,包括真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器,所述真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器之間連接有數(shù)字后處理電路,所述數(shù)字后處理電路由自所述真隨機(jī)數(shù)源連接至所述真隨機(jī)數(shù)輸出寄存器的曼徹斯特編碼器、線性反饋移位寄存器(LFSR)和DES加密單元構(gòu)成;所述真隨機(jī)數(shù)輸出寄存器用來(lái)鎖存DES運(yùn)算單元輸出的密文,最終真隨機(jī)數(shù)由所述真隨機(jī)數(shù)輸出寄存器輸出至芯片。真隨機(jī)數(shù)發(fā)生器的輸入信號(hào)包括系統(tǒng)時(shí)鐘和高頻震蕩器信號(hào)。如圖2所示,真隨機(jī)數(shù)源基于震蕩采樣法實(shí)現(xiàn),利用兩個(gè)獨(dú)立工作的不同相位的高、低頻振蕩器來(lái)獲得非確定噪聲源,其中低頻振蕩器利用系統(tǒng)時(shí)鐘的2分頻實(shí)現(xiàn),做為真隨機(jī)數(shù)的采樣時(shí)鐘采樣輸入的高頻振蕩器信號(hào),從而產(chǎn)生隨機(jī)數(shù)序列。在實(shí)際實(shí)現(xiàn)的具體電路中,真隨機(jī)數(shù)的采樣時(shí)鐘作為正沿觸發(fā)D觸發(fā)器的時(shí)鐘信號(hào),高頻震蕩器輸入信號(hào)則作為觸發(fā)器的D端數(shù)據(jù)輸入,并在采樣時(shí)鐘脈沖的上升沿對(duì)其進(jìn)行采樣,觸發(fā)器的Q端得到的就是一個(gè)真隨機(jī)數(shù)比特流。由于真隨機(jī)數(shù)源輸出的真隨機(jī)數(shù)比特流質(zhì)量不高,可能存在由連續(xù)的多個(gè)“0”或者多個(gè)“I”組成的長(zhǎng)零或長(zhǎng)壹序列,這樣的序列雖然屬于真隨機(jī)數(shù),但是其隨機(jī)性差,不能滿足芯片工作的要求,因此首先將數(shù)據(jù)送入曼徹斯特編碼器,消除長(zhǎng)零及長(zhǎng)壹序列。如圖3所示,所述曼徹斯特編碼器由一個(gè)異或門、一個(gè)非門與一個(gè)觸發(fā)器組成,從而實(shí)現(xiàn)從NRZ碼到曼徹斯特碼的轉(zhuǎn)換,并由編碼控制端控制曼徹斯特編碼的開(kāi)始和停止。為了提高真隨機(jī)數(shù)的隨機(jī)性指標(biāo),將真隨機(jī)數(shù)序列的值離散化,在通過(guò)曼徹斯特編碼器后,將曼徹斯特碼比特流送入后續(xù)的LFSR和DES加密單元進(jìn)行處理。如圖4所示,所述LFSR采用128位線性反饋移位寄存器實(shí)現(xiàn),其反饋函數(shù)為Afl=Af^A, A^A,。,其產(chǎn)生的隨機(jī)數(shù)的序列周期長(zhǎng)度為2128-1 ;所述LFSR工作時(shí),首先由曼徹斯特碼比特流作為L(zhǎng)FSR的種子填充至該128位LFSR中,此時(shí),LFSR輸出使能信號(hào)為0,曼徹斯特碼比特流逐比特進(jìn)入LFSR中;當(dāng)LFSR的128位全部填充結(jié)束后,LFSR輸出使能信號(hào)變?yōu)?,此時(shí),LFSR開(kāi)始工作,LFSR輸出端開(kāi)始輸出隨機(jī)數(shù)序列。如圖5所示,所述DES加密單元由密鑰和明文生成單元和DES運(yùn)算單元構(gòu)成;所述明文和密鑰生成單元通過(guò)獲取LFSR輸出的隨機(jī)數(shù)序列生成DES運(yùn)算所需的64bit的明文和密鑰,所述明文和密鑰生成單元由明文寄存器和密鑰寄存器組成,用于分別鎖存64bits的隨機(jī)數(shù);當(dāng)明文和密鑰生成后,生成單元向DES運(yùn)算單元發(fā)出使能信號(hào),由所述DES運(yùn)算單元完成16輪的DES加密運(yùn)算,從而向所述真隨機(jī)數(shù)輸出寄存器輸出64bits密文;真隨機(jī)數(shù)輸出寄存器用來(lái)鎖存DES運(yùn)算單元輸出的64bits密文。本發(fā)明真隨機(jī)數(shù)發(fā)生器中的數(shù)據(jù)后處理電路工作時(shí),首先由曼徹斯特編碼器對(duì)真隨機(jī)源產(chǎn)生的真隨機(jī)數(shù)進(jìn)行處理,產(chǎn)生的曼徹斯特編碼比特流做為L(zhǎng)FSR的輸入;LFSR處理后輸出的序列填充DES加密單元中的明文及密鑰寄存器,填充滿后啟動(dòng)DES加密運(yùn)算,最終輸出的64bits密文被輸出到作為真隨機(jī)數(shù)發(fā)生器輸出單元的真隨機(jī)數(shù)輸出寄存器鎖存,其鎖存的真隨機(jī)數(shù)作為最終輸出提供給芯片的其他單元使用。如圖6所示,本發(fā)明真隨機(jī)數(shù)發(fā)生器的工作流程是當(dāng)芯片需要隨機(jī)數(shù)序列時(shí),首先打開(kāi)高頻振蕩器和系統(tǒng)時(shí)鐘信號(hào)的輸入,從而啟動(dòng)真隨機(jī)數(shù)源,產(chǎn)生真隨機(jī)數(shù)序列;隨后使能曼徹斯特編碼器,輸出曼徹斯特碼比特流;將該比特流送入到LFSR中做為種子填入寄存器,直到128位寄存器填滿,啟動(dòng)LFSR,輸出LFSR處理后的隨機(jī)數(shù)序列;將LFSR處理后的隨機(jī)數(shù)序列填入到DES加密單元的明文和密鑰寄存器,全部填滿后啟動(dòng)DES運(yùn)算,最終輸出64bits密文做為真隨機(jī)數(shù)發(fā)生器的隨機(jī)數(shù)輸出,存入到真隨機(jī)數(shù)輸出寄存器,供芯片其他單元使用;最后關(guān)閉高頻振蕩器及系統(tǒng)時(shí)鐘輸入,等待真隨機(jī)數(shù)發(fā)生器的下一次工作。盡管上面結(jié)合圖對(duì)本發(fā)明進(jìn)行了描述,但是本發(fā)明并不局限于上述的具體實(shí)施方式
,上述的具體實(shí)施方式
僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨的情況下,還可以作出很多變形,這些均屬于本發(fā)明的保護(hù)之內(nèi)。
權(quán)利要求
1.一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,包括真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器,其特征在于所述真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器之間連接有數(shù)字后處理電路,所述數(shù)字后處理電路由自所述真隨機(jī)數(shù)源連接至所述真隨機(jī)數(shù)輸出寄存器的曼徹斯特編碼器、線性反饋移位寄存器和DES加密單元構(gòu)成;所述真隨機(jī)數(shù)輸出寄存器用來(lái)鎖存所述DES加密單元輸出的密文,最終真隨機(jī)數(shù)由所述真隨機(jī)數(shù)輸出寄存器輸出至芯片。
2.根據(jù)權(quán)利要求1所述帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,其特征在于所述曼徹斯特編碼器由一個(gè)異或門、一個(gè)非門與一個(gè)觸發(fā)器組成,從而實(shí)現(xiàn)從NRZ碼到曼徹斯特碼的轉(zhuǎn)換,并由編碼控制端控制曼徹斯特編碼的開(kāi)始和停止。
3.根據(jù)權(quán)利要求1所述帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,其特征在于所述線性反饋移位寄存器采用128位線性反饋移位寄存器,其反饋函數(shù)為,其產(chǎn)生的隨機(jī)數(shù)的序列周期長(zhǎng)度為2128-1 ;所述線性反饋移位寄存器工作時(shí),首先由曼徹斯特碼序列作為線性反饋移位寄存器的種子填充至該128位線性反饋移位寄存器中,此時(shí),線性反饋移位寄存器輸出使用信號(hào)為O,曼徹斯特碼序列逐比特進(jìn)入線性反饋移位寄存器中;當(dāng)線性反饋移位寄存器的128位全部填充結(jié)束后,線性反饋移位寄存器使能信號(hào)變?yōu)?,此時(shí),線性反饋移位寄存器開(kāi)始工作,線性反饋移位寄存器輸出端開(kāi)始輸出隨機(jī)數(shù)序列。
4.根據(jù)權(quán)利要求1所述帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,其特征在于所述DES加密單元由密鑰和明文生成單元和DES運(yùn)算單元構(gòu)成;所述明文和密鑰生成單元通過(guò)獲取線性反饋移位寄存器輸出的隨機(jī)數(shù)生成DES運(yùn)算所需的64bits的明文和密鑰,所述明文和密鑰生成單元由明文寄存器和密鑰寄存器組成,用于分別鎖存64bits的隨機(jī)數(shù);所述DES運(yùn)算單元完成16輪的DES加密運(yùn)算,從而向所述真隨機(jī)數(shù)輸出寄存器輸出64bits密文。
全文摘要
本發(fā)明公開(kāi)了一種帶有數(shù)字后處理電路的真隨機(jī)數(shù)發(fā)生器,包括真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器,其特征在于所述真隨機(jī)數(shù)源和真隨機(jī)數(shù)輸出寄存器之間連接有數(shù)字后處理電路,所述數(shù)字后處理電路由自所述真隨機(jī)數(shù)源連接至所述真隨機(jī)數(shù)輸出寄存器的曼徹斯特編碼器、線性反饋移位寄存器和DES加密單元構(gòu)成;所述真隨機(jī)數(shù)輸出寄存器用來(lái)鎖存所述DES加密單元輸出的密文,最終真隨機(jī)數(shù)由所述真隨機(jī)數(shù)輸出寄存器輸出至芯片。本發(fā)明提高了真隨機(jī)數(shù)源產(chǎn)生的隨機(jī)數(shù)序列的質(zhì)量,最終所輸出的隨機(jī)數(shù)序列具有均勻性好、獨(dú)立性高等特點(diǎn),提高了密碼芯片的信息存儲(chǔ)的安全性,在密碼芯片、信息安全等方面具有較高的實(shí)際應(yīng)用價(jià)值。
文檔編號(hào)G06F7/58GK103019648SQ20121049175
公開(kāi)日2013年4月3日 申請(qǐng)日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者趙毅強(qiáng), 劉長(zhǎng)龍, 馮紫竹, 史亞峰 申請(qǐng)人:天津大學(xué)