可靠的随机数发生器.pdf

上传人:e2 文档编号:649688 上传时间:2018-03-01 格式:PDF 页数:17 大小:575.12KB
返回 下载 相关 举报
摘要
申请专利号:

CN00808584.6

申请日:

2000.06.08

公开号:

CN1354848A

公开日:

2002.06.19

当前法律状态:

终止

有效性:

无权

法律详情:

专利权的终止(未缴年费专利权终止)授权公告日:2004.7.28|||授权|||实质审查的生效|||公开

IPC分类号:

G06F1/02

主分类号:

G06F1/02

申请人:

通用器材公司;

发明人:

E·J·斯普龙克

地址:

美国宾夕法尼亚州

优先权:

1999.06.08 US 60/138,182; 1999.12.07 US 09/455,951

专利代理机构:

上海专利商标事务所

代理人:

李玲

PDF下载: PDF下载
内容摘要

揭示一种产生随机数的方法和装置(300)。在第一实施例中,产生随机数的方法涉及产生一个第二随机数。伪随机数是从数字随机数发生器(304)产生的,第一随机数是从模拟随机数发生器(208-1)产生的。第一随机数与伪随机数合并,产生第二随机数,它是两个发生器的输出的结果。

权利要求书

1: 一种产生随机数的方法,其特征在于所述方法包括以下步骤: 从数字随机数发生器产生一个伪随机数; 从模拟随机数发生器产生一个第一随机数;以及 使第一随机数与伪随机数合并,以产生一个第二随机数,它是两个发生器 的输出的结果。
2: 如权利要求1所述的方法,其特征在于:产生伪随机数的步骤包括从 加密功能产生伪随机数的步骤。
3: 如权利要求1所述的方法,其特征在于进一步包括以下步骤: 周期性地把第一随机数存储在非易失性存储器位置中; 增加数字随机数发生器的功率;以及 将以前存储的第二随机数装载到数字随机数发生器中。
4: 如权利要求1所述的方法,其特征在于:产生伪随机数的步骤包括在 处理器上执行一软件算法。
5: 如权利要求1所述的方法,其特征在于:产生伪随机数的步骤包括从 对称块密码功能产生一伪随机数。
6: 如权利要求1所述的方法,其特征在于:产生伪随机数的步骤包括从 非对称公钥密码功能产生一伪随机数。
7: 一种用加密功能产生随机数的方法,其特征在于所述方法包括以下步 骤: 从加密功能的输出产生一个伪随机数; 从模拟随机数发生器产生一个第一随机数; 将伪随机数和第一随机数耦合到加密功能的输入;以及 从加密功能的输出产生一个第二随机数,它与伪随机数和第一随机数有 关。
8: 如权利要求7所述的方法,其特征在于:加密功能和模拟随机数发生 器位于同一封装中。
9: 如权利要求8所述的方法,其特征在于进一步包括把第二随机数存储 在非易失性存储器位置中的步骤。
10: 如权利要求7所述的方法,其特征在于:产生伪随机数的步骤包括用 一个随机数源对加密功能初始化的步骤。
11: 如权利要求10所述的方法,其特征在于:随机数源在包括加密功能 和模拟随机数发生器的封装之外。
12: 如权利要求7所述的方法,其特征在于进一步包括将一个密钥装载到 加密功能中的步骤。
13: 如权利要求12所述的方法,其特征在于进一步包括在装载一个密钥 前把模拟随机数发生器耦合到该密钥的一个位的步骤。
14: 如权利要求7所述的方法,其特征在于:产生伪随机数的步骤包括从 对称块密码功能产生一伪随机数块。
15: 如权利要求7所述的方法,其特征在于:产生伪随机数的步骤包括从 非对称公钥密码功能产生一伪随机数块。
16: 一种随机数发生器装置,其特征在于所述装置包括: 一输出; 产生伪随机数的数字随机数发生器; 产生随机数的模拟随机数发生器,其中将所述输出耦合到所述数字和模拟 随机数发生器。
17: 如权利要求16所述的装置,其特征在于:数字随机数发生器包括一 加密功能。
18: 如权利要求17所述的装置,其特征在于:所述加密功能比读出所述 输出更快地产生伪随机数。
19: 如权利要求16所述的装置,其特征在于:将伪随机数耦合到数字随 机数发生器的输入。
20: 如权利要求16所述的装置,其特征在于进一步包括一具有多个位的 寄存器,该寄存器包含伪随机数,其中将模拟随机数发生器至少耦合到其中一 个位。
21: 如权利要求16所述的装置,其特征在于进一步包括多个模拟随机数 发生器。
22: 如权利要求16所述的装置,其特征在于进一步包括一个与所述输出 耦合的散列函数。

说明书


可靠的随机数发生器

    本申请要求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可以是一个串行或并行配置的存储器寄存器,它存储来自密码功能104的密码文本的一个64位块。密码文本块寄存器204引入一个随机数产生时间周期的延迟。

    当随机数(m)离开寄存器204时,较佳地至少一个位受模拟随机数发生器208影响。正如本领域专业技术人员明白的,一个位的改进将改变密码功能104的轨道。于是,如果一个位被每个轨道的模拟随机数发生器改变,重复轨道将决不发生。较佳地,离开密码文本寄存器204的一些位与来自模拟随机数发生器208的输出进行“异或”。然而,其他的实施例可以以任何种方法将来自寄存器204和模拟随机数发生器208的输出进行组合。

    模拟随机数发生器208较佳地与密码功能104位于同一个集成电路上。然而,他们可以等同地位于另一个集成电路上。模拟随机数发生器208将多种类型的来自锁相环路的热、电噪声、二极管电子结噪声、相位噪声和/或亚稳定时边界转移到随机二进制数据流中。如果这些发生器208是在芯片上(即在同一个集成电路上)产生的,由于在背景部分中上述的原因,它们可能是不可靠的。如果所有的发生器208失效,密码功能将使用最后一个随机数作为种子,单单用密码功能104来随机地产生伪随机数。

    每个模拟随机数发生器208产生一个输出,该输出可以修改来自密码文本寄存器204的一个位输出。来自随机数发生器的输出可以与寄存器204的一个位进行“异或”或者简单地替代该位。如果模拟随机数发生器208已经停止产生随机输出。那么发生器208的对寄存器204的作用在逻辑上被失能,以阻止随机性的降低。测试发生器208的效能的一种方法是在时间上检查0和1的均等分布。测试发生器208的效能的其他技术也是已知的。在其他的实施例中,发生器208则为每个密码文本块产生数个位把修改相同个数的从寄存器204输出的位。

    在模拟发生器208将熵引入到随机数(m)后,结果是第二个随机数(m+1)。将第二随机数耦合到密码功能104的明码文本输入,作为产生第三随机数(m+2)的种子。这一循环重复进行,以循环的方式产生随机数块。

    接着参考图3,以方框图形式示出了随机数发生器300的另一个实施例。本实施例类似于图2所示的实施例,所不同的是密码功能104被数字随机数发生器304替代。较佳地,软件算法起数字随机数发生器304的作用,但是其他的实施例则使用硬件电路。从发生器304产生的伪随机数是可确定的。正如背景部分中讨论的,软件随机数发生器具有短的轨道。然而,由于模拟随机性是由模拟随机数发生器208引入的,本实施例产生可靠的随机数,而没有重复轨道。

    数字随机数发生器304可以用多种方法中的任何一种方法来实施。较佳地,以软件对线性全等算法编码并在通用处理器上执行。然而,本发明能够增大任何数字随机数产生技术的可靠性。

    参考图4,图中以方框图形式示出随机数发生器400的一个实施例。本发生器400除了改变从密码文本块寄存器204输出的位之外还通过改变密码功能104中使用的密钥而改善随机性。只要密钥保持未变,使用密码功能的数字随机数发生器(例如参见图1)重复一个轨道。然而,改变密钥将改变明码文本与密码文本之间的关系,这也改变轨道。

    密钥在装载到密码功能104中之前被存储在密钥寄存器404中。模拟随机数发生器208通过使输入到密钥寄存器404中的位与各个模拟随机数发生器208进行“异或”而对这些位随机化。周期性地,将随机化后的密钥装载到密码功能104中。正如能够理解的,对于产生随机数而言,密钥的实际值通常并不重要。

    接着参考图5,图中示出随机数发生器500的一个实施例,它对输入到密码功能104中的密钥进行随机化。本实施例类似于图4所示的实施例,不同的是模拟随机数发生器208不与加密环路耦合。通过让数个模拟随机数发生器经“异或”门耦合到密钥的位对输入的密钥作随机化。周期性地,将密钥寄存器404中的新随机化的密钥装载到密码功能104中。正如本领域技术人员能够理解的,改变密钥改变由密码功能104产生的轨道中随机数的重复图案。

    参考图6,图中用方框图示出随机数发生器600的另一个实施例。本发生器600增加一个非易失性寄存器604和一个散列函数608,以进一步改善随机数质量。

    散列函数608取密码功能104的输出并对该输出作进一步扰动。较佳地,采用诸如SHA-1的安全散列算法。本领域专业技术人员能够理解,增加散列函数是通过增加一道屏障而增加密码术算法和密钥的安全性,免受攻击者的攻击,以散列函数的固有单向功能的形成进行分析。

    为了保存轨道中的随机性,采用非易失性寄存器604来周期性地存储密码文本块。较佳地,寄存器604是电池支持的随机存取存储器(RAM),但是也可以是快闪存储器、磁心存储器、电可擦只读存储器、或者其他非易失性存储器。周期性地,处理器(未示出)读出密码文本块寄存器204并将值存储在非易失性寄存器604中。当从电路中切断电源时,非易失性寄存器604保存最后存储的随机数。在通电后,处理器读出非易失性寄存器604并将值装载到密码文本寄存器204中。采用恢复的值作为接下来随机数产生的种子。另外,随机性在时间上的任何累积基本上被保持。

    参考图7,图中示出一流程图,该流程图表示产生随机数的一种方法。在步骤700中,确定是否是随机数发生器的第一次通电。这可以通过检查之前存储的软件变量或者检查非易失性寄存器604中的一个值来确定。如果确定这是第一次通电。在步骤704中装载随机数种子。较佳地,种子数目是由高质量的模拟随机数发生器在集成电路之外产生的。在以前存储了随机数的情况中,由于这不是第一次加电,在步骤708中装载非易失性寄存器604。

    一旦用随机种子对随机数发生器初始化,附加随机数的产生能够进行。在步骤712,随机数是从随机种子产生的。在步骤728,在随机数上执行散列函数。如果密码术操作的任何电路需要一个随机数,在步骤732中使用该随机数。

    在步骤712中产生一个随机数之后,准备轨道中的下一个随机数。在步骤716,模拟随机数发生器208将附加随机性混合到随机数中。在步骤720,将输出耦合到密码功能104的明码文本输入。周期性地,步骤724将本随机数存储在非易失性寄存器604中。处理器以发生较少的间隔(如每秒一次)存储本随机数。以这种方式,发生器以可靠的方式产生随机数。

    鉴于以上描述,本发明的诸优点变得更加明显。即使所有的模拟随机数发生器失效,随机数发生器也能产生伪随机数。通过不是仅仅依赖于模拟随机数产生,模拟随机数发生器的集成在数字半导体工艺中是切实可行的,尽管模拟发生器可能具有差的初始特性以及最终失效。另外,高的随机数数据速率是可能的,因为随机数发生器使用了数字技术。

    还能够采用本发明的多种变化和改进。在不同的实施例中,以以下方式的任何一种或多种能够改进随机数发生器。密码功能在提供随机数和加密/解密两方面能够起双重作用。于是,已经具有密码功能的电路则几乎不需要附加电路也能提供随机数产生。尽管以上结合图6讨论的实施例周期性地存储随机数供以后作为种子使用,但是如果通过电容器或电池从内部提供适当工作电力,其他的实施例则是在断电后存储随机数。

    已经给出的本发明的以上描述其目的是说明和描述,而不希望是限制本发明。在本发明的范围内,结合相关技术领域的技能或知识,可以对以上描述做出变化和改进。这里描述的实施例进一步希望是说明实施本发明的已知的最佳方式,使得本领域专业技术人员能够以这种最佳方式实施本发明或其他实施例,特定应用可能需要各种改进或者使用本发明。希望所附的权利要求书把各种实施例包含在现有技术允许的范围内。

可靠的随机数发生器.pdf_第1页
第1页 / 共17页
可靠的随机数发生器.pdf_第2页
第2页 / 共17页
可靠的随机数发生器.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《可靠的随机数发生器.pdf》由会员分享,可在线阅读,更多相关《可靠的随机数发生器.pdf(17页珍藏版)》请在专利查询网上搜索。

揭示一种产生随机数的方法和装置(300)。在第一实施例中,产生随机数的方法涉及产生一个第二随机数。伪随机数是从数字随机数发生器(304)产生的,第一随机数是从模拟随机数发生器(2081)产生的。第一随机数与伪随机数合并,产生第二随机数,它是两个发生器的输出的结果。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1