可靠的随机数发生器制造技术

技术编号:2881688 阅读:196 留言:0更新日期:2012-04-11 18:40
揭示一种产生随机数的方法和装置(300)。在第一实施例中,产生随机数的方法涉及产生一个第二随机数。伪随机数是从数字随机数发生器(304)产生的,第一随机数是从模拟随机数发生器(208-1)产生的。第一随机数与伪随机数合并,产生第二随机数,它是两个发生器的输出的结果。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】本申请要求1999年6月8日提交的美国临时申请60/138,182的权益。
技术介绍
本专利技术一般涉及随机数发生器,尤其涉及使用数字和模拟随机数发生器二者的随机数发生器。对于诸如密码术的各种用途可使用随机数发生器。密码术的正确使用依赖于随机数的统计学上高质量源。令人遗憾的是,传统的随机数发生器(“RNG”)存在缺点。简单的随机数发生器使用数字技术来产生伪随机数。伪随机数基本上或较高程度上是随机数,它们由数字过程产生。数字技术能够产生伪随机数,由于其数字自然特性伪随机数是确定性的。换句话说,当数字输入值相同时,两个相同的数字随机数发生器产生相同的伪随机数。于是,数字技术产生很不理想的结果,因为伪随机数是可预测的。产生随机数的一种共用数字技术是一种线性全等发生器算法。这一算法进行迭代以产生一个输出,该输出被用作下一个输出的种子。然而,由这种技术产生的随机数的序列少,在相对较少个数的不同输出后便会重复。这里将轨道定义为数字随机数发生器产生的输出的数目,直到一个输出与前一个输出相同为止。正如能够理解的,递归算法在该轨道中将产生独特输出直到一个输出被重复为止。一旦第一个值重复,接下来的值也将重复。重复模式是不希望有的,因为它是可预测的。这种算法在大多数C编程语言库中看到。为了提供可靠的随机数,传统的系统依赖于模拟随机数发生器。模拟随机数发生器产生随机数的流,它们并不具有象数字随机数发生器那样的周期轨道。这些模拟随机数发生器通常将一个随机模拟电压(如噪声)转换为随机数据数字流。这些电路通常是分开的集成电路,它们以100Kbit或更小的速率产生随机数的流。然而,这些随机数产生速率对于非常高性能的密码术是不适合的,这里在短的时间周期内需要大量的随机比特。模拟随机数发生器趋向于失效。模拟随机数发生器的寿命比使用随机数的数字电路小得多。正如本领域技术人员明白的,模拟随机数发生器的失效会挫败有效的密码术。另外,产生随机数所使用的模拟电压的源易受攻击者控制。于是,需要不易受攻击者攻击的更可靠的模拟随机数发生器。模拟随机数发生器通常位于使用随机数的数字电路以外的一个单独集成电路上,因为数字半导体工艺一般与模拟半导体工艺不兼容。数字集成电路通常具有高的增益,并针对快速CMOS切换最佳化。然而,模拟随机数发生器要求线性模拟特性,以有效地放大随机电压的源,以便随机地产生一个数字数据流。改进数字半导体工艺以产生更好的模拟特性是可能的,但是数字电路性能则受到不利影响。于是,用传统技术将模拟随机数发生器集成在同一集成电路上是十分困难的。另外,位于与含有数字加密功能的集成电路分开的集成电路上的模拟随机数发生器趋向于受攻击。更具体地说,在载有随机数的电路板上到加密功能的轨迹易于受攻击。例如,攻击者会处置或替换来自模拟随机数发生器的信号。正如本领域专业技术人员能够明白的,这种攻击则会让密码术算法和密钥更易于确定。总之,需要开发一种以高数据速率可靠地产生随机数的随机数发生器。另外,随机数发生器应当与同一集成电路上的数字电路相容集成。专利技术概要根据本专利技术,揭示一种产生随机数的方法和装置。在第一实施例中,产生随机数的方法涉及产生一个第二随机数。从数字随机数发生器产生一伪随机数,而从模拟随机数发生器产生一第一随机数。第一随机数与伪随机数合并,产生一第二随机数,它是两个发生器的输出的结果。在另一个实施例中,一种方法是利用加密功能产生随机数。从加密功能的输出产生一伪随机数,而从模拟随机数发生器产生一第一随机数。将伪随机数和第一随机数耦合到加密功能的输入,以便从加密功能的输出产生一第二随机数,这里第二随机数与伪随机数和第一随机数相关。在再一个实施例中,一种随机数发生器装置,包括一输出,一数字随机数发生器,和一模拟随机数发生器。数字随机数发生器产生伪随机数,模拟随机数发生器产生随机数。将随机数发生器的输出耦合到数字和模拟随机数发生器。附图简述附图说明图1是一方框图,代表使用加密功能的随机数发生器的一实施例。图2是一方框图,代表使用模拟随机数发生器和加密功能二者来产生随机数的随机数发生器的一实施例。图3是一方框图,代表使用模拟和数字两种随机数产生技术的随机数发生器的另一实施例。图4是一方框图,说明使用模拟随机数产生技术对密钥附加随机化的的随机数发生器的一实施例。图5是一方框图,说明使用模拟随机数产生技术对密钥随机化的的随机数发生器的一实施例。图6是一方框图,代表使用散列函数和非易失性寄存器的随机数发生器的一实施例。图7是一流程图,说明产生随机数的方法。具体实施例的描述虽然本专利技术可以有许多不同的形式的实施例,在附图中示出,这里将作详细描述,在理解了本公开内容的本专利技术的众多实施例应看作是本专利技术原理的示例而不希望将本专利技术的宽的诸方面限制为所说明的实施例。在附图中,相似的元件和/或特征具有相同的参考标号。相同类型的不同元件是按照破折号加第二标记的参考标记来区分的,以区分同一幅图中的相似元件。如果在以下揭示内容中仅采用第一参考标记,说明可应用于几种相似元件中的任何一种。图1示出一个实施例。本实施例100在环路中利用加密功能104或密码功能加密来产生伪随机数的块。包含在密码功能104中的是明码文本输入、密钥输入和密码文本输出。将文本输出用作伪随机数。密钥输入接收一个密钥,该密钥被密码功能104用于产生密码文本输出。一次将密钥初始化到装置中,在随机数发生器100的寿命期间不需要变化。密码文本输出一次又一次地产生伪随机数的块。将每个块馈送到密码功能104的输入,作为下一次加密的种子。密码功能104可以是任何对称或非对称密码算法。例如,非对称密码算法可以是一个非对称公钥密码。另外,密码功能104既能加密也能解密以产生伪随机数。较佳地,密码算法是对称块密码功能,它进行加密以产生随机数。对称块密码功能的一个例子是数据加密标准(DES)。为了增加密码功能104的随机状态,使用一个随机数种子。该种子较佳地是用高等级模拟随机数发生器产生的。具有随机种子使得输出轨道中的值变为不可预测。然而,本实施例将重复轨道中的同一组不同的值,直至密钥被改变为止。输出出现随机,因为对于强的密码功能104,轨道是很大的。为了进一步增大伪随机输出的质量,使密码功能104的速度加速到超过读出输出的速度。通过使密码功能104快速地运行,两个相继的伪随机数读出会被未能读出的伪随机数区分开。因而,输出与密码功能之间的相关性被解除。正如本领域专业技术人员明白的,这一特征使得攻击者通过分析输出而确定密钥或者密码术算法更加困难。参考图2,图中以方框图示出随机数发生器200的另一个实施例。包含在随机数发生器200的是密码功能104、密码文本块寄存器204、数个模拟随机数发生器(“RNG”)208和数个“异或(XOR)”门306。本实施例使用密码功能104和模拟随机数发生器208二者来真正产生随机数。另外,本实施例是可靠的,因为所有模拟随机数发生器208的失效将不会毁坏随机数发生器200。所有模拟随机数发生器的失效则会降低电路有效性而成为对图1中实施例的随机数发生器。密码功能104产生一个第一随机数(m),它被耦合到密码文本块寄存器204。密码文本块寄存器204可以是一个串行或并行配置的存储器寄存器,它存储来自密码功能1本文档来自技高网...

【技术保护点】
一种产生随机数的方法,其特征在于所述方法包括以下步骤:从数字随机数发生器产生一个伪随机数;从模拟随机数发生器产生一个第一随机数;以及使第一随机数与伪随机数合并,以产生一个第二随机数,它是两个发生器的输出的结果。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:EJ斯普龙克
申请(专利权)人:通用器材公司
类型:发明
国别省市:US[美国]

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

1