專(zhuān)利名稱(chēng):基于數(shù)控振蕩器的數(shù)字隨機(jī)數(shù)生成器的制作方法
技術(shù)領(lǐng)域:
本公開(kāi)通常涉及隨機(jī)數(shù)生成,并特別涉及數(shù)字隨機(jī)數(shù)生成器(DRNG)電路。
背景技術(shù):
隨機(jī)數(shù)生成(RNG)過(guò)程在多種應(yīng)用中廣泛使用,例如密碼系統(tǒng)和計(jì)算機(jī)仿真。一 些RNG電路是模擬的,在其中,隨機(jī)性典型地由模擬電子部件的隨機(jī)變化的物理特性引入。 其他RNG電路是全數(shù)字的。
發(fā)明內(nèi)容
在此描述的實(shí)施例提供用于隨機(jī)數(shù)生成的系統(tǒng),所述系統(tǒng)包括數(shù)字振蕩器電路,該電路具有一組可用配置,并且可操作來(lái)根據(jù)從該組中選擇的 當(dāng)前配置生成隨機(jī)數(shù)序列;以及隨機(jī)化電路,該電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于數(shù)字振蕩器電路的可用配置的值的偽隨 機(jī)流,并且根據(jù)值的偽隨機(jī)流控制數(shù)字振蕩器電路在可用配置之間交替。在一些實(shí)施例中,數(shù)字振蕩器電路包括具有可配置反饋抽頭(feedback taps)的 環(huán)形振蕩器,并且可用配置中的每一個(gè)定義反饋抽頭的各自設(shè)置。該組可用配置可以包括 至少第一和第二可用配置,所述第一和第二可用配置將環(huán)形振蕩器配置成分別具有不同的 第一和第二長(zhǎng)度。在公開(kāi)實(shí)施例中,隨機(jī)化電路包括線(xiàn)性反饋移位寄存器(LFSR)。在另一 實(shí)施例中,隨機(jī)化電路可操作來(lái)根據(jù)非線(xiàn)性函數(shù)產(chǎn)生值的偽隨機(jī)流。在又一實(shí)施例中,隨機(jī)化電路可操作來(lái)產(chǎn)生與時(shí)鐘信號(hào)同步的值的流,并且數(shù)字 振蕩器電路可操作來(lái)基于隨機(jī)數(shù)序列產(chǎn)生具有隨機(jī)抖動(dòng)的時(shí)鐘信號(hào),并且用該時(shí)鐘信號(hào)驅(qū) 動(dòng)隨機(jī)化電路。在再一實(shí)施例中,數(shù)字振蕩器電路包括多個(gè)數(shù)字振蕩器電路,該多個(gè)數(shù)字振蕩器 電路可操作來(lái)根據(jù)從它們各自的可用配置的組中選擇的多個(gè)當(dāng)前配置產(chǎn)生各自的多個(gè)隨 機(jī)數(shù)序列,隨機(jī)化電路包括多個(gè)隨機(jī)化電路,該多個(gè)隨機(jī)化電路可操作來(lái)產(chǎn)生多個(gè)各自的 偽隨機(jī)值流,并且控制各數(shù)字振蕩器電路根據(jù)各自的流在各組中的可用配置之間交替,并 且系統(tǒng)包括輸出電路,該輸出電路被耦合來(lái)處理多個(gè)隨機(jī)數(shù)序列,以產(chǎn)生復(fù)合隨機(jī)數(shù)序列。在一些實(shí)施例中,系統(tǒng)包括交叉隨機(jī)化電路,該電路被耦合來(lái)處理由多個(gè)隨機(jī)化 電路產(chǎn)生的多個(gè)值流中的至少一個(gè),并且響應(yīng)于已處理的流控制隨機(jī)化電路中的一個(gè)或多 個(gè),使得在多個(gè)流之間弓I入相關(guān)性。在實(shí)施例中,輸出電路還被耦合來(lái)接受由隨機(jī)化電路產(chǎn) 生的偽隨機(jī)值流,并且響應(yīng)于偽隨機(jī)值流產(chǎn)生復(fù)合隨機(jī)數(shù)序列。額外提供了用于隨機(jī)數(shù)生成的方法,包括操作具有一組可用配置的數(shù)字振蕩器電路,來(lái)根據(jù)從該組中選擇的當(dāng)前配置生成 隨機(jī)數(shù)序列;產(chǎn)生對(duì)應(yīng)于數(shù)字振蕩器電路的可用配置的值的偽隨機(jī)流;以及根據(jù)值的偽隨機(jī)流控制數(shù)字振蕩器電路在可用配置之間交替。
還提供了密碼裝置,包括密碼模塊,該模塊被耦合來(lái)使用隨機(jī)數(shù)序列對(duì)數(shù)據(jù)執(zhí)行密碼操作;隨機(jī)數(shù)生成模塊,包括數(shù)字振蕩器電路,該電路具有一組 可用配置,并可操作來(lái)根據(jù)從該組中選擇的當(dāng) 前配置生成隨機(jī)數(shù)序列;以及隨機(jī)化電路,該電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于數(shù)字振蕩器電路的可用配置的值的偽隨 機(jī)流,并且根據(jù)值的偽隨機(jī)流控制數(shù)字振蕩器電路在可用配置之間交替。還提供了存儲(chǔ)器存儲(chǔ)裝置,包括存儲(chǔ)器;密碼模塊,該密碼模塊被耦合來(lái)使用隨機(jī)數(shù)序列對(duì)與存儲(chǔ)器交換的數(shù)據(jù)執(zhí)行密碼 操作;以及隨機(jī)數(shù)生成模塊,包括數(shù)字振蕩器電路,該電路具有一組可用配置,并可操作來(lái)根據(jù)從該組中選擇的當(dāng) 前配置生成隨機(jī)數(shù)序列;隨機(jī)化電路,該電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于數(shù)字振蕩器電路的可用配置的值的偽隨 機(jī)流,并且根據(jù)值的偽隨機(jī)流控制數(shù)字振蕩器電路在可用配置之間交替。
結(jié)合附圖,從其實(shí)施例的以下詳細(xì)描述中將更完全地理解本公開(kāi),在附圖中圖1是示意性圖示說(shuō)明數(shù)據(jù)存儲(chǔ)設(shè)備的框圖;圖2是示意性圖示說(shuō)明數(shù)字隨機(jī)數(shù)生成器(DRNG)的框圖;圖3A-3C是示意性圖示說(shuō)明數(shù)控振蕩器(DCO)的框圖;以及圖4是示意性圖示說(shuō)明用于隨機(jī)數(shù)生成方法的流程圖。
具體實(shí)施例方式概述下面描述的實(shí)施例提供用于生成隨機(jī)數(shù)序列的改進(jìn)的方法和系統(tǒng)。在一些實(shí)施例 中,數(shù)字隨機(jī)數(shù)生成器(DRNG)包括一個(gè)或多個(gè)數(shù)控振蕩器(DCO)。每個(gè)DCO產(chǎn)生具有隨機(jī) 相位或頻率抖動(dòng)的輸出波形。DCO的輸出由輸出模塊組合,該輸出模塊對(duì)輸出采樣并產(chǎn)生復(fù) 合隨機(jī)數(shù)序列。每個(gè)DCO具有多種可能的(可用)配置,并且在任何給定的時(shí)間可以選擇工作在 可用配置中的任何一種。DCO由各隨機(jī)化模塊控制。每個(gè)隨機(jī)化模塊生成偽隨機(jī)值的流,所 述偽隨機(jī)值作為輸入被提供到各DCO。DCO根據(jù)流中的當(dāng)前偽隨機(jī)值來(lái)設(shè)置它的當(dāng)前配置。 從而,DCO以偽隨機(jī)方式在可用配置中交替。偽隨機(jī)配置切換提高由DCO產(chǎn)生的隨機(jī)數(shù)序 列的隨機(jī)性水平。在一些實(shí)施例中,隨機(jī)化模塊生成與DCO產(chǎn)生的時(shí)鐘信號(hào)同步的偽隨機(jī)值流。從 而,DCO輸出的隨機(jī)頻率/相位抖動(dòng)被引入到隨機(jī)化電路的時(shí)鐘信號(hào),并且接著通過(guò)偽隨機(jī) 值流放大并且重引入到DC0。因此,隨機(jī)化模塊可以被視為放大功能,其放大DCO的隨機(jī)抖動(dòng)。
在一些實(shí)施例中,DRNG包括交叉隨機(jī)化模塊,該交叉隨機(jī)化模塊在隨機(jī)化模塊生 成的不同偽隨機(jī)值流之間引入相關(guān)性。繼而,該相關(guān)性引起不同DCO輸出之間的相關(guān)性。在此描述的方法和系統(tǒng)提供與已知電路相比實(shí)現(xiàn)更高隨機(jī)性水平的DRNG電路。 與使用常規(guī)RNG電路的加密設(shè)備相比,使用所公開(kāi)的RNG電路的加密設(shè)備典型地更好地 適合目前的加密標(biāo)準(zhǔn),并且不易受到旁路攻擊和其他未授權(quán)解碼的嘗試。由于在此描述的 DRNG電路是全數(shù)字的,所以它們對(duì)于單元到單元的變化和不同制造工藝之間的變化相對(duì)不 敏感。從而,在此描述的DRNG電路可以被實(shí)施為與工藝無(wú)關(guān)的核,可以用簡(jiǎn)單的方式將該 核從一種器件制造工藝遷移到另一種。雖然在此描述的實(shí)施例主要解決密碼和數(shù)據(jù)存儲(chǔ)應(yīng)用,但是本公開(kāi)的原理可以被 用在包含隨機(jī)數(shù)生成的其他應(yīng)用中,例如在安全通信、計(jì)算機(jī)仿真、計(jì)算機(jī)游戲和許多其他 應(yīng)用中。系統(tǒng)描述圖1是根據(jù)示例性實(shí)施例示意性圖示說(shuō)明數(shù)據(jù)存儲(chǔ)設(shè)備20的框圖。設(shè)備20可 以包括例如可移除存儲(chǔ)設(shè)備(例如鑰匙盤(pán)(Disk-on-Key)、存儲(chǔ)卡或智能卡,或任何其他合 適的設(shè)備類(lèi)型)。設(shè)備20與主機(jī)24通信,該主機(jī)24可以包括例如計(jì)算設(shè)備、數(shù)字照相機(jī)、 移動(dòng)電話(huà)或存儲(chǔ)數(shù)據(jù)的任何其他合適的主機(jī)系統(tǒng)。主機(jī)24將用于存儲(chǔ)的數(shù)據(jù)發(fā)送到設(shè)備 20,并且檢索存儲(chǔ)在存儲(chǔ)設(shè)備中的數(shù)據(jù)。存儲(chǔ)設(shè)備20包括存儲(chǔ)器28 (在本示例中其包括閃 存)。在替換實(shí)施例中,存儲(chǔ)器28可以包括任何其他合適類(lèi)型的易失性或非易失性存儲(chǔ)器。密碼模塊32對(duì)寫(xiě)入存儲(chǔ)器28和從存儲(chǔ)器28讀出的數(shù)據(jù)以及與主機(jī)24交換的數(shù) 據(jù)執(zhí)行密碼操作。例如,模塊32可以應(yīng)用操作,例如本領(lǐng)域已知的數(shù)據(jù)加密、解密、電子簽 名和/或簽名驗(yàn)證。模塊32可以應(yīng)用任何合適的密碼算法,例如數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、三 重DES(3-DES)、Rivest、Shamir和Adleman(RSA)、高級(jí)加密標(biāo)準(zhǔn)(AES)和/或任何其他合 適的密碼處理,用于執(zhí)行密碼操作。模塊32執(zhí)行的密碼處理使用數(shù)字隨機(jī)數(shù)生成器(DRNG)電路36產(chǎn)生的隨機(jī)數(shù)序 列。DRNG 36由控制器40控制,該控制器還控制和管理存儲(chǔ)設(shè)備20的其他部件的工作。密 碼模塊32、RNG電路36和控制器40典型地以硬件方式實(shí)現(xiàn),例如以一個(gè)或多個(gè)專(zhuān)用集成電 路(ASIC)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)實(shí)現(xiàn)。控制器40可以以硬件或固件方式實(shí)現(xiàn),和/ 或使用在合適的處理器上運(yùn)行的軟件實(shí)現(xiàn)。DRNG 配置模塊32執(zhí)行的密碼操作的質(zhì)量和強(qiáng)度典型地取決于DRNG 36產(chǎn)生的數(shù)序列的隨 機(jī)性水平??梢允褂弥甘倦S機(jī)數(shù)序列的值的不可預(yù)測(cè)性的任何合適的度量來(lái)量化隨機(jī)性水 平,例如序列的每輸出比特的熵。為了增加DRNG 36產(chǎn)生的隨機(jī)數(shù)序列的隨機(jī)性水平,DRNG包括數(shù)控振蕩器(DCO), 該DCO被控制來(lái)以偽隨機(jī)方式在多種可能的配置之間交替。偽隨機(jī)配置切換去除可能出現(xiàn) 在DCO的任何單個(gè)配置中的可預(yù)測(cè)數(shù)據(jù)模式。圖2是根據(jù)示例性實(shí)施例示意性圖示說(shuō)明DRNG 36的框圖。DRNG 36包括一個(gè)或 多個(gè)DCO 48。每個(gè)DCO產(chǎn)生具有隨機(jī)相位和/或頻率抖動(dòng)的輸出波形。每個(gè)DCO具有多種 可能的配置,并且可以被控制來(lái)在任何給定的時(shí)間工作在配置中的任何一種。當(dāng)工作在不 同的配置時(shí),RNG典型地產(chǎn)生具有不同隨機(jī)性特性的輸出信號(hào)。
在一些實(shí)施例中,DCO 48包括具有多個(gè)反饋抽頭的環(huán)形振蕩器,該反饋抽頭可以 被接通和斷開(kāi),以產(chǎn)生不同配置。在下面的圖3A-3C中更詳細(xì)描述了示例性可配置環(huán)形振 蕩器。替換地,DCO 48可以包括輸出具有隨機(jī)特性的任何其他適合的類(lèi)型的外部可配置振 蕩器。例如,在 2007 年 10 月 30 日提交的、題為“Configurable Random Number Generator” 的以色列專(zhuān)利申請(qǐng)187035中描述了可以用于該目的的若干類(lèi)型的外部可配置振蕩器,通 過(guò)引用將該專(zhuān)利申請(qǐng)合并到此。每個(gè)DCO 48由各隨機(jī)化模塊52控制,該模塊52設(shè)置在任何給定的時(shí)間DCO工作 的當(dāng)前配置。隨機(jī)化模塊52產(chǎn)生偽隨機(jī)值的流并且將該流提供到DCO 48,并且DCO根據(jù)隨 機(jī)化模塊提供的當(dāng)前偽隨機(jī)值流設(shè)置其當(dāng)前配置。隨機(jī)化模塊在流中產(chǎn)生的可能的偽隨機(jī)值的集合對(duì)應(yīng)于DCO的可能的配置的集 合,使得每個(gè)值選擇某個(gè)配置。例如,隨機(jī)化模塊產(chǎn)生的偽隨機(jī)值流可以包括8位字,即256 個(gè)不同的偽隨機(jī)值。在該示例中,DCO可以包括256種可能的配置,使得該流中的每個(gè)偽隨 機(jī)值選擇對(duì)應(yīng)的DCO配置。在一些實(shí)施例中,隨機(jī)化模塊48包括線(xiàn)性反饋移位寄存器(LFSR),正如本領(lǐng) 域中已知的,LFSR在每個(gè)時(shí)鐘周期產(chǎn)生偽隨機(jī)值。替換地,隨機(jī)化電路可以評(píng)估非線(xiàn)性 函數(shù),例如T函數(shù),并且根據(jù)該函數(shù)生成偽隨機(jī)值流。例如,在Klimov和Shamir的文章 “Cryptographic Applications of T-Functions" (10th Annual International Workshop on Selected Areas in Cryptography (SAC),渥太華,加拿大,2003 年 8 月 14-15 日,248-261 頁(yè))中描述了 T函數(shù),通過(guò)引用將該文章合并到此。進(jìn)一步替換地,隨機(jī)化模塊可以使用生 成值的偽隨機(jī)流的任何其他合適的裝置。隨機(jī)化模塊典型地生成與時(shí)鐘信號(hào)同步的偽隨機(jī)值流。在一些實(shí)施例中,時(shí)鐘信 號(hào)由DCO產(chǎn)生。由于DCO輸出包含隨機(jī)頻率/相位抖動(dòng),因此該抖動(dòng)被引入到隨機(jī)化電路 用來(lái)生成偽隨機(jī)值流的時(shí)鐘信號(hào)。隨機(jī)化模塊對(duì)DCO的相對(duì)小的變化(抖動(dòng))產(chǎn)生杠桿作 用(leverages),通過(guò)偽隨機(jī)值流放大該抖動(dòng)并且將它重引入到DC0,使得DCO輸出抖動(dòng)將 更大并且更隨機(jī)。從而,隨機(jī)化模塊可以被視為放大DCO的隨機(jī)抖動(dòng)的放大功能。在圖2中所示的示例性實(shí)施例中,DRNG 36包括兩個(gè)DCO 48和兩個(gè)對(duì)應(yīng)的隨機(jī)化 模塊52。DRNG包括輸出模塊56,該輸出模塊56對(duì)DCO的輸出采樣,以產(chǎn)生各自的隨機(jī)數(shù) 序列。模塊56組合兩個(gè)DCO產(chǎn)生的隨機(jī)數(shù)序列,以產(chǎn)生復(fù)合偽隨機(jī)序列。該復(fù)合序列作為 RNG輸出提供。輸出模塊56也可以將白化(whitening)函數(shù)(例如安全散列(hashing)函數(shù))應(yīng) 用到復(fù)合數(shù)序列。白化操作典型地修改復(fù)合序列的統(tǒng)計(jì)分布并且增加它的隨機(jī)性水平。白 化函數(shù)典型地是不可逆的,即輸出序列的分析提供少許或不提供關(guān)于輸入序列的信息。白 化函數(shù)也可以是平衡的,即例如通過(guò)稀釋序列,從輸出序列中去除偏差。在DRNG包括單個(gè) DCO的實(shí)施例中,輸出模塊可以對(duì)DCO輸出采樣,并且將白化函數(shù)應(yīng)用到得到的隨機(jī)數(shù)序列 而不組合。在一些實(shí)施例中,輸出模塊56還接受隨機(jī)化模塊52產(chǎn)生的偽隨機(jī)值流,并且響應(yīng) 于DCO的輸出和隨機(jī)化模塊而產(chǎn)生復(fù)合輸出偽隨機(jī)序列。由于該配置向輸出模塊提供額外 的偽隨機(jī)源,因此對(duì)于產(chǎn)生高輸出帶寬特別有用。在一些實(shí)施例中,DRNG包括交叉隨機(jī)化模塊60,該模塊60在隨機(jī)化模塊52生成的不同偽隨機(jī)值流之間引入相關(guān)性。繼而,該相關(guān)性導(dǎo)致DCO 48產(chǎn)生的不同隨機(jī)數(shù)序列之 間的相關(guān)性。(雖然隨機(jī)數(shù)序列實(shí)際上由輸出模塊通過(guò)對(duì)DCO的模擬輸出采樣產(chǎn)生,但是為 了清晰,隨后的描述有時(shí)將序列稱(chēng)為DCO產(chǎn)生的序列。因此,DCO和輸出模塊可以被共同視 為產(chǎn)生隨機(jī)數(shù)序列的數(shù)字振蕩器電路)。交叉隨機(jī)化模塊60從模塊52接受不同的偽隨機(jī)值流作為輸入。模塊60將特定 的混合函數(shù)(例如XOR函數(shù))應(yīng)用到輸入,以產(chǎn)生一個(gè)或多個(gè)觸發(fā)輸出。該輸出作為輸入 被反饋到隨機(jī)化模塊。典型地但非必需地,被提供到不同隨機(jī)化模塊的觸發(fā)是互不相同的。
例如,當(dāng)隨機(jī)化模塊包含LFSR時(shí),觸發(fā)輸出被提供到LFSR的輸入。替換地,交叉 隨機(jī)化模塊可以應(yīng)用任何其他裝置用于處理偽隨機(jī)值流,并且基于已處理的流控制隨機(jī)化 模塊,使得在不同流之間引入相關(guān)性。當(dāng)DRNG包括多個(gè)隨機(jī)化模塊時(shí),模塊60可以處理流 的任何期望的子集和/或控制隨機(jī)化模塊的任何期望的子集。圖2中所示的示例性DRNG配置是純粹出于概念清晰而選擇的示例性配置。在替 換實(shí)施例中,DRNG可以包括任何合適類(lèi)型的、任何期望數(shù)量的DCO和隨機(jī)化模塊。DRNG可 以執(zhí)行額外的功能,例如各種控制功能、接口功能和/或錯(cuò)誤檢測(cè)功能。外部可配置環(huán)形振蕩器圖3A-3C是根據(jù)示例性實(shí)施例圖示說(shuō)明數(shù)控振蕩器(DCO) 62的框圖。DCO 62可以 被用來(lái)例如實(shí)現(xiàn)上面的圖2的DRNG配置中的DC048。DCO 62包括環(huán)形振蕩器,即許多邏輯 反相器64,其以環(huán)狀級(jí)聯(lián)方式連接以形成環(huán)形。DCO的輸出在兩個(gè)邏輯電平(表示為“1” 和“0”)之間振蕩,從而產(chǎn)生二進(jìn)制數(shù)序列。振蕩頻率通常由反相器64的數(shù)量和每個(gè)反相 器的延遲確定。如在本領(lǐng)域中已知的,反相器64的相位抖動(dòng)導(dǎo)致DCO輸出具有隨機(jī)特性。環(huán)形振蕩器包括稱(chēng)為抽頭的一個(gè)或多個(gè)反饋連接。每個(gè)反饋抽頭將某個(gè)反相器64 的輸出連接到環(huán)中某個(gè)反相器的輸入??梢允褂猛獠垦b置接通和斷開(kāi)反饋抽頭中的一個(gè)或 多個(gè)。在本示例中,電路62包括可以被接通和斷開(kāi)的四個(gè)開(kāi)關(guān)68A. . . 68D。開(kāi)關(guān)68A. . . 68D 的每個(gè)特定的設(shè)置稱(chēng)為DCO的配置??梢岳斫?,修改DCO配置典型地修改DCO產(chǎn)生的隨機(jī) 數(shù)序列的隨機(jī)性水平。當(dāng)DCO 62由隨機(jī)模塊(例如圖2的模塊52)控制時(shí),隨機(jī)化模塊產(chǎn)生的每個(gè)可能 的偽隨機(jī)值對(duì)應(yīng)于開(kāi)關(guān)68A. . . 68D的特定設(shè)置。對(duì)于被提供到DCO的任何給定的偽隨機(jī)值, DCO將開(kāi)關(guān)設(shè)為合適設(shè)置。從而,當(dāng)隨機(jī)化模塊用偽隨機(jī)值的流驅(qū)動(dòng)DCO時(shí),DCO以偽隨機(jī) 方式在不同配置(開(kāi)關(guān)68A. . . 68D的不同設(shè)置)之間交替。在一些實(shí)施例中,可以通過(guò)修改環(huán)形振蕩器的長(zhǎng)度(即參與環(huán)的反相器數(shù)量)來(lái) 修改環(huán)形振蕩器配置。例如,開(kāi)關(guān)可以旁路或無(wú)效反相器中的一個(gè)或更多。圖3A-3C示出了 DCO 62的三種不同配置,即開(kāi)關(guān)68A. . . 68D的三種不同設(shè)置,該 三種不同設(shè)置產(chǎn)生具有不同隨機(jī)性特性的隨機(jī)數(shù)序列。圖3A-3C的環(huán)形振蕩器被示出為純粹出于概念清晰而選擇的示例。在替換實(shí)施例 中,可以使用具有任何數(shù)量的反相器和反饋抽頭的任何其他類(lèi)型的環(huán)形振蕩器。在一些實(shí) 施例中,僅反饋抽頭的子集可切換。替換地,也可以使用修改環(huán)形振蕩器配置的任何其他機(jī) 制。環(huán)形振蕩器可以包括邏輯反相器或任何其他適合類(lèi)型的延遲元件。在一些實(shí)施例 中,環(huán)形振蕩器包含2η個(gè)延遲元件,并且包括η位輸入,用于接受η位偽隨機(jī)值流。該η位偽隨機(jī)值確定2n個(gè)不同的延遲傳播路徑,即輸出具有不同時(shí)間周期的波形。隨機(jī)數(shù)生成方法描述圖4是根據(jù)示例性實(shí)施例圖示說(shuō)明隨機(jī)數(shù)生成方法的流程圖。該方法始于隨機(jī)化 模塊52在流生成步驟70生成偽隨機(jī)值流。該流作為輸入被提供到DCO 48。在交替步驟 74,DCO根據(jù)偽隨機(jī)值流在它的不同可用配置之間交替。在序列生成步驟78,DCO生成輸出 波形,該輸出波形由輸出模塊56采樣,以產(chǎn)生隨機(jī)數(shù)序列。由于DCO以偽隨機(jī)方式在不同 配置之間交替,因此增加了隨機(jī)數(shù)序列的隨機(jī)性水平。如上面解釋的,可以由DCO的抖動(dòng)輸出產(chǎn)生用于生成偽隨機(jī)值流的時(shí)鐘信號(hào)。額 外地或替換地,可以操作兩個(gè)或更多個(gè)DCO和隨機(jī)化模塊,并且組合它們的輸出??梢酝ㄟ^(guò) 交叉隨機(jī)化模塊在不同序列之間弓I入相關(guān)性。雖然在此描述的實(shí)施例主要解決密碼應(yīng)用,但是本公開(kāi)的原理可以被用在包含隨 機(jī)數(shù)生成的其他應(yīng)用中,例如計(jì)算機(jī)仿真、通信系統(tǒng)、計(jì)算機(jī)游戲和許多其他應(yīng)用。因此應(yīng)理解,上面描述的實(shí)施例是作為示例被引用,本公開(kāi)不限于上面特別示出 和描述的內(nèi)容。而是,本公開(kāi)的范圍包括上面描述的各種特征的組合與子組合及其變化和 修改,所述組合、子組合、變化和修改是本領(lǐng)域技術(shù)人員在閱讀前述描述之后將想到的,并 且未在現(xiàn)有技術(shù)中公開(kāi)。
權(quán)利要求
一種用于隨機(jī)數(shù)生成的系統(tǒng),包括數(shù)字振蕩器電路,所述數(shù)字振蕩器電路具有一組可用配置,并且可操作來(lái)根據(jù)從所述組中選擇的當(dāng)前配置生成隨機(jī)數(shù)序列;以及隨機(jī)化電路,所述隨機(jī)化電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于所述數(shù)字振蕩器電路的所述可用配置的值的偽隨機(jī)流,并且根據(jù)所述值的偽隨機(jī)流控制所述數(shù)字振蕩器電路在所述可用配置之間交替。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述數(shù)字振蕩器電路包括具有可配置反饋抽頭的 環(huán)形振蕩器,以及其中所述可用配置中的每一個(gè)定義所述反饋抽頭的各自設(shè)置。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中該組可用配置包括至少第一和第二可用配置,所 述第一和第二可用配置將所述環(huán)形振蕩器配置成分別具有不同的第一和第二長(zhǎng)度。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述隨機(jī)化電路包括線(xiàn)性反饋移位寄存器 (LFSR)。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述隨機(jī)化電路可操作來(lái)根據(jù)非線(xiàn)性函數(shù)產(chǎn)生所 述值的偽隨機(jī)流。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述隨機(jī)化電路可操作來(lái)產(chǎn)生與時(shí)鐘信號(hào)同步的 所述值的流,以及其中所述數(shù)字振蕩器電路可操作來(lái)基于所述隨機(jī)數(shù)序列產(chǎn)生具有隨機(jī)抖 動(dòng)的所述時(shí)鐘信號(hào),并且用所述時(shí)鐘信號(hào)驅(qū)動(dòng)所述隨機(jī)化電路。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述數(shù)字振蕩器電路包括多個(gè)數(shù)字振蕩器電路, 所述多個(gè)數(shù)字振蕩器電路可操作來(lái)根據(jù)從它們各自的可用配置的組中選擇的多個(gè)當(dāng)前配 置來(lái)產(chǎn)生各自的多個(gè)隨機(jī)數(shù)序列,其中所述隨機(jī)化電路包括多個(gè)隨機(jī)化電路,所述多個(gè)隨 機(jī)化電路可操作來(lái)產(chǎn)生多個(gè)各自的偽隨機(jī)值流,并且根據(jù)所述各自的流控制所述各數(shù)字振 蕩器電路在所述各組中的可用配置之間交替,并且所述系統(tǒng)包括輸出電路,所述輸出電路 被耦合來(lái)處理所述多個(gè)隨機(jī)數(shù)序列,以產(chǎn)生復(fù)合隨機(jī)數(shù)序列。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),并且包括交叉隨機(jī)化電路,所述交叉隨機(jī)化電路被耦 合來(lái)處理由所述多個(gè)隨機(jī)化電路產(chǎn)生的所述多個(gè)值流中的至少一個(gè),并且響應(yīng)于所述已處 理的流控制所述隨機(jī)化電路中的一個(gè)或多個(gè),使得在所述多個(gè)流中引入相關(guān)性。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述輸出電路還被耦合來(lái)接受由所述隨機(jī)化電路 產(chǎn)生的所述偽隨機(jī)值流,并且響應(yīng)于所述偽隨機(jī)值流產(chǎn)生所述復(fù)合隨機(jī)數(shù)序列。
10.一種用于隨機(jī)數(shù)生成的方法,包括操作具有一組可用配置的數(shù)字振蕩器電路來(lái)根據(jù)從所述組中選擇的當(dāng)前配置生成隨 機(jī)數(shù)序列;產(chǎn)生對(duì)應(yīng)于所述數(shù)字振蕩器電路的可用配置的值的偽隨機(jī)流;以及根據(jù)所述值的偽隨機(jī)流控制所述數(shù)字振蕩器電路在所述可用配置之間交替。
11.根據(jù)權(quán)利要求10所述的方法,其中所述數(shù)字振蕩器電路包括具有可配置反饋抽頭 的環(huán)形振蕩器,以及其中所述可用配置中的每一個(gè)定義所述反饋抽頭的各自設(shè)置。
12.根據(jù)權(quán)利要求11所述的方法,其中該組可用配置包括至少第一和第二可用配置, 所述第一和第二可用配置將所述環(huán)形振蕩器配置成分別具有不同的第一和第二長(zhǎng)度。
13.根據(jù)權(quán)利要求10所述的方法,其中產(chǎn)生所述值的偽隨機(jī)流包括通過(guò)線(xiàn)性反饋移位 寄存器(LFSR)生成所述流。
14.根據(jù)權(quán)利要求10所述的方法,其中產(chǎn)生所述值的偽隨機(jī)流包括根據(jù)非線(xiàn)性函數(shù)生 成所述流。
15.根據(jù)權(quán)利要求10所述的方法,其中操作所述數(shù)字振蕩器電路包括產(chǎn)生具有基于所 述隨機(jī)數(shù)序列的隨機(jī)抖動(dòng)的時(shí)鐘信號(hào),以及其中產(chǎn)生所述值的偽隨機(jī)流包括生成與所述時(shí) 鐘信號(hào)同步的所述流。
16.根據(jù)權(quán)利要求10所述的方法,其中操作所述數(shù)字振蕩器電路包括操作多個(gè)數(shù)字振 蕩器電路,所述多個(gè)數(shù)字振蕩器電路可操作來(lái)根據(jù)從它們各自的可用配置的組中選擇的多 個(gè)當(dāng)前配置產(chǎn)生各自的多個(gè)隨機(jī)數(shù)序列,其中產(chǎn)生所述值的偽隨機(jī)流包括產(chǎn)生多個(gè)各自的 偽隨機(jī)值流,使得根據(jù)所述各自的流控制所述各數(shù)字振蕩器電路在所述各組中的可用配置 之間交替,并且所述方法包括處理所述多個(gè)隨機(jī)數(shù)序列,以產(chǎn)生復(fù)合隨機(jī)數(shù)序列。
17.根據(jù)權(quán)利要求15所述的方法,并且包括通過(guò)處理所述流中的至少一個(gè)并且響應(yīng)于 所述已處理的流控制所述流中的一個(gè)或多個(gè)的生成,來(lái)在所述多個(gè)值流中引入相關(guān)性。
18.根據(jù)權(quán)利要求16所述的方法,其中處理所述多個(gè)隨機(jī)數(shù)序列還包括處理所述偽隨 機(jī)值流,以產(chǎn)生所述復(fù)合隨機(jī)數(shù)序列。
19.一種密碼裝置,包括密碼模塊,所述密碼模塊被耦合來(lái)使用隨機(jī)數(shù)序列對(duì)數(shù)據(jù)執(zhí)行密碼操作;以及隨機(jī)數(shù)生成模塊,包括數(shù)字振蕩器電路,所述數(shù)字振蕩器電路具有一組可用配置,并可操作來(lái)根據(jù)從所述組 中選擇的當(dāng)前配置生成所述隨機(jī)數(shù)序列;以及隨機(jī)化電路,所述隨機(jī)化電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于所述數(shù)字振蕩器電路的可用配置的 值的偽隨機(jī)流,并且根據(jù)所述值的偽隨機(jī)流控制所述數(shù)字振蕩器電路在所述可用配置之間 交替。
20.一種存儲(chǔ)器存儲(chǔ)裝置,包括存儲(chǔ)器;密碼模塊,所述密碼模塊被耦合來(lái)使用隨機(jī)數(shù)序列對(duì)與所述存儲(chǔ)器交換的數(shù)據(jù)執(zhí)行密 碼操作;以及隨機(jī)數(shù)生成模塊,包括數(shù)字振蕩器電路,所述數(shù)字振蕩器電路具有一組可用配置,并可操作來(lái)根據(jù)從所述組 中選擇的當(dāng)前配置生成所述隨機(jī)數(shù)序列;以及隨機(jī)化電路,所述隨機(jī)化電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于所述數(shù)字振蕩器電路的可用配置的 值的偽隨機(jī)流,并且根據(jù)所述值的偽隨機(jī)流控制所述數(shù)字振蕩器電路在所述可用配置之間 交替。
全文摘要
一種用于隨機(jī)數(shù)生成的系統(tǒng),其包括數(shù)字振蕩器電路,該數(shù)字振蕩器電路具有一組可用配置,并且可操作來(lái)根據(jù)從該組中選擇的當(dāng)前配置生成隨機(jī)數(shù)序列。該系統(tǒng)還包括隨機(jī)化電路,該隨機(jī)化電路可操作來(lái)產(chǎn)生對(duì)應(yīng)于數(shù)字振蕩器電路的可用配置的值的偽隨機(jī)流,并且根據(jù)值的偽隨機(jī)流控制數(shù)字振蕩器電路在可用配置之間交替。
文檔編號(hào)G06F7/58GK101965552SQ200980107347
公開(kāi)日2011年2月2日 申請(qǐng)日期2009年2月25日 優(yōu)先權(quán)日2008年3月4日
發(fā)明者B·多爾岡諾夫, I·德諾爾, L·明茲, M·柯恩 申請(qǐng)人:桑迪士克以色列公司