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

文档序号:9308557阅读:来源:国知局
置406的占用低于阈值最小占用而引起中断时引发至少一个经调节随机数的产生。在一些实施例中,处理器418可在由第二存储装置406清空而引起中断时等待直到至少一个经调节随机数存储于第二存储装置406中为止。在一些实施例中,处理器418可在由应用程序当第二存储装置406为空时存取第二存储装置而引起中断时等待直到至少一个经调节随机数存储于第二存储装置406中为止。在一些实施例中,处理器418可等待直到第一存储装置404含有足够随机数以生成至少一个经调节随机数为止。
[0052]在步骤604处,处理器可确定存储装置404中是否有足够的随机数可用以获得至少一个经调节的更高熵随机数。在一些实施例中,可不断言中断,除非第一存储装置404的占用超出第二阈值最小占用。第二阈值最小占用可对应于生成至少一个经调节随机数所需的随机数的数目。在一些实施例中,处理器418可独立地确定在第一存储装置404中是否含有足够的随机数,并且在不含有足够的随机数时可等待直到足够的随机数存放于第一存储装置404中为止。否则的话,所述方法前进到步骤606。
[0053]在步骤606处,处理器418可从第一存储装置404读取随机数。通过第一存储装置404提供的随机数由随机数产生器402产生。由随机数产生器402产生的随机数可包括低熵数据,例如伪随机数。在一个实例中,第一存储装置404的内容可由处理器418通过总线接口 432读取,所述总线接口可包括行驱动器、寄存器及逻辑中的一或多者以用于监控并响应总线414的信号控制操作。在另一实例中,第一存储装置404的至少一部分包括实施于处理器418中的寄存器,处理器418通过所述寄存器可读取第一存储装置404的内容。
[0054]在步骤608处,处理器418可调节由随机数产生器402产生的随机数以获得至少一个高熵随机数。可使用密码函数来调节由随机数产生器402产生的随机数。可使用经配置以根据一连串随机数中的随机数的熵增加至少一个经调节随机数的熵的算法来调节由随机数产生器402产生的随机数。可通过对由随机数产生器402产生的多个随机数进行散列运算来调节由随机数产生器402产生的随机数。可使用分块加密函数来调节由随机数产生器402产生的随机数。可使用经选择以减少存储于第二存储装置406中的多个高熵随机数之间的相关性的函数来调节由随机数产生器402产生的随机数。
[0055]在步骤处610,处理器418可将至少一个高熵随机数存储于第二存储装置406中。接着所述方法可在步骤612处终止。
[0056]第二存储装置406可经配置以响应于由处理器418执行的机器语言指令408输出至少一个高熵随机数。在一个实例中,第二存储装置406的内容可由处理器418通过总线接口 434读取,所述总线接口可包括行驱动器、寄存器及逻辑的一些组合以用于监控并响应总线414的信号控制操作。在另一实例中,第二存储装置406的至少一部分包括实施于处理器418中的寄存器,处理器418通过所述寄存器可读取第二存储装置406的内容。
[0057]在一些实施例中,可通常响应于通过应用程序422调用的由处理器418执行的指令直接存取第二存储装置406。所述指令可包括机器语言指令。
[0058]图7是说明用于采用处理系统702的设备的硬件实施方案的实例的图700。处理系统702可使用总线架构实施,总线架构通常由总线708表示,取决于处理系统702的特定应用程序及系统要求和规范,其可包括多个互连总线及桥接器。总线708可以通信方式耦合包含一或多个处理器的电路与存储媒体706,所述电路包含软件和/或硬件模块,表不为处理电路704、模块710、712、714、716、718,所述存储媒体可通过计算机、处理系统702和/或一或多个处理器或处理电路704读取。总线708也可连接其它电路,例如时钟和定时源、外围设备、调压器以及功率管理电路。
[0059]处理系统702可包括用于随机数产生的各种电路,包含RNG 722以及一或多个存储装置,例如FIFO装置724及726。处理系统702可包括中断管理模块和/或电路,其包含中断处理程序718及中断产生逻辑728。处理系统可包含耦合到处理器可读存储媒体706的处理电路704。处理电路704可包括微处理器、数字信号处理器及可使用存储于处理器可读存储媒体706中的指令控制的定序逻辑中的一或多者。处理电路704可负责一般处理,包含执行存储于处理器可读媒体706上的软件。当通过处理电路704执行时,所述软件使得处理系统702能够执行上文描述的各种功能。处理器可读存储媒体706也可用于存储由处理电路704在执行软件时操控的数据。处理电路进一步包含模块或电路710、712、714、716及718中的至少一者。所述模块可包含由处理电路704执行的软件模块,其中所述软件模块可驻留和/或存储于处理器可读可读媒体706、实施于和/或耦合到处理电路704的一或多个硬件模块、或其一些组合中。
[0060]在一个配置中,设备包含用于响应于中断730从存储装置724读取由随机数产生器722产生的随机数的装置710、用于调节随机数以获得至少一个高熵随机数的装置712、用于将至少一个高熵随机数存储于第二存储装置726中的装置714、以及用于响应于由处理系统704执行的指令从第二存储装置726读取高熵随机数的装置716。
[0061]前述装置可以是设备的处理系统702的前述模块中的一或多者,其经配置以执行通过前述装置所述的功能。
[0062]本文所描述的任何实施方案或方面未必解释为比本发明的其它方面优选或有利的。术语“方面”不要求本发明的所有方面包含所论述的特征、优点或操作模式。术语“耦合”在本文中用于指两个物体之间的直接或间接耦合。例如,如果物体A物理地接触物体B,且物体B接触物体C,那么物体A及C可仍被视为耦合到彼此,即使它们不直接彼此物理地接触也如此。举例来说,第一裸片可耦合到封装中的第二裸片,即使第一裸片并不直接物理地接触第二裸片也如此。
[0063]术语“裸片”可在本文中用于包含1C。裸片可包含一或多个电路。术语“单元”可指作为裸片的部分和/或裸片的电路的组件。单元可位于一个裸片中或单元可为半导体装置、系统和/或分布在若干裸片和/或电路上的封装的部分。因此,单元可指物理上和/或逻辑上位于若干位置中组件。
[0064]图1到7中所说明的组件、步骤、特征和/或功能中的一或多者可重新布置和/或组合成单个组件、步骤、特征或功能或实施于若干组件、步骤或功能中。在不脱离本文中所揭示的新颖方面和/或特征的情况下也可附加另外的元件、组件、步骤和/或功能。图1到5及7中说明的设备、装置和/或组件可经配置以执行本文中描述的方法、特征或步骤中的一或多者。本文中所描述的新颖算法还可有效地实施于软件中和/或嵌入于硬件中。
[0065]而且,应注意,实施例可描述为描绘为流程图、流程框图、结构图或框图的过程。尽管流程图可将操作描述为顺序过程,但可并行或同时执行许多操作。另外,可重新布置操作的次序。过程在其操作完成时终止。过程可与方法、函数、规程、子例程、子程序等相对应。当过程与函数相对应时,其终止与所述函数返回到调用函数或主函数相对应。
[0066]此外,存储媒体可表示用于存储数据的一或多个装置,包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置和/或用于存储信息的其它机器可读媒体。术语“机器可读媒体”或“机器可读存储媒体”包含(但不限于)便携式或固定存储装置、光学存储装置、无线信道及能够存储、含有或携载指令和/或数据的各种其它媒体。
[0067]此外,可由硬件、软件、固件、中间件、微码或其任何组合来实施实施例。当以软件、固件、中间件或微码实施时,用以执行必要任务的程序代码或代码段可存储于机器可读媒体中,例如存储媒体或其它存储装置,例如存储装置412 (图4)。处理器418可执行所述必要任务。代码段可表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任一组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包括存储器共享、消息传递、权标传递、网络传输等的任何适当手段来传递、转发或传输。
[0068]结合本文中所揭示的实例描述的各种说明性逻辑块、模块、电路(例如,处理电路)、元件、和/或组件可与通用处理器、数字信号处理器(DSP)、ASIC、FPGA或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件、或设计为执行本文所描述的功能的其任何组合一起实施或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器、一个或一个以上微处理器结合一 DSP核心,或任何其它此类配置。
[0069]结合本文中揭示的实例而描述的方法或算法可以处理单元、编程指令或其它方向的形式直接体现在硬件、可由处理器执行的软件模块
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1