專利名稱:基于振蕩器的真隨機數(shù)發(fā)生器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬信息安全和集成電路技術(shù)領(lǐng)域,具體涉及一種以集成電路方式制作的密碼系統(tǒng)中的真隨機數(shù)發(fā)生器,可用在各種密碼系統(tǒng)中,為密碼算法提供密鑰,也可用于產(chǎn)生各種隨機種子或初始密碼。
背景技術(shù):
現(xiàn)代信息社會迫切需要現(xiàn)代密碼學。目前,各種通信網(wǎng)絡(luò)極大地改變了人們的生活與工作方式。隨著信息化社會的不斷發(fā)展,信息在社會中的地位越來越重要,每個人的生活都與信息的產(chǎn)生、存儲、處理和傳遞密切相關(guān),信息的安全與保密問題成了人人都關(guān)心的事情。商業(yè)和金融領(lǐng)域也由于Internet,特別是電子商務(wù)的發(fā)展而更加關(guān)注信息安全問題。
真隨機數(shù)發(fā)生器在現(xiàn)代密碼學領(lǐng)域有非常重要的應(yīng)用。它是密碼系統(tǒng)硬件實現(xiàn)中的重要組成部分。相對于偽隨機數(shù)發(fā)生器,真隨機數(shù)發(fā)生器所產(chǎn)生的隨機序列無法預知,不可再現(xiàn),因此能夠更好的保護信息的傳輸。一般人們利用自然界中的噪聲源來產(chǎn)生真隨機數(shù),在電路系統(tǒng)中產(chǎn)生真隨機數(shù)主要由三種方法實現(xiàn)1)利用電阻熱噪聲源直接放大;2)利用帶有抖動噪聲的振蕩器的采樣;3)利用離散時間的混沌系統(tǒng)映射。這三種方法都是基于模擬電路設(shè)計,產(chǎn)生高性能的隨機序列,為密碼算法提供密鑰。
用做密鑰的隨機序列一般是二進制的碼流。完善的密碼系統(tǒng)要求用做密鑰的序列足夠長,不會出現(xiàn)相同的兩組密鑰。同時,組成密鑰的隨機序列隨機性能必須非常良好,這樣信息在被加密后無法破譯。如果密鑰的隨機性能不夠好,加密前和加密后的信息仍有一些相關(guān)性的時候,那么分析者就有可能利用這種相關(guān)性,通過迭代等等的算法,破譯加密后的信息,獲得加密前的信息。
理想的隨機序列要求“0”和“1”完全隨機的分布,一階、二階以及高階相關(guān)系數(shù)足夠小,隨機性能還需要滿足其它一些復雜標準的要求。然而,由于外界一些非理想的因素影響,例如來自電源或者其它部分電路噪聲的干擾(有時這樣的噪聲幅度很大并且是周期性的),都會影響真隨機數(shù)發(fā)生器的正常工作,使得真隨機數(shù)發(fā)生器輸出的隨機序列性能變差。因此,對于真隨機源產(chǎn)生的隨機序列,需要再加上一個后處理的電路,通過一定算法對隨機序列進行處理,增加隨機序列的熵,進一步提高它的隨機性能,達到應(yīng)用的需要。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種真隨機數(shù)發(fā)生器,它能夠產(chǎn)生高性能的隨機序列,為密碼算法提供密鑰。
本發(fā)明提出的真隨機數(shù)發(fā)生器,由帶有抖動噪聲的慢時鐘發(fā)生器、快時鐘發(fā)生器、采樣保持電路和后處理器組成;慢時鐘發(fā)生器能夠產(chǎn)生一個周期隨機變化的慢時鐘,其周期變化的方均根遠遠大于快時鐘的周期;快時鐘由快時鐘發(fā)生器產(chǎn)生,具有固定的周期;在慢時鐘的控制下,采樣保持電路對快時鐘進行采樣,得到隨機序列,然后再輸入到后處理電路,通過對隨機序列進行一系列熵累加運算,輸出高性能的真隨機數(shù)。
本發(fā)明中,帶有抖動噪聲的慢時鐘指的是慢時鐘的周期并不是固定的,它的周期是在一個平均周期的附近變化的,而且每個慢時鐘周期離平均周期的距離是不確定的,它符合高斯分布。這種周期抖動的方均根要求比快時鐘的周期大5倍以上(如5-10倍),這樣每個慢時鐘周期采樣快時鐘的時候,取“0”或“1”的概率是一樣的,達到真隨機。
所述的慢時鐘發(fā)生器由一個噪聲放大電路、一個滯回比較器和一個反饋調(diào)節(jié)電路組成。噪聲放大電路的輸出接滯回比較器,輸出周期隨機變化的慢時鐘。同時反饋調(diào)節(jié)電路由慢時鐘控制,調(diào)節(jié)噪聲放大器的輸出電壓。
所述的噪聲放大電路由一個運算放大器、一個噪聲源和一個負反饋網(wǎng)絡(luò)構(gòu)成;所述的噪聲源由兩個電阻構(gòu)成,接在運放的正負輸入端;所述的負反饋網(wǎng)絡(luò)由兩個電阻構(gòu)成。這兩個電阻一端共同接在運算放大器負輸入端的噪聲電阻上,另一端分別接在運算放大器輸出端和地上,構(gòu)成一個負反饋網(wǎng)絡(luò),穩(wěn)定運放的增益。
所述的反饋調(diào)節(jié)電路由一個電荷泵和一個密勒等效電容電路組成。慢時鐘控制電荷泵給密勒等效電容充放電,調(diào)節(jié)運算放大器負輸入端的電壓;所述的密勒等效電容電路由一個反相器和一個電容組成。電容連接反相器的輸入和輸出,在反相器的輸入端構(gòu)成一個等效的密勒電容。反相器的輸入端接電荷泵的輸出,輸出端接運算放大器負輸入端的噪聲電阻。
本發(fā)明中,噪聲電阻接在運算放大器的輸入端,在運算放大器的輸入端疊加了一個小幅度的噪聲信號,這樣運算放大器的輸出電壓帶有一定幅度的噪聲抖動。當慢時鐘為高電平時,電荷泵控制電容充電,提高運算放大器正端的電壓,使運算放大器的的輸出電壓升高,升高到滯回比較器的高閾值時,慢時鐘又變?yōu)榈碗娖?。同樣,慢時鐘為低電平時,電荷泵控制電容放電,運算放大器輸出電壓降低,到滯回比較器的低閾值時慢時鐘變?yōu)楦唠娖?。因此這樣一個回路能夠產(chǎn)生一個固定頻率的慢時鐘。由于電阻熱噪聲的引入,經(jīng)過放大后,使得運算放大器的輸出帶有一定的噪聲抖動,因此在運算放大器的輸出接近滯回比較器的閾值時,慢時鐘在何時跳變就無法預知,即慢時鐘的沿會有一定的抖動,周期會發(fā)生變化,中心頻率就是回路固有的振蕩頻率。
本發(fā)明提出的快時鐘發(fā)生器可以是多級反相器級聯(lián)組成的環(huán)振、壓控振蕩器或者其它任何形式的振蕩器。要求振蕩器的頻率必需足夠快,使得慢時鐘周期的抖動方均根是快時鐘周期的5倍以上。同時要求快時鐘的占空比要非常的接近50%,這樣在采樣時,采“0”和“1”的概率才能精確的接近50%。
本發(fā)明提出的采樣保持電路可以是D觸發(fā)器、T觸發(fā)器以及其它任何形式的能夠?qū)崿F(xiàn)采樣保持功能的電路。
本發(fā)明提出的后處理器包括一個線性反饋移位寄存器及若干個異或門。其中,線性反饋移位寄存器由若干個寄存器串聯(lián)組成,最后一級寄存器的輸出反饋到線性反饋移位寄存器的輸入;隨機序列中的每一位輸入到線性反饋移位寄存器時,都與最后一個寄存器的輸出異或,然后輸出到下一級異或門的一個輸入端;其它輸入端的輸入是線性反饋移位寄存器中某一級寄存器的輸出;可以從線性反饋移位寄存器中選取若干寄存器的輸出與輸入隨機序列進行異或,然后再輸入到線性反饋移位寄存器的第一級寄存器。這樣從線性反饋移位寄存器輸出的隨機序列熵值提高,隨機性能得到大大改善。
圖1是真隨機數(shù)發(fā)生器的具體框圖。
圖2是真隨機數(shù)發(fā)生器工作的流程圖。
圖3是慢時鐘發(fā)生器的具體電路框圖。
圖4是慢時鐘發(fā)生器中運算放大器輸出端的波形。
圖5是后處理器的具體電路圖。
具體實施例方式
圖1顯示了一個真隨機數(shù)發(fā)生器600的框圖,包括一個慢時鐘發(fā)生器100、一個快時鐘發(fā)生器150、一個采樣保持電路160和一個后處理器500。慢時鐘發(fā)生器100產(chǎn)生周期隨機變化的慢時鐘,快時鐘發(fā)生器150產(chǎn)生一個高速振蕩的時鐘,其周期遠遠小于慢時鐘周期變化的標準偏差。在采樣保持電路160中,在慢時鐘的控制下,對快時鐘進行采樣,得到一個“0”和“1”隨機分布隨機序列。產(chǎn)生的隨機序列輸入到后處理器500,在慢時鐘的控制下,整個序列經(jīng)過一系列熵累加的處理后,得到高性能的真隨機數(shù)。
圖2是真隨機數(shù)發(fā)生器600工作的一個流程圖。首先產(chǎn)生一個噪聲信號,本電路中的噪聲主要由兩個噪聲電阻提供。然后經(jīng)過慢時鐘發(fā)生電路,產(chǎn)生了一個周期隨機變化的慢時鐘信號。同時另一個振蕩器將產(chǎn)生高速的快時鐘,頻率遠遠大于慢時鐘,一般前者頻率是后者頻率的10倍以上。然后在采樣保持電路中,慢時鐘對快時鐘進行采樣,得到一個隨機序列。隨機序列經(jīng)過后處理器后得到最終的真隨機數(shù),輸出的隨機數(shù)與慢時鐘同步。
圖3顯示是真隨機數(shù)發(fā)生器中慢時鐘發(fā)生器100的電路框圖,由兩個噪聲電阻108和109、運算放大器102、滯回比較器103、電荷泵104、反相器107、電容106以及兩個構(gòu)成反饋的電阻110和111組成。直流偏置112給運算放大器102的正負輸入端提供共模電壓,使運算放大器102偏置在合適的工作點。兩個噪聲電阻108、109分別接在運放的正負輸入端。反饋電阻110和111構(gòu)成一個負反饋網(wǎng)絡(luò),穩(wěn)定運算放大器102的增益,使電阻110和111的熱噪聲放大一定的倍數(shù)。運算放大器102可以是任何電路結(jié)構(gòu)高增益運算放大器,并且在構(gòu)成反饋后能夠穩(wěn)定工作。運算放大器102的輸出接滯回比較器103,運算放大器102的輸出在滯回比較器103的高低閾值之間來回擺動,比較后輸出慢時鐘。滯回比較器103可以是任何電路結(jié)構(gòu)的具有兩個不同閾值的滯回比較器,要求閾值間的滯回區(qū)間達到設(shè)計的要求,使得慢時鐘的中心頻率達到設(shè)計值。慢時鐘同時作為電荷泵104充放電的開關(guān),當慢時鐘為高電平時,控制電荷泵104以固定電流給電容106充電;當慢時鐘為低電平時,電荷泵104又以相同的電流放電。電荷泵104也可以是任何能夠?qū)崿F(xiàn)開關(guān)控制電流充放電的電路結(jié)構(gòu)。電荷泵104后的電容是等效的密勒電容,由反相器107和電容106組成。電容106連接反相器107的輸入輸出端,等效到電荷泵104輸出端的電容為反相器107的增益乘以電容106。這樣我們能夠得到足夠大的等效電容,使得電荷泵104能夠以很小的速率調(diào)節(jié)運算放大器102正輸入端的電壓變化,再經(jīng)過運算放大器102將這個電壓放大。這樣,運算放大器102的輸出電壓就是一個上下擺動的,并且疊加了放大的電阻熱噪聲的三角波,其擺動幅度為滯回比較器103的高低閾值。
圖4是運算放大器102輸出端的大致波形,是一個疊加了熱噪聲的三角波形。圖中VTH和VTL分別是滯回比較器的高低閾值。S是三角波的斜率,TCLK_SLOW是慢時鐘的周期。我們可以得到TCLK_SLOW=t1+t2(6.1)t1和t2是隨噪聲電壓而獨立隨機變化的,同時我們可以得到V(t)=-VTL+St+vn(t) (6.2)V(t)是輸出電壓隨時間變化的函數(shù),vn(t)是放大后的電阻熱噪聲,可以推出t1=VTH+|VTL|-vn(t)s---(6.3)]]>
因為vn(t)的均值為0,那么,E{TCLK_SLOW}=2s(VTH-VTL)---(6.4)]]>σ{TCLK_SLOW}=2sσ{vn}---(6.5)]]>E{TCLK_SLOW}是慢時鐘的平均周期,σ{TCLK_SLOW}是慢時鐘周期變化的標準偏差,σ{vn}是放大后噪聲電壓的方均根值。由式(6.5)我們可以看出,σ{TCLK_SLOW}與σ{vn}成正比,與S成反比的。σ{vn}和S這兩個值都是與電路的某些參數(shù)相關(guān)的,我們可以得到S=±ISATGinvC1G---(6.6)]]>σ{vn}=4kTBW2RnoiseG2---(6.7)]]>ISAT是電荷泵104的充電電流,C1是電容106的大小,Ginv是反相器107的增益,G是運算放大器102閉環(huán)后的增益,BW噪聲帶寬。由式(6.4)至(6.7),我們在確定好慢時鐘周期變化的標準偏差后,就可以合理的選擇電路中其它部分的具體參數(shù)。如噪聲電阻108和109的大小,運算放大器102的閉環(huán)增益、帶寬,電荷泵104的充電電流,反相器107的增益及密勒電容106的大小等等。
圖5顯示了具體的后處理器500電路圖。它由一個線性反饋移位寄存器和若干個異或501組成。線性反饋移位寄存器由若干個D觸發(fā)器502串聯(lián)構(gòu)成,可以選擇任何適當?shù)腄觸發(fā)器502個數(shù)。
采樣保持電路160輸出的隨機序列輸入到第一級異或門501的一端,異或門501的另一端接線性反饋移位寄存器中某一級D觸發(fā)器502的輸出端Q。第一級異或門501輸出到第二級異或門501,而第二級異或門501的另一端輸入接線性反饋移位寄存器中另一級D觸發(fā)器502Q端反饋的信號,輸出端接下一級異或門501。最后一級異或門501的輸入端分別接上一級異或門501的輸出和最后一級D觸發(fā)器502的輸出端Q。最后一級異或門501的輸出接第一級D觸發(fā)器502的輸入端。
本發(fā)明可以采用多個異或門501,第一級異或門501的一個輸入端接采樣保持電路160輸出的隨機序列和線性反饋移位寄存器中某一級D觸發(fā)器502的輸出端Q。最后一級異或門501的輸入端分別接上一級異或門501的輸出和最后一級D觸發(fā)器502的輸出端Q。
中間若干級異或門501的兩個輸入端,一端接上一級異或門501的輸出,另一端分別接線性反饋移位寄存器中不同級的D觸發(fā)器502的輸出端Q。
線性反饋移位寄存器中的各級D觸發(fā)器502在慢時鐘控制下工作。采樣保持電路160輸出的隨機序列輸入到第一級異或門501,從最后一級D觸發(fā)器502鎖存輸出。每個輸入到后處理器500的隨機位都經(jīng)過幾級異或操作,隨機序列的熵值得到增加,隨機性能大大改善,能夠達到應(yīng)用標準的要求。
權(quán)利要求
1.一種基于振蕩器的真隨機數(shù)發(fā)生器,其特征在于由帶有抖動噪聲的慢時鐘發(fā)生器、快時鐘發(fā)生器、采樣保持電路和后處理器組成;慢時鐘發(fā)生器能夠產(chǎn)生一個周期隨機變化的慢時鐘,其周期變化的方均根遠遠大于快時鐘的周期;快時鐘由快時鐘發(fā)生器產(chǎn)生,具有固定的周期;在慢時鐘的控制下,采樣保持電路對快時鐘進行采樣,得到隨機序列,然后再輸入到后處理電路,通過對隨機序列進行一系列熵累加運算,輸出高性能的真隨機數(shù)。
2.根據(jù)權(quán)利要求1所述真隨機數(shù)發(fā)生器,其特征在于所述的慢時鐘發(fā)生器由一個噪聲放大電路、一個滯回比較器和一個反饋調(diào)節(jié)電路組成;噪聲放大電路的輸出接滯回比較器,輸出周期隨機變化的慢時鐘;同時反饋調(diào)節(jié)電路由慢時鐘控制,調(diào)節(jié)噪聲放大器的輸出電壓。
3.根據(jù)權(quán)利要求2所述的真隨機數(shù)發(fā)生器,其特征在于所述的噪聲放大電路由一個運算放大器、一個噪聲源和一個負反饋網(wǎng)絡(luò)構(gòu)成;所述的噪聲源由兩個電阻構(gòu)成,接在運算放大器的正負輸入端;所述的負反饋網(wǎng)絡(luò)由兩個電阻構(gòu)成,這兩個電阻一端共同接在運算放大器負輸入端的噪聲電阻上,另一端分別接在運算放大器輸出端和地上,構(gòu)成一個負反饋網(wǎng)絡(luò),穩(wěn)定運放的增益。
4.根據(jù)權(quán)利要求2所述的真隨機數(shù)發(fā)生器,其特征在于所述的反饋調(diào)節(jié)電路由一個電荷泵和一個密勒等效電容電路組成,慢時鐘控制電荷泵給密勒等效電容充放電,調(diào)節(jié)運算放大器負輸入端的電壓;所述的密勒等效電容電路由一個反相器和一個電容組成,電容連接反相器的輸入和輸出,在反相器的輸入端構(gòu)成一個等效的密勒電容,反相器的輸入端接電荷泵的輸出,輸出端接運算放大器負輸入端的噪聲電阻。
5.根據(jù)權(quán)利要求1所述的真隨機數(shù)發(fā)生器,其特征在于后處理器由一個線性反饋移位寄存器和若干個異或門組成;其中,線性反饋移位寄存器由若干個寄存器串聯(lián)組成,最后一級寄存器的輸出反饋到線性反饋移位寄存器的輸入;隨機序列中的每一位輸入到線性反饋移位寄存器時,都與最后一個寄存器的輸出異或,然后輸出到下一級異或門的一個輸入端;其它輸入端的輸入是線性反饋移位寄存器中某一級寄存器的輸出;可以從線性反饋移位寄存器中選取若干寄存器的輸出與輸入隨機序列進行異或,然后再輸入到線性反饋移位寄存器的第一級寄存器。
全文摘要
本發(fā)明為一種基于振蕩器的真隨機數(shù)發(fā)生器。它由慢時鐘發(fā)生器、快時鐘發(fā)生器、采樣保持電路和后處理器組成。慢時鐘發(fā)生器能夠產(chǎn)生一個周期隨機變化的慢時鐘,其周期變化的方均根遠遠大于快時鐘的周期;快時鐘由快時鐘發(fā)生器產(chǎn)生,具有固定的周期;在慢時鐘的控制下,采樣保持電路對快時鐘進行采樣,得到隨機序列,然后再輸入到后處理電路,通過對隨機序列進行一系列熵累加運算,輸出高性能的真隨機數(shù)。
文檔編號G06F7/58GK1752924SQ20051002891
公開日2006年3月29日 申請日期2005年8月18日 優(yōu)先權(quán)日2005年8月18日
發(fā)明者郭亞煒, 鄧煥, 曾曉洋, 金榮華, 李建 申請人:上海微科集成電路有限公司