中断驱动硬件随机数产生器的制造方法

文档序号:9308557阅读:507来源:国知局
中断驱动硬件随机数产生器的制造方法
【技术领域】
[0001]本发明大体上涉及数字通信系统,且更确切地说,涉及用于为处理系统提供随机数的设备和方法。
【背景技术】
[0002]随机数广泛地应用于通信系统、安全及加密、模拟及游戏中以及其它应用中。随机数一般使用硬件随机数产生器(RNG)获得,所述硬件随机数产生器产生似乎是不相关的或没有明显模式的一连串数字。RNG在硬件中实施以改进吞吐量,具体来说在例如频繁利用随机数的模拟及游戏等应用中实施。也使用RNG以便减少产生随机数所需的处理开销并且将时延减到最少,时延可以测量为请求随机数与接收随机数之间的时间。
[0003]RNG通常产生在一定程度上相关的并且因此不是完全不可预见的伪随机数。熵度量法可以用于量化随机数的随机性的质量。现代RNG可产生用于所产生的10位的8位真实熵(0.8的熵率),其通常小于计算系统所要求的熵率。
[0004]—些系统使用密码函数调节由RNG产生的低熵数以获得具有明显更高熵的随机数。常规系统在RNG中包含密码函数逻辑电路以准许迅速、异步且以低响应时延产生随机数。密码函数的添加会显著地使RNG硬件更加复杂,从而导致使用的集成电路面积增加且功率消耗增加。
[0005]因此,需要占用更少裸片面积并消耗更少系统功率的高吞吐量、低时延的RNG。

【发明内容】

[0006]在本发明的一方面中,提供一种方法、计算机程序产品及设备。所述设备可包括处理系统,其包含处理器以及暂时性和非暂时性存储装置的一些组合。
[0007]在本发明的一方面中,所述设备包括随机数产生器、用以接收由随机数产生器产生的随机数的第一存储装置、以及处理系统。处理系统可经配置以响应于中断从第一存储装置读取一连串随机数。处理系统可经配置以通过调节一连串随机数产生至少一个经调节随机数。处理系统可经配置以将至少一个经调节随机数存储于第二存储装置中。第二存储装置可经配置以保持多个经调节随机数且响应于由处理系统执行的指令输出多个经调节随机数中的一者。
[0008]在本发明的一方面中,一种用于产生随机数的方法包括:响应于中断从第一存储装置读取由物理随机数产生器产生的随机数,调节由随机数产生器产生的随机数以获得至少一个高熵随机数,以及将至少一个高熵随机数存储于第二存储装置中。第二存储装置可经调适以响应于由处理器执行的指令输出至少一个高熵随机数。
[0009]在本发明的一方面中,一种用于产生随机数的设备包括:用于响应于中断从存储装置读取由随机数产生器产生的随机数的装置;用于调节由随机数产生器产生的随机数以获得至少一个高熵随机数的装置;以及用于存储至少一个高熵随机数的装置。用于存储至少一个高熵随机数的装置经配置以响应于由处理器执行的机器语言指令输出至少一个高熵随机数。
[0010]在本发明的一方面中,一种具有一或多个指令的处理器可读存储媒体,所述一或多个指令在由至少一个处理电路执行时使得至少一个处理电路进行以下操作:响应于中断从第一缓冲器读取由随机数产生器产生的随机数;调节由随机数产生器产生的随机数以获得至少一个高熵随机数;以及将至少一个高熵随机数存储于第二缓冲器中。第二缓冲器可经调适以响应于由处理器执行的机器语言指令输出至少一个高熵随机数。
【附图说明】
[0011]图1描绘用于处理系统中的随机数的产生。
[0012]图2说明具有低响应时延的随机数产生。
[0013]图3说明中断驱动硬件随机数产生器。
[0014]图4是说明中断驱动硬件随机数产生器在计算系统中的使用的框示意图。
[0015]图5是说明中断驱动硬件随机数处理器中的缓冲器流量控制的框示意图。
[0016]图6是说明根据本发明的某些方面的方法的流程图。
[0017]图7是包括中断驱动硬件随机数产生器的设备的框示意图。
【具体实施方式】
[0018]在以下描述中,给出特定细节以提供对本发明的各种方面的透彻理解。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。例如,可用框图展示电路以便避免以不必要的细节混淆所述方面。在其它情况下,可不详细展示众所周知的电路、结构及技术以便不混淆本发明的所述方面。
[0019]图1是说明从硬件随机数处理系统或电路112中获得高熵随机数136的处理系统110的图100。随机数处理系统112可嵌入处理系统110中作为外围装置,或当处理系统110设置于专用集成电路(ASIC)中时另外包含现场可编程门阵列(FPGA)、片上系统或其它可编程逻辑。在图1中,硬件元件与软件元件之间的划分通过虚线199划定界限,但是软件可在存储于处理系统110的物理存储媒体116中且由处理器114执行的代码及数据中实施。
[0020]随机数处理系统112可包括产生低熵数130的RNG装置102。低熵数130可包括伪随机数,伪随机数由从展现某种程度随机性的装置或机构获得的种子数产生。在一个实例中,可从热换能器、机械换能器或其它换能器获得种子数。在另一实例中,可以近似随机性的方式在非周期性间隔从迅速改变的数字电路对种子数进行取样。伪随机数可基于以不定期基础从计算系统寄存器捕获的“微观”观察产生,例如定时器电路的低数位、在高频数据总线上观察的值、所测量的接收器载波强度、系统实时时钟的低数位,或从一些其它统计上随机的“噪声”信号产生,所述信号从将所测量物理现象转化成数值的换能器获得。这些观察值可以用来撒布伪随机数产生器以增加由RNG 102产生的的数字130的熵。
[0021]RNG 102很可能生成稍微相关的且具有相对低熵的随机数130,且所述随机数130的熵率可能低于包含处理系统110的计算系统所需的熵率。由随机数产生电路102产生的数字136的熵可通过调节RNG 102的输出130而增加。在一个实例中,由RNG 102产生的一连串伪随机数130使用散列函数或分块加密函数104来调节以获得具有明显更高熵的随机数132。通过函数104生成的更高熵随机数132可在FIFO装置106中缓冲,其可接着由软件命令读取。FIFO装置106可实施为硬件缓冲器,条目从其中以它们写入到硬件缓冲器中的相同顺序读出。在一个实例中,FIFO装置106包括以管线连接的多个寄存器,由此写入到FIFO装置106的输入端中的数字以它们写入到FIFO装置106中的相同顺序退出管线。在另一实例中,FIFO装置106可包括组织为循环缓冲器或队列的存储器装置。
[0022]处理系统110可包括通过操作系统120控制的处理器114。应用程序122可对操作系统120进行系统调用以从随机数处理系统112获得随机数136。通常,请求随机数136的系统调用引发从FIFO装置106检索数字134的软件功能且使得总线接口 108呈现在系统总线118上、和/或在由处理器114或系统110的其它组件控制的输入/输出(1/0)总线或信道上缓冲数字136。软件功能可进一步缓冲或排列随机数136以用于传递到进行系统调用的应用程序122。操作系统120可根据某些系统优先级调度任务。由第一应用程序进行的系统调用可引发情境变化,由此可仅在第一应用程序恢复处理器114的控制时接收处理器114的第二应用程序增益控制及系统调用响应。因此,应用程序122在通过系统调用获得随机数时会经历显著的延迟。
[0023]图2是说明可以低响应时延从硬件随机数处理系统或电路212向应用程序222提供高熵随机数236的处理系统210的示意图200。在此实例中,由随机数处理系统212产生的随机数236存储于可使用对应于处理器214的指令集由应用程序222直接存取的寄存器/缓冲器208中。因此,指令可插入一或多个应用程序222中使得应用程序222能够从寄存器/缓冲器208直接读取随机数236。如同图1中所描述的实例,由RNG 202产生的伪随机数230可使用散列函数、分块加密或其它调节函数204来调节以获得具有明显更高熵的随机数232。由分块加密函数204产生的更高熵随机数232可以在FIFO装置206中缓冲。FIFO装置206可接着在处理系统210和/或处理器214的控制下通过寄存器/缓冲器208提供随机数234。在此实例中,对随机数236的存取也可通过操作系统220管理,且至少一些应用程序222可通过系统调用获得随机数236。
[0024]基于处理系统210及处理系统210的其它组件的配置,随机数236可通过应用程序222使用提供于处理器214的指令集中的指令或使用包括多个指令的宏存取。在一个实例中,FIFO装置206可通过可寻址寄存器或缓冲器208存取。寄存器或缓冲器208可提供在处理器214内部或外部。处理器214可通过寻址预定义寄存器位置和/或在处理器214的地址空间中的预定义位置处存取随机数236。应用程序222可通过执行一或多个指令来存取随机数236,所述一或多个指令使得处理器214从预定义地址或地址块提取数据,或通过从由处理器214定义的一组寄存器提取数据来存取随机数236。处理器
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1