CN101663642A - 伪随机数发生器的初始种子管理 - Google Patents
伪随机数发生器的初始种子管理 Download PDFInfo
- Publication number
- CN101663642A CN101663642A CN200880012512A CN200880012512A CN101663642A CN 101663642 A CN101663642 A CN 101663642A CN 200880012512 A CN200880012512 A CN 200880012512A CN 200880012512 A CN200880012512 A CN 200880012512A CN 101663642 A CN101663642 A CN 101663642A
- Authority
- CN
- China
- Prior art keywords
- seed
- number generator
- initialization
- pseudorandom number
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Storage Device Security (AREA)
Abstract
提供了使用预存储的初始化种子的用于伪随机数发生器的安全做种和重新做种方案。这种方案即使在熵收集不可用的情况下仍将伪随机数发生器初始化为未知状态。在安全文件系统中维护具有初始化种子信息的主种子文件和影像种子文件。如果主种子文件被损坏,则用影像种子文件的内容来做种伪随机数发生器。此外,可将信任定时器或时钟与预存储的种子信息相混合以便即使在预存储的种子信息已被损害时添加熵。
Description
背景
相关申请
本专利申请涉及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.17PRNG的两个设计缺陷已被J.Kelsey等人在刊于1998年Springer-Verlag出版社的第五届国际学术研讨会学报中的“Fast Software Encryption(快速软件加密)”中标识出来。此外,刊于2006年6月的题为“Recommendation for Random Number Generator UsingDeterministic Random Bit Generators(对使用确定性随机比特发生器的随机数发生器的建议)”的美国国家标准技术研究所(NIST)专刊800-90也公开了用于初始化伪随机数发生器的系统,但未提供充分的抗入侵安全性特征。
因此,需要能快速且安全地获得种子的伪随机数发生器。
概述
提供了使用预存储的初始化种子的用于伪随机数发生器的安全做种和重新做种方案。这种方案即使在熵收集不可用的情况下仍将伪随机数发生器初始化为未知状态。可在安全文件系统中维护具有做种信息的主种子文件和影像种子文件。如果主种子文件被损坏,则用影像种子文件的内容来做种伪随机数发生器。信任定时器可被用作做种机制的一部分,作为种子文件的入侵的对策。将信任定时器或时钟与预存储的种子信息相混合以便即使在预存储的种子信息已被损害时添加熵。
提供了一种用于操作伪随机数发生器的方法。用预存储的原始种子来初始化伪随机数发生器的启动内状态。可在所存储的原始种子已被使用过一次之后就将其破坏。可从一个或多个不可预测的熵源获得新种子,并且该新种子可被用于将伪随机数发生器的内状态修改为不可预测的状态。可基于伪随机数发生器的经修改的内状态生成伪随机输出。该伪随机输出随后可被存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子。可在伪随机数发生器的制造期间将原始种子存储在安全位置。可根据区间定时器周期性地执行伪随机数发生器的重新做种。
在一个示例中,可在伪随机数发生器重启之后从种子文件检索初始化种子。可用初始化种子来初始化伪随机数发生器的启动内状态。可用从伪随机数发生器获得的新初始化种子替换种子文件的内容。
在另一个示例中,随后从信任源获得时间值。时间值和初始化种子随后被组合以获得经修改的初始化种子。时间值和初始化种子可被组合以使得时间值被分散到经修改的初始化种子的整个范围中。可用经修改的初始化种子来初始化伪随机数发生器的启动内状态。随后可用从伪随机数发生器的伪随机输出获得的新初始化种子替换种子文件的内容。
在又一方面,将伪随机输出存储在种子文件中可包括:(1)将伪随机输出存储在安全文件系统的主种子文件中;以及(2)将伪随机输出存储在安全文件系统的影像种子文件中。
在重启伪随机数发生器之际,可关于主种子文件的完好性是否已被损害作出确定。如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态。否则,如果主种子文件的完好性检查失败,则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态。
还提供了一种伪随机数发生器,包括种子选择模块、做种模块、以及数字发生模块。种子选择模块可被配置成从一个或多个种子源选择种子。做种模块耦合到种子选择模块,并且可被配置成根据种子选择模块提供的种子来调节伪随机数发生器的内状态。数字发生模块耦合到做种模块,并且可被配置成基于伪随机数发生器的内状态生成伪随机输出。种子选择模块可被进一步配置成:(a)如果伪随机数发生器是首次被启动,则选择预存储的原始种子来初始化伪随机数发生器的启动内状态;和/或(b)如果伪随机数发生器先前已被启动过,则选择来自预存储的种子文件的初始化种子来初始化伪随机数发生器的启动内状态。种子选择模块可在存储的原始种子已被使用过一次之后就将其破坏。数字发生模块可提供伪随机输出,该伪随机输出被存储在种子文件中并被用作初始化种子。
根据一种特征,伪随机数发生器还可包括耦合到做种模块的信任时间源。做种模块可被进一步配置成:(a)从信任时间源获得时间值;(b)组合时间值与初始化种子以获得经修改的初始化种子;以及(c)用经修改的初始化种子来初始化伪随机数发生器的启动内状态。时间值和初始化种子可被组合以使得时间值被分散到经修改的初始化种子的整个范围中。
根据另一种特征,伪随机数发生器还可包括用于存储种子文件的安全文件系统。种子文件可包括主种子文件和影像种子文件。种子选择模块可被进一步配置成:(a)在重启伪随机数发生器之际确定主种子文件的完好性是否已被损害;(b)如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态,和/或(c)否则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态。
因此,还提供了一种伪随机数发生器,包括:(a)用于用预存储的原始种子来初始化伪随机数发生器的启动内状态的装置;(b)用于在所存储的原始种子已被使用过一次之后就将其破坏的装置;(c)用于从一个或多个不可预测的熵源获得新种子的装置;(d)用于用新种子将伪随机数发生器的内状态修改成不可预测的状态的装置;(e)用于基于伪随机数发生器的经修改的内状态生成伪随机输出的装置;(f)用于将伪随机输出存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子的装置;(g)用于在伪随机数发生器的制造期间将原始种子存储在安全位置的装置;(h)用于在伪随机数发生器重启之后从种子文件检索初始化种子的装置;(i)用于用初始化种子来初始化伪随机数发生器的启动内状态的装置;和/或(j)用于用从伪随机数发生器获得的新初始化种子替换种子文件的内容的装置。
在一个示例中,伪随机数发生器还可包括:(a)用于在伪随机数发生器重启之后从种子文件检索初始化种子的装置;(b)用于从信任源获得时间值的装置;(c)用于组合时间值与初始化种子以获得经修改的初始化种子的装置;(d)用于用经修改的初始化种子来初始化伪随机数发生器的启动内状态的装置;和/或(e)用于用从伪随机数发生器的伪随机输出获得的新初始化种子替换种子文件的内容的装置。时间值和初始化种子可被组合以使得时间值被分散到经修改的初始化种子的整个范围中。
在另一个示例中,伪随机数发生器还可包括:(a)用于将伪随机输出存储在安全文件系统的主种子文件中的装置;(b)用于将伪随机输出存储在安全文件系统的影像种子文件中的装置;(c)用于在重启伪随机数发生器之际确定主种子文件的完好性是否已被损害的装置;(d)用于在主文件的完好性被成功验证的情况下用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态的装置;和/或(e)用于否则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态的装置。
还提供了一种处理电路,包括存储器设备和处理设备。存储器设备可包括用于存储伪随机数发生器的内状态的一个或多个内状态寄存器。处理设备被耦合到存储器设备并且可被配置成:(a)用预存储的原始种子来初始化伪随机数发生器的启动内状态;(b)在所存储的原始种子已被使用过一次之后就将其破坏;(c)从一个或多个不可预测的熵源获得新种子;(d)用新种子来重新做种伪随机数发生器以将伪随机数发生器的内状态修改成不可预测的状态;(e)基于伪随机数发生器的经修改的内状态生成伪随机输出;和/或(f)将伪随机输出存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子。
根据一种特征,处理设备可被进一步配置成:(a)在伪随机数发生器重启之后从种子文件检索初始化种子;(b)从信任源获得时间值;(c)组合时间值与初始化种子以获得经修改的初始化种子;(d)用经修改的初始化种子来初始化伪随机数发生器的启动内状态;和/或(e)用从伪随机数发生器的伪随机输出获得的新初始化种子替换种子文件的内容。时间值和初始化种子可被组合以使得时间值被分散到经修改的初始化种子的整个范围中。
根据一种特征,处理设备可被进一步配置成:(a)将伪随机输出存储在安全文件系统的主种子文件中;(b)将伪随机输出存储在安全文件系统的影像种子文件中;(c)在重启伪随机数发生器之际确定主种子文件的完好性是否已被损害;(d)如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态;和/或(e)否则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态。
还提供了一种具有用于生成伪随机输出的一条或多条指令的机器可读介质,这些指令在被处理器执行时使该处理器:(a)用预存储的原始种子来初始化伪随机数发生器的启动内状态;(b)在所存储的原始种子已被使用过一次之后就将其破坏;(c)从一个或多个不可预测的熵源获得新种子;(d)用新种子来重新做种伪随机数发生器以将伪随机数发生器的内状态修改成不可预测的状态;(e)基于伪随机数发生器的经修改的内状态生成伪随机输出;和/或(f)将伪随机输出存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子。
在一个示例中,此机器可读介质可进一步具有在由处理器执行时使该处理器执行以下操作的一条或多条指令:(a)在伪随机数发生器重启之后从种子文件检索初始化种子;(b)从信任源获得时间值;(c)组合时间值与初始化种子以获得经修改的初始化种子;(d)用经修改的初始化种子来初始化伪随机数发生器的启动内状态;和/或(e)用从伪随机数发生器的伪随机输出获得的新初始化种子替换种子文件的内容。时间值和初始化种子被组合以使得时间值被分散到经修改的初始化种子的整个范围中。
根据一种特征,种子文件可包括安全文件系统中的主种子文件和影像种子文件。此机器可读介质可进一步具有在由处理器执行时使该处理器执行以下操作的一条或多条指令:(a)在重启伪随机数发生器之际确定主种子文件的完好性是否已被损害;(b)如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态,和/或(c)否则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态。
附图简述
图1是图解其中可实现本文中所描述的一个或多个新颖性特征的伪随机数发生器的示例的框图。
图2是图解具有初始种子管理的伪随机数发生器的一个示例的框图。
图3图解根据一个示例的用于使用预存储的种子来初始化伪随机数发生器的方法。
图4是图解预期功率关断并存储伪随机输出以供伪随机数发生器的后续启动初始化的系统的框图。
图5图解用于操作设备以在检测到某种断电事件之际生成和保存初始化种子的方法。
图6图解用于使用主种子文件和影像种子文件来存储伪随机数发生器的初始化种子的方法。
图7是图解可如何利用时间分量来对抗对种子文件的入侵的示例的框图。
图8图解用于将时间组合成伪随机数发生器的初始化种子的一部分的方法。
图9是图解包括存储介质和配置成实现伪随机数字发生器的处理器的处理电路的框图。
详细描述
在以下说明中,给出了具体细节以提供对诸实施例的透彻理解。但是,本领域普通技术人员将可理解,没有这些具体细节也可实践这些实施例。例如,电路可能以框图形式示出,也可能根本不被示出,以免因不必要的细节而与这些实施例相混淆。在其它情况下,公知的电路、结构和技术可能不被具体示出以免混淆这些实施例。
还应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多可并行或并发执行。另外,这些操作的次序可以被重新编排。过程在其操作完成时终止。过程可对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止对应于该函数返回到调用方函数或主函数。
此外,存储介质可表示用于存储数据的一个或多个设备,包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括,但不限于,便携或固定的存储设备、光存储设备、无线信道以及能够存储、包含或承载指令和/或数据的各种其它介质。
此外,诸实施例可由硬件、软件、固件、中间件、微代码、或其组合来实现。当在软件、固件、中间件、或微代码中实现时,用于执行必要任务的程序代码或代码段可被存储在诸如存储介质或其他存储装置等的机器可读介质中。处理器可执行这些必要的任务。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或是指令、数据结构、或程序语句的组合。通过传递和/或接收信息、数据、自变量、参数、或存储器内容,一代码段可被耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包括存储器共享、消息传递、令牌传递、以及网络传输等合适的手段被传递、转发、或传输。
一种特征提供使用预存储的初始化种子的用于伪随机数发生器的安全做种和重新做种方案。这种方案即使在熵收集不可用的情况下仍将伪随机数发生器初始化为未知状态。
做种方案的另一方面提供了在安全文件系统中维护具有做种信息的主种子文件和影像种子文件。如果主种子文件被损坏,则用影像种子文件的内容来做种伪随机数发生器。
又一种特征提供将信任定时器用作做种机制的一部分,作为种子文件的入侵的对策。将信任定时器或时钟与预存储的种子信息相混合以便即使在预存储的种子信息已被损害时添加熵。
图1是图解其中可实现本文中所描述的一个或多个新颖性特征的伪随机数发生器的示例的框图。在启动时,伪随机数发生器102被配置成接收来自种子发生器模块104的种子,以将伪随机数发生器102初始化为未知状态。伪随机数发生器102可被一个或多个应用106、108和110调用以获得比特、符号、和/或数字的伪随机输出。
由于收集用来初始化伪随机数发生器102的状态的熵要耗时,一种特征出于此目的预存储启动种子。例如,种子发生器模块104可存储这样的启动种子,从而即使在其他熵信息不可用时,启动种子也可被用来将伪随机数发生器初始化为不可预测的状态。由此,在伪随机数发生器102启动之际,其能通过预存储的种子来快速地做种。
图2是图解具有初始种子管理的伪随机数发生器的一个示例的框图。该伪随机数发生器可被纳入作为诸如移动电话、计算机、电路板、芯片、处理器、半导体器件、机顶盒等电子设备和/或软件、固件、中间件、或微代码模块的一部分。因设备而异的原始种子200可在电子设备的制造期间被存储在存储设备202(例如,非易失性存储器)中。在该过程中,原始种子200可通过存储设备202的外部接口来存储。这样的原始种子200可使用例如不同的随机数发生器离线地生成。对其中存储了原始种子200的存储设备202的访问优选是受限的,从而不允许后续外部读或写操作。这防止了入侵者改变或知晓原始种子200。
当伪随机数发生器212首次通电以供操作时,原始种子200被馈送给伪随机数发生器212。原始种子200中的熵确保伪随机数发生器212被初始化为未知或不可预测的状态。通过这样做,伪随机数发生器212可在启动之际立即为不同应用提供伪随机数(输出)。
在一段时间后,熵收集模块204向伪随机数发生器212提供另一个种子,伪随机数发生器212可用其重新做种。例如,可发起向伪随机数发生器212请求M字节(例如,M=128字节)的随机数据并将这些M字节存储到安全文件系统208中的种子文件206中的过程。一旦创建了种子文件206,存储设备202中的原始种子200就被删除或破坏(例如,复位为全零)。
种子选择模块210可被耦合到伪随机数发生器以及一个或多个种子源202、204和208。例如,种子选择模块210可被配置成当伪随机数发生器启动或通电时在原始种子200与种子文件206之间进行选择。此外,种子选择模块210可从熵收集模块204获得种子,用这些种子来周期性地或不定时地重新做种伪随机数发生器212。熵收集模块204可被配置成从一个或多个源收集随后可被用来生成种子的随机数据。
当伪随机数发生器212随后被重启时(例如,在功率循环后),种子选择模块210检查存储设备202以确定有效原始种子是否可用。由于存储设备202中的原始种子200已被删除或破坏,因此存储设备202可能包含零或指示种子文件206可用和/或应被使用的标志。种子选择模块210随后从种子文件206获得初始化种子并使用它将伪随机数发生器212的内状态初始化为未知或不可预测的状态。安全文件系统208确保种子文件206的机密性和完好性。在一个示例中,安全文件系统可使用密码学来保护种子文件206内容的机密性和完好性。在另一个示例中,安全文件系统对于设备的用户和/或操作系统而言是不可访问的,但可被种子选择模块210和/或伪随机数发生器212访问。
伪随机数发生器212可包括做种模块214,其接收种子以初始化伪随机数发生器212的内状态。数字发生器模块216随后基于做种模块214所设置的状态生成伪随机输出。
来自伪随机数发生器212的一些伪随机输出可被存储为初始化种子供后续通电时使用。将新随机信息存储在种子文件206中并在启动时用它来重新做种伪随机数发生器212的该过程被重复,从而每次使用不同的初始化种子。在一种实现中,在已经用包含(例如,来自熵收集模块204的)熵的种子重新做种伪随机数发生器212之后,获得存储在种子文件206中的随机输出(作为初始化种子)。
在替换实现中,原始种子200可代替地在制造或其他安全初始化过程期间被直接存储在种子文件206中。原始种子随后可在伪随机数发生器212的首次初始化之后被破坏,并且随机信息被存储在种子文件206中以供伪随机数发生器212的后续重新做种。
图3图解根据一个示例的用于使用预存储的种子来初始化伪随机数发生器的方法。在伪随机数发生器的通电初始化302期间,关于原始种子是否可用作出确定(304)。原始种子的可用性可指示这是伪随机数发生器首次被初始化。如果这样的原始种子可用,则从安全存储源获得它(306)并且一旦原始种子的所存储版本已经被使用则将其破坏(308)。破坏所存储的原始种子可用作伪随机数发生器先前已被启动过的将来指示符。或者,可将一标志设置在安全位置以指示这一点。随后用原始种子来初始化伪随机数发生器的启动内状态(310)以生成伪随机输出(312)。在这一点,伪随机数发生器能够向调用方应用提供伪随机输出(例如,数字、比特、字节、符号等)。
可使用一个或多个熵源来获得新种子(314)。用新种子将伪随机数发生器的内状态修改成不可预测的状态(316)。然后基于伪随机数发生器的经修改的内状态生成伪随机输出(318)。该伪随机输出被存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子(320)。启动内状态是指伪随机数发生器在紧随其通电后的状态。
当伪随机数发生器在后续时间被通电时,则原始种子不再可用(304)。由此,代替地从种子文件获得预存储的种子(322)。随后用预存储的种子来初始化伪随机数发生器的启动内状态(324),并且伪随机数发生器能生成伪随机输出(312)。该初始做种过程在伪随机数发生器的后续启动期间被重复。
图4是图解预期功率关断并存储伪随机输出以供伪随机数发生器的后续启动初始化的系统的框图。伪随机数发生器可被纳入作为电子设备(例如,芯片、电路等)的一部分。这样的设备可在以下时候断电:(1)用户关闭通向设备的电源,(2)设备由于某种(些)出错关闭自身,和/或(3)设备崩溃。
控制模块402可从各种源收集信息以确定设备是否将关断。例如,控制模块402可被耦合到用户接口404(例如,开/关开关等)以检测用户何时关闭设备。类似地,控制模块402可被耦合到错误处置器406,后者检测何时出错并以受控方式关断设备。当用户接口404或错误处置器406指示设备将关闭时,控制模块402可被配置成使得伪随机数发生器410生成伪随机输出并将其存储在安全文件系统412的种子文件414中。
图5图解用于操作设备以在检测到某种断电事件之际生成和保存初始化种子的方法。例如,如果检测到断电信号(502)或检测到系统错误(504),则在将设备断电(510)之前生成伪随机数(506)并将其存储在安全种子文件中(508)。存储在安全种子文件中的伪随机输出可用于在下一次通电时初始化伪随机数发生器。
然而,当发生致命错误(例如,设备断电或服务拒绝攻击导致存储器损坏)时,在设备关断之前,可能很难检测出设备崩溃并且种子文件414可能未被成功更新。为解决这个问题,定时器408被耦合到控制模块402。控制模块402接收来自定时器408的周期性信号,其导致控制模块402请求伪随机数发生器410提供伪随机输出以存储在种子文件414中。
使用种子文件414的一种威胁在于种子文件的伪造。一种对策是将安全文件系统412中的种子文件414定位在特权分区中。特权分区可驻留在常规文件系统之外,并且这样不会经由系统更新而被擦除。系统的常规文件访问接口并不知晓安全文件系统412的存在。
另一种特征提供在(特权分区内的)安全文件系统412中维护主种子文件414和影像种子文件416。种子信息首先被保存到主种子文件414,并随后被保存到影像种子文件416。如果在向主种子文件414写入的同时发生致命错误,则先前未使用的种子信息仍存储在影像种子文件416中并且在下一次通电时被用于初始化伪随机数发生器410。这样,在通电期间总是有良好的种子信息可用于初始化伪随机数发生器410。
图6图解用于使用主种子文件和影像种子文件来存储伪随机数发生器的初始化种子的方法。从伪随机数发生器获得伪随机输出(602)。该伪随机输出(例如,比特、符号、数字等)首先被存储在主种子文件中(604)以随后被用作初始化种子。该伪随机输出可替换先前存储在主种子文件中的其他内容。相同的伪随机输出随后被存储在影像种子文件中(606)。随后,伪随机数发生器可被断电(608)。
当伪随机数发生器再通电时(610),可检查主种子文件的完好性和/或真实性以确定其是否有效(612)。如果主种子文件有效,则从主种子文件的内容获得初始化种子(614)。否则,如果主种子文件无效(例如,文件内容损坏),则从影像种子文件的内容获得初始化种子(616)。该初始化种子被用于初始化伪随机数发生器(618)。伪随机数发生器随后可向调用方应用提供伪随机输出。可在每次伪随机数发生器断电和通电时重复此过程,从而不同的初始化种子被用于初始化伪随机数发生器。
在一些实现中,或许不能使用特权分区(其中维护安全文件系统412)。在没有这样的特权分区的情况下,入侵者或许能用曾备份的先前种子文件的合法副本来覆写种子文件。随后,入侵者可立即使纳入有伪随机数发生器的设备崩溃(例如,通过断开电源),从而欺骗该设备在下一次通电循环时使用先前的种子文件。由于先前的种子文件是合法副本,因此它在通电阶段将被伪随机数发生器接受。每次入侵者使用相同的先前种子文件,伪随机数发生器随后就可在通电阶段产生相同的输出序列,直至其被熵收集模块重新做种。由此,入侵者或许能够控制伪随机数发生器的初始输出。
为了对抗这样的入侵,一种特征提供将时间用作启动初始化种子的一部分以进一步保护伪随机数发生器抵抗入侵。图7是图解可如何利用时间分量来对抗种子文件的入侵的示例的框图。时间捕捉模块702被用于捕捉来自可信任内部时钟的时间或来自网络(例如,CDMA网络)的信号。来自种子文件704的种子内容s与(来自时间捕捉模块702的)时间t相混合以形成初始种子708。混合函数706可被选择成或配置成使得时间t上的每比特改变都被分散在该函数输出的整个范围中。以此方式,时间t上的任何改变将导致整个初始化种子708改变。混合函数706的一个示例是散列算法(例如,初始_种子=散列(s||t),其中“||”表示级联)。结果,即使重新使用相同的种子文件,新时间t’亦使得初始种子散列(s||t’)与散列(s||t)不同。该初始种子708随后可被用于初始化伪随机数发生器。
图8图解用于将时间组合成伪随机数发生器的初始化种子的一部分的方法。在伪随机数发生器通电之际(802),从种子文件获得预存储的种子(804)。(从安全源)获得信任时间(806)并将其与预存储的种子组合以形成新初始化种子(808)。该新种子被用于初始化伪随机数发生器(810)并生成伪随机输出(812)。
图9是图解包括存储介质902和配置成实现伪随机数字发生器的处理器904的处理电路900的框图。存储介质902可以是例如包括用于存储伪随机数发生器的内状态的一个或多个内状态寄存器的存储器设备和/或硬驱动。处理设备904可被配置成用预存储的原始种子来初始化伪随机数发生器的启动内状态。可在所存储的原始种子已被使用过一次之后就将其破坏。可从一个或多个不可预测的熵源获得新种子。用新种子来初始化伪随机数发生器以将伪随机数发生器的内状态修改成不可预测的状态。基于伪随机数发生器的经修改的内状态生成伪随机输出。该伪随机输出被存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子。
在一种实现中,处理设备可被进一步配置成:(1)在伪随机数发生器重启之后从种子文件检索初始化种子,(2)从信任源获得时间值,(3)组合时间值与初始化种子以获得经修改的初始化种子,(4)用经修改的初始化种子来初始化伪随机数发生器的启动内状态,和/或(5)用从伪随机数发生器的伪随机输出获得的新初始化种子替换种子文件的内容。时间值和初始化种子可被组合以使得时间值被分散到经修改的初始化种子的整个范围中。
该处理设备可被进一步配置成:(1)将伪随机输出存储在安全文件系统的主种子文件和影像文件中,(2)在重启伪随机数发生器之际确定主种子文件的完好性是否已被损害,(3)如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态,和/或(4)否则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态。
在另一个示例中,存储介质902可以是存储指令的机器可读介质,这些指令在被处理器904执行时可使得该处理器904:(1)用预存储的原始种子来初始化伪随机数发生器的启动内状态,(2)在所存储的原始种子已被使用过一次之后就将其破坏,(3)从一个或多个不可预测的熵源获得新种子,(4)用新种子来重新做种伪随机数发生器以将伪随机数发生器的内状态修改成不可预测的状态,(5)基于伪随机数发生器的经修改的内状态生成伪随机输出,和/或(6)将伪随机输出存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子。此机器可读介质(存储介质902)可进一步具有在被处理器904执行时使该处理器执行以下操作的一条或多条指令:(1)在伪随机数发生器重启之后从种子文件检索初始化种子,(2)从信任源获得时间值,(3)组合时间值与初始化种子以获得经修改的初始化种子,(4)用经修改的初始化种子来初始化伪随机数发生器的启动内状态,和/或(5)用从伪随机数发生器的伪随机输出获得的新初始化种子替换种子文件的内容。
根据另一种特征,种子文件可包括安全文件系统中的主种子文件和影像种子文件。此机器可读介质(存储设备902)可进一步具有在被处理器执行时使该处理器执行以下操作的一条或多条指令:(1)在重启伪随机数发生器之际确定主种子文件的完好性是否已被损害,(2)如果主文件的完好性被成功验证,则用主种子文件的初始化种子来初始化伪随机数发生器的启动内状态,和/或(3)否则用影像种子文件的初始化种子来初始化伪随机数发生器的启动内状态。
相应地提供一种伪随机数发生器,包括:(1)用于用预存储的原始种子来初始化伪随机数发生器的启动内状态的装置,(2)用于在所存储的原始种子已被使用过一次之后就将其破坏的装置,(3)用于从一个或多个不可预测的熵源获得新种子的装置,(4)用于用新种子将伪随机数发生器的内状态修改成不可预测的状态的装置,(5)用于基于伪随机数发生器的经修改的内状态生成伪随机输出的装置,和/或(6)用于将伪随机输出存储在种子文件中作为伪随机数发生器的后续启动内状态的初始化种子的装置。伪随机数发生器还可包括:(7)用于在伪随机数发生器的制造期间将原始种子存储在安全位置的装置,(8)用于在伪随机数发生器重启之后从种子文件检索初始化种子的装置,(9)用于用初始化种子来初始化伪随机数发生器的启动内状态的装置,和/或(10)用于用从伪随机数发生器获得的新初始化种子替换种子文件的内容的装置。
图1、2、3、4、5、6、7、8、和/或9中图解的组件、步骤、和/或功能中的一个或多个可被重新编排和/或组合成单个组件、步骤、或功能,或可在数个组件、步骤、或功能中实施而会不影响伪随机数发生的运作。还可添加更多的元件、组件、步骤、和/或功能而不会脱离本发明。图1、2、4、7和/或9中图解的装置、设备、和/或组件可被配置成执行图3、5、6和/或8中描述的方法、特征、或步骤中的一个或多个。本文中描述的新颖性算法可以在软件和/或嵌入式硬件中高效率地实现。
本领域技术人员将可进一步领会,结合本文中公开的实施例描述的各种说明性逻辑框、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地说明硬件和软件的这种可互换性,各种说明性组件、块、模块、电路、和步骤在上文中以其功能性的形式进行了一般化描述。这样的功能性是实现成硬件还是软件取决于具体应用和加诸整体系统上的设计约束。
这些实施例的描述旨在是示例性的,而并非旨在限定权利要求的范围。由此,本发明的教导可易被应用于其他类型的装置,并且许多替换、修改、和变形对于本领域技术人员将是明显的。
Claims (30)
1.一种用于操作伪随机数发生器的方法,包括:
用预存储的原始种子来初始化所述伪随机数发生器的启动内状态;
在所述存储的原始种子已被使用过一次之后就将其破坏;
从一个或多个不可预测的熵源获得新种子;
用所述新种子将所述伪随机数发生器的所述内状态修改成不可预测的状态;
基于所述伪随机数发生器的所述经修改的内状态生成伪随机输出;以及
将所述伪随机输出存储在种子文件中作为所述伪随机数发生器的后续启动内状态的初始化种子。
2.如权利要求1所述的方法,其特征在于,还包括:
在所述伪随机数发生器的制造期间将所述原始种子存储在安全位置。
3.如权利要求2所述的方法,其特征在于,根据区间定时器周期性地执行所述伪随机数发生器的重新做种。
4.如权利要求1所述的方法,其特征在于,还包括:
在所述伪随机数发生器重启之后从所述种子文件检索所述初始化种子;
用所述初始化种子来初始化所述伪随机数发生器的所述启动内状态;以及
用从所述伪随机数发生器获得的新初始化种子替换所述种子文件的内容。
5.如权利要求1所述的方法,其特征在于,还包括:
在所述伪随机数发生器重启之后从所述种子文件检索所述初始化种子;
从信任源获得时间值;
组合所述时间值与初始化种子以获得经修改的初始化种子;
用所述经修改的初始化种子来初始化所述伪随机数发生器的启动内状态;以及
用从所述伪随机数发生器的伪随机输出获得的新初始化种子替换所述种子文件的内容。
6.如权利要求5所述的方法,其特征在于,所述时间值和初始化种子被组合以使得所述时间值被分散到所述经修改的初始化种子的整个范围中。
7.如权利要求1所述的方法,其特征在于,将所述伪随机输出存储在种子文件中包括
将所述伪随机输出存储在安全文件系统的主种子文件中;以及
将所述伪随机输出存储在所述安全文件系统的影像种子文件中。
8.如权利要求7所述的方法,其特征在于,还包括:
在重启所述伪随机数发生器之际确定所述主种子文件的完好性是否已被损害;
如果所述主文件的所述完好性被成功验证,则用所述主种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态;以及
否则用所述影像种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态。
9.一种伪随机数发生器,包括:
用于用预存储的原始种子来初始化所述伪随机数发生器的启动内状态的装置;
用于在所述存储的原始种子已被使用过一次之后就将其破坏的装置;
用于从一个或多个不可预测的熵源获得新种子的装置;
用于用所述新种子将所述伪随机数发生器的所述内状态修改成不可预测的状态的装置;
用于基于所述伪随机数发生器的所述经修改的内状态生成伪随机输出的装置;以及
用于将所述伪随机输出存储在种子文件中作为所述伪随机数发生器的后续启动内状态的初始化种子的装置。
10.如权利要求9所述的伪随机数发生器,其特征在于,还包括:
用于在所述伪随机数发生器的制造期间将所述原始种子存储在安全位置的装置。
11.如权利要求9所述的伪随机数发生器,其特征在于,还包括:
用于在所述伪随机数发生器重启之后从所述种子文件检索所述初始化种子的装置;
用于用所述初始化种子来初始化所述伪随机数发生器的所述启动内状态的装置;以及
用于用从所述伪随机数发生器获得的新初始化种子替换所述种子文件的内容的装置。
12.如权利要求9所述的伪随机数发生器,其特征在于,还包括:
用于在所述伪随机数发生器重启之后从所述种子文件检索所述初始化种子的装置;
用于从信任源获得时间值的装置;
用于组合所述时间值与初始化种子以获得经修改的初始化种子的装置;
用于用所述经修改的初始化种子来初始化所述伪随机数发生器的启动内状态的装置;以及
用于用从所述伪随机数发生器的伪随机输出获得的新初始化种子替换所述种子文件的内容的装置。
13.如权利要求12所述的伪随机数发生器,其特征在于,所述时间值和初始化种子被组合以使得所述时间值被分散到所述经修改的初始化种子的整个范围中。
14.如权利要求9所述的伪随机数发生器,其特征在于,将所述伪随机输出存储在种子文件中包括
用于将所述伪随机输出存储在安全文件系统的主种子文件中的装置;以及
用于将所述伪随机输出存储在所述安全文件系统的影像种子文件中的装置。
15.如权利要求14所述的伪随机数发生器,其特征在于,还包括:
用于在重启所述伪随机数发生器之际确定所述主种子文件的完好性是否已被损害的装置;
用于在所述主文件的所述完好性被成功验证的情况下用所述主种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态的装置;以及
用于否则用所述影像种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态的装置。
16.一种伪随机数发生器,包括:
种子选择模块,配置成从一个或多个种子源选择种子;
做种模块,其耦合到所述种子选择模块并被配置成根据所述种子选择模块提供的种子来调节所述伪随机数发生器的内状态;以及
数字发生模块,其耦合到所述做种模块并被配置成基于所述伪随机数发生器的所述内状态生成伪随机输出;
其中所述种子选择模块被进一步配置成
如果所述伪随机数发生器是首次被启动,则选择预存储的原始种子来初始化所述伪随机数发生器的启动内状态;以及
如果所述伪随机数发生器先前已被启动过,则选择来自预存储的种子文件的初始化种子来初始化所述伪随机数发生器的所述启动内状态。
17.如权利要求16所述的伪随机数发生器,其特征在于,所述种子选择模块被进一步配置成在所述存储的原始种子已被使用过一次之后将其破坏。
18.如权利要求16所述的伪随机数发生器,其特征在于,所述数字发生模块提供伪随机输出,所述伪随机输出被存储在所述种子文件中并被用作所述初始化种子。
19.如权利要求16所述的伪随机数发生器,其特征在于,还包括:
耦合到所述做种模块的信任时间源,其中所述做种模块被进一步配置成
从所述信任时间源获得时间值;
组合所述时间值与初始化种子以获得经修改的初始化种子;以及
用所述经修改的初始化种子来初始化所述伪随机数发生器的启动内状态。
20.如权利要求19所述的伪随机数发生器,其特征在于,所述时间值和初始化种子被组合以使得所述时间值被分散到所述经修改的初始化种子的整个范围中。
21.如权利要求16所述的伪随机数发生器,其特征在于,还包括:
用于存储所述种子文件的安全文件系统,其中所述种子文件包括主种子文件和影像种子文件;以及
其中所述种子选择模块被进一步配置成
在重启所述伪随机数发生器之际确定所述主种子文件的完好性是否已被损害;
如果所述主文件的所述完好性被成功验证,则用所述主种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态;以及
否则用所述影像种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态。
22.一种处理电路,包括
存储器设备,其包括用于存储伪随机数发生器的内状态的一个或多个内状态寄存器;以及
处理设备,其耦合到所述存储器设备并被配置成
用预存储的原始种子来初始化所述伪随机数发生器的启动内状态;
在所述存储的原始种子已被使用过一次之后就将其破坏;
从一个或多个不可预测的熵源获得新种子;
用新种子来重新做种所述伪随机数发生器以将所述伪随机数发生器的所述内状态修改成不可预测的状态;
基于所述伪随机数发生器的所述经修改的内状态生成伪随机输出;以及
将所述伪随机输出存储在种子文件中作为所述伪随机数发生器的后续启动内状态的初始化种子。
23.如权利要求22所述的处理电路,其特征在于,所述处理设备被进一步配置成:
在所述伪随机数发生器重启之后从所述种子文件检索所述初始化种子;
从信任源获得时间值;
组合所述时间值与初始化种子以获得经修改的初始化种子;
用所述经修改的初始化种子来初始化所述伪随机数发生器的启动内状态;以及
用从所述伪随机数发生器的伪随机输出获得的新初始化种子替换所述种子文件的内容。
24.如权利要求23所述的处理电路,其特征在于,所述时间值和初始化种子被组合以使得所述时间值被分散到所述经修改的初始化种子的整个范围中。
25.如权利要求22所述的处理电路,其特征在于,所述处理设备被进一步配置成:
将所述伪随机输出存储在安全文件系统的主种子文件中;以及
将所述伪随机输出存储在所述安全文件系统的影像种子文件中。
26.如权利要求25所述的处理电路,其特征在于,所述处理设备被进一步配置成:
在重启所述伪随机数发生器之际确定所述主种子文件的完好性是否已被损害;
如果所述主文件的所述完好性被成功验证,则用所述主种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态;以及
否则用所述影像种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态。
27.一种具有用于生成伪随机输出的一条或多条指令的机器可读介质,所述指令在被处理器执行时使所述处理器:
用预存储的原始种子来初始化所述伪随机数发生器的启动内状态;
在所述存储的原始种子已被使用过一次之后就将其破坏;
从一个或多个不可预测的熵源获得新种子;
用所述新种子来重新做种所述伪随机数发生器以将所述伪随机数发生器的所述内状态修改成不可预测的状态;
基于所述伪随机数发生器的所述经修改的内状态生成伪随机输出;以及
将所述伪随机输出存储在种子文件中作为所述伪随机数发生器的后续启动内状态的初始化种子。
28.如权利要求27所述的机器可读介质,其特征在于,还具有在被处理器执行时使所述处理器执行以下操作的一条或多条指令:
在所述伪随机数发生器重启之后从所述种子文件检索所述初始化种子;
从信任源获得时间值;
组合所述时间值与初始化种子以获得经修改的初始化种子;
用所述经修改的初始化种子来初始化所述伪随机数发生器的启动内状态;以及
用从所述伪随机数发生器的伪随机输出获得的新初始化种子替换所述种子文件的内容。
29.如权利要求28所述的机器可读介质,其特征在于,所述时间值和初始化种子被组合以使得所述时间值被分散到所述经修改的初始化种子的整个范围中。
30.如权利要求27所述的机器可读介质,其特征在于,所述种子文件包括:
安全文件系统中的主种子文件和影像文件;
以及还具有在被处理器执行时使所述处理器执行以下操作的一条或多条指令:
在重启所述伪随机数发生器之际确定所述主种子文件的完好性是否已被损害;
如果所述主文件的所述完好性被成功验证,则用所述主种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态;以及
否则用所述影像种子文件的所述初始化种子来初始化所述伪随机数发生器的所述启动内状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/738,972 US20080263117A1 (en) | 2007-04-23 | 2007-04-23 | Initial seed management for pseudorandom number generator |
US11/738,972 | 2007-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101663642A true CN101663642A (zh) | 2010-03-03 |
Family
ID=39682744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880012512A Pending CN101663642A (zh) | 2007-04-23 | 2008-04-23 | 伪随机数发生器的初始种子管理 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20080263117A1 (zh) |
EP (1) | EP2150888B1 (zh) |
JP (1) | JP2010525417A (zh) |
KR (1) | KR101237104B1 (zh) |
CN (1) | CN101663642A (zh) |
AT (1) | ATE534949T1 (zh) |
TW (1) | TW200901723A (zh) |
WO (1) | WO2008131444A2 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609237A (zh) * | 2011-01-06 | 2012-07-25 | 微软公司 | 可扩展的随机数生成 |
CN103365625A (zh) * | 2012-03-30 | 2013-10-23 | 飞思卡尔半导体公司 | 随机值产生的方法及系统 |
CN105005462A (zh) * | 2015-09-06 | 2015-10-28 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN105190534A (zh) * | 2013-03-14 | 2015-12-23 | 国际商业机器公司 | 执行伪随机数种子操作的指令 |
CN105339888A (zh) * | 2013-05-15 | 2016-02-17 | 新思公司 | 用于真随机数生成器的自动控制系统和方法 |
CN102866877B (zh) * | 2011-07-08 | 2017-05-10 | 三星电子株式会社 | 存储器控制器及操作方法,及含存储器控制器的电子设备 |
CN110058843A (zh) * | 2019-03-27 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法、装置和服务器 |
JP2019531541A (ja) * | 2016-08-19 | 2019-10-31 | オラクル・インターナショナル・コーポレイション | 多様なソースからのエントロピの収集 |
CN115277684A (zh) * | 2022-09-29 | 2022-11-01 | 安徽华云安科技有限公司 | 文件传输方法、装置、设备以及存储介质 |
WO2023023988A1 (en) * | 2021-08-25 | 2023-03-02 | Boe Technology Group Co., Ltd. | Method for generating pseudo-random number, random number generator, and computer-program product |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019802B2 (en) * | 2005-08-24 | 2011-09-13 | Qualcomm Incorporated | Cryptographically secure pseudo-random number generator |
KR20080104594A (ko) * | 2007-05-28 | 2008-12-03 | 삼성전자주식회사 | 오프라인 장치를 위한 온라인 인증서 검증 장치 및 방법 |
US8250129B2 (en) * | 2007-06-22 | 2012-08-21 | Lsi Corporation | Cryptographic random number generator using finite field operations |
US8369521B2 (en) * | 2008-10-17 | 2013-02-05 | Oracle International Corporation | Smart card based encryption key and password generation and management |
US8226467B2 (en) * | 2008-11-12 | 2012-07-24 | Igt | Gaming system and method enabling player participation in selection of seed for random number generator |
US9680637B2 (en) | 2009-05-01 | 2017-06-13 | Harris Corporation | Secure hashing device using multiple different SHA variants and related methods |
US8239733B2 (en) * | 2009-11-27 | 2012-08-07 | Skymedi Corporation | Memory device with protection capability and method of accessing data therein |
GB2484931B (en) * | 2010-10-26 | 2014-04-30 | Nds Ltd | Efficient delivery of structured data items |
JP2012198065A (ja) * | 2011-03-18 | 2012-10-18 | Fujitsu Ltd | 半導体集積回路、試験方法、情報処理装置、及びプログラム |
WO2012159192A1 (en) * | 2011-05-26 | 2012-11-29 | Certicom Corp. | Randomness for encryption operations |
KR101284481B1 (ko) * | 2011-07-15 | 2013-07-16 | 아이리텍 잉크 | 생체이미지 정보를 포함하는 일회용 비밀번호를 이용한 인증방법 및 장치 |
CN103092566B (zh) * | 2011-11-07 | 2016-08-24 | 国民技术股份有限公司 | 伪随机数种子、伪随机数生成的方法和装置 |
US20130201316A1 (en) | 2012-01-09 | 2013-08-08 | May Patents Ltd. | System and method for server based control |
US9092283B2 (en) | 2012-03-30 | 2015-07-28 | Freescale Semiconductor, Inc. | Systems with multiple port random number generators and methods of their operation |
KR101373283B1 (ko) | 2012-04-23 | 2014-03-11 | 한국전자통신연구원 | 비휘발성 메모리를 이용한 이중 트랙 방식의 난수 발생 방법 및 이를 위한 장치 |
US8954723B2 (en) | 2012-05-09 | 2015-02-10 | International Business Machines Corporation | Anonymization of data within a streams environment |
US9032005B2 (en) | 2012-05-22 | 2015-05-12 | Electronics And Telecommunications Research Institute | Random number generation method and apparatus using low-power microprocessor |
KR101438010B1 (ko) * | 2012-05-22 | 2014-09-05 | 한국전자통신연구원 | 저전력 마이크로프로세서를 이용한 난수 발생 방법 및 이를 위한 장치 |
GB2502541A (en) * | 2012-05-30 | 2013-12-04 | Ibm | Balancing consumption of random data using multiple sources with different levels of entropy |
US9086936B2 (en) | 2012-07-31 | 2015-07-21 | International Business Machines Corporation | Method of entropy distribution on a parallel computer |
US9442854B2 (en) | 2012-11-15 | 2016-09-13 | Elwha Llc | Memory circuitry including computational circuitry for performing supplemental functions |
US9323499B2 (en) * | 2012-11-15 | 2016-04-26 | Elwha Llc | Random number generator functions in memory |
US9026719B2 (en) | 2012-11-15 | 2015-05-05 | Elwha, Llc | Intelligent monitoring for computation in memory |
US8996951B2 (en) | 2012-11-15 | 2015-03-31 | Elwha, Llc | Error correction with non-volatile memory on an integrated circuit |
US8966310B2 (en) | 2012-11-15 | 2015-02-24 | Elwha Llc | Redundancy for loss-tolerant data in non-volatile memory |
US9552690B2 (en) | 2013-03-06 | 2017-01-24 | Igt | System and method for determining the volatility of a game based on one or more external data feeds |
US8873750B2 (en) | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
US9306876B1 (en) * | 2013-04-01 | 2016-04-05 | Marvell Israel (M.I.S.L) Ltd. | Multibank egress queuing system in a network device |
DE102014206992A1 (de) * | 2014-04-11 | 2015-10-15 | Siemens Aktiengesellschaft | Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen |
CN104469461A (zh) * | 2014-12-19 | 2015-03-25 | 佛山市顺德区美的电热电器制造有限公司 | 随机数生成装置、电视机及随机数生成方法 |
US10348704B2 (en) * | 2015-07-30 | 2019-07-09 | Helder Silvestre Paiva Figueira | Method for a dynamic perpetual encryption cryptosystem |
CN106469042B (zh) * | 2015-08-19 | 2019-05-28 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法和装置 |
US10142103B2 (en) * | 2015-12-07 | 2018-11-27 | The Boeing Company | Hardware assisted fast pseudorandom number generation |
DE102016116042A1 (de) * | 2016-08-29 | 2018-03-01 | IPGATE Capital Holding AG | Verfahren und System zum Öffnen und/oder Nutzung mindestens eines Fahrzeugs |
US10503475B1 (en) * | 2016-11-09 | 2019-12-10 | The Florida State University Research Foundation, Inc. | Forensically reproducible random number generator and associated method of use |
CN107046564A (zh) * | 2017-01-19 | 2017-08-15 | 腾讯科技(深圳)有限公司 | 一种数据选取方法及相关装置 |
US11175893B2 (en) * | 2017-10-17 | 2021-11-16 | Blue ArmorTechnologies, LLC | Statistical object generator |
US10776480B2 (en) | 2018-04-02 | 2020-09-15 | International Business Machines Corporation | Producing volatile password hashing algorithm salts from hardware random number generators |
US11012425B2 (en) * | 2018-12-28 | 2021-05-18 | Micron Technology, Inc. | Replay protection nonce generation |
US11347860B2 (en) * | 2019-06-28 | 2022-05-31 | Seagate Technology Llc | Randomizing firmware loaded to a processor memory |
US11580234B2 (en) | 2019-06-29 | 2023-02-14 | Intel Corporation | Implicit integrity for cryptographic computing |
US11575504B2 (en) | 2019-06-29 | 2023-02-07 | Intel Corporation | Cryptographic computing engine for memory load and store units of a microarchitecture pipeline |
US11924338B2 (en) * | 2020-11-04 | 2024-03-05 | Advanced Micro Devices, Inc. | Split random number generator |
US11669625B2 (en) | 2020-12-26 | 2023-06-06 | Intel Corporation | Data type based cryptographic computing |
US11580035B2 (en) | 2020-12-26 | 2023-02-14 | Intel Corporation | Fine-grained stack protection using cryptographic computing |
CN114466012B (zh) * | 2022-02-07 | 2022-11-25 | 北京百度网讯科技有限公司 | 内容初始化方法、装置、电子设备和存储介质 |
US12063300B2 (en) * | 2022-07-12 | 2024-08-13 | Veiovia Ltd. | Computer implemented methods, apparatuses and software for random number generation based on genetic information |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0675041U (ja) * | 1993-03-19 | 1994-10-21 | 横河電機株式会社 | データ二重化装置 |
US5727063A (en) * | 1995-11-27 | 1998-03-10 | Bell Communications Research, Inc. | Pseudo-random generator |
US5732138A (en) * | 1996-01-29 | 1998-03-24 | Silicon Graphics, Inc. | Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system |
US5778069A (en) * | 1996-04-10 | 1998-07-07 | Microsoft Corporation | Non-biased pseudo random number generator |
US6044388A (en) * | 1997-05-15 | 2000-03-28 | International Business Machine Corporation | Pseudorandom number generator |
US6104810A (en) * | 1997-05-15 | 2000-08-15 | International Business Machines Corporation | Pseudorandom number generator with backup and restoration capability |
US6430170B1 (en) * | 1999-05-27 | 2002-08-06 | Qualcomm Inc. | Method and apparatus for generating random numbers from a communication signal |
US6253223B1 (en) * | 1999-06-08 | 2001-06-26 | General Instrument Corporation | Robust random number generator |
US7571199B1 (en) * | 2000-11-15 | 2009-08-04 | Microsoft Corporation | Method and apparatus for generating random numbers |
US6829628B2 (en) * | 2001-05-02 | 2004-12-07 | Portalplayer, Inc. | Random number generation method and system |
US7007050B2 (en) * | 2001-05-17 | 2006-02-28 | Nokia Corporation | Method and apparatus for improved pseudo-random number generation |
US20040162864A1 (en) * | 2002-07-08 | 2004-08-19 | Globespan Virata Inc. | System and method for generating pseudo-random numbers |
US7233965B2 (en) * | 2002-09-30 | 2007-06-19 | Sun Microsystems, Inc. | Continuous random number generation method and apparatus |
JP4294938B2 (ja) * | 2002-11-01 | 2009-07-15 | 秀治 小川 | ファイル転送システム、キーサーバ装置、ファイル送信装置、ファイル蓄積装置、ファイル受信装置、ならびに、プログラム |
US6866584B2 (en) * | 2003-02-21 | 2005-03-15 | Igt | Apparatus and method for generating a pool of seeds for a central determination gaming system |
DE10357782B3 (de) * | 2003-12-10 | 2005-05-04 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator |
US7496616B2 (en) * | 2004-11-12 | 2009-02-24 | International Business Machines Corporation | Method, apparatus and system for resistance to side channel attacks on random number generators |
US7359509B2 (en) * | 2004-12-01 | 2008-04-15 | Pitney Bowes Inc. | Method and system for generation of cryptographic keys and the like |
US8019802B2 (en) * | 2005-08-24 | 2011-09-13 | Qualcomm Incorporated | Cryptographically secure pseudo-random number generator |
-
2007
- 2007-04-23 US US11/738,972 patent/US20080263117A1/en not_active Abandoned
-
2008
- 2008-04-23 AT AT08746713T patent/ATE534949T1/de active
- 2008-04-23 KR KR1020097024254A patent/KR101237104B1/ko not_active IP Right Cessation
- 2008-04-23 TW TW097114927A patent/TW200901723A/zh unknown
- 2008-04-23 WO PCT/US2008/061341 patent/WO2008131444A2/en active Application Filing
- 2008-04-23 EP EP08746713A patent/EP2150888B1/en not_active Not-in-force
- 2008-04-23 JP JP2010506480A patent/JP2010525417A/ja active Pending
- 2008-04-23 CN CN200880012512A patent/CN101663642A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609237B (zh) * | 2011-01-06 | 2015-09-16 | 微软技术许可有限责任公司 | 可扩展的随机数生成 |
CN102609237A (zh) * | 2011-01-06 | 2012-07-25 | 微软公司 | 可扩展的随机数生成 |
CN102866877B (zh) * | 2011-07-08 | 2017-05-10 | 三星电子株式会社 | 存储器控制器及操作方法,及含存储器控制器的电子设备 |
US10013349B2 (en) | 2011-07-08 | 2018-07-03 | Samsung Electronics Co., Ltd. | Memory controller, method thereof, and electronic devices having the memory controller |
CN103365625A (zh) * | 2012-03-30 | 2013-10-23 | 飞思卡尔半导体公司 | 随机值产生的方法及系统 |
CN103365625B (zh) * | 2012-03-30 | 2017-07-21 | 飞思卡尔半导体公司 | 随机值产生的方法及系统 |
US9860056B2 (en) | 2013-03-14 | 2018-01-02 | International Business Machines Corporation | Instruction for performing a pseudorandom number seed operation |
US10313109B2 (en) | 2013-03-14 | 2019-06-04 | International Business Machines Corporation | Instruction for performing a pseudorandom number seed operation |
CN105190534A (zh) * | 2013-03-14 | 2015-12-23 | 国际商业机器公司 | 执行伪随机数种子操作的指令 |
CN105190534B (zh) * | 2013-03-14 | 2017-12-05 | 国际商业机器公司 | 执行伪随机数种子操作的指令 |
CN105339888A (zh) * | 2013-05-15 | 2016-02-17 | 新思公司 | 用于真随机数生成器的自动控制系统和方法 |
CN105005462B (zh) * | 2015-09-06 | 2017-08-08 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN105005462A (zh) * | 2015-09-06 | 2015-10-28 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
JP2019531541A (ja) * | 2016-08-19 | 2019-10-31 | オラクル・インターナショナル・コーポレイション | 多様なソースからのエントロピの収集 |
JP7013447B2 (ja) | 2016-08-19 | 2022-01-31 | オラクル・インターナショナル・コーポレイション | 多様なソースからのエントロピの収集 |
JP2022028727A (ja) * | 2016-08-19 | 2022-02-16 | オラクル・インターナショナル・コーポレイション | 多様なソースからのエントロピの収集 |
JP7281523B2 (ja) | 2016-08-19 | 2023-05-25 | オラクル・インターナショナル・コーポレイション | 多様なソースからのエントロピの収集 |
CN110058843A (zh) * | 2019-03-27 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法、装置和服务器 |
CN110058843B (zh) * | 2019-03-27 | 2023-03-03 | 创新先进技术有限公司 | 伪随机数的生成方法、装置和服务器 |
WO2023023988A1 (en) * | 2021-08-25 | 2023-03-02 | Boe Technology Group Co., Ltd. | Method for generating pseudo-random number, random number generator, and computer-program product |
CN115277684A (zh) * | 2022-09-29 | 2022-11-01 | 安徽华云安科技有限公司 | 文件传输方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2010525417A (ja) | 2010-07-22 |
ATE534949T1 (de) | 2011-12-15 |
EP2150888A2 (en) | 2010-02-10 |
US20080263117A1 (en) | 2008-10-23 |
WO2008131444A3 (en) | 2009-04-23 |
WO2008131444A2 (en) | 2008-10-30 |
KR20100003301A (ko) | 2010-01-07 |
TW200901723A (en) | 2009-01-01 |
EP2150888B1 (en) | 2011-11-23 |
KR101237104B1 (ko) | 2013-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101663642A (zh) | 伪随机数发生器的初始种子管理 | |
CN101292464B (zh) | 密码学上安全的伪随机数字发生器 | |
CN100380274C (zh) | 用于对上下文加密密钥进行备份和恢复的方法和系统 | |
CN101346930B (zh) | 安全的片上系统 | |
CN101072097B (zh) | 用于受信数据处理的方法和系统 | |
WO2016073411A2 (en) | System and method for a renewable secure boot | |
CN104160652A (zh) | 用于使用一次性密码的分布式离线登录的方法和系统 | |
US20180089108A1 (en) | Secure computing | |
US11132438B2 (en) | Virus immune computer system and method | |
US20210004498A1 (en) | Virus immune computer system and method | |
US20200242235A1 (en) | Virus immune computer system and method | |
Su et al. | SecuCode: Intrinsic PUF entangled secure wireless code dissemination for computational RFID devices | |
EP3657318A1 (en) | Client-side entropy collection for server-side usage | |
US10592697B1 (en) | Virus immune computer system and method | |
CN114662135A (zh) | 数据访问方法、计算机设备及可读存储介质 | |
CN111143904B (zh) | 一种数据解密方法、装置和计算机可读存储介质 | |
US20200235917A1 (en) | Shared secret generation | |
Saarinen et al. | Development of the RISC-V entropy source interface | |
JP2019198071A (ja) | 集積回路デバイス及び集積回路デバイスの動作方法 | |
KR101696900B1 (ko) | 임베디드 시스템의 실행코드 암호화 및 복호화장치 및 이를 이용하여 정보유출 방지기능을 가지는 임베디드 시스템 | |
CN111125791B (zh) | 一种内存数据的加密方法、装置、cpu芯片及服务器 | |
Bojanova et al. | Randomness classes in bugs framework (bf): True-random number bugs (trn) and pseudo-random number bugs (prn) | |
JP2006120089A (ja) | データ管理システム及びデータ管理方法 | |
Gazdag et al. | Post-Quantum Software Updates | |
CN118282638A (zh) | 一种加密通信系统、方法、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100303 |