本发明专利技术公开了利用锁存器的亚稳态特性生成随机数的方法和装置。每当锁存器变成亚稳态,对于振荡停止后获得的逻辑值,振荡的结果是随机的。如果锁存器的输出与锁存器在正确操作期间所能获得的值不同(即,“错误”),则能检测到亚稳态事件。当两个或两个以上基本上相同的锁存器并行地操作时,在至少其中两个锁存器具有不同的输出时可以检测到错误。错误的检测可用来触发随机位的生成。本发明专利技术并行地操作多个锁存器,并向每个锁存器的每个输入端施加相同的二进制值。当锁存器进入亚稳态时,在稳定在逻辑低或高的随机输出值之前,该锁存器的输出将随机地移位。当两个锁存器稳定为不同的值时,可以识别出错误从而触发随机位的生成。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术与下面两件专利申请相关2000年3月6日提交的美国专利申请No.09/519,549,题为“Method and Apparatus forGenerating Random Numbers Using Flip-Flop Meta-Stability”,和2001年7月25日提交的美国专利申请No.09/912,685,题为“Method and Apparatus for Decorrelating a Random NumberGenerator Using a Pseudo-Random Sequence”,这两件申请均转让给本专利技术的受让人并在本申请中引用作为参考。本专利技术涉及随机数生成,更具体地说,涉及利用锁存器的亚稳态特性生成随机数的方法和装置。锁存器和触发器广泛地应用在计算机和其他电子设备,如采样、计数和存储元件中。附图说明图1示出了一种传统的R-S锁存器100。如图1中所示,R-S锁存器100包括两个NOR门110和120。这两个NOR门110和120的输出交叉连接到相对的NOR门的相应输入。这样,NOR门110接收NOR门120的输出和复位信号R作为输入。类似地,NOR门120接收NOR门110的输出和置位信号S作为输入。图2中的表格200示出了对于每种不同的输入组合,R-S锁存器100的输出。这样,当图1中的锁存器100的两个输入端均被设置为高逻辑值(“11”),且随后转换为两个输入端均为低值(“00”)的状态时,该锁存器100易于出现亚稳定性。这种转换有时会引起锁存器的输出以统计学上已知的方式发生无法预知的振荡。关于亚稳定性的详细讨论,例如可参见Application Note,A Meta-Stability Primer,AN219,Philips Semiconductor(1989年11月15日),在此引用作为参考。理论上,锁存器100可以无穷地振荡。但实际上,锁存器100会随机地达到一个或者逻辑低或者逻辑高的随机输出值。通常,这些亚稳态值随后在给定的应用中被其他电路检测,并且可以被解释为不同的逻辑电平状态,或呈现可能被其他逻辑门错误解释的中间状态。很多应用和电子设备需要随机数,包括机会游戏,例如扑克、轮盘机和老虎机。尤其是,许多密码算法和协议依赖于不可预测的随机数源,来实现安全的电子通信等等。随机数发生器应该生成指定的数字范围内的每一种可能的排列。另外,随机数发生器不应该被偏置,其应当以和其他任何数目相同的概率来生成任何给定的数目。另外,随机数发生器应该生成不可预测的随机数,而不考虑先前结果的集合的大小。这样,随机数应该是完全不可预测的,并且不易受外部因素的影响。2000年3月6日提交的题为“Method and Apparatus forGenerating Random Numbers Using Flip-Flop Meta-Stability”的美国专利申请No.09/519,549公开了利用触发器的亚稳态特性生成随机数的方法和装置。触发器采用有意破坏触发器的建立或保持时间(或这二者)的输入作为时钟信号来确保亚稳态特性。每当出现一个误差时收集一位。如果对于给定一类的触发器,亚稳定性随着一个二进制值(零或一)出现得更频繁,则通过将一半的零“标记”为“一”而将另一半的零标记为“零”,获得了均匀的随机数分布。另外,将一半的一标记为“一”而将另一半的一标记为“零”。已经发现,亚稳定性的持续时间和出现可能受到噪声的影响。因此,可以利用噪声来影响随机数发生器的输出。2001年7月25日提交的题为“Method and Apparatus for Decorrelating a RandomNumber Generator Using a Pseudo-Random Sequence”的美国专利申请No.09/912,685公开了一种基于亚稳定性的随机数发生器,其利用线性反馈移位寄存器(LFSR)来降低相关的几率,并减少输出的任意偏置。尽管这些基于触发器亚稳态特性的随机数发生器提供了仅利用数字技术生成随机数的有效机制,但是它们均采用单个触发器,因而必须假定知道输出应该是什么。需要这样一种随机数发生器,它仅利用数字技术但不需要关于输出的任何假定。总地来说,本专利技术公开了利用锁存器的亚稳态特性生成随机数的方法和装置。每当锁存器变成亚稳态时,对于振荡停止后达到的结果或逻辑值,振荡的结果是随机的。如果锁存器的输出与锁存器在正确操作期间所能达到的值不同(即,发生“错误”),则能检测到亚稳态事件。当两个或两个以上基本上相同的锁存器并行地操作时,在至少其中两个锁存器具有不同的输出时可以检测到错误。根据本专利技术,对错误的检测可用来触发随机位的生成。如前面所述,当锁存器的两个输入端均被设置为高逻辑值(“11”),且随后转换为两个输入端均为低值(“00”)的状态时,该锁存器易于出现亚稳定性。本专利技术并行地操作多个锁存器,并向每个锁存器的每个输入施加相同的二进制值。这样,当向每个锁存器施加值“00”时,这些锁存器将预期保持其先前的状态。但是当对于每个锁存器,在值“11”之后是两个输入端均为低值(“00”)的状态时,这些锁存器的状态可能是不确定的,在稳定在逻辑低或高的随机输出值上之前引起随机移位。这样,根据本专利技术,当两个锁存器稳定到不同的值时,可以识别出错误,从而触发随机位的生成。通过参考下面的详细说明和附图,可以更完整地理解本专利技术和本专利技术的其他特征和优点。图1示出了传统的R-S锁存器;图2的表格示出了对于每种输入组合,图1的R-S锁存器的各种输出值;图3A和图3B共同示出了根据本专利技术的随机数发生器;图4示出了图3A和图3B的电路产生的一组波形;以及图5示出了可用在本专利技术一个实施例中的选择电路,用来在使用多个锁存器时检测亚稳态事件。图3A和图3B共同示出了根据本专利技术的随机数发生器300。如图3所示,该示例性随机数发生器300包括被驱动至亚稳态区的一对锁存器320-1,320-2。如下面更充分地讨论的,锁存器320-1,320-2的输出通过一个电路被捕获,该电路消除了所述亚稳定性并对输出进行比较。当所述基本上相同的锁存电路的两个输出不同时,检测到“错误”并且产生随机位。这样,锁存器320-1,320-2中任一个的亚稳态操作提供了生成随机数的机制。如图3A所示,时钟振荡器305生成“Clock(时钟)”信号。该Clock信号被施加到一对D型触发器310-1,310-2的输入端,所述D型触发器的Qbar输出被反馈到其D输入端。D型触发器310提供除以2的机制。触发器310-1的时钟输入被反相器308反相。因此,触发器310-1产生的Stimulus(激励)信号与触发器310-2产生的Acquisition(获取)信号有180度的相位差。Acquisition信号前进,而LFSR 380生成比特流,该比特流在统计上是一半为一、一半为零。应注意,图4中示出的各波形是在图3A或图3B中标明的相应采样点处获得的。如图3A和图4所示,锁存器320-1,320-2由触发器310-1产生的Stimulus信号驱动。如前面指出的,例如图3A中示出的锁存器320-1和320-2的锁存器,在锁存器310本文档来自技高网...
【技术保护点】
一种利用锁存器生成随机数的方法,包括以下步骤:检测所述锁存器的亚稳态;以及根据所述亚稳态的出现生成随机位。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:M埃普斯泰恩,
申请(专利权)人:NXP股份有限公司,
类型:发明
国别省市:NL[荷兰]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。