自定时随机数生成器的制作方法

文档序号:14151647阅读:606来源:国知局
自定时随机数生成器的制作方法

本公开的实施例总体涉及集成电路。具体地,本公开涉及一种自定时随机数生成器。



背景技术:

各种应用利用随机数生成器(RNG)来生成缺少任何可预测模式的数字序列。存在多种随机应用,并且存在几种用于生成随机数据的不同方法。应当注意的是,存在几种用于随机数生成的计算方法,但是许多方法缺乏“真实”随机性。相反,这些方法可能会在获得不同程度的成功的情况下满足旨在衡量其结果的不可预测性的程度的随机性的一些统计测试。也即,它们的模式在何种程度上是可辨别的。不确定性通常以“熵”来量化,这是信息内容不可预测性的标准度量。

伪随机数生成器(PRNG)(也称为确定性随机比特生成器 (DRBG))是用于生成数字序列的算法,该数字序列特性近似于随机数序列的特性。PRNG生成的序列并非真正随机的,因为它完全由一组相对小的初始值确定,称为PRNG的种子(可能包括真正的随机值)。尽管可使用专门的硬件(例如基于量子力学效应的硬件)来生成更接近于真正随机的序列,然而伪随机数生成器在实践中就其数字生成的速度及其在低成本计算中实现的实用性而言是重要的。密码系统需要良好的随机源,例如以用于密钥生成或加密挑战。存在基于加密安全计算的随机数生成方法,例如基于Yarrow算法和Fortuna (PRNG)等的方法。强加密的PRNG可能会以多个独立的不确定性源作为种子,这些独立的不确定性源中的一些可能在攻击者的控制之下。良好的种子源可为真实随机数生成器(TRNG),其与某种已知的随机物理现象(例如偏移、热噪声、相位噪声等)相关联。来自混乱(与随机相反)生成器的数字序列与PRNG类似,因为它是确定性的、基于规则的,并且可预测地从初始状态演变。



技术实现要素:

为了解决现有技术的问题,本公开提出可实现具有良好熵性能、低功耗、适于VLSI集成的混沌生成器的集成电路。

根据本公开的一个方面,提出一种集成电路,包括多个混沌模式生成器CG,被布置成循环序列,其中所述多个CG是用于生成随机数字值的自定时数字CG,其中所述多个CG中的第一CG被耦合到所述多个CG中的、在所述循环序列中在前的第二CG以及所述多个 CG中的、在所述循环序列中在后的第三CG,其中所述第一CG包括异步数字逻辑电路,所述异步数字逻辑电路包括:第一输出;第一输入;第二输入;以及第三输入,其中所述第一输入被耦合到所述第一输出并且表示所述第一CG的第一状态Q1,所述第二输入被耦合到所述第二CG的第二输出并且表示所述第二CG的第二状态Q0,并且所述第三输入被耦合到所述第三CG的第三输出并且表示所述第三 CG的第三状态Q3,并且其中所述异步数字逻辑电路用于使用Q0、 Q1和Q2来更新所述第一CG的下一状态。

在某些实施例中,所述异步数字逻辑电路包括:第一逻辑门,被耦合到所述第一输入和所述第三输入;第二逻辑门,被耦合到所述第二输入以及所述第一逻辑门的输出;以及内部锁存器,被耦合到所述第二逻辑门的输出,其中所述内部锁存器被配置为接收捕获信号,其中所述内部锁存器配置为在所述捕获信号为无效时,允许基于Q0、 Q1和Q2的混沌模式生成并且在所述捕获信号为有效时,停止混沌模式生成,其中所述第一CG的输出是所述随机数字值的一位。

在某些实施例中,所述第一逻辑门是OR门,所述第二逻辑门是异或门,并且其中所述内部锁存器包括:被耦合到所述第一输出和所述XOR门的输出的多路复用器,其中所述多路复用器被配置为在所述捕获信号为无效时,传递所述XOR门的输出并且在所述捕获信号为有效时,捕获所述第一输出;以及被耦合在所述多路复用器的输出与所述第一输出之间的一对顺序逆变器。

在某些实施例中,所述XOR门的输出处的下一状态Q1’由以下等式表示:Q1’=Q0XOR(Q1OR Q2)。

在某些实施例中,集成电路还包括多个触发器FF,所述多个触发器被耦合到所述多个CG的输出并且用于在由捕获信号计时时输出所述随机数字值,其中所述随机数字值的随机性基于所述多个CG的内部锁存器的混沌和亚稳态。

在某些实施例中,所述多个CG的第一数目大于所述多个FF的第二数目,并且其中所述多个CG中的至少一个CG不耦合到所述多个FF。

在某些实施例中,所述多个CG被组织成第一N位随机数生成器 RNG,其中N是正整数,其中所述多个CG的内部锁存器被配置为接收所述捕获信号,并且其中所述多个FF被配置为在所述捕获信号有效时,锁存从所述多个CG输出的第一N位值。

在某些实施例中,集成电路还包括值检测器逻辑,包括耦合到所述多个CG的所述输出的输入,以及耦合到所述多个CG中的一个CG 的复位输入的复位输出,所述复位输出用于在所述第一N位值是预定义值时,使所述多个CG中的所述一个CG复位。

在某些实施例中,集成电路还包括:值检测器逻辑,包括复位输出以及耦合到所述多个CG的所述输出的输入;以及OR门,包括控制输出以及输入,所述输入用于在所述第一N位值是预定义值时接收所述捕获信号并从所述复位输出接收SET信号;被组织成第二N位 RNG的第二多个CG,其中所述第二多个CG的内部锁存器被配置为从所述OR门的控制输出接收第二捕获信号,并且其中所述第二N位 RNG用于输出第二N位值;以及XOR逻辑,包括耦合至所述第一N 位RNG的输入以及耦合至所述第二N位RNG的输入,其中所述XOR 逻辑包括耦合到所述多个FF的输出,其中所述XOR逻辑对所述第一 N位值和所述第二N位值执行XOR运算,以生成在所述捕获信号有效时由所述多个FF锁存的随机数字值。

在某些实施例中,集成电路还包括混合逻辑,所述混合逻辑被耦合至所述多个FF以接收所述随机数字值并且被耦合至随机数生成器以接收随机数,其中所述混合逻辑被配置为将所述随机数字值与所述随机数组合以生成另外的随机数。

在某些实施例中,所述多个CG布置成环形拓扑,其中所述第二 CG在所述循环序列中在一个方向上与所述第一CG直接相邻,并且所述第三CG在所述循环序列中在另一个方向上与所述第一CG直接相邻。

在某些实施例中,所述多个CG布置成菊花链配置。

根据本公开的另一方面,提供一种电路,包括:多个触发器FF;以及混沌模式生成器CG的链,被组织成环形拓扑结构,其中所述链的CG的输出被耦合至所述多个触发器,其中所述链中的每个CG包括异步数字逻辑和用于存储当前状态Q1的内部锁存器,其中所述CG 的在所述链中的第一CG的异步数字逻辑基于所述当前状态Q1、所述CG的在所述链中位于所述第一CG之前的第二CG的第二状态Q0 以及所述CG的在所述链中位于第一CG之后的第三CG的第三状态 Q2,对所述CG的所述第一CG的下一状态Q1’进行异步更新;以及耦合至所述CG的输出的多个触发器FF,其中所述多个FF响应于控制信号而从所述CG的所述输出捕获随机数字值,其中所述随机数字值的随机性基于所述CG的内部锁存器的混沌和亚稳态。

在某些实施例中,被组织成所述环形拓扑的所述CG的链形成N 位RNG,其中N是正整数,其中所述N位RNG响应于所述控制信号,其中在所述控制信号的第一模式中,所述N位RNG将主动生成新的随机数字值,并且其中在所述控制信号的第二模式中,所述N位 RNG锁存所述N位RNG的当前状态。

在某些实施例中,所述异步数字逻辑包括实现一维二进制元胞自动机规则等式的逻辑基元。

在某些实施例中,所述一维二进制元胞自动机规则等式是规则 -30、规则-86、规则-135或规则-149中的至少一个。

在某些实施例中,所述下一状态由以下等式确定:Q1’=Q0XOR (Q1OR Q2)。

在某些实施例中,所述异步数字逻辑包括用于接收Q1和Q2的 OR门;用于接收所述OR门的输出以及Q0的异或XOR门;用于接收所述XOR门的输出以及Q1的多路复用器;以及用于耦合至所述多路复用器的输出并且用于输出Q1的成对的顺序逆变器。

附图说明

在附图中以示例而非限制的方式描述本公开。

图1是根据一个实施例的自定时数字随机数生成器(RNG)的示意图,该自定时数字随机数生成器包括组织成循环序列以生成随机数字值的混沌模式生成器(CG)链。

图2示出了根据一个实施例的同步一维元胞自动机如何能够适应于自定时装置,该自定时装置适于在循环序列的一部分中实现混沌模式生成器。

图3是根据一个实施例的混沌生成器的异步数字逻辑电路的示意图。

图4是根据一个实施例的自定时数字RNG的示意图,该自定时数字RNG包括耦合到混沌模式生成器链的值检测器逻辑。

图5示出了根据一个实施例的8位数字RNG的示意图,该数字 RNG具有十个自定时混沌模式生成器的链,这些自定时混沌模式生成器将十位中的两位强制为已知状态。

图6是根据一个实施例的包括两个N位RNG的数字RNG的示意图。

图7是根据一个实施例的利用自定时数字随机数生成器(RNG) 生成随机数字值的方法的流程图。

图8示出了四种不同更新规则的模式生成特性。

具体实施方式

本文所述实施例描述了自定时数字混沌模式生成器的技术。可使用自定时数字混沌模式生成器(也称为异步混沌生成器(CG))可用于形成N位自定时随机数生成器(RNG),以使用完全数字电路设计方法来生成随机值。应当注意的是,本文中使用“混沌”旨在反映术语的普遍接受的含义。具体而言,混沌模式生成器是生成复杂模式的生成器,所述复杂模式依赖于生成器的初始条件并且以不可预测的方式演变。

加密系统需要良好的随机源,例如以用于密钥生成或加密挑战。混沌模式生成器作为两种熵源以及作为与其他熵源混合的异或源在半导体加密系统中具有效用。然而,基于同步逻辑电路的混沌生成器具有类似于任何有限状态机的特性:如果生成器的完整数字状态和同步更新的数量均为已知的,则所有后续的数字状态都容易预测。这种预测与强加密系统的要求相反。

本文描述的实施例涉及混沌模式生成,以获得具有预期真实随机数生成器(TRNG)的若干特性的随机数生成器(RNG)。如上所述, TRNG与一些随机物理现象(例如晶体管偏移、热噪声、相位噪声等) 相关联。此外,混沌序列(与随机序列相反)是确定性的、基于规则的,并且从初始状态可预测地演变。如本文所述的混沌模式生成器的实施例以使得N位生成器的每个位以不可预测的速率“自动更新”的方式构造。此外,N位生成器中每个位的转换会影响其两个邻近位的更新。例如,通过将N位生成器布置在环形拓扑中并且利用本质异步系统时钟信号控制更新窗口,可实现具有良好熵性能、低功耗、适于 VLSI集成的混沌生成器。应当注意的是,尽管更新窗口被控制,但是由于混沌生成器基于其独特的物理特性以及对其输入的更新而是自定时的,因此各个混沌生成器的N更新速率是不受控制的。在一个实施例中,每个混沌生成器是实现“规则-30”算法的一维二进制元胞自动机电路。可替换地,可使用其他异步数字逻辑以利用其他技术来生成混沌模式。

如本文所述,由本文描述的实施例生成的随机数的随机性基于组织成循环序列的自定时数字混沌生成器(“CG”)的相互作用于及这些混沌生成器的内部锁存器的亚稳态,如本文所述。本文描述的实施例可用于各种加密应用,例如用于密码生成或密钥生成的种子。可使用在日常标准单元库中发现的常规VLSI电路来构建自定时数字 CG的实施例。组织成循环序列(例如环形配置)的CG链可认为是自定时状态机,其中状态机中的每个位生成其自身的定时,并且一个阶段的定时事件影响其两个相邻定时事件。由于CG链组织成循环序列,因此单个定时事件可传播到所有阶段。例如,模式生成电路自身可包括基本相似的组合逻辑元件的环,其中每个元件配置为接收环中至少两个其他元件的当前状态作为输入,并且其中每个元件的更新速率相对于每个其他元件均为异步的。在另一实施例中,每个元件均实现二进制元胞自动机规则,诸如元胞自动机规则-30更新规则算法。可替换地,可使用其他二进制元胞自动机规则;如上所述,理想的二进制元胞自动机规则创建以不可预测的方式演变的复杂模式。

本文描述的实施例提供完全可合成的随机数生成器。CG均为数字电路,并且可使用标准单元门构建,可自动放置和路由(P&R'd) 而无需手动调谐和手动布局,并且可使用低成本、全数字制造测试来进行测试。由于没有电路的预处理,因此实施例可具有非常快的启动时间。实施例可在非常低的功率下具有高的带宽,例如每50MHz 8 位。由于电路是全数字的,因此实施例也消耗非常少的待机功率,仅受到标准单元门的泄漏电流的限制。实施例可权衡用于最大每位熵的更新速率,但是自定时和循环序列以及自然电路失配有利于改善熵性能。本文描述的自定时RNG可与其他加密操作结合使用于改善熵性能。例如,可混合两个或多个位(例如经由至少一个XOR门而组合) 以改善熵性能。

图1是根据一个实施例用于生成随机数字值103自定时全数字随机数生成器(RNG)100的示意图,其包括组织成循环序列的混沌模式生成器(CG)链102。CG链102的输出耦合到触发器(FF)104。在一个实施例中,循环序列是环形拓扑,其中链中的最后一个CG耦合到链中的第一CG以创建环。链102的各个CG使用异步数字逻辑构造,并且可包括能够被激活以存储电路的当前状态(Q1)的内部锁存器。异步数字逻辑配置为类似于一维元胞自动机,使得它将基于其自身的当前状态以及至少两个其他相邻CG的当前状态来更新各个 CG的下一状态。例如,链102中的第一CG的内部锁存器存储当前状态(Q1),并且链102中的第一CG的异步数字逻辑基于以下因素异步地更新下一状态:当前状态(Q1)、在链102中位于第一CG之前的第二CG的第二个状态(Q0)以及在链102中位于第二CG之后的第三CG的第三个状态(Q2)。在一个实施例中,下一状态(Q1’) 由元胞自动机规则-30等式确定:Q1’=Q0XOR(Q1OR Q2)。可替换地,可在CG的异步数字逻辑中使用其他等式(例如规则-30(分别是规则-86、规则-135和规则-149)的镜像、补码和镜像补码也分别提供有效的混沌生成性能)。还应当注意,也可使用更高维度的元胞自动机(例如,可以网格模式构建2D元胞自动机,并且每个单独的CG 将受到位于其之前、之后、之上和之下的其他CG的影响)。

与链102中的CG的输出耦合的FF 104表示附近数字电路如何响应于控制信号101(也称为捕获/传递信号(或C/P信号))而有效地捕获从RNG输出的随机数字值103。例如,当“Pass”有效(捕获无效)时,CG中的内部锁存器是透明的,并且混沌模式生成是有效的。当“捕获”有效时,RNG中的锁存器捕获它们的当前状态,模式生成停止,并且可由FF 104对捕获状态进行采样。在一个实施例中, FF 104基于捕获信号101通过延迟元件(由成对的逆变器106表示) 被计时,延迟元件在CG看到捕获信号与在FF锁存它们的输出之间产生轻微的延迟。在其他实施例中,FF由系统中的其他时钟信号计时。在其他实施例中,RNG被设计成在CG中没有任何锁定元件,并且连续地处于生成状态。应当注意,随机数字值103的熵基于异步自定时混沌混合以及链102中的CG的内部锁存器在从“传递”到“捕获”过渡期间经历的亚稳态两者。

在所描绘的实施例中,链102组织成环形拓扑并形成8位RNG,并且FF 104捕获链102中CG的输出并输出数字随机值103。在该实施例中,链102包括九个CG,其中链102中的八个CG耦合到FF 104,并且链102中的一个CG不耦合到FF 104,而是耦合到链102中的两个相邻CG。链102中的该个CG可基于复位信号105被复位,以避免链102的稳定状态。例如,当在CG的输出上检测到预定数字值时,该个CG由复位信号105复位。例如,当使用规则-30时,可在发生全零状态时出现链102的稳定状态。全零状态是稳定的,因为下一状态也将全为零,等等。在一个实施例中,当在使用规则-30时检测到全零状态时,基于重启信号105将该个CG的输出强制为“1”,这强制规则-30生成继续。可从诸如本文所述的值检测器逻辑的外部电路接收复位信号105。尽管该链102包括其中一个CG未耦合到FF 104 的九个CG,然而在其他实施例中,链102可包括更多或更少的CG,并且可包括多于一个未耦合到FF 104的CG。

在另一实施例中,CG的链102组织成N位RNG,其中N是大于2的正整数。N位RNG响应于控制信号101。在控制信号101的第一模式中,N位RNG将主动生成新的N位随机数字值。这可被认为是N位RNG的内部锁存器的传递模式。在控制信号101的第二模式中,N位RNG锁存其当前状态。这可被认为是N位RNG的内部锁存器的捕获模式。

在一个实施例中,单个CG的异步数字逻辑包括实现一维二进制元胞自动机规则等式的逻辑基元。在一个实施例中,一维二进制元胞自动机规则等式是规则-30。在其他实施例中,一维二进制元胞自动机规则等式是针对其在重复值之间的长周期选择的,包括混沌模式规则-30、规则-86、规则-135或规则-149。以下描述关于一维二进制元胞自动机规则等式的额外细节。

在另一实施例中,链102是布置成循环序列的多个CG。如上所述,循环序列可为环。在其他实施例中,可使用其他循环序列。例如,第一CG可在循环序列中早先耦合到第二CG,并且在循环序列中稍后耦合到第三CG。基于CG的当前状态,布置成循环序列的CG以异步方式生成随机数字值。当接收到控制信号101时,CG的当前状态被捕获为随机数字值。

第二CG、第一CG和第三CG可在物理空间中彼此顺序地相邻地定位。在其他实施例中,第二CG、第一CG和第三CG可在物理空间中彼此分开(非顺序地)。例如,在第二CG与第一CG之间可能存在一个或多个中间CG,并且在第一CG与第三CG之间可能存在一个或多个中间CG。

在另一实施例中,链102中的CG以循环序列(例如环形拓扑) 布置,其中第二CG在循环序列中在一个方向上与第一CG直接相邻,并且第三CG在循环序列中在另一方向上与第一CG直接相邻。CG 中的相应一个可耦合到循环序列中的第一直接相邻的CG,并且耦合到循环序列中的第二直接相邻的CG。

在另一实施例中,链102中的CG以循环序列(例如环形拓扑) 布置,其中第二CG与第一CG不直接相邻,而是在循环序列中在一个方向上位于第一CG之前,并且第三CG不直接与第一CG相邻,而是在循环序列的另一方向上位于第一CG之后。第二CG可在环形拓扑中位于第一CG之前,并且第一CG在环形拓扑中位于第三CG 之前。在另一实施例中,第二CG在环形拓扑的第一方向上与第一CG 隔开至少两个位置,而第三CG在环形拓扑的第二方向上与第一CG 隔开至少两个位置。可替换地,CG可以其他循环序列配置,例如菊花链配置。

CG是自定时的,因为单个CG的下一状态被异步地更新。也即,无论任何同步时钟信号如何,都会进行更新。CG是数字CG,并且可使用标准单元库构建。在半导体设计中,标准单元方法是设计具有大多数数字逻辑特性的专用集成电路(ASIC)的方法。例如,每个CG 可由标准单元库的大约十个NAND门当量组成。

图2示出了根据一个实施例的同步一维元胞自动机如何能够适应于自定时装置,该自定时装置适于在循环序列的一部分200中实现混沌模式生成器。部分200包括第一CG 202、第二CG 204以及第三CG 206。为了便于描述,对第一CG 202进行描述,而第二CG 204 和第三CG 206是相似的。第一CG 202包括用于影响更新算法的异步数字逻辑220。异步数字逻辑电路220包括用于执行逻辑操作(f)的逻辑基元,并且可包括用于存储第一CG 202的当前状态的内部锁存器。异步数字逻辑电路220包括第一输出214、第一输入208、第二输入210以及第三输入212。第一输入208耦合到第一输出214,并且第一输入208表示第一CG 202的第一状态(Q1)。第二输入210 耦合到第二CG 204的第二输出并表示第二CG的第二状态(Q0),并且第三输入212耦合到第三CG 206的第三输出并表示第三CG 206 的第三状态(Q2)。异步数字逻辑电路220使用Q0、Q1和Q2信号来更新第一CG 202的下一状态(Q1’)。异步数字逻辑电路220使用生成复杂的不可预测的模式的逻辑运算来更新所述下一状态(Q1’),例如由下式表示的逻辑运算:Q1’=Q0XOR(Q1OR Q2)。

第一CG 202还可包括可配置为捕获第一输出214的锁存器(未示出)。当由捕获信号(未示出)发信号时,锁存器将捕获当前状态 (Q1)。当由捕获信号计时时,CG的锁存器共同输出随机数字值。如上所述,随机数字值的熵基于每个混沌生成器的不确定更新速率以及在从“传递”到“捕获”的转换期间CG锁存器的亚稳态。用于CG 的异步数字逻辑电路的电路的固有失配也有利于各个CG的单独更新速率的不可预测性。

尽管图2示出了三个CG,然而在另一实施例中,CG组织成第一 N位RNG,其中N是至少3个要素的正整数。CG的内部锁存器可配置为接收捕获信号,其中当捕获信号有效时,多个CG将捕获它们的当前状态。第一N位值的熵基于每个CG的不确定更新速率以及CG 的内部锁存器的亚稳态。也即,熵受到CG的异步自定时混沌混合以及内部锁存器在从“传递”到“捕获”过渡期间经历的的亚稳态的影响。

本文描述的自定时数字RNG基于一维元胞自动机(“1-D CA”) 的广义概念。1-D CA是硬件状态机,其中每个元件的下一状态(Q1’) 取决于其自身的状态(Q1)和两个相邻元件的状态(Q0和Q2)。相邻元件可为物理位置的直接相邻,或者可以彼此之间存在一个或多个元件的方式定位。在同步时钟信号的每个边沿上,状态机中的每一位都会更新。对于二进制值Q0、Q1、Q2存在八种可能的状态,因此对于Ql’存在28种可能的更新“规则”。例如,大型二进制元胞自动机规则-30同步状态机生成复杂的不可预测的(即“混乱”)模式,但是最终对于有限大小的状态机,整个状态将重复。一般而言,在以下情况下,同步1-D CA可用作有效的随机数生成器:1)可观察到的状态机中位的数量大,其中较高越好;2)状态机的初始值是不可预测的;以及3)观察结果之间的唯一更新的次数,其中越不可预测越好;以及4)更新规则生成复杂的、不可预测的模式(例如规则-30)。为了在小的数字电路中实现基于1-D CA规则-30的随机数生成器,在一个实施例中,硬件状态机被实现为组织成环或其他循环序列的自定时状态机,其中状态机中的每一位生成其自身的定时。也即,每个元件都是自定时的,并且基于其自身的当前状态和两个相邻元件的状态以其自身单独的更新速率更新。这可认为是可选地被锁存的环形振荡器。在一个实施例中,自定时元件是自定时混沌生成器,其中每个自定时混沌生成器使用生成复杂不可预测的模式的更新规则,所述模式例如由规则-30等式生成:下一状态Q1’=Q0XOR(Q1OR Q2)。

在另一实施例中,模式生成电路包括基本类似的组合逻辑元件的环,其中每个元件配置为接收其自身的当前状态和环中两个其他元件的当前状态作为输入。每个元件的更新速率相对于每个其他元件是异步的。在另一实施例中,每个元件实现元胞自动机规则-30更新规则算法。在另一实施例中,自定时混沌生成器的链组织成环形拓扑,并且每个混沌生成器基于三个输入来更新其自身的状态:其当前状态 (“Q1”)、在链中位于其之前的生成器的状态(“Q0”)、以及在链中位于其之后的生成器的状态(“Q2”)。每个混沌生成器响应于控制信号,其中在控制信号的第一模式中,混沌生成器主动生成新的值,并且在控制信号的第二模式中,混沌生成器锁存其当前状态。混沌生成器使用逻辑基元来构建,这些逻辑基元实现如下的规则-30 逻辑等式:下一状态Q1’=Q0XOR(Q1OR Q2)。

图3是根据一个实施例的混沌模式生成器的异步数字逻辑电路 300的示意图。异步数字逻辑电路300包括:耦合到第一输入(Q1) 和第三输入(Q2)的第一逻辑门302;耦合到第二输入(Q0)以及第一逻辑门302输出的第二逻辑门304;以及耦合到第二逻辑门304的输出的内部锁存器306。内部锁存器306配置为接收捕获信号308。内部锁存器306配置为在捕获信号308无效时,允许基于Q0、Q1和 Q2的混沌模式生成,并且在捕获信号308有效时停止混沌模式生成。异步数字逻辑电路300的输出310是随机数字值的一位。如前所述,输出310的熵基于电路300的每个实例的自定时混沌生成以及内部锁存器306在从传递到捕获状态的转变中的亚稳态。

在图3中,第一逻辑门302是OR门,第二逻辑门304是异或 (XOR)门。OR门对Q1和Q2执行或运算,XOR门对OR门的输出和Q0进行异或运算。因此,XOR门输出处的下一状态(Q1’)由下式表示:Q1’=Q0XOR(Q1OR Q2)。

在另一实施例中,内部锁存器306包括多路复用器和成对的顺序逆变器。多路复用器耦合到第一输出310和XOR门的输出(Q1’)。多路复用器配置为在捕获信号无效时传递XOR门的输出,并且在捕获信号有效时捕获第一输出。该成对顺序逆变器耦合在多路复用器的输出与第一输出310之间。其他锁存实施例可容易地代替该锁存实施例。

如本文所述,异步数字逻辑电路300用作自定时混沌生成器 (CG)。自定时混沌生成器具有一些时序特征。例如,当Q0=1且 Q2=0时,Q1以如下表示的速率更新:l/(tXOR+tFB),其中tXOR表示通过XOR门的数据路径的不可预测的传播延迟,而tFB表示通过逆变器并经由OR门返回的数据通路的不可预测的传播速率。因此,链中每个CG的更新速率对于链中的每一位都将略有不同。捕获/传递信号持续时间的任何不确定性(例如抖动)进一步增加了更新次数的不确定性。此外,在从“传递”模式转换到“捕获”模式时,“Q1”信号相对于捕获/传递信号异步移动(即使得锁存器暴露于亚稳态),这有利于随机数字值的熵。

图4是根据一个实施例的包括耦合到九个混沌模式生成器(CG) 链的值检测器逻辑406的自定时RNG 400的示意图。CG链包括八个 CG 402和中间CG 404。应当注意的是,中间CG 404可位于链的任何位置,但出于描述的目的而在中间使用。CG链组织成循环序列,其中每个CG耦合到如本文所述的链中的至少两个其他CG,即使CG 之间的连接在图4中未示出。值检测器逻辑406包括耦合到CG 402 输出的输入以及耦合到CG 404(中间CG)中的一个的复位输入的复位输出,以在CG 402的输出匹配预定义值时使一个CG 404复位。

在一个实施例中,值检测器逻辑406包括耦合到四个CG 402的第一或非门408和耦合到其他四个CG 402的第二或非门410。第一或非门402和第二或非门410的输出耦合到与门412的输入。与门412 的输出耦合到中间CG 404的复位输入。如本文所述,在使用或非门的本实施例中,值检测器逻辑406可配置为检测CG 402中的全零并且强制中间CG 404输出对相邻CG状态产生影响的一个(无论其当前状态如何)。尽管图4所示的值检测器逻辑406 4配置为将8位值与预定义8位值(例如零)相匹配,在其他实施例中,值检测器逻辑 406可包括不同的逻辑基元以将N位数与预定义N位数相匹配。在其他实施例中,复位信号可输入到多于一个CG 404中。

除了值检测器逻辑之外,还可能有益的是,每当混合操作停止(例如通过上述可选捕获信号的断言)时将环中的某些位强制到已知状态。图5示出了根据一个实施例的具有10个自定时混沌模式生成器 (CG)的链502的8位数字RNG 500的示意图,其将十位中的两个强制为已知状态。十个自定时CG可各自是异步数字逻辑电路,如先前所述并在图5的分解图中示出。异步数字逻辑电路可为参照图3示出和描述的实现规则-30的异步数字逻辑电路300。可替换地,异步数字逻辑电路可为其他电路,其通过基于其自身的当前状态和至少两个相邻CG的状态异步地更新下一状态来生成复杂的不可预测的模式。链502包括输出构成随机数字值510的八个CG 504、以及输出不用于随机数字值510的两个CG 506。这两个CG 506不用作随机数字值510的一部分,而是耦合在自定时CG的链502中。当8位数字 RNG 500从外部电路(例如对于某种操作需要随机值的同步处理器) 接收到捕获=有效信号508时,两个CG 506被强制为已知状态(例如,被强制为一个状态以避免随机数字值510中的全零状态)。在某些情况下,根据更新规则,全零状态将是8位数字RNG 500的稳定状态,应当避免这种状态因为不会生成熵。CG 504的链502可耦合到FF。 FF配置成在采样信号(图5中未示出)有效时锁存从CG 504输出的 8位值。如上所述,8位值的熵归因于混沌生成器的自定时特性以及十个CG的内部锁存器的亚稳态。

在另一实施例中,该RNG电路的8位值可与一个或多个其他随机数生成器的输出组合,这些随机数生成器由其中实现8位数字RNG 500的IC供应商提供。也即,在一个实施例中,集成电路包括8位数字RNG 500、ASIC RNG以及混合逻辑。混合逻辑可耦合到FF的输出并且耦合到ASIC RNG的输出,FF从8位数字RNG 500捕获随机数字值。混合逻辑将这两个值组合(例如经由异或运算)以生成新的随机数字值。应当注意的是,两个8位值的该组合可在数字RNG电路本身内完成。例如,可构建两个8位RNG电路,并通过8位异或将其16位输出组合成单个8位结果。可替换地,8位数字RNG 500 可用作ASIC RNG的种子,并且有利于ASIC RNG的熵性能。通常实践将RNG组合的这种技术,使得即使攻击者已禁用了一些但不是全部的随机生成器,仍然可生成随机值。

图6是根据一个实施例的包括两个N位RNG的数字RNG 600的示意图。数字RNG 600包括第一N位RNG 602,其中N是正整数。第一N位RNG 602接收系统捕获/传递(C/P)信号601。更具体地,各个CG的内部锁存器配置为接收高电平有效系统捕获信号601(即低电平有效传递信号)。当系统捕获信号601有效时,这些锁存器将捕获并保持第一N位值603。如上所述,第一N位值603的熵基于混沌生成器的自定时性质以及第一RNG 602的内部锁存器的亚稳态。第一N位RNG 602可包括检测器逻辑,用于检测第一N位值603中的预定义数字值。当第一预定义数字N位值603与预定义值失配时(例如当第一RNG 602不生成全零态时),值检测器逻辑可配置为在复位输出上输出低电平有效信号OR门610被耦合以接收系统捕获信号601并且从N位RNG 602的复位输出接收低电平有效信号OR门610的输出作为第二N位RNG 604的第二捕获信号 605起作用。N位RNG 604的各个CG的内部锁存器配置为从OR门 610的输出接收第二高电平有效捕获信号605。这样,第二字节的捕获和生成阶段可通过第一字节的值检测逻辑来不可预测地控制,从而生成进一步的熵。除了这种新机制之外,第二字节的N位值607的熵基于混沌生成器的自定时性质以及第二RNG 604的内部锁存器的亚稳态。异或逻辑门612被耦合以接收第一N位值603和第二N位值 607并输出第三N位值611,该第三N位值然后由采样FF 608捕获。异或逻辑门612对第一N比特值603和第二N比特值607进行异或运算,以生成N位随机数字值611,当捕获信号601从无效转变成有效时,该N位随机数字值由FF 608锁存(应当注意的是,可能需要插入在捕获信号601与FF 608的时钟输入之间的小的延迟(未示出))。输出FF 608是N位随机数字值613。

在另一实施例中,混合逻辑被耦合以接收N位随机数字值613并且从随机数生成器(RNG)接收随机数,其中这些随机数生成器由其中实现自定时数字RNG 500的IC的供应商提供。混合逻辑配置为将 N位随机数字值613与来自RNG的随机数混合以生成另一随机数。

下表是由一个实施例中的自定时混沌生成器中的异步数字逻辑所使用的一维二进制元胞自动机规则-30。规则-30是生成混沌模式的特定更新规则。混沌模式甚至可从其中一个单元处于状态1而周围单元是状态0的初始状态出现。

在一个实施例中,自定时数字RNG 600可用在集成电路内的安全核心内。例如,片上系统(SoC)可具有一个或多个处理器核心、存储器以及其他功能单元。SoC还包括安全核心和安全存储器。安全核心可包括例如基于预共享密钥生成挑战的挑战生成器。预共享密钥可与随机数字值混合以生成随机挑战,从而在挑战-响应验证过程中验证知道预共享密钥的另一实体。在一个实施例中,自定时数字RNG 600是由加利福尼亚州旧金山的密码研究公司开发的 CryptoFirewallTM产品的一部分。CryptoFirewallTM产品可能依赖ASIC 合作伙伴提供的RNG以与来自自定时数字RNG 600的随机数字值进行混合,以生成随机挑战。可替换地,自定时数字RNG 600可为其他加密系统的一部分,并且可用于除随机挑战之外的其他应用中。自定时数字RNG 600可为安全核心提供必要的随机量,如通过熵度量测量的。由自定时数字RNG 600生成的随机数字值也可在不与ASIC 合作伙伴的RNG混合的情况下使用。自定时数字RNG 600是使用标准单元门构建的全数字电路实现。自定义数字RNG 600可使用自动化工具自动放置和路由,需要对电路进行较少的手动调整和手动布局,或者无需对电路进行手动调整和手动布局。自定时数字RNG 600 可使用低成本、全数字制造测试来进行测试。

图7是根据一个实施例的使用自定时全数字随机数生成器(RNG) 生成随机数字值的方法700的流程图。方法700可由本文所述的CG 链中的任何一个来执行。方法700开始于将当前状态(Q1)存储在第一混沌生成器(CG)的内部锁存器中(框702)。第一CG位于组织成环形拓扑结构的CG链中。耦合到内部锁存器的异步数字逻辑基于以下因素异步地更新CG的下一状态(Q1’):当前状态(Q1)、在链中位于第一CG之前的第二CG的第二状态(Q0)、以及在链中位于第一CG之后的第三CG的第三状态(Q2)(框704)。Ql、Q0 和Q2在各个更新速率下异步更新。在框708处,FF响应于在框706 处接收到的控制信号而锁存从CG链输出的随机数字值。捕获信号在有效时将RNG置于捕获模式。然而,如果没有接收到捕获信号,则 RNG基于以不同更新速率更新的各个CG的状态的变化而继续异步地生成随机数。实际上,方法700返回以重复块702、704。在框710 处,确定传递模式是否有效(捕获信号无效)。在框710处传递模式有效之前,该方法在块708处以捕获模式继续。当传递模式有效时,方法700返回到框702以异步地更新各个CG的状态。如上所述,随机数字值的熵基于混沌生成器的自定时性质以及CG链内部锁存器的亚稳态。

在另一实施例中,在框704处,通过异步数字逻辑执行一维二进制元胞自动机规则等式来更新下一状态。一维二进制元胞自动机规则等式是规则-30、规则-86、规则-135或规则-149中的至少一者。可替换地,可使用其他更新规则等式。在一个实施例中,下一状态(Q1) 由以下等式确定:Q1=Q0异或(Q1或Q2)。

在另一实施例中,随机数字值与由相同集成电路上的RNG生成的另一个随机数混合。在另一实施例中,随机数字值与本文所述的挑战/响应验证过程结合使用。

图8示出了四种不同更新规则的模式生成性质。在这些图中,模拟了128位同步一维元胞自动机(CA)(例如图2的上半部分所示的元胞自动机),其中中心位(位64)在时间“t0”被初始化为二进制值“1”(用深色像素表示),所有其他位初始化为“0”(由白色像素表示)。每行(从顶部开始并向下移)显示了模式从t0到t1、t2、 t3等的进展。规则-30的发展在框801中示出。关于其结构有两个观察:第一,它似乎是混乱的,尽管它源于初始状态,然而它的模式显然是复杂和不可预测的。事实上,在Jen的“一维元胞自动机中的非周期性”(由Physica D Nonlinear Phenomena,1990出版)中,显示了规则-30进展中的任何两个相邻细胞之间的模式是非周期性的。关于结构的第二个观察是它从初始条件“双向”进行。也即,尽管在时间t0仅中心位被初始化为“1”,然而该模式通过128位CA同时“向前”和“向后”移动(即,位64在时间t0的值影响位63和位65在时间t1的值)。当CA配置为环时,这具有有趣的含义:向前和向后的更新事件(当构造为电子电路时这些更新事件将显示为电压转换) 将最终彼此“相互冲突”,从而发生建设性或破坏性干扰。具有这种干扰的模式在同步环结构中是众所周知的(参见Wolfram的“密码学与元胞自动机”,由Institute of Advanced Study,Princeton,NJ;1985 出版),然而对于使用自定时元件构建的环而言更加不可预测,因为环中的每个元件将以不可预测的时机将事件传播到其两个相邻元件。由于这两个原因,出于随机数生成的目的,规则-30为自定时环创建有效的生成规则。

存在也生成双向模式的许多其他更新规则,如规则-18所示,其进展在框802中示出。该模式的结构显然比规则-30模式更规则,但双向性质意味着它可在用于随机数生成目的的自定时环中有效。其他更新规则生成单向的模式,如规则-110(如框803所示“向左”进行) 及其对称伙伴规则-124(如框804所示“向右”进行)所示。生成单向模式(甚至是复杂模式)的更新规则可能不如生成双向模式的更新规则那样有效,因为环将不会呈现更新事件(即电压转换)沿着环向前和向后移动的不可预测的干扰。在其他实施例中,可使用具有不同更新规则的元件来构造自定时环,一种类型在一个方向上生成单向更新事件,另一种类型在另一个方向上生成更新事件。这种异质混合环可呈现出与由生成双向事件的元件构成的均质环类似的性质。如本文所述,还应当注意,可在相同的环中组合多个更新规则,包括生成双向和/或单向模式的两个或多个不同的更新规则。

例如在一个实施例中,异步数字逻辑实现一维二进制元胞自动机更新规则,该更新规则生成CG链内的双向模式(这导致环内的不可预测的干扰,这提高了在输出端可观察到的随机数生成的品质)。在另一实施例中,异步数字逻辑实现两个或更多个一维二进制元胞自动机更新规则,每个更新规则在CG链内生成双向模式。在另一实施例中,异步数字逻辑实现至少一个二维元胞自动机更新规则,该更新规则引起在CG链的第一方向上的单向更新事件,并且例如第二CG的至少一个第二异步逻辑实现第二一维二进制元胞自动机更新规则,该更新规则引起在CG链的第二方向上的单向更新事件。

在上面的描述中,阐述了许多细节。然而,对于受益于本公开的本领域普通技术人员而言显而易见的是,可在没有这些具体细节的情况下实践本实用新型的实施例。在某些情况下,公知的结构和设备以框图形式而非详细地示出,以避免使描述变得模糊。

根据对计算机存储器内的数据位的操作的算法和符号表示来呈现详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域技术人员的手段。算法在这里并且通常被认为是导致期望结果的自洽的步骤序列。这些步骤是需要物理量的物理操作的步骤。通常(虽然并非必然),这些量采取能够被存储、传送、组合、比较和以其他方式操纵的电或磁信号的形式。主要是出于普遍使用的原因,有时将这些信号称为位、值、元件、符号、字符、术语、数字等被证明是方便的。

然而应当记住,所有这些和类似的术语都应与适当的物理量相关联,并且仅仅是适用于这些量的方便的标签。除非另有明确说明或者从上述讨论中显而易见的,否则应当理解,在整个说明书中,使用诸如“加密”、“解密”、“存储”、“提供”、“导出”、“获得”、“接收”、“验证”、“删除”、“执行”、“请求”、“通信”等术语的讨论是指计算系统或类似的电子计算设备的动作和过程,其对表示为在计算系统的寄存器和存储器内的物理(例如电子的)量的数据进行操作并将其转换为表示为计算系统的存储器或寄存器或者其他这样的信息存储、传输或显示设备内的物理量的其他数据。

词语“示例”或“示例性”在本文中用于表示用作示例、实例或说明。本文中描述为“示例”或“示例性”的任何方面或设计并非被解释为相比于其他方面或设计是优选或有利的。而是使用词语“示例”或“示例性”旨在将概念呈现为具体的形式。如本公开所使用的,术语“或”旨在表示包容性“或”,而非排他性“或”。也即,除非另有说明或从上下文中清楚,“X包括A或B”旨在表示任何自然包容性排列。也即,如果X包括A;X包括B;或X包括A和B,则在任何上述情况下,都满足“X包括A或B”。另外,在本公开和所附权利要求中使用的冠词“一(a)”和“一(an)”通常应被解释为表示“一个或多个”,除非另有说明或从上下文中清楚地表示单数形式。此外,通篇中术语“实施例”或“一个实施例”或“实施方式”或“一个实施方式”的使用并不旨在表示相同的实施例或实现,除非被这样描述。

本文所描述的实施例还可涉及用于执行本文操作的装置。该装置可为所需目的而特别构造,或者其可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可存储在非暂时性计算机可读存储介质中,例如但不限于任何类型的盘 (包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、闪速存储器或适合于存储电子指令的任何类型的介质。术语“计算机可读存储介质”应当被认为包括存储一组或多组指令的单介质或多介质(例如集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读介质”也应当被认为包括能够存储、编码或携带一组指令以供机器执行的任何介质以及使机器执行本文实施例的任何一种或多种方法的任何介质。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器、光学介质、磁性介质、能够存储用于由机器执行的一组指令的任何介质以及使机器执行本文实施例的任何一种或多种方法的任何介质。

本文呈现的算法和显示器并不固有地与任何特定的计算机或其他设备相关。各种通用系统可与根据本文教导的程序一起使用,或者可证明构造更专用的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将从下面的描述中出现。此外,并未参考任何特定的编程语言来描述本文实施例。应当理解,可使用各种编程语言来实现如本文所述实施例的教导。

为了提供对本实用新型的几个实施例的良好理解,上文描述阐述了许多具体细节,例如特定系统、部件、方法等的实例。然而,对于本领域技术人员而言显而易见的是,可在没有这些具体细节的情况下实践本实用新型的至少一些实施例。在其他情况下,公知的部件或方法不会详细描述或者以简单的框图格式呈现,以避免不必要地使本实用新型模糊。因此,上述具体细节仅仅是示例性的。具体实施方式可与这些示例性细节不同,并且仍被认为在本实用新型的范围内。

应当理解,上文描述旨在是说明性的而非限制性的。在阅读和理解上文描述之后,许多其他实施例对于本领域技术人员而言将是显而易见的。因此,本实用新型的范围应当参照所附权利要求以及这些权利要求的等同物的全部范围来确定。

虽然已经参照本实用新型的具体实施例描述了本实用新型,然而显而易见的是,在不脱离本实用新型的更广泛的精神和范围的情况下,可对本实用新型进行各种修改和改变。例如,任何实施例的特征或方面可至少在可行的情况下与任何其他实施例组合或代替对应特征或其方面来应用。因此,说明书和附图被认为是说明性的而非限制性的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1