專利名稱:基于振蕩器噪聲的隨機數(shù)發(fā)生器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例一般涉及集成電路領(lǐng)域,并且更具體地,涉及用于基 于振蕩器噪聲的隨機數(shù)發(fā)生器的系統(tǒng)、方法和裝置。
背景技術(shù):
密碼技術(shù)通常需要生成隨機數(shù),以提供不為攻擊者所知的秘密值。例如,隨機數(shù)用于生成在如RSA的算法中使用的公鑰/私鑰對。隨機數(shù)用于 各種各樣的其它密碼用途,包括質(zhì)詢、特殊場合等。發(fā)明內(nèi)容根據(jù)本發(fā)明的一個方面,提供一種集成電路,包括第一振蕩器; 第二振蕩器,其中第一和第二振蕩器用獨立的硬件實現(xiàn);以及隨機數(shù)發(fā) 生器,與第一和笫二振蕩器耦合,其中所述隨機數(shù)發(fā)生器接收第一和第 二振蕩器的熱噪聲之差,并至少部分地基于數(shù)字信號處理(DSP )操作生 成隨機數(shù)。根據(jù)本發(fā)明的另一個方面,提供一種方法,包括將在第二振蕩器 所定義的連續(xù)時間間隔期間發(fā)生的第 一 振蕩器的多個振蕩存儲成所觀'j量 噪聲序列;使用基于數(shù)字信號處理(DSP)的濾波器對所測量噪聲序列進 行濾波,以產(chǎn)生熱噪聲頻帶,其中對所測量噪聲序列進行濾波包括使具 有高熱噪聲功率與偽隨機過程功率之比的頻帶中的熱噪聲頻譜變平;使用基于數(shù)字信號處理(DSP)的濾波器將所述熱噪聲頻帶分成N個子帶; 以及至少部分地基于所述N個子帶的數(shù)字信號的實部和虛部與零的比較 來生成二進制數(shù)字序列。根據(jù)本發(fā)明的又一個方面,提供一種系統(tǒng),包括集成電路,包含: 笫一振蕩器;笫二振蕩器,其中第一和第二振蕩器用獨立的硬件實現(xiàn);以及隨機數(shù)發(fā)生器,與第一和第二振蕩器耦合,其中所述隨機數(shù)發(fā)生器 接收來自第一和第二振蕩器的熱噪聲,并至少部分地基于數(shù)字信號處理(DSP)操作來生成隨機數(shù);以及無線收發(fā)器,與所述集成電路耦合。
在附圖的各圖中通過舉例而非限定的方式來說明本發(fā)明的實施例,在 附圖中相似的參考數(shù)字指的是類似的單元。圖1是說明根據(jù)本發(fā)明實施例實現(xiàn)的集成電路所選方面的高級框圖。圖2是說明根據(jù)本發(fā)明實施例實現(xiàn)的計算系統(tǒng)所選方面的框圖。 的流程圖。圖4A和4B是說明計算系統(tǒng)所選方面的框圖。
具體實施方式
本發(fā)明的實施例一般針對用于基于振蕩器噪聲的隨機數(shù)發(fā)生器的系 統(tǒng)、方法和裝置。在一些實施例中,提供真隨機數(shù)發(fā)生器(TRNG),而 無需專用的TRNG硬件。代替專用的硬件,本發(fā)明實施例可使用現(xiàn)有的 系統(tǒng)時鐘來提供熵源。如下面進一步描述的,在一些實施例中,TRNG 采用數(shù)字信號處理(DSP)來確保隨機位完全是振蕩器的物理隨機性質(zhì)的 輸出(如系統(tǒng)時鐘)。圖1是說明書根據(jù)本發(fā)明實施例實現(xiàn)的集成電路所選方面的高級框 圖。例如,集成電路(IC) 100可以是計算系統(tǒng)芯片集的一部分。IC100 其中包括兩個振蕩器(102和104)和RNG106。在一些實施例中,IC 100 可包括更多的單元、更少的單元和/或與圖l所示單元不同的單元。在一些實施例中,振蕩器102和104在它們并不專用于RNG 106的 意義上是通用振蕩器。例如,振蕩器102和104可給IC IOO的各種功能 單元(如處理器110)提供系統(tǒng)時鐘。振蕩器102和104必須相互獨立, 由此它們可由獨立的硬件(如獨立的晶體)提供。在一些實施例中,RNG 106提供可用作唯一隨機私用標識符的隨機數(shù)。唯一隨機私用標識符可支持多種功能,包括如公鑰/私鑰對(如在RSA算法中)的密碼特征。如下面參照圖2-3進一步描述的,RNG 106可采 用兩級算法生成唯一隨機私用標識符。在一些實施例中,第一級涉及將 振蕩器的熱噪聲之差與其它特征分離。第二級可涉及將熱噪聲轉(zhuǎn)換成隨 機二進制序列。在一些實施例中,用固件(如固件112)實現(xiàn)RNG 106的所選方面。 通過集成到IC 100上的處理器(如處理器110)來執(zhí)行固件。在可選實 施例中,固件112、處理器110和/或振蕩器102和104可位于兩個或更 多單獨的集成電路上。固件112可存儲在任何種類的非易失性存儲器中, 例如包括閃存、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程 只讀存儲器(EEPROM)等等。處理器110可以是任何種類的處理單元,包 括服務(wù)處理器、管理處理器、通用處理器等等。圖2是說明根據(jù)本發(fā)明實施例實現(xiàn)的計算系統(tǒng)200所選方面的框圖。 系統(tǒng)200包括振蕩器202和204以及隨機數(shù)發(fā)生器210。在可選實施例中, 系統(tǒng)200可包括更多的單元、更少的單元和/或不同的單元。振蕩器202和204之差為隨機數(shù)發(fā)生器210提供熵源。例如,振蕩器 202和204可提供熱噪聲源。在一些實施例中, 一個振蕩器(如202)充 當定時器,以指定對另一個振蕩器(如204)上的振蕩數(shù)進行計數(shù)的時段。 振蕩器202和204可以是通用振蕩器。例如,它們可以是給系統(tǒng)200的 不同單元提供不同系統(tǒng)時鐘的振蕩器。在一些實施例中,振蕩器202和 204在硬件級上是獨立的。振蕩器202和204基于獨立的晶體。隨機數(shù)發(fā)生器210將振蕩器204的所計數(shù)振蕩數(shù)收集到緩沖器212中 (例如,參見如下所示的示例代碼的第1-3部分)。我們將上面提到的數(shù)序 列稱為所測量噪聲。所測量噪聲可包括真隨機過程(如熱噪聲)和偽隨 機過程(如"離散化(dicretization)噪聲"、"村底噪聲"等)的混合。隨機 數(shù)發(fā)生器210使用數(shù)字信號處理(DSP)將熱噪聲與偽隨機過程分離。在 一些實施例中,隨機數(shù)發(fā)生器210使用DSP濾波器來獲得具有"高"熱噪 聲功率與偽隨機過程功率之比(假定,比率=100為高)的頻帶。我們將該頻帶稱為"熱噪聲頻帶"。在圖示的實施例中,使用無限脈沖響應(yīng)(IIR)濾波器214使熱噪聲的功率頻譜變平,從而簡化其進一步處理。根據(jù)一 些實施例,如下所示的示例代碼的第4部分纟是供IIR濾波器214的例子。 在可選實施例中,可使用不同的技術(shù)來使熱噪聲的頻譜變平。在一些實 施例中,所測量噪聲具有可從序列中減去的恒偏。在一些實施例中,可使用DSP將熱噪聲頻帶分成(或分離成)N個 子帶。該N個子帶可具有微小的交疊(例如小于功率的1% )。因此,該 N個子帶提供N個不相關(guān)的復(fù)高斯信道,這些信道都是隨機獨立的。在 圖示的實施例中,有限脈沖響應(yīng)(FER)濾波器216將熱噪聲頻帶分成N 個(如4個)子帶。雖然圖2使用單個塊示出FIR濾波器216,但要意識 到,在一些實施例中,可以有N個FIR濾波器216。沖艮據(jù)一些實施例, 如下所示的示例代碼的第5部分提供FIR濾波器216的例子。在可選實 施例中,可使用不同的技術(shù)來分熱噪聲頻帶。在一些實施例中,每個子 帶單元存儲在相應(yīng)的緩沖器218中。在一些實施例中,比較邏輯220將緩沖器218中存儲的子帶單元轉(zhuǎn)換 成布爾序列。例如,比較邏輯220可將每個子帶單元的實部和虛部與零 進行比較來產(chǎn)生布爾序列。在可選實施例中,可使用不同的操作來生成 布爾序列??稍试S比較邏輯220運行產(chǎn)生期望長度布爾序列所必需的那 么長時間,以產(chǎn)生唯一隨機私用標識符222。唯一隨機私用標識符222的在一些實施例中,用固件(如圖1所示的固件112)實現(xiàn)隨機數(shù)發(fā)生 器210的所選方面。在這類實施例中,通過處理器(如圖1所示的處理 器IIO)執(zhí)行用固件實現(xiàn)的特征。例如,緩沖器212、 HR濾波器214、 FIR 濾波器216、緩沖器218和/或比較邏輯220可以作為在處理器上執(zhí)行的 固件來實現(xiàn)。示例代碼%第1部分我們加載在真實平臺上測量并保存到文件的數(shù)據(jù) bin=(-256:256);inp=fopen('decimal 1 .txt,,,rt,); x=fscanf(inp,,0/od,); fclose(inp);x-x(l:end-l); %最后的代碼錯誤%第2部分計算測量值的增量 y=diff(x); N=length(y); N=length(y); yl=y+256*(y<-100);%第3部分刪除異常測量值y2=(yl -mean(y 1)). *(abs(yl -mean(yl ))<10);%第4部分重新計算平均值 z0=y2-mean(y2);%第5部分在信號上應(yīng)用IIR濾波器a=l/32; aa=l-a; num=[-aa aa]; den=[l -aa]; % IIR濾波器產(chǎn)生 zl=filter(num,den,zO); % zl是已濾波信號 zl=zl(100:end-100);%第6部分產(chǎn)生具有4個不同頻帶的4個FIR濾波器并應(yīng)用在Z1上 Nfft=1024;w=chebwin(Nfft+2,35); w=w(2:end-l);N=floor(length(zl)/Nffl);bit=zeros(l,8*N);%第7部分通過將每個已濾波輸出的Re和Im與0進行比較來為1024 個樣本的每個生成8位;這些獨立的隨機值 for(k=0:N-l)ft=fft(w.*zl(l+k*Nfft:(k+l)*Nfft));bit(l+8*k+(0:3))=(real(ft(3+3*(0:3)))>0);bit(l+8*k+(4:7))=(imag(ft(3+3*(0:3)))>0); end;圖3是說明根據(jù)本發(fā)明實施例實現(xiàn)的隨機數(shù)發(fā)生器操作的所選方面的流程圖。參考過程塊302,緩沖所測量的噪聲。在一些實施例中,所測 量的噪聲提供熵源。例如,在一些實施例中,所測量的噪聲包括真隨機 過程(如熱噪聲)和偽隨機過程的混合??捎迷谔幚砥?如圖1所示的 處理器IIO)上執(zhí)行的固件(如示例代碼的第l部分)來實現(xiàn)緩沖器。參考過程塊304,使用DSP將熱噪聲與偽隨機過程分離。例如,IIR 濾波器可使熱噪聲變平。在一些實施例中,可用在處理器(如圖1所示 的處理器110)上執(zhí)行的固件(如示例代碼的第1部分)來實現(xiàn)IIR濾波 器(或其它適當?shù)腄SP操作)。熱噪聲頻帶可被(至少部分地)標準化, 以便(至少部分地)使信號集中在零。參考過程306,將熱噪聲頻帶分成N個子帶。在一些實施例中,使用 DSP操作例如FIR濾波器將熱噪聲頻帶分成N個子帶。可用在處理器(如 圖1所示的處理器110)上執(zhí)行的固件(如示例代碼的第1部分)來實現(xiàn) FIR濾波器(或其它適當?shù)腄SP操作)。N個子帶單元可存儲在N個對應(yīng) 的緩沖器(如圖2所示的緩沖器218)中。參考過程塊308,使用N個子帶單元生成布爾序列。在一些實施例中, 將N個子帶單元與零進行比較來生成布爾序列。在可選實施例中,可使 用不同的操作來生成布爾序列。允許布爾序列達到期望長度,以產(chǎn)生唯 一隨機私用標識符。該長度是任意的,并且是比較操作運行的時間長度 的函數(shù)。圖4A和4B是分別說明計算系統(tǒng)400和500所選方面的框圖。計算 系統(tǒng)400包括與互連420耦合的處理器410。在一些實施例中,術(shù)語處理 器和中央處理單元(CPU)可交替使用。在一個實施例中,處理器410 是可從加利福尼亞圣克拉拉的英特爾公司得到的XEON 系列處理器的 處理器。在可選實施例中,也可使用其它處理器。在一些實施例中,處 理器410可包括多處理器核。在一個實施例中,芯片430是芯片集的組件。互連420可以是點對點 互連,或者它可以連接到兩個或更多芯片(如芯片集的)。芯片430包括可與主系統(tǒng)存儲器耦合的存儲器控制器440 (如圖1所示)。在可選實施 例中,存儲器控制器440可以與處理器410在同 一芯片上,如圖4B所示。 存儲系統(tǒng)444可以為計算系統(tǒng)400 (以及計算系統(tǒng)500)提供主存儲器。 在圖示的實施例中,存儲系統(tǒng)444包括存儲設(shè)備446。輸/J輸出(I/O)控制器450控制處理器410與一個或多個I/O接口 (如有線和無線網(wǎng)絡(luò)接口 )和/或I/0設(shè)備之間的數(shù)據(jù)流。例如,在圖示的 實施例中,I/O控制器450控制處理器410與無線發(fā)射器和接收器460之 間的數(shù)據(jù)流。在可選實施例中,可將存儲器控制器440和I/O控制器450 集成到單個控制器中。在一些實施例中,1/0控制器450包括隨機數(shù)發(fā)生 器852。隨機數(shù)發(fā)生器852可以為具有例如提供主時鐘和次時鐘的兩個獨 立振蕩器的系統(tǒng)提供TRNG。讀介質(zhì)來提供。機器可讀介質(zhì)可包括但不限于閃存、光盤、光盤只讀存 儲器(CD-ROM )、數(shù)字通用/視頻盤(DVD) ROM、隨機存取存儲器 (RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存 儲器(EEPROM)、磁卡或光卡、傳播介質(zhì)或適合于存儲電子指令的其它類 型機器可讀介質(zhì)。例如,本發(fā)明的實施例可作為計算機程序下載,其可 通過通信鏈路(如調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)以在載波或其它傳播介質(zhì)中 實施的數(shù)據(jù)信號的方式從遠程計算機(如服務(wù)器)傳輸?shù)秸埱笥嬎銠C(如 客戶機)。應(yīng)意識到的是,說明書通篇提到的"一個實施例"或"實施例"是指結(jié)合 該實施例描述的特定的特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少一個實施 例中。因此,要強調(diào)和應(yīng)意識到的是,在說明書的不同部分中兩次或更 多次提到的"實施例"或"一個實施例"或"可選實施例"并不一定都指同一 實施例。而且,該特定的特征、結(jié)構(gòu)或特性可在本發(fā)明的一個或多個實 施例中適當?shù)亟M合。類似地,應(yīng)意識到的是,在本發(fā)明實施例的上述描述中,有時會將各 種特征一起組合到單個實施例、附圖或其描述中,以便筒化本公開,幫助理解一個或多個各種發(fā)明方面。然而,公開的這個方法并不要解釋為 反映本發(fā)明,所要求的主題需要比每項權(quán)利要求中明確闡述的更多的特 征。而是,如以下權(quán)利要求書所反映的,發(fā)明的方面在于比單個前面所 公開實施例的所有特征要少。因此,具體實施方式
后的權(quán)利要求書由此 明確地結(jié)合到該具體實施方式
中。
權(quán)利要求
1. 一種集成電路,包括第一振蕩器;第二振蕩器,其中第一和第二振蕩器用獨立的硬件實現(xiàn);以及隨機數(shù)發(fā)生器,與第一和第二振蕩器耦合,其中所述隨機數(shù)發(fā)生器接收第一和第二振蕩器的熱噪聲之差,并至少部分地基于數(shù)字信號處理(DSP)操作生成隨機數(shù)。
2、 如權(quán)利要求1所述的集成電路,其中第一振蕩器確定應(yīng)對第二振 蕩器的振蕩計數(shù)多長時間,以形成所測量噪聲的 一個樣本。
3、 如權(quán)利要求1所述的集成電路,其中第一振蕩器提供第一系統(tǒng)時 鐘,并且第二振蕩器提供第二系統(tǒng)時鐘。
4、 如權(quán)利要求1所述的集成電路,其中所述隨機數(shù)發(fā)生器還包括 緩沖器,存儲所測量噪聲。
5、 如權(quán)利要求4所述的集成電路,其中所述隨機數(shù)發(fā)生器還包括 笫一DSP操作,使熱噪聲的功率頻譜變平,以獲得具有高熱噪聲功率與偽隨機過程功率之比的頻帶中的熱噪聲的近似平譜。
6、 如權(quán)利要求5所述的集成電路,其中第一DSP操作為無限脈沖響 應(yīng)(IIR)濾波器。
7、 如權(quán)利要求5所述的集成電路,其中所述隨機數(shù)發(fā)生器還包括 第二DSP操作,使用基于數(shù)字信號處理(DSP)的濾波器將具有高
8、 如權(quán)利要求7所述的集成電路,其中第二DSP操作為有限脈沖響 應(yīng)(FIR)濾波器。
9、 如權(quán)利要求7所述的集成電路,其中第一和第二DSP操作用固件實現(xiàn)。
10、 一種方法,包括將在第二振蕩器所定義的連續(xù)時間間隔期間發(fā)生的第一振蕩器的多個振蕩存儲成所測量噪聲序列;使用基于數(shù)字信號處理(DSP)的濾波器對所測量噪聲序列進行濾波, 以產(chǎn)生熱噪聲頻帶,其中對所測量噪聲序列進行濾波包括使具有高熱噪聲功率與偽隨機過程功率之比的頻帶中的熱噪聲頻譜變平;使用基于數(shù)字信號處理(DSP)的濾波器將所述熱噪聲頻帶分成N 個子帶;以及至少部分地基于所述N個子帶的數(shù)字信號的實部和虛部與零的比較 來生成二進制數(shù)字序列。
11、 如權(quán)利要求IO所述的方法,其中所測量噪聲由兩個獨立的振蕩 器提供。
12、 如權(quán)利要求11所述的方法,其中所述兩個獨立的振蕩器中的每 個都是通用振蕩器。
13、 如權(quán)利要求10所述的方法,其中使用基于數(shù)字信號處理(DSP) 的濾波器對所測量噪聲進行濾波包括使用無限脈沖響應(yīng)(IIR)濾波器對所測量振蕩器噪聲進行濾波。
14、 如權(quán)利要求10所述的方法,其中使用基于數(shù)字信號處理(DSP) 的濾波器將具有高能量熱噪聲的頻帶分成N個子帶包括使用有限脈沖響應(yīng)(FIR)濾波器將具有高能量熱噪聲的頻帶分成N個子帶。
15、 一種系統(tǒng),包括集成電路,包含 第一振蕩器;第二振蕩器,其中第一和第二振蕩器用獨立的硬件實現(xiàn);以及 隨機數(shù)發(fā)生器,與第一和第二振蕩器耦合,其中所迷隨機數(shù)發(fā) 生器接收來自第一和第二振蕩器的熱噪聲,并至少部分地基于數(shù)字信號 處理(DSP)操作來生成隨機數(shù);以及 無線收發(fā)器,與所述集成電路耦合。
16、 如權(quán)利要求15所述的系統(tǒng),其中所述隨機數(shù)發(fā)生器包括第一DSP操作,對所測量噪聲進行濾波以產(chǎn)生熱噪聲頻帶,其中對 所測量噪聲進行濾波包括使具有高熱噪聲功率與偽隨機過程功率之比的 頻帶中的熱噪聲頻譜變平。
17、 如權(quán)利要求16所述的系統(tǒng),其中第一DSP操作為無限脈沖響應(yīng) (IIR)濾波器。
18、 如權(quán)利要求15所述的系統(tǒng),其中所述隨機數(shù)發(fā)生器還包括 第二DSP操作,使用基于數(shù)字信號處理(DSP)的濾波器將具有高能量熱噪聲的頻帶分成N個子帶。
19、 如權(quán)利要求18所述的系統(tǒng),其中第二DSP操作為有限脈沖響應(yīng) (FIR)濾波器。
全文摘要
本發(fā)明的實施例一般針對用于基于振蕩器噪聲的隨機數(shù)發(fā)生器(RNG)的系統(tǒng)、方法和裝置。在一些實施例中,RNG對受偽隨機過程效應(yīng)影響的兩個獨立振蕩器的熱噪聲效應(yīng)進行緩沖,并將熱噪聲與其它效應(yīng)分離。然后,RNG可至少部分地基于數(shù)字信號處理算法將熱噪聲轉(zhuǎn)換成隨機二進制序列。
文檔編號H03H17/02GK101276267SQ20081009633
公開日2008年10月1日 申請日期2008年3月24日 優(yōu)先權(quán)日2007年3月23日
發(fā)明者A·克拉夫特索夫 申請人:英特爾公司