随机数发生器和用于生成随机数种子的方法技术

技术编号:2845257 阅读:288 留言:0更新日期:2012-04-11 18:40
提供了一种用于产生随机数种子的随机数发生器、方法以及计算机程序产品。振荡器阵列内的每一个振荡器都在不同的频率上工作。每一个振荡器的工作频率不是谐波相关的,由此在任何两个振荡器频率之间不存在整数倍数。在一个实施例中,振荡器阵列的输出与多输入锁存器相连。所述多输入锁存器还接收采样信号,该采样信号是时钟信号。所述时钟信号对振荡器阵列的输出进行采样,并且多输入锁存器与随机数确定逻辑(“RNDL”)一起为阵列内部的每一个振荡器产生一个数字输出(0或1)。RNDL使用这些数字输出来创建随机数种子。

【技术实现步骤摘要】

本专利技术一般涉及随机数发生器,尤其涉及使用振荡器阵列的随机数发生器。
技术介绍
出于安全方面的原因,处理器使用了随机数发生器。在处理器每次加电的时候,它会产生一个随机数种子。该处理器会在外部数据传输中提供一个来自随机数种子的随机数,以便将特定处理器标识给外部处理器或数据处理系统。举例来说,该随机数种子包含了多个数字位,这些数字位是在处理器加电的时候被存储。然而,传送到外部源的随机数有可能是随机数种子本身,或者是随机数种子的变形。而安全方面的问题则在于特定处理器仅仅希望被数据传输中的一个或多个预定方所识别。如果外部方可以确定随机数种子,那么他们有可能侵入特定处理器。因此,随机数发生器在处理器每次加电的时候都为处理器提供了一个不同的随机数种子。在随机数序列中是不应该存在重复数字的,并且外部方应该无法对随机数种子进行逆向工程而入侵处理器。相应地,随机数发生器的最终目的是产生无法被逆向工程的真正随机的数字。用于产生随机数的一种常规方法包括创建一个电路,该电路产生噪声并且将噪声放大到数字电平。然后,处理器对噪声发生器进行采样,以便拾取一个随机位。如果所述采样是间隔良好和不规则的,并且1和0的数字不具有相同的被采样概率,那么这种随机数发生器会很好地工作。另一种常规方法包括在时间上累积这些数字(digital number),以产生随机数。这种后处理可以通过进一步阻碍逆向工程来改进这种随机数发生器。被采样的硬件混沌电路是另一种形式的随机数机器。混沌电路具有各种平衡和相关性问题,并且可能无法与真正随机的信源紧密关联。这些技术的问题在于这些技术都是确定性的、可发现的以及不够随机的。如果可以发现所产生的随机数,那么将会出现安全问题。因此,明显的是,能够产生显示出更多的随机性以及更少的可发现性的随机数种子的随机数发生器会是对现有技术的一个重大改进。
技术实现思路
本专利技术提供了一种用于产生随机数种子的随机数发生器、方法以及计算机程序产品。在一振荡器阵列内部的每一个振荡器都在不同的频率上工作的。每一个振荡器的工作频率并不是谐波相关的,由此在任何两个振荡器的步骤之间不存在整数倍数。在一个实施例中,该振荡器阵列的输出与一个多输入锁存器相连。单输入锁存器的阵列可以替代该多输入锁存器。该多输入锁存器也接收一个采样信号,该信号是一个时钟信号。该时钟信号对振荡器阵列的输出进行采样,并且该多输入锁存器与随机数确定逻辑(“RNDL”)一起为该阵列内的每一个振荡器产生一个数字输出(0或1)。RNDL使用这些数字输出来创建一个随机数种子。相应地,所述随机数种子是一个二进制数,其中该随机数种子中的数字的数量与阵列内的振荡器数量相同。在一个优选实施例中,该振荡器阵列包含了若干多级自由振荡的环形振荡器,其中每一个振荡器都在具有随机抖动的情况下工作。导致被测周期不同于振荡器固有周期的噪声成分被称为抖动。因此,每一个振荡器的抖动以及阵列内部任何两个振荡器之间的相对相位不确定性随时间累积。振荡器之间的频率差异也产生随时间增长的确定性的相位不确定性。这些特征导致相比于先前的随机数发生器随机数种子具有更大的随机性以及更小的可预测性。附图说明为了更全面地理解本专利技术以及本专利技术的优点,现在将结合附图来参考下面的描述,在附图中图1描述了包含随机数发生器的处理器的框图;图2描述了经过修改的随机数发生器的框图,该随机数发生器包括一个振荡器阵列以及随机数确定逻辑;图3描述了一个样本累积直方图,该直方图描述了振荡器内的随机抖动;图4描述了一个基于对数的图,该图表描述了基于自由振荡的振荡器经验数据的模拟结果;图5描述了示出了随机数生成过程的流程图;以及图6描述了一个数据处理系统的框图;具体实施方式在下面的论述中阐述了大量的特定细节,以便提供关于本专利技术的全面理解。然而,本领域技术人员将会了解,本专利技术可以在没有这些特定细节的情况下实施。在其他情况中,采用了示意图或框图的形式来描述众所周知的部件,以免以不必要的细节混淆本专利技术。此外,在大多数情况下,省略了涉及网络通信、电磁信号传送技术等方面的细节,因为这些细节没有被认为是全面理解本专利技术所必需的,并且这些细节被认为处于相关领域的普通技术人员的理解范围之内。此外还应该指出,除非另有说明,否则这里描述的所有功能都是既可以在硬件中也可以在软件中并且还可以在硬件与软件的某种组合中实现。然而,在一个优选实施例中,这些功能是在硬件中实现的,以便提供最有效的实现。作为另一种选择,除非另有说明,否则这些功能也可以由诸如计算机或电子数据处理器的处理器根据被编码为执行此类功能的代码来执行,所述代码例如是计算机程序代码、软件和/或集成电路。图1描述了包含随机数发生器的处理器100的框图。如参考图6所示,处理器100可以与多个不同组件相连。控制逻辑102依照一组在处理器100内部运行的指令而将控制信号发送到处理器100内部的装置。因此,控制逻辑102将控制信号发送给主时钟104、振荡器阵列106、普及(pervasive)处理器108以及随机数确定逻辑110。主时钟104为处理器100提供全局时钟信号。此外,主时钟104将全局时钟信号馈送到控制逻辑102以及随机数确定逻辑110。振荡器阵列106包含了多个振荡器,这些振荡器在不同的频率上产生信号。在本图中,振荡器阵列106示出在一个方框中,但在本专利技术的实现中,振荡器阵列可以被置于处理器100上的任何位置。振荡器阵列106的输出馈送到随机数确定逻辑(“RNDL”110)。RNDL 110则从振荡器阵列106的输出中产生随机数。RNDL 110将该随机数传送到普及处理器108(也称为维护处理器)。普及处理器108的应用是特定于实现的,但是它可以控制电源、随机数发生器、振荡器、以及片上时钟。通常,处理器100随需产生随机数种子。处理器100可以为每一次加电请求一个随机数种子,或者普及处理器108也可以为外部数据传输请求一个随机数种子。在本图中,普及处理器108接收该随机数,并且将其传送到控制逻辑102,其中所述控制逻辑102可以将随机数提供给外部源。相应地,普及处理器108可以发出其自身的控制信号,但是在本图中,控制逻辑102发出控制信号。振荡器阵列106以及RNDL 110构成了随机数发生器。所述随机数发生器是独立的,并且可以处于处理器100内部的任何位置。本图则是处理器的一个示例,并且并未限制本专利技术的范围。图2描述了经过修改的随机数发生器200的框图,所述随机数发生器包含了振荡器阵列以及随机数确定逻辑。振荡器阵列106涉及图1。如先前所述,振荡器220、222以及224不是必须像本图中显示的那样排列。振荡器阵列106的输出馈送到一个多输入锁存器202。该锁存器202可以是多输入的D触发器(flip-flop),也可以是常规的多输入锁存器。图2显示了多输入锁存器202,但是一个单输入锁存器阵列也可以替换多输入锁存器202。相应地,一个单输入锁存器与每一个相应的振荡器相连。因此,振荡器220经由输入线204来馈送输入D1,振荡器222经由输入线206来馈送输入D2,而振荡器224经由输入线208来馈送输入DN。这个多输入锁存器202为来自图1的RNDL 110提供了振荡器输出212、214、216。在本专利技术本文档来自技高网
...

【技术保护点】
一种处理器内的随机数发生器,包括:振荡器阵列,其中每一个振荡器都在不同的频率上工作;锁存器阵列,其中每一个锁存器接收来自单独振荡器的输入,接收采样信号,并且响应于该采样信号而产生振荡器输出信号;以及随机数确定逻辑(“ RNDL”),其中所述RNDL至少被配置成接收该锁存器阵列的输出信号,并且生成随机数种子。

【技术特征摘要】
US 2005-8-16 11/204,4021.一种处理器内的随机数发生器,包括振荡器阵列,其中每一个振荡器都在不同的频率上工作;锁存器阵列,其中每一个锁存器接收来自单独振荡器的输入,接收采样信号,并且响应于该采样信号而产生振荡器输出信号;以及随机数确定逻辑(“RNDL”),其中所述RNDL至少被配置成接收该锁存器阵列的输出信号,并且生成随机数种子。2.权利要求1的随机数发生器,其中所述随机数发生器是在计算机系统或数据处理系统中使用的。3.权利要求1的随机数发生器,其中所述振荡器阵列包括多个多级自由振荡的环形振荡器。4.权利要求1的随机数发生器,其中每一个振荡器的工作频率不是谐波相关的,由此在任何两个振荡器的频率之间不存在整数倍数。5.权利要求1的随机数发生器,其中所述锁存器阵列进一步包括与所述振荡器阵列相耦合的一个多输入锁存器或一个多输入触发器,所述锁存器或触发器至少被配置成为所述阵列内的每一个振荡器产生输出信号。6.权利要求1的随机数发生器,其中所述锁存器阵列进一步包括与所述振荡器阵列相耦合的触发器阵列。7.权利要求1的随机数发生器,其中所述采样信号是对来自所述振荡器阵列的输出信号进行采样的时钟信号。8.权利要求1的随机数发生器,其中所述RNDL至少被配置成读取来自所述锁存器阵列中的每一个锁存器的数字输出(0或1);以及生成包含了这些数字输出的随机数种子。9.权利要求8的随机数发生器,其中所述RNDL至少被配置成将所述随机数种子传送到所述处理器的其他区域。10.一种在处理器中用于产生随机数种子的方法,包括配置振荡器阵列,以使每一个振荡器工作在不同的频率上;将锁存器阵列与振荡器阵列相耦合,以使每一个锁存器与单独的振荡器相耦合;生成采样信号;将该采样信号传送到该锁存器阵列;响应于该采样信号,生成来自该振荡器阵列的输出信号;以及从该振...

【专利技术属性】
技术研发人员:DW伯斯特勒E海卢HP霍夫斯蒂JS利伯蒂
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1