将使用伪随机序列的随机数产生器解相关的方法和仪器的制作方法

文档序号:7520091阅读:543来源:国知局

专利名称::将使用伪随机序列的随机数产生器解相关的方法和仪器的制作方法
技术领域
:本发明涉及随机数的产生,更特别涉及利用触发器亚稳定产生随机数的方法和仪器。
背景技术
:触发器和锁存器广泛使用在计算机和其它电子设备中,如采样、计数和存储元件。已经开发了很多触发器种类,例如D型触发器(“数据”)、R-S锁存器(“复位和置位”)、J-K触发器(具有J和K输入)和T触发器(只有一个输入)。例如,D型触发器是定时翻转的,其输出延迟一个时钟脉冲。图1A中显示了一个传统R-S锁存器100。图1A中的R-S锁存器100包括两个NOR门110和120。两个NOR门110、120的输出交叉连接到对立的NOR门的相应输入。因此,NOR门110接收NOR门120的输出和一个复位信号R作为输入。同样,NOR门120接收NOR门110的输出和一个置位信号S作为输入。近来已经用边缘触发的触发器代替了图1A中显示的简单的锁存器,如图1B中显示的D型触发器150。这种D型触发器常常用于检测定时相对于时钟信号是不可预测的异步数字信号的逻辑状态。上升信号提供给触发器150的时钟输入CLK,而要检测的异步信号的数字逻辑电平提供给D输入。然后在Q输出线产生检测信号。只要时钟没有再次上升,输出Q就不会改变。此后每当CLK信号上升时,触发器150就只是将状态改变到D输入的值(只要复位信号永久性地捆绑到地)。图1A中显示的锁存器100易受亚稳定的影响。关于亚稳定的详细讨论例如请参看如应用注释、亚稳定入门、AN219、飞利浦半导体(ApplicatinNote,AMeta-StabilityPrimer,AN219,PhilipsSemiconductors)(1989.11.15),在这里是参照引用。通常,当两个到锁存器100的输入都设置为高逻辑值(“11”)然后复位到低逻辑值(“00”)时会出现亚稳定。在这些条件下,锁存器输出会以在统计学方面已知的方式进行不可预测的振荡。理论上,锁存器100会无限期的振荡。但实际上锁存器100会随机改变,达到一个随机输出值,或为逻辑低,或为逻辑高。典型地,在给定应用中随后使用其它电路检测这些亚稳定值,这些值可以被解释为不同的逻辑电平状态或呈现一个会被其它逻辑门误判的中间态。此外,当触发器的建立或保持时间遭到破坏时,图1B中显示的边缘触发的触发器150会变成亚稳态。因为在每个边缘触发的触发器150内部有一个由边缘检测电路馈给的锁存器100,所以边缘触发的触发器易受亚稳定的影响。如果破坏建立或保持时间,则内部锁存器100将会检测到能够触发亚稳态的输入。很多应用和电子设备需要随机数,包括扑克牌、轮盘赌和角子老虎机等靠运气定胜负的赌博游戏。特别是很多加密算法和协议依靠不可预测的随机数源来实现安全的电子通信等。随机数产生器应该在指定数字范围内产生所有可能的排列。此外,随机数产生器不应该有偏差,应该使产生的任一个给定的数与其它数具有相同的概率。而且,随机数产生器应该产生不能被预测的随机数,与前面的结果集合大小无关。因此,随机数应该是完全不可预测且不受外部影响的。2000年3月6日申请的、名为“利用触发器亚稳定性产生随机数的方法和仪器”的美国专利申请序列号09/519,549提出了一种利用触发器亚稳定行为产生随机数的方法和仪器。为触发器计时的输入会故意破坏触发器的建立或保持时间(或两者)以获得亚稳定行为。每当有一个错误就采集一位。对于给定种类的触发器,如果因一个二进制值(0或1)更为频繁的出现亚稳定,则通过将一半的零“标记”为“1”而将另一半的零“标记”为“0”获得偶随机数分布。此外,将一半的1标记为“1”,将另一半标记为“0”。以这种方式标记输入位在理论上提供了偶分布的随机输出位。虽然亚稳定随机出现,但是已经发现亚稳定的持续时间和出现受噪声的影响。因此,如果噪声与标记信号相关,则随机数产生器的输出不会是随机的。因此存在的一个需要是利用不受噪声或其它外力影响的亚稳定产生随机数的方法和仪器。存在的另一个需要是利用亚稳定产生随机数的方法和仪器,其使用的标记信号有很高的概率与系统中的所有噪声不相关。
发明内容概括来讲,公开了一种利用触发器的亚稳定行为产生随机数的方法和仪器。为触发器计时的输入会故意破坏触发器的建立或保持时间(或两者)以获得亚稳定行为。触发器的亚稳定运行提供了一种产生随机数的机制。每当触发器变成亚稳态时,振荡的结果相对于振荡停止之后得到的结果或逻辑值是随机的。如果结果与正确运行期间已经得到的值不同(一个“错误”),就可以检测到亚稳定事件。如果将0和1的重复序列用作触发器的输入,将会有机会以一个0或一个1制造“错误”。通过(i)将0的一半标记为“1”而将0的另一半标记为“0”;(ii)将1的一半标记为“1”而将另一半标记为“0”;或(iii)两者,达到1或0的偶分布。因此,不管在0状态或1状态中制造错误的比率如何,随机输出位的分布将保持偶分布。本发明以很高的概率将标记信号与所有系统噪声解相关。因此,使用(相对于0和1的频率的)无偏信号源作为标记信号。使用线性反馈移位寄存器(LFSR)将标记信号解相关。线性反馈移位寄存器的长度应该足以降低相关几率并减少LFSR输出中的任意偏差。较长的移位寄存器具有较长的序列,因此有很高的概率与噪声源不一致。通过参考下列详细描述和附图能够实现更为完整的理解本发明以及本发明的其它特性和优点。图1A说明了一种传统R-S锁存器;图1B说明了一种常规D型触发器;图2A说明了一种依照美国专利申请序列号09/519,549的教导的随机数产生器,该申请在2000年3月6日申请,名为“利用触发器亚稳定产生随机数的方法和仪器”;图2B说明了一种同步电路,该电路可用于将图2A随机数产生器的输出与时钟源同步;图2C说明了一组由图2A和2B的电路产生的波形;图3说明了一种依照本发明的改进的随机数产生器;图4说明了一组由图3和2B的电路产生的一组波形;以及图5说明了一种使用无偏线性反馈移位寄存器的本发明的替代实施方案。具体实施例方式图2A说明了一种依照美国专利申请序列号09/519,549的教导的随机数产生器,该申请在2000年3月6日申请,名为“利用触发器亚稳定产生随机数的方法和仪器”。随机数产生器200通过将0的一半“标记”为“1”而0的另一半标记为“0”来提供偶分布的随机输出位。此外,将1的一半“标记”为“1”而将另一半标记为“0”。如图2A所示,随机数产生器200包括触发器210、延迟215、220、D型触发器225、232和时钟振荡器230。为触发器210计时的输入故意破坏触发器210的建立或保持时间(或两者)以获得亚稳定行为。例如可以使用延迟215、220破坏建立或保持时间。触发器210可以由如D、T或JK型触发器实现。此外,触发器210可以由一个简单的锁存器100和一个稍有差异的电路实现,这对于本领域中普通技术人员是显然的。时钟振荡器230和D型触发器225产生一个时钟源,D型触发器225的Qbar输出反馈回到其D输入。以这种方式,D型触发器225以与T型触发器相同的方式运行(双态转换输出),提供了一种1:2分频(divide-by-two)机制。因此,触发器210的D输入由交替的1和0驱动。1:2分频触发器232产生一个Mark信号,如图2C中所示,该信号将Input波形中的一半0标记为“1”,另一半0标记为“0”。如从图2A和2C中更为清楚的看到的,在图2A中标记为“Clock”的采样点得到时钟振荡器230产生的波形Clock。在图2A中标记为“Input”的采样点得到1:2分频触发器225产生的波形Input。在图2A中的相应采样点得到延迟215产生的波形Input_D和延迟220产生的波形Input_clock。在图2A中标记为“Mark”的采样点得到1:2分频触发器232产生的波形Mark。如图2C中所示,由延迟215、220破坏建立或保持时间(或两者)确保触发器210将呈现亚稳态行为,如波形Meta_stable_out所说明的。如下面进一步讨论的,触发器210的亚稳定运行提供了一种产生随机数的机制。由于延迟215、220的延迟、触发器210自身的固有延迟,更重要的是由于亚稳态行为的不一致的延迟,波形Meta_stable_out与波形Clock不同步。因此,为了使图2A的随机数产生器200适合同步应用,在图2B中提供了一种说明性机制来将波形Meta_stable_out与波形Clock同步。要提到的是,图2A和2B的电路通过连接字母相同的圆圈而连接起来。图2B中显示的同步电路235包括多个串行的触发器240-242,选择这些触发器要使得它们不易进入亚稳态。此外,如果这些触发器240-242中的一个变成亚稳态,则时钟信号的周期应该要足够的长,使得亚稳态的触发器的输出稳定在一个固定逻辑值(0或1),这样当在下一个触发器240-242采样信号时,触发器是稳定的。以这种方式,各个触发器240-242提高了将波形Meta_stable_out与波形Clock同步的几率,同时去除了所有的亚稳定。实际上,在几十年后才能测量到这种电路发生不正确行为的几率。异或门(“XOR”)250比较波形Meta_stable_out的同步形式和波形Input(在1:2分频触发器225的输出处采样)。因为当且仅当两个输入不同时XOR门250的输出才为高,所以当波形stable_out与输入信号不一致时XOR门250的输出(“Mistake”)为高。XOR门250的输出(“Mistake”)提供给移位寄存器260的移位输入(Shift_in),每当有一个Mistake时移位寄存器260从Mark信号移过来一位。因此,每当有一个误差(错误)时本发明的第一实施方案就采集一位。移位寄存器260的输入线连接到Mark信号。以这种方式,每当有一个Mistake时,移位寄存器260就从Mark信号移入一位。因此,如图2C所示,对于错误0,将会得到一个等于1的一位(根据Mark信号)。类似地,对于错误1,将会得到一个等于0的一位(根据Mark信号)。随机数产生器200也用一个“1”或“0”的标记来标记触发器210的1输入。因此,如果错误发生时输入的值为1,则也会由于由该1值造成的错误而获得偶分布的随机位。因此,该电路不受存在1或0输入值的误差之间的偏差的影响。如前所示,以上面结合图2A到2C讨论的方式标记输入位提供了偶分布的随机输出位。但是已经发现,亚稳定的持续时间和出现会受噪声的影响。因此,如果噪声与标记信号相关,则随机数产生器的输出不会是随机的。根据本发明的一个特征,(相对于0和1的频率的)无偏信号源用作标记信号。标记信号有很高的概率与系统中的任何噪声不相关。本发明使用具有足够长度的线性反馈移位寄存器(LFSR)来降低相关几率和减少LFSR输出的任意偏差。例如在BruceSchneier的实用密码技术369-388页(Wiley,1994)中描述了合适的LFSR。图3说明了一种依照本发明的随机数产生器300。如图3所示,随机数产生器300包括触发器210、延迟215、220、D型触发器225和时钟振荡器230,其运行方式与上面结合图2A描述的方式相同。此外,随机数产生器300包括线性反馈移位寄存器310,移位寄存器310如图4所示产生一个LFSRMark信号,将波形Input中稍稍超过一半的0标记为“1”,而将接近一半的0标记为“0”,按照本发明,这种标记信号以很高的概率与噪声无关。因为对于n位的LFSR,只有2n-1种模式(全0模式不会出现),所以信号总是有一个小偏差。如果n大,这个偏差就变得不明显。因此,图3的随机数产生器300用线性反馈移位寄存器310替换图2A的标记触发器232。线性反馈移位寄存器310可以按BruceSchneier的实用密码技术369-388页(Wiley,1994)中的描述来实现。用图2B的同步电路235利用图3随机数产生器300能够用于将随机数产生器300的输出与时钟源同步。如前所述,线性反馈移位寄存器310应该提供足够多的位数来降低相关几率并减少LFSR输出中的任意偏差。对于包括n个触发器的线性反馈移位寄存器310,在数字开始重复之前有2n-1个二进制数。因此,随着线性反馈移位寄存器310中触发器数量的增加,2n-1个二进制符号中的-1变得不再重要。无论如何,因为由于-1项而出现的任何偏差的方向是已知的,所以使用如下面结合图5讨论的适当电路能够去除或纠正偏差。因此,线性反馈移位寄存器310提供了一个伪随机的标记输出,LFSR标记,其一半的输出位是一个0,而另一半的输出位是一个1。已经看出,如果线性反馈移位寄存器310不可靠,输出的一部分(甚至是随机部分)就会使线性反馈移位寄存器310的状态被知晓。以这种方式,能够预测随机数产生器300的输出。因此,应该使用没有可辨别统计的线性反馈移位寄存器310,从而使线性反馈移位寄存器310的状态信息没有用处。在另一种变型中,通过释放移位寄存器260之外的采集位并允许在各个采集间隔丢弃一些采集位来获得额外的安全性。每当有一个Mistake时移位寄存器260从Mark信号移过来一位。以这种方式,错误的到达时间是不可辨别的,人们不能预计将会选择线性反馈移位寄存器310的那些位。图5说明了本发明的一个替代实施方案。如前所示,对于所有最大长度LFSR,在1和0之间的比率中有一个小偏差。出现这种情况是因为要求永远不会出现全0状态,否则LFSR会停止改变。换句话说,如果LFSR的状态为全0,则不管分支(tap)数或移位数如何,XOR组合都不会产生一个1。因此,除全1状态之外的所有状态都有一个双态。例如,给定一个三位LFSR,状态101将伴随着双态010出现。但是对于全1状态(111)这是不成立的。如果将最低有效位(或在这方面的其它任意位)用作输出,则LFSR有七个不同的唯一状态,一个输出有四个1(1111)和三个0(000)。为了纠正这个偏差,我们可以加入一个lfsrstate触发器510,该触发器510只会在全1状态出现时改变和使用。该触发器510的初始状态是不相关的。我们首先用N位的AND门520检测全1状态。这个门520的输出将仅在全1状态出现时为真。我们将这个AND门520连接到一对2:1多路复用器530、540。第一个2:1多路复用器530只用于在LFSR505中出现使AND门520的输出变为真的全1状态时改变lfsrstate触发器510的条件。另外,相同的状态再循环到状态触发器510且其条件不会改变。第二2:1多路复用器540通常接收来自LFSR505的标称输出位(nominaloutputbit)。当在LFSR505中出现全1状态时,那么该第二2:1多路复用器540接收一个来自lfsrstate触发器510的位。每当全1条件出现时lfsrstate就改变。因此,当LFSR505的状态为全1时相关LFSR的输出位一半时间是全1,当LFSR505的状态为全1时相关LFSR的输出位一半时间是0。因此,对于每两个经过LFSR505所有状态的周期,触发器550接收到的累积输出是完全无偏的,即相关输出位流中1和0的数量是同等的。对于没有使用整个序列的LFSR,该电路不是必需的,因为其它与局部偏差有关的问题将变得更为重要。要理解的是,这里显示和描述的实施方案和变型只是说明本发明的原理,本领域的普通技术人员在不偏离本发明的范围和精神的情况下可以实现各种修改。权利要求1.一种产生随机数的方法,包括步骤使用一个标记信号标记一个到触发器(210)的输入信号,其中该输入信号有一个第一二进制值和一个第二二进制值,其中标记信号将这个第一二进制值的大约一半标记为第一二进制值,将这个第一二进制值的大约一半标记为第二二进制值;将标记信号与噪声解相关;以亚稳态运行触发器(210);以及根据亚稳态的出现由标记信号产生一个随机位。2.权利要求1的方法,其中由至少一个线性反馈移位寄存器(310)执行解相关步骤。3.权利要求2的方法,其中线性反馈移位寄存器(310)提供了足够的位数来降低相关几率。4.权利要求2的方法,其中线性反馈移位寄存器(310)(LFSR)提供了足够的位数来减少LFSR输出中的任意偏差。5.权利要求2的方法,其中线性反馈移位寄存器(310)有一个补偿电路来去除来自所产生的随机位的偏差。6.权利要求1的方法,其中由线性反馈移位寄存器(310)的集合执行解相关步骤。7.权利要求1的方法,其中通过破坏触发器(210)的建立时间将该触发器(210)置于亚稳态。8.权利要求1的方法,其中通过破坏触发器(210)的保持时间将该触发器(210)置于亚稳态。9.权利要求1的方法,其中产生步骤还包括在触发器(210)的输出与提供的输入不一致时产生一个错误信号的步骤。10.权利要求9的方法,其中错误信号使得根据标记输入得到一个随机位。11.权利要求1的方法,还包括将触发器(210)的输出与本地时钟源(230)同步的步骤。12.权利要求1的方法,还包括采集多个随机位以产生一个随机数的步骤。13.权利要求1的方法,其中第一二进制值是0,第二二进制值是1。14.权利要求1的方法,其中第一二进制值是1,第二二进制值是0。15.权利要求1的方法,还包括从移位寄存器释放采集位以产生随机位的步骤。16.一种产生随机数的方法,包括步骤标记一个到触发器(210)的输入信号,使得一半的0标记为0,一半的0标记为1,而一半的1标记为0,一半的1标记为1;将标记信号与噪声解相关;以亚稳态运行触发器(210);以及根据亚稳态的出现由标记信号产生一个随机位。17.权利要求16的方法,其中由一个线性反馈移位寄存器(310)执行解相关步骤。18.权利要求17的方法,其中线性反馈移位寄存器(310)提供了足够的位数来降低相关几率。19.权利要求17的方法,其中线性反馈移位寄存器(310)(LFSR)提供了足够的位数来减少LFSR输出中的任意偏差。20.权利要求17的方法,其中线性反馈移位寄存器(310)有一个补偿电路来去除来自所产生的随机位的偏差。21.权利要求16的方法,其中由线性反馈移位寄存器(310)的集合执行解相关步骤。22.权利要求16的方法,其中产生步骤还包括在触发器(210)的输出与提供的输入不一致时产生一个错误信号的步骤。23.权利要求16的方法,还包括采集多个随机位以产生一个随机数的步骤。24.一种随机数产生器(300),包括触发器(210),运行在亚稳态;标记电路,使用标记信号标记一个到触发器(210)的输入信号,其中该输入信号有一个第一二进制值和一个第二二进制值,其中标记信号将第一二进制值的大约一半标记为第一二进制值,将第一二进制值的大约一半标记为第二二进制值;至少一个线性反馈移位寄存器(310),将标记信号与噪声解相关;以及根据亚稳态的出现由标记信号产生随机位的装置。25.权利要求24的随机数产生器(300),其中第一二进制值是0而第二二进制值是1。26.权利要求24的随机数产生器(300),其中第一二进制值是1而第二二进制值是0。27.权利要求24的随机数产生器(300),其中一个或多个线性反馈移位寄存器(310)提供了足够的位数来降低相关几率。28.权利要求24的随机数产生器(300),其中一个或多个线性反馈移位寄存器(310)(LFSR)提供了足够的位数来减少LFSR输出中的任意偏差。29.权利要求24的随机数产生器(300),其中一个或多个线性反馈移位寄存器(310)有一个补偿电路来去除来自所产生的随机数的偏差。30.一种随机数产生器(300),包括触发器(210),运行在亚稳态;标记电路,标记一个到触发器(210)的输入信号,使得一半的0标记为0,一半的0标记为1,而一半的1标记为0,一半的1标记为1;一个或多个线性反馈移位寄存器(310),将标记信号与噪声解相关;以及根据亚稳态的出现由标记信号产生随机位的装置。31.权利要求30的随机数产生器(300),其中一个或多个线性反馈移位寄存器(310)提供了足够的位数来降低相关几率。32.权利要求30的随机数产生器(300),其中一个或多个线性反馈移位寄存器(310)(LFSR)提供了足够的位数来减少LFSR输出中的任意偏差。33.权利要求30的随机数产生器(300),其中一个或多个线性反馈移位寄存器(310)有一个补偿电路来去除来自所产生的随机数的偏差。全文摘要提出了一种利用触发器亚稳态行为产生随机数的方法和仪器。为触发器计时的输入故意破坏触发器的建立或保持时间(或两者)以获得亚稳态行为。当检测到亚稳态事件时,提供一个输出位作为随机位。通过将一半到触发器的0输入“标记”为“1”而将另一半0标记为“0”达到偶的随机数分布。此外,将一半的1标记为“1”而将另一半1标记为“0”。使用线性反馈移位寄存器,标记信号有很高的概率与所有噪声不相关。文档编号H03K3/84GK1575450SQ02814645公开日2005年2月2日申请日期2002年7月8日优先权日2001年7月25日发明者M·埃普斯坦申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1