用于纯随机数发生器的系统和方法

文档序号:6422569阅读:208来源:国知局
专利名称:用于纯随机数发生器的系统和方法
技术领域
本发明涉及一种用于提供纯随机数发生器的方法。尤其,本发明涉及一种系统和方法,该系统和方法用于提供完全的数字和/或者数字化合成的纯随机数发生器,以使用任一标准的逻辑合成工具或可比技术在集成电路(IC)上引入(incorporation)纯随机数发生器。
在许多应用中使用随机数发生器,所述应用包括例如计算机安全、密码学、音频系统测试、位纠错测试和安全通信。随机数产生领域里的当前成果典型地需要模拟振荡器以得到频率的变化,或者需要亚稳态的触发器以提供一个不可预见的模式,或者需要模拟电路滤掉和放大热噪声,或者需要上述每项的某一组合。因此,期望提供一种用于设计纯随机数发生器(TRNG)的系统和/或者方法,该纯随机数发生器不需要任何上述的模拟部件和/或者亚稳态配置。同样也期望系统和/或者方法使用任何标准的技术便于TRNG的合成,引入在一个IC上。
本发明的一个目的是,提供一种用于产生纯随机数的系统和方法。这个系统和方法包含提供至少一个计数器、一个移位器,一个用于与计数器合作的第一振荡器,一个用于与移位器合作的第二个振荡器和一个用于与上述部件每一个合作的微处理器。
本发明的系统和方法提供了在不使用模拟时钟或亚稳态配置的情况下产生一个随机数,因为本发明时钟的产生由环形振荡器数字地控制,该环形振荡器是基于数字(高或者低)输入信号的频率扰动(frequency perturbation)而设计的,从而允许从纯数字信号中产生随机频率。因此,使用简单的计数器和移位器能产生随机数。使用任何标准的逻辑合成工具或可比技术,合成使用本发明的系统和方法设计的TRNG,用于引入在一个IC上。本发明的这些以及其他目的和优点是通过本发明的系统和方法而达到的。
参照一个说明性的实施方案随后详细的描述并结合下面所标号的图,可以比较全面的理解本发明。


图1是依照本发明的一个说明性的实施方案的系统的一个方块图。
图2是本发明的另一个说明性的实施方案的一个方块图。
图3是依照本发明的一个说明性的实施方案产生一个纯随机数电路的一个示意图。
图4是用于提供纯随机数的本发明方法的一个流程图。
用于产生随机数的传统系统使用振荡器、例如环形振荡器产生随机数。比较典型地,环形振荡器有奇数个门电路,这些门电路串联成一个环形,并且在一些情况下,这样的环形振荡器的一个门电路可以具有环中其他门电路的输出的一种组合作为一输入。环形振荡器在某一点被抽样以提供一随机数或一伪随机数。
尽管传统的TRNG能提供随机数和/或伪随机数,但是本领域技术人员认识到,许多所述TRNG本质上是周期性的,因此产生的数比所期望的具有较少的随机性。另外,正如所期望的,在一个芯片或一个IC上如此高效地引入TRNG,致使在芯片或IC上并不需要特殊的部件来产生随机数,期望的系统是一个相对紧凑的和相对耗费比较少的功率的系统。
在下文中根据一定说明性的实施方案将描述本发明的系统和方法。然而,本领域的普通技术人员来可意识到,使用其他可替代的部件和/或者其他可比配置,该系统和方法可以有效地进行操作。
参考附图,尤其是图1,显示了依照本发明的一个说明性的实施方案的用于纯随机数发生器的系统的方块图,所述系统通常用参考数字10表示。优选地,系统10采用至少一个2Mbits/sec(每秒62,500个数)的速率,而提供不可预知/非确定性的数字产生,并且能选择性地含有或者不含有一个种子值进行操作。优选地,系统10对数字0和数字1的长期运行有偏离。系统10同时也优选地具有休眠模式以减少所需功率的需求。
系统10具有至少一个用于产生位的计数器20,至少一个用于加扰位(scrambling bits)的移位器30,至少一个用于与所述至少一个计数器20合作的第一振荡器40,至少一个用于与所述至少一个移位器30合作的第二振荡器50,和一个用于与上述部件每一个合作的微处理器60,以提供一个基于数字输入信号的频率扰动。优选地,计数器20有一个初始化寄存器用于接收一个初始位值5,优选地,在微处理器60的初始写入的后沿插入所述初始位值。计数器20优选的是一个32位的升计数器。然而,计数器20也可以是一个16位的升计数器(up counter)和一个16位的降计数器(down counter),和/或者其他可比类型的计数器,该可比类型的计数器适合完成本发明上文所确定的目的。如果使用16位计数器,那么它的输出结果可以插入(interleaved)到移位器30中。优选地,移位器30是一个桶形移位器,更具体而言,它是一个32位桶形移位器。移位器30可以是任何其他可比类型的移位器,该可比类型的移位器适合完成本发明上文所确定的目的。优选地,第一振荡器40和第二振荡器50是环形振荡器,每个振荡器都有一个不同的奇数级(stages),优选地,第一振荡器40是一个5级振荡器和第二振荡器50是一个7级振荡器。然而,应当指出的是,第一振荡器40和第二振荡器50也分别可以是任何其他可比类型的振荡器,所述振荡器足以完成本发明上文所确定的目的。优选地,可以从反相器(inverter)、与门、与非门、或非门、异或门和/或者任何其他类似类型部件的一种组合中,来构建第一振荡器40和第二振荡器50。按照本发明,对于采用部件组合的系统10的一个说明性的实施方案通常参照图3。
参照图2,系统10在移位器30和微处理器60之间可以优选地包含一个白化滤波器和/或者一个线性反馈移位寄存器(“LFSR”)70。优选地,这种安排易于使用计数器的值来修改移位器30的输出。优选地,LFSR70有任意级数,能恰当地完成本发明上文所确定的目的。系统10在第二振荡器50和移位器30之间也可以包含一个一位热码(one-hot)移位选择器80。
为了说明系统10是如何操作的,参照图4,图4是按照本发明一个说明性实施方案、通常由参考数字100表示的方法的流程图,该方法用于提供纯随机数。方法100至少包含步骤110、步骤120、步骤130和步骤140。步骤110利用至少一个计数器20来产生位。优选地,通过从微处理器60到所述计数器的初始化寄存器的一个写入将计数器20进行初始化,该微处理器具有某一速率或频率。优选地,第一振荡器40以一个速率或频率计时计数器20,所述速率或频率优选地依赖于部件物理特性的芯片,并且与微处理器的频率是异步的,使用所述部件来形成第一振荡器。步骤120利用至少一个移位器30来加扰位。优选地,移位器30与计数器20合作,通过第二振荡器50使移位器30以一个与计数器20和微处理器60的速率或频率异步的速率或频率不断循环(spun)。优选地,移位器的速率或频率比微处理器的速率或频率要快。步骤130利用振荡器40和振荡器50分别与计数器20和移位器30同时合作。步骤140对于来自计数器20和移位器30的振荡器40和振荡器50进行交叉耦合异步频率控制位。因此,优选地,当微处理器60读取一个含有一定位数、例如32位的随机数时,移位器30将优选地输入一个当前计数器20的值,并且按当前移位数(例如0到31)将它进行移位。优选地,当每个部件(如计数器,移位器和微处理器)的频率彼此之间是异步时,则将返回位数的一个不可预测模式给微处理器。
从而,尤其参照优先形式已经对本发明进行了描述,很显然地是,在不脱离在此限定本发明所定义地精神和范围的情况下,其中可以做各种改变和修改。
权利要求
1.一种用于产生纯随机数的系统,包含以第一频率操作的一个微处理器,至少一个用于产生位的计数器;至少一个用于加扰位的移位器;至少一个用于与所述至少一个计数器合作的第一振荡器;和至少一个用于与所述至少一个移位器合作的第二振荡器,其中,所述的振荡器提供一个基于经所述的微处理器初始化的数字输入信号的频率扰动。
2.如权利要求1所述的系统,其中所述的计数器有一个用于接收初始位值的初始化寄存器。
3.如权利要求2所述的系统,其中所述的初始位值是在所述的微处理器的一个初始写入的后沿中。
4.如权利要求3所述的系统,其中所述至少一个第一振荡器是一个有第一奇数级的环形振荡器。
5.如权利要求4所述的系统,其中所述的至少一个第一环形振荡器与所述的至少一个计数器相合作以提供第二频率。
6.如权利要求5所述的系统,其中所述的至少一个移位器是桶形移位器,该桶形移位器通过所述至少一个第二振荡器以第三频率不断循环。
7.如权利要求6所述的系统,其中所述的至少一个第二振荡器是一个具有第二奇数级的环形振荡器,所述第二奇数级与所述的第一奇数级至少相差2级。
8.如权利要求7所述的系统,其中所述的第三频率与所述的第二频率是异步的。
9.如权利要求8所述的系统,其中所述的第三频率与所述的第一频率是异步的。
10.如权利要求8所述的系统,其中所述的第三频率与所述的第一频率是异步的,并且所述的第三频率比所述的第一频率快。
11.如权利要求9所述的系统,其中以所述的第二频率定时或计时所述的计数器,所述的第二频率与所述的第三频率是异步的。
12.如权利要求11所述的系统,其中所述的第二频率与所述的第一频率是异步的。
13.如权利要求12所述的系统,其中当所述的微处理器读取一随机数时,所述的桶形移位器输入一当前计数器的位值,并且按当前桶形移位计数来移位所述的位值。
14.用于提供一纯随机数发生器的方法,包含以下步骤(a)提供一个微处理器,所述微处理器以第一频率进行操作;(b)提供至少一个计数器;(c)提供至少一个第一振荡器,以在第二频率上定时所述的至少一个计数器;(d)提供至少一个移位器;和(e)提供至少一个第二振荡器,以使所述的至少一个移位器以第三频率不断地循环。
15.如权利要求13所述的方法,其中所述的至少一个第一振荡器具有第一奇数级和所述的第二振荡器具有第二奇数级,所述第二奇数级与所述的第一奇数级至少相差2级。
16.如权利要求13所述的方法,其中所述的第一频率、所述的第二频率、所述的第三频率彼此之间是异步的。
17.如权利要求15所述的方法,其中当所述的微处理器读取一随机数时,所述的移位器输入一当前计数器的位值,并且按当前移位计数来移位所述的位值。
18.用于产生纯随机数的方法,包含以下步骤(a)提供一个以第一频率操作的微处理器、至少一个用于产生位的计数器、至少一个用于加扰位的移位器、分别与所述的计数器和所述的移位器合作的一个第一振荡器和第二振荡器;(b)通过从所述的微处理器到所述的至少一个计数器的初始化寄存器的一个写入对所述的计数器进行初始化;(c)在第二频率上经所述的第一个振荡器定时所述的至少一个计数器;(d)经由所述的第二振荡器,使所述的至少一个移位器以第三频率不断地循环;(e)每次当所述的微处理器读取一随机位数时,输入一当前计数器的位值,并且按当前移位计数来移位所述的当前位值;(f)将所述的移位的位值返回给所述的微处理器,以取得位数的一个不可预测模式。
19.如权利要求17所述的方法,其中所述的至少一个第一振荡器具有第一奇数级和所述的第二振荡器具有第二奇数级,所述第二奇数级与所述的第一奇数级至少相差2级。
20.如权利要求17所述的方法,其中所述的第一频率、所述的第二频率、所述的第三频率彼此之间是异步的。
21.如权利要求19所述的方法,其中当所述的微处理器读取一随机数时,所述的移位器输入一当前计数器的位值,并且按当前移位计数来移位所述的位值。
全文摘要
本发明提供了一种系统和方法,该系统和方法用于提供完全的数字和/或者数字化合成的纯随机数发生器,以使用任一标准的逻辑合成工具或可比技术在集成电路上引入纯随机数发生器。这个系统和方法具有至少一个以第一频率操作的微处理器、至少一个用于产生位的计数器、至少有一个用于加扰位的移位器、至少一个用于与至少一个计数器合作的第一振荡器、至少一个用于与至少一个移位器合作的第二振荡器。配置该系统以提供一个基于经由微处理器初始化的数字输入信号的频率扰动。
文档编号G06F7/58GK1720501SQ200380105269
公开日2006年1月11日 申请日期2003年11月18日 优先权日2002年12月5日
发明者S·米特楚姆, J·埃哈德特, B·勒斯特 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1