伪随机数发生器的初始种子管理制造技术

技术编号:4556630 阅读:326 留言:0更新日期:2012-04-11 18:40
提供了使用预存储的初始化种子的用于伪随机数发生器的安全做种和重新做种方案。这种方案即使在熵收集不可用的情况下仍将伪随机数发生器初始化为未知状态。在安全文件系统中维护具有初始化种子信息的主种子文件和影像种子文件。如果主种子文件被损坏,则用影像种子文件的内容来做种伪随机数发生器。此外,可将信任定时器或时钟与预存储的种子信息相混合以便即使在预存储的种子信息已被损害时添加熵。

【技术实现步骤摘要】
【国外来华专利技术】伪随机数发生器的初始种子管理 背景相关申请本专利申请涉及Gregory Gordon Rose等人于2006年8月2日提交且转让给 本申请受让人的题为"Cryptographically Secure Pseudo-Random Number Generator(密码学上安全的伪随机数字发生器)"的美国S/N. 11/509,215。领域本专利技术涉及安全伪随机数发生器,尤其涉及用于在电子设备中初始化伪随机 数发生器的种子管理。背景随机数生成有许多应用,举例而言包括密码学用途(例如,用于加密和完好 性保护的密钥、用于安全性协议的一次性数(nonce)、等等)。真随机数是不可 能以高于平均的概率来预测的。在现实世界中,要获得理想的随机数源是极难的。常常采用使用确定性算法来生成伪随机数的伪随机数字发生器(PRNG)。 PRNG可在非常快的速度下产生数字。给定了称为种子的随机输入,就能确定性地 生成非常长的伪随机数序列。在不具备此种子的知识的情况下,要将此发生器与随 机源区分开来是不可行或非常困难的。尽管有许多PRNG可用,但是大多数并非 是针对安全性应用设计的。因为PRNG使用确定性算法,所以它们曝露于入侵之 下,由此削弱了 PRNG的安全性。例如,线性同余发生器被广泛用作PRNG,但 是在很短的输出序列被分析出来之后就能被破解。诸如加密应用等一些应用通常将"随机"数用作初始化矢量、密钥、 一次性 数、盐值等等。 一般而言,密码学上安全的PRGN (CSPRNG)是以安全方式用不 可预测的输入来做种的,因而要将其输出与随机比特序列区分开来是不可行的。伪随机数发生方案在CSPRNG中是相对简单直接的。举例而言,其可以是在计数器模式或输出反馈模式下运行的分块密码、使用种子作为密码密钥的流密码、或是嵌套散列结构。CSPRNG设计中错综复杂的部分是如何做种以及重新做种 CSPRNG。理想地,CSPRNG用使得发生器的内状态在发生器被应用调用之前不能 预测的一些信息来做种。重新做种是用于以新种子来更新先前已被做种过的 CSPRNG的顺序逻辑的过程。此类重新做种使得要破解确定性数发生算法更为困 难。然而,熵收集模块获取良好种子要花费时间。由此,在CSPRNG被应用调用 之前做种或重新做种该CSPRNG是常见问题,因为在通电之际,CSPRNG可能在 这样的种子可用之前就被应用调用。现存在数种标准化的CSPRNG设计,诸如FIPS 186-2、 ANSI X9.17-1985附录 C、 ANSI X9.31-1998附录A.2.4、以及ANSI X9.62-1998附件A.4。不巧的是,这 些设计当中有许多在某些情状下并不令人满意。例如,ANSI X9.17 PRNG的两个 设计缺陷已被J. Kdsey等人在刊于1998年Springer-Verlag出版社的第五届国际学 术研讨会学报中的"Fast Software Encryption (快速软件加密)"中标识出来。此 夕卜,干U于2006年6月的题为"Recommendation for Random Number Generator Using Deterministic Random Bit Generators (对使用确定性随机比特发生器的随机数发生 器的建议)"的美国国家标准技术研究所(NIST)专刊800-90也公开了用于初 始化伪随机数发生器的系统,但未提供充分的抗入侵安全性特征。因此,需要能快速且安全地获得种子的伪随机数发生器。概述提供了使用预存储的初始化种子的用于伪随机数发生器的安全做种和重新做 种方案。这种方案即使在熵收集不可用的情况下仍将伪随机数发生器初始化为未知 状态。可在安全文件系统中维护具有做种信息的主种子文件和影像种子文件。如果 主种子文件被损坏,则用影像种子文件的内容来做种伪随机数发生器。信任定时器 可被用作做种机制的一部分,作为种子文件的入侵的对策。将信任定时器或时钟与 预存储的种子信息相混合以便即使在预存储的种子信息已被损害时添加熵。提供了一种用于操作伪随机数发生器的方法。用预存储的原始种子来初始化 伪随机数发生器的启动内状态。可在所存储的原始种子已被使用过一次之后就将其 破坏。可从一个或多个不可预测的熵源获得新种子,并且该新种子可被用于将伪随 机数发生器的内状态修改为不可预测的状态。可基于伪随机数发生器的经修改的内 状态生成伪随机输出。该伪随机输出随后可被存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子。可在伪随机数发生器的制造期间将原始种子存 储在安全位置。可根据区间定时器周期性地执行伪随机数发生器的重新做种。在一个示例中,可在伪随机数发生器重启之后从种子文件检索初始化种子。 可用初始化种子来初始化伪随机数发生器的启动内状态。可用从伪随机数发生器获 得的新初始化种子替换种子文件的内容。在另一个示例中,随后从信任源获得时间值。时间值和初始化种子随后被组 合以获得经修改的初始化种子。时间值和初始化种子可被组合以使得时间值被分散 到经修改的初始化种子的整个范围中。可用经修改的初始化种子来初始化伪随机数 发生器的启动内状态。随后可用从伪随机数发生器的伪随机输出获得的新初始化种 子替换种子文件的内容。在又一方面,将伪随机输出存储在种子文件中可包括(1)将伪随机输出存储 在安全文件系统的主种子文件中;以及(2)将伪随机输出存储在安全文件系统的 影像种子文件中。在重启伪随机数发生器之际,可关于主种子文件的完好性是否已被损害作出 确定。如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪 随机数发生器的启动内状态。否则,如果主种子文件的完好性检查失败,则用影像 种子文件的初始化种子来初始化伪随机数发生器的启动内状态。还提供了一种伪随机数发生器,包括种子选择模块、做种模块、以及数字发 生模块。种子选择模块可被配置成从一个或多个种子源选择种子。做种模块耦合到 种子选择模块,并且可被配置成根据种子选择模块提供的种子来调节伪随机数发生 器的内状态。数字发生模块耦合到做种模块,并且可被配置成基于伪随机数发生器 的内状态生成伪随机输出。种子选择模块可被进一步配置成(a)如果伪随机数发 生器是首次被启动,则选择预存储的原始种子来初始化伪随机数发生器的启动内状 态;和/或(b)如果伪随机数发生器先前已被启动过,则选择来自预存储的种子文件的初始化种子来初始化伪随机数发生器的启动内状态。种子选择模块可在存储的原 始种子已被使用过一次之后就将其破坏。数字发生模块可提供伪随机输出,该伪随 机输出被存储在种子文件中并被用作初始化种子。根据一种特征,伪随机数发生器还可包括耦合到做种模块的信任时间源。做种模块可被进一步配置成(a)从信任时间源获得时间值;(b)组合时间值与初始 化种子以获得经修改的初始化种子;以及(c)用经修改的初始化种子来初始化伪随机数发生器的启动内状态。时间值和初始化种子可被组合以使得时间值被分散到经修改的初始化种子的整个范围中。根据另一种特征,伪随机数发生器还可包括用于存储种子文件的安全文件系 统。种子文件可包括主种子文件和影像种子文件。种子选择模块可被进一步配置成: (a)在重启伪随机数发生器之际确定主种子文本文档来自技高网...

【技术保护点】
一种用于操作伪随机数发生器的方法,包括:    用预存储的原始种子来初始化所述伪随机数发生器的启动内状态;    在所述存储的原始种子已被使用过一次之后就将其破坏;    从一个或多个不可预测的熵源获得新种子;    用所述新种子将所述伪随机数发生器的所述内状态修改成不可预测的状态;    基于所述伪随机数发生器的所述经修改的内状态生成伪随机输出;以及    将所述伪随机输出存储在种子文件中作为所述伪随机数发生器的后续启动内状态的初始化种子。

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

【专利技术属性】
技术研发人员:GG罗斯A盖特曼肖路D菲格罗亚
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

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

1