CN108073383A - 加强随机数生成器 - Google Patents

加强随机数生成器 Download PDF

Info

Publication number
CN108073383A
CN108073383A CN201710895967.4A CN201710895967A CN108073383A CN 108073383 A CN108073383 A CN 108073383A CN 201710895967 A CN201710895967 A CN 201710895967A CN 108073383 A CN108073383 A CN 108073383A
Authority
CN
China
Prior art keywords
random number
number generator
counter
ring oscillator
trng
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.)
Granted
Application number
CN201710895967.4A
Other languages
English (en)
Other versions
CN108073383B (zh
Inventor
威廉·韦森
斯科特·约翰森
卡提卡·佩里亚塔姆比
林恩·博斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN108073383A publication Critical patent/CN108073383A/zh
Application granted granted Critical
Publication of CN108073383B publication Critical patent/CN108073383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Microcomputers (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

提供了加强随机数生成器。真随机数生成器(TRNG)使用模拟电路和计数器,模拟电路具有被配置成以随机塌缩时间从不稳定振荡状态塌缩到稳定振荡状态的环形振荡器,计数器对表示所述随机塌缩时间的计数器值进行计数。使用各种技术来加强包括截取器和专用电压调节器的TRNG,截取器基于参考计数值的截取来生成真随机数,专用电压调节器向包括环形振荡器的模拟核心供应电力。这些技术也包括用于诸如使用格雷码计数器来拉动恒定电流并且利用虚设反相器链在塌缩事件期间和/或之后添加噪声电流的各种方案。可以采用比特搅动、比特模糊化、熵增强器和各种后处理技术来进一步加强TRNG。攻击检测模块可以在TRNG正被攻击时产生警报。

Description

加强随机数生成器
背景技术
真随机数生成器可易受来自未经授权的攻击者的各种攻击(——包括例如主动和被动侧信道攻击)——的影响。这样的侧信道攻击包括主动PVT(功率、电压、温度)攻击,其中PVT被主动地操纵或者以其它方式观察以使比特流的随机性偏倚或者以检测正被输出的随机值。这样的技术可以允许攻击者监视电源、接口连接、以及任何电磁(EM)辐射的模拟特性。
此外,如果未适当地隔离或保护,则真随机数生成器可易受各种故障注入攻击的伤害,其中攻击者在处理器中恶意地引入错误以便更改软件执行(例如,防止指令的执行、破坏处理器正在处理的数据、使数据的随机性偏倚等)。这样的故障注入攻击的示例包括电压毛刺(glitching)和EM毛刺,其可致使可预测塌缩(collapse)次数(例如,主动攻击)。
另外,由于真随机数生成器的某些计数和塌缩方面,可以存在可被后处理以确定塌缩计数值的不同的功率/EM廓线。
发明内容
本发明内容以简化形式引入构思的选择以便提供对本公开的一些方面的基本理解。本发明内容不是本公开的广泛概述,并且不旨在标识本公开的关键或重要要素或者划定本公开的范围。本公开内容仅仅呈现本公开的构思中的一些作为在下面提供的具体实施方式的序言。
本公开通常涉及集成电路。更具体地,本公开的各方面涉及被设计来抵抗(强化以抵御)侧信道攻击和其它故障注入攻击的随机数生成器。
一个方面包括随机数生成器设备,包括:模拟电路,所述模拟电路包括被配置成以随机塌缩时间从不稳定振荡状态塌缩到稳定振荡状态的环形振荡器;计数器,所述计数器对表示所述随机塌缩时间的计数器值进行计数;以及截取器,所述截取器基于所述计数器值的截取来生成随机数。
另一个方面包括伪随机数生成器,所述伪随机数生成器输出伪随机值,所述截取器具有基于所述伪随机值而变化的可变截取长度。
又一个方面包括所述伪随机数生成器通过所述随机数来播种。
再一个方面包括所述伪随机数生成器输入第二随机数,其中所述第二随机数确定所述伪随机数生成器在将所述伪随机值提供给所述截取器之前运行的循环的数目。
更进一步方面包括所述计数器在所述环形振荡器的所述塌缩之后继续对所述计数器值进行计数。
再又一个方面包括:专用电压调节器,所述专用电压调节器向所述环形振荡器提供专用电力;以及电源,所述电源向所述随机数生成器的除所述环形振荡器以外的部分提供电力。
另一个方面包括所述调节器是低压差调节器。
再一个方面包括所述计数器是格雷码(Gray code)计数器。
更进一步方面包括:所述环形振荡器具有主环形振荡器和参考环形振荡器,所述参考环形振荡器被配置成以参考振荡频率振荡;所述设备进一步包括:相位频率检测器,所述相位频率检测器将所述参考环形振荡器的相位与所述主环形振荡器的相位进行比较以检测所述主环形振荡器的塌缩事件;以及锁存器,所述锁存器基于由所述相位频率检测器对所述塌缩事件的检测来捕获所述计数器值,其中所述计数器对所述参考振荡器的振荡进行计数以取得所述计数器值。
更进一步方面包括:专用电压调节器,所述专用电压调节器向所述主环形振荡器和所述参考环形振荡器提供专用电力;以及电源,所述电源向所述随机数生成器的除所述主环形振荡器和所述参考环形振荡器以外的部分提供电力。
再一个方面包括:攻击检测模块,所述攻击检测模块对所述主环形振荡器和所述参考环形振荡器的输出进行异或;以及分析器,所述分析器基于所述攻击检测模块的可预测异或输出来检测所述主环形振荡器和所述参考环形振荡器的频率锁定。
又一个方面包括比特模糊器,所述比特模糊器交换所述随机数的比特位置。
再又一个方面包括:控制寄存器,所述控制寄存器具有均与若干后处理方法中的一个后处理方法相关联的比特位置或值;以及后处理器,所述后处理器具有均根据所述控制寄存器中的相关联的比特位置或值启用的多个后处理方法。
更进一步方面包括:缓冲器,所述缓冲器存储包括至少第一随机数的所述随机数;以及比特搅动器(churner),所述比特搅动器将新近接收到的随机数与存储的随机数进行异或处理并且将结果存储在所述缓冲器中。
又一个方面包括一组并联的虚设反相器链,所述一组并联的虚设反相器链在所述环形振荡器的塌缩之前或之后被启用。
更进一步方面包括攻击检测模块,所述攻击检测模块连接到一个或多个检测器并且确定所述设备是否在攻击下,所述攻击检测模块根据所述攻击来迫使所述设备进入空闲状态。
另一方面包括装置,包括:主环形振荡器,所述主环形振荡器被配置成以随机塌缩时间从不稳定振荡状态塌缩到稳定振荡状态;参考环形振荡器,所述参考环形振荡器被配置成以参考振荡频率振荡;计数器,所述计数器对所述参考环形振荡器的振荡进行计数以取得计数器值,其中,所述计数器值表示所述主环形振荡器的所述随机塌缩时间;截取器,所述截取器基于所述计数器值的截取来生成随机数;以及伪随机数生成器,所述伪随机数生成器输出伪随机值,所述截取器具有基于所述伪随机值而变化的可变截取长度。
又另一方面包括具有以下的装置:专用电压调节器,所述专用电压调节器向所述主环形振荡器和所述参考环形振荡器提供专用电力;以及电源,所述电源向所述随机数生成器的除所述主环形振荡器和所述参考环形振荡器以外的部分提供电力。
再一个方面包括进一步包括以下各项的装置:相位频率检测器,所述相位频率检测器将所述参考环形振荡器的相位与所述主环形振荡器的相位进行比较以检测所述主环形振荡器的塌缩事件;以及锁存器,所述锁存器基于由所述相位频率检测器对所述塌缩事件的检测来捕获所述计数器值。
应当注意的是,本文中所公开的处理器和存储器系统中的一些或全部的实施例也可以被配置成执行上面所公开的方法实施例中的一些或全部。此外,也可以将上面所公开的方法中的一些或全部的实施例表示为在诸如光学或磁存储器的非暂时性处理器可读存储介质上实施的指令。
本公开的方法和系统的适用性的进一步范围将根据在下面给出的具体实施方式而变得显而易见。然而,应当理解的是,具体实施方式和特定示例虽然指示方法和系统的实施例,但是仅通过例示方式来给出,因为在本文中所公开的构思的精神和范围内的各种改变和修改根据此具体实施方式对于本领域的技术人员而言将变得显而易见。
附图说明
本公开的这些及其它目的、特征、和特性根据结合其所有内容形成本说明书的一部分的所附权利要求书和附图将对于本领域的技术人员变得更显而易见。在附图中:
图1是图示根据本文中所描述的一个或多个实施例的具有专用电压调节器的真随机数生成器的高级设计的示例模拟部分的框图。
图2是图示根据本文中所描述的一个或多个实施例的当在外部电源与片上TRNG之间存在LDO(低压差)调节器时的电压幅值变化中的减小的示例的框图。
图3A是图示没有侧信道加强的真随机数生成器的示例电流消耗廓线的图形表示。
图3B是图示根据本文中所描述的一个或多个实施例的具有侧信道加强的真随机数生成器的示例电流消耗廓线的图形表示。
图4是图示根据本文中所描述的一个或多个实施例的具有截取器、后处理器和缓冲器的真随机数生成器的示例高级设计的框图。
图5A是图示根据本文中所描述的一个或多个实施例的具有异或电路和分析器的真随机数生成器的示例高级设计的框图。
图5B是图示根据本文中所描述的一个或多个实施例的具有虚设链的真随机数生成器的示例高级设计的框图。
图6是图示根据本文中所描述的一个或多个实施例的真随机数生成器的数字块的示例状态的状态图。
图7是图示根据本文中所描述的一个或多个实施例的真随机数生成器的示例定时的定时图。
图8是图示根据本文中所描述的一个或多个实施例的示出后处理器的细节的真随机数生成器的示例高级设计的框图。
图9是图示根据本文中所描述的一个或多个实施例的实现数字组件的示例计算装置的框图。
本文中所提供的标题仅为了方便,而不一定影响在本公开中所要求保护的范围或意义。
在附图中,为了易于理解和处于方便起见,相同的附图标记和任何首字母缩略词标识具有相同或类似的结构或功能性的元件或动作。将在以下具体实施方式的过程中详细地描述附图。
具体实施方式
现在将描述本公开的方法和系统的各种示例和实施例。以下描述为了彻底理解并实现这些示例的描述而提供特定细节。然而,相关领域的技术人员将理解的是,可以在没有许多这些细节的情况下实践本文中所描述的一个或多个实施例。同样地,相关领域的技术人员也将理解的是,本公开的一个或多个实施例可包括在本文中未详细地描述的其它特征。附加地,可以不在下面详细地示出或者描述一些公知的结构或功能,以便避免不必要地模糊相关描述。
本公开的实施例涉及真随机数生成器(TRNG),所述TRNG设计被强化以抵御非法侵入、侧信道和其它类型的故障注入攻击(例如,抵抗这些攻击或者对这些攻击较不敏感)。
依照一个或多个实施例,本公开的TRNG可以是专用集成电路(ASIC)的安全特征集的一部分(例如,组件)。在高层级处,TRNG可以从环境取熵(entropy)源并且(例如,以例如按照每秒比特来测量的一定速率)将该熵转换成数值,所述数值可以被用于各种应用(例如,加密、秘密密钥生成等)。
在至少一个实施例中,TRNG可以被包括在集成电路或装置中,并且包括模拟组件/电路/块和数字组件/电路/块。例如,模拟组件可以被设计成执行序列,从而将熵转换成具有一定时延量的捕获值,并且数字组件被设计成存储该捕获值、重新开始模拟序列、并检查结果的一致性。优选地,TRNG应当不管集成电路(——也被称为芯片)——上的任何潜在攻击(例如,功率、电压、温度等)如何,都应当提供在PVT(功率、电压、温度)上不变的不可检测的无偏随机比特流。
依照至少一个实施例,TRNG可以基于环形振荡器(RO)从不稳定状态塌缩到稳定状态所花费的时间。计数器用于跟踪RO塌缩花费多长时间并且以这种方式生成的计数值(随机数)具有对数正态分布。然后,表示塌缩时间的计数器值被截取(取模)以近似均匀分布(其中这样的均匀分布是对真随机数生成器的要求)。应当理解的是,术语“真随机数生成器”是包括近似均匀分布的广义术语。实际上,用作熵源的环形振荡器本身可以是有偏的,其它组件可以引入偏倚并且例如,在短时间窗内计数值可以不显现完全均匀分布,而对于较大样本大小的计数器值而言则将是完全均匀分布。此外,“真随机数生成器”的定义是该真随机数生成器使用熵作为随机性源和/或其中每当生成数字时生成任何特定数字的概率与每个其它数字近似相同。
图1示出依照一个或多个实施例的TRNG并且特别图示组件及其功率域。TRNG的模拟核心105可以包括TRNG电压调节器110(例如,LDO调节器)、相位频率检测器(PFD)150、环形振荡器(120、130)、电平移位器125、135(用于在两个电压域(VDD-TRNG和VDDL)之间安全地转变RO信号)、和计数器179,所有这些是常规元件,但是以唯一且创造性方式布置并起作用。
如将在下面更详细地描述的,各种实施例的TRNG可以包括用于减小侧信道攻击灵敏度和/或减小侧信道泄漏以使得监听者无法检测到塌缩事件何时开始和停止的多个特征和/或功能性。
例如,可以在核心TRNG模拟电路中使用专用DC线性电压调节器,其中电路的其余部分被单独地供应电力。
更具体地,电压调节器110可以向环形振荡器(120、130)和L2L电路125、135提供专用电源(Vdd trng)。单独的电源经由引脚VDDIO、VSS和VDDL向模拟核心105的其它元件供应电源电压。
使RO 120、130与电路的其余部分隔离可帮助减小RO的自锁效应。例如,PFD 150和计数器170可将大电流脉冲注入到耦合至RO 120、130的地中。因为这些电流脉冲与RO 120、130频率谐波相关,所以它们可潜在地锁定并且从不塌缩。专用电压调节器110通过向RO120、130和电平移位器L2L 125、135提供专用电源来解决此问题。
依照至少一个实施例,电压调节器110可以是具有高PSRR(电源抑制比)和可变输出电压的低压差(LDO)调节器,其能够在宽范围的负载电流和输入电压之上(——包括当输入/电源电压非常接近于输出电压时)——维持它的指定输出电压。
以本文中所描述的方式使用专用DC线性电压调节器110(——诸如LDO调节器)——进一步允许使环形振荡器RO 120、130与任何外部干扰(以及片上噪声,其可影响塌缩分布)隔离。
取决于实施方式,本公开的TRNG设计可以在来自外部电源攻击的所有感兴趣频率之上能够具有例如40dB的电源抑制(100倍幅值减小)。也应当注意的是,来自其它数字块的片上耦合对TRNG的表现具有可忽略的影响。
图2图示当电压调节器110(——诸如例如LDO线性电压调节器)——被布置在外部电源电压与片上TRNG之间时可能发生的电压幅值减小和电压幅值变化的示例。
如通过图4更好地图示的,在一个或多个实施例中本公开的TRNG 101可以使用在3倍模式(三个使能(en)脉冲)下初始化并且作为累积抖动(jitter)(例如,热噪声)的结果最终塌缩到稳定1倍模式的主环形振荡器(RO)120的塌缩时间。相位频率检测器(PFD)150可以被配置成将3倍RO与参考环形振荡器RO 130(1.5x)相比较以便由主环形振荡器(RO)120检测塌缩事件。更具体地,PFD 150检测主环形振荡器RO 120的塌缩事件并且将数据有效输出设置到锁存器180以便捕获正根据从参考环形振荡器RO 130输出的ro_ref递增的计数器170的状态。得到的参考循环对塌缩分布是对数正态的。然后,来自锁存器180的所存储的计数值由截取器200截取。根据实验结果,计数器比特的截取导致接近均匀的分布。
被设计成减小侧信道攻击灵敏度的本公开的TRNG 101的进一步示例特征是TRNG计数器170的截取长度的随机变化。例如,依照至少一个实施例,存在TRNG计数器170在仍然维持几乎均匀分布(并且因此维持静态随机输出比特流)的同时可被截取的比特范围。
PRBS 210(例如,其可以由TRNG 101周期性地再播种)可以用于命令截取器200以使得截取器200随机地变化在截取之后取的比特以便使在输出随机数比特流中使用的实际值模糊。以这种方式,即使潜在攻击者能够猜测计数器170的最终计数值,实际输出值也将由于截取长度的随机变化而得到附加的不透明性。
在进一步实施例中,PRBS 210可以是非常大的PRBS。PRBS是通常通过创建LFSR(线性反馈移位寄存器)所构造的常规元件,所述LFSR分接寄存器中的不同点并且将这些点的异或值馈送回到输入端中。这些抽头被选取(对这些而言存在公知的查找表)以使得可构造将在粗略2^N个循环之后重复的“最大长度”PRBS。所以,如果N(LSFR中的触发器(flipflop)的数目)大,则LFSR将有效地从不重复(例如,2^128=3.4x10^38个循环,其在时钟周期为41ns的情况下对应于1.4x10^31秒钟,其对应于~1x10^23年)。
除由TRNG 101周期性地播种之外,第二TRNG值可以用于确定PRBS 210在向截取器200提供有效输出之前运行的循环的数目。
被设计成强化本公开的TRNG以抵御诸如侧信道攻击的潜在故障注入攻击的另一示例特征包括用于掩蔽塌缩事件(例如,主环形振荡器RO 120塌缩事件)的恒定电流消耗。对TRNG的一个关注是侧信道分析。在理论上,攻击者能监视(可能利用天线,因为高频电流将在TRNG局部)TRNG 101在操作期间的功耗。随着主环形振荡器120从3倍频率塌缩并改变为1倍频率将存在来自TRNG模拟核心105、106的相当不同的功率标记(signature)。为了减小功率标记的SNR(信噪比),各方面试图使TRNG核心在整个随机数聚集事件期间的电流消耗准则化。
用来使电流消耗准则化的一个方式是使用格雷码(Gray code)计数器。例如,在计数器170利用用于对参考环形振荡器RO 130循环进行计数的二进制计数器来实现的实施方式中,TRNG可以具有诸如图3A中所示的非常不同的功率廓线。与TRNG的RO的快速傅里叶变换(FFT)耦合的这样的功率廓线会潜在地导致TRNG随机数输出值的基本上较容易的解码。因此,依照至少一个实施例,可以利用格雷码计数器来实现计数器170。格雷码计数器在计数器值之上具有非常一致的功率廓线,因为当使计数值递增时仅一个比特改变。因此,TRNG101通过以这种方式使用格雷码计数器170被进一步加强。图3B图示电流不随时间变化的在侧信道加强情况下的平均电流消耗。
使电流消耗准则化的另一手段是在塌缩时段期间和/或之后添加噪声电流。图5B图示出于此目的使用虚设反相器链的实施例。为了使电流消耗准则化,让我们首先假定对主环形振荡器120而言,i3x~=3*i1x。如图5B中进一步所示,在L2L 135与PFD 150之间设置了一组并联的虚设反相器链900。并联的虚设反相器链900由固定1.5倍振荡器RO 130驱动并且可以被设计成具有2*i1x总电流消耗,其中每个反相器链相对于1.5倍时钟被延迟(以在时间上分散瞬态)。为了更好地和主环形振荡器RO 120的频率匹配,能添加倍频器电路以使得此虚设链以约3倍振荡。
在至少一些实施例中,可以在发生主环形RO 120塌缩之前和/或之后启用这些虚设反相器链900(en_dmy):在之前启用将减小实际塌缩的信噪比,然而之后启用将旨在维持恒定电流消耗。更具体地,en_dmy可绑定于主使能信号en(虚设反相器在塌缩之前启用)或者绑定于PFD150输出(反相器在塌缩之后启用)。
用于使电流消耗稳定的另一方法将是允许计数器170在主环形振荡器RO 120的塌缩之后继续递增,同时仅在发生塌缩时(经由锁存器180)使输出值变动(flop)。第二计数器(具有由PRBS创建的stop_value)能用于确定有效数据何时被发送到截取器200。这样的第二计数器有效地引入用于将随机数输出到截取器200的随机延迟并且因此使SCA变得更困难。从电流消耗观点看,各方面使用各种技术来将较大的电流尖峰推向不与主环形振荡器RO 120的实际塌缩时间紧密相关的时间点,从而使TRNG 101加强。
使TRNG 101加强的另一方式是增加TRNG块的电流消耗,从而有效地减小信噪比(SNR)。这能潜在地通过具有从LDO电压调节器110拉取的固定偏置电流来实现,并且电流源随着TRNG电流消耗增加而减小。换言之,将额外“漏出(bleed)”电流添加到LDO 110可以额外电流为代价减小当电流消耗改变时(例如当RO 120塌缩时)的LDO电压变化。此漏出电流能随着RO的状态改变而变化,但是,其目标是维持恒定电流消耗。使TRNG加强的进一步方面涉及振荡器120、130。例如,不同于在主振荡器130塌缩时禁用振荡器120、130(如FSM 400在一些实施例中可以做的那样),人们可以改变何时发起新随机数事件(随机地或者按比平均塌缩时间更长的固定周期)的等待时间。
依照一个或多个实施例,尽管本公开的TRNG可以主要是模拟块,然而对于某些特征和/或功能性而言可能需要基本的数字支持。例如,可能需要数字操作来提取TRNG的数据输出并且将TRNG的数据输出格式化成有用的随机比特流。在至少一个实施例中并且如图4中所示,由TRNG 101的模拟组件105(在截取器200进行的截取以及后处理器300进行的可选处理之后)输出的数据可以被存储在缓冲器250(例如,FIFO缓冲器)中。
缓冲器250被优选地配置为使得所存储的数据可仅被读取有限次数(例如,一次)。例如,这样的缓冲器250可以具有64比特的深度和32比特的宽度。然而,缓冲器250可以取决于实施方式而具有各种其它特性和尺寸。尽管缓冲器250一直用FIFO风格来定义以准许受控流入和流出以得到更好的模糊性和安全性,然而取决于TRNG的安全性实施方式,缓冲器250也可以用任何寄存器、多输入多输出流、任何大小的多级存储来构造。此外,如果缓冲器250变满了,则可将TRNG设置成“搅动模式”以连续地收集更多的塌缩值(计数器170值)并且将它们混合到缓冲器中以进一步掩蔽缓冲器250的下一个读取值,如在下面关于图8和比特搅动器340进一步说明的那样。
图5A图示包括当地攻击检测机制和/或措施的模拟块106的替选实施例。依照至少一个实施例并且如图5A中所示,环形振荡器120、130中的其中一个或二者的输出可以由XOR190异或在一起。
然后,异或结果由分析器260处理以检查通过可预测异或输出所确定的任何潜在锁定。这样的技术可用于产生警报265,所述警报265例如禁用TRNG(FSM空闲状态450)或者在检测到攻击时丢弃来自缓冲器250的值。分析器260可以检查波形特性以检测当共同对RO120、130输出进行异或190时可以产生的可预测图案的存在。如果那些图案在一定量时间期间维持稳定,则人们可假定RO 120、130被锁定并且将不塌缩。分析器260作出的这样的分析是基于经验观察结果。TRNG FSM 400将对由分析器260生成的警报做出响应并且能做许多事情(例如,立即禁用TRNG、在生成新随机数之前等待相对长的时间段、清除缓冲器250并且在提供新数字之前再次再填充等)。
如先前所提及的,TRNG 101包括模拟块/组件105、106和数字组件107(例如,截取器200、PRBS 210、后处理器300、熵分析器和有限状态机400)。可以按照如在下面参考图9进一步描述的各种方式实现数字组件。
TRNG的数字组件107可以被配置成使得模拟组件105、106能够处理并发出数据。例如,依照至少一个实施例,使得模拟组件105、106能够处理并发出数据可以由如图4至图5中一般图示的数字组件107中的有限状态机(FSM)400来控制。
这样的FSM 400的示例被示出在图6中,其中框405至425表示FSM 400的示例状态,箭头表示状态之间的转变,并且每个箭头旁的标签指示与状态转变相对应的输入。将在下面更详细地描述示例FSM 400的各个状态以及状态转变和对应的输入。
FSM_IDLE(405)可以是初始化状态。在至少一个实施例中,FSM_IDLE(405)可以是FSM 400的在例如FSM 400的重置或中断后的缺省状态。FSM 400的中断可以因为包括例如电压调节器110设置中的改变或者由于多个超时(例如,如果超时的数目大于超时的最大数目或可编程阈值数目)的许多原因而发生。如果芯片检测到TRNG中的威胁或系统上的潜在攻击则空闲状态是安全关闭状态。在任何这样的场景中,FSM 400可以在FSM 400对中断起作用的同时重置到FSM_IDLE状态(405)。如果FSM 400向TRNG 101的模拟组件105/106断言“GO_EVENT”信号(407),则FSM 400可以从FSM_IDLE状态(405)转变到FSM_WAIT状态(415)。
依照至少一个实施例,当FSM 400处于FSM_WAIT(415)状态时,向TRNG的模拟块105/106的ENABLE信号(例如,动作、指令等)可以被断言(例如,发送、提供等,如在FSM_WAIT(415)状态下通过“使能变高”所表示的),并且TRNG 101的数字块107可以等待待从模拟块105、106断言的“data_valid”信号(418)。在FSM_WAIT(415)状态期间,超时计数器(未示出)可以在走时(tick)或者递增以便避免在这种状态下无限地等待模拟块105、106准备其数据输出。例如,如果超时计数器计满(outrun)(例如,超时的数目达到超时的阈值数目,其可以是预定阈值、可调整阈值、或两者),则可以将超时信号(416)输入到FSM_TIMEOUT(410)状态并且FSM 400可以从FSM_WAIT(415)状态转变到FSM_TIMEOUT(410)状态。另一方面,如果来自模拟块105、106的data_valid信号(418)在超时计数器计满之前被断言,则FSM 400可以从FSM_WAIT(415)状态转变到FSM_CAPTURE(425)状态。
在FSM 400转变到FSM_TIMEOUT(410)状态的情况下,可以在已经发生超时(416)时断言ENABLE。在这样的场景中,FSM 400可以确定(例如,监视、评估等)超时的数目是否已经满足FSM 400的可编程条件。依照至少一个实施例,可编程条件可以是经允许超时的阈值最大数目(408)。可以例如根据在可由关联的应用程序722(例如,软件)访问的TRNG的寄存器中给出的值来确定可允许超时的阈值最大数目。如果超时的数目尚不满足可编程条件(例如,超时的数目小于经允许超时的阈值最大数目(417)),则FSM 400可以从FSM_TIMEOUT(410)状态转变回FSM_WAIT(415)状态。在至少一个实施方式中,FSM 400可以在可能取决于模拟块清除其当前处理并且从头开始所需的循环的数目的一定数目的循环之后转变回FSM_WAIT(415),或者发送STOP_WORK中断并回到FSM_IDLE状态(405)。例如,循环的数目可以是16个循环,但是应当理解的是,本公开不限于这个值。
在FSM_CAPTURE(425)状态下,数字组件107(例如,截取器200和缓冲器250)捕获来自模拟块105、106的原始数据比特。基于由FSM 400选择性地启用的后处理方法,随机比特可以在被存储之前由后处理器300后处理,包括例如分片、异或、旋转、和搅动等。另外FSM_CAPTURE(425)状态将使能信号送至模拟块105、106,使得模拟块105、106可清除其计数器170并且为产生下一个随机值做准备。
应当理解的是,FSM 400(图5A)可以包括除上面所描述的示例状态之外或者代替上面所描述的示例状态的一个或多个其它状态。例如,依照至少一个实施例,FSM 400也可以处于FSM_PRECHARGE:预充电状态(未示出)。在每次唤醒之后,FSM可在这种状态下等待大约N个循环,直到模拟组件在唤醒之后平稳下来为止。此状态包括用于模拟组件105、106和数字组件两者在上电之后返回到稳定状态的一次性设置。如果后处理技术需要任何预置乱(pre-scramble)时间是否是所的。
在至少一个实施例中,PFD 150(图5A)可以具有利用毛刺去除和两比特移位寄存器(未示出)来滤除塌缩时间附近的窄脉冲宽度的常规数字PFD实施方式。移位寄存器也可以提供PFD输出与参考RO(例如,图5A中所示的示例模拟块106中的REF_RO130)的同步,这帮助在计数器170中避免亚稳态(meta-stability)问题。
当PFD 150例如由于塌缩事件而转变时,来自模拟块105、106的data_valid输出信号可以从0转变到1,计数器170可以停止递增,并且最终计数器值可以由锁存器180变动。以这种方式使最终计数器170值变动帮助避免不必要地浪费电力的将高频信号路由到FSM400。为了确保计数器170值已经在FSM输入端处平稳,FSM 400可以被配置成在接受计数器170值之前等待一定时间段。例如,此时间段可以是FSM 400的至少一个时钟循环。这可通过在输入端处添加变动管道(例如,低通滤波器或去毛刺器)来完成。
在图7中示出了依照本公开的一个或多个实施例的TRNG 101的示例定时图700。应当注意的是,当en 710保持高时,振荡器(120、130)甚至在RO 120的塌缩之后也保持启用。输出信号数据有效(dv)720和ref_ctr 730保持活动直到en 710被禁用为止,在该时间点所有输出被设置为0。
应当理解的是,TRNG 101的各个特征和功能被设计和实现来进一步减小侧信道分析(SCA)的机会,减少SCA的机会包括比特模糊化(在下面说明)、比特的异或、对于计数器170使用格雷码计数器、以及维持恒定电流消耗的尝试。
此外,统计检查(经由硬件和软件)提供TRNG输出流的附加一层的检测鲁棒性。例如,硬件检查包括每个比特位置和输出流的单比特频率(流中一的数目)、和平均/最大/最小塌缩值等。
软件检查可以包括由后处理器300执行的各个后处理技术,如以下进一步所说明。
依照一个或多个实施例,本公开的TRNG 101也可以包括被设计来保护TRNG 101免受各种类型的故障注入或侧信道攻击的一个或多个附加特征。例如,可以通过例如在截取之后交换比特位置和/或利用各种后处理技术(例如,异或、冯·诺依曼(Von Neumann)等)来达到比特模糊化。这样的比特模糊化能力增加附加攻击难度并且进一步掩蔽TRNG输出值。
如图8中所示,后处理器300可以从截取器200接收随机数。后处理器300可以实现诸如上面所提及的软件检查的各种后处理技术。例如,控制寄存器305可以被设置有与诸如比特模糊器310、攻击检测模块320、熵增强器330、和比特搅动器340的后处理器300模块中的一个相对应的控制寄存器的每个比特。控制寄存器305比特的设置实现对应的后处理模块/技术。不同于使用控制寄存器305比特之间的一对一对应,存储在控制寄存器305中的值可以唯一地对应于由后处理器300使用例如用于对存储在控制寄存器305中的值进行解码的解码器来执行的后处理方法中的一个的期望实施例。
FSM 400可以用于将控制寄存器305比特设置为提供对利用哪些后处理模块/技术的一系列控制。
根据一个方面,比特模糊器310可以被包括在后处理器300中。比特模糊器310可以打乱或者交换随机数输出中的比特位置。一个这样的比特交换技术是在围绕其中心点的将随机数(字符串)镜像反转(mirror)(例如,MSB和LSB比特交换位置),但是比特模糊器310可以利用用于交换或者打乱包括随机数输出的比特的各种其它技术。
在其它方面中,后处理器300还可以包括熵增强器330以去除偏倚并且以其它方式增加被输出的随机数的熵。熵增强器330可以使用随机数输出流的连续比特被一起异或的异或技术来减小随机比特的偏倚。如果我们假定偏倚的量被表示为e,则可将为1或0的随机比特的概率定义为:
使用这些定义,人们可计算后处理步骤的输出(及其残余偏倚)的概率以及处理的吞吐量。
用于减小随机比特的偏倚的一个方式是通过一起对连续比特进行异或。可将异或输出为1的概率表达为如下:
对连续比特的异或操作没有完全去除偏倚,而是替代地将它从e变换为2e2。对1%偏倚而言,这对应于偏倚的5倍减小,然而,吞吐量被消减一半(两个比特输入,一个比特输出)。
熵增强器330可以实现通常涉及压缩以从TRNG 101输出中去除所有偏倚的其它技术。一些潜在压缩技术包括:a.线性压缩(BCH码)、b.冯·诺依曼压缩(用于冯·诺依曼压缩的真值表被示出在下表1中)。针对不严重有偏的比特流(相等数目的1和0),算法是相对有效率的(仅将吞吐量减小了2倍)。然而,如果存在类似比特的长流,则吞吐量会显著地下降。
表1(冯·诺依曼压缩)
A B 输出
0 0 -----
0 1 0
1 0 1
1 1 ------
针对冯·诺依曼压缩,可使用以下等式来计算输出为1的概率:
如所示,冯·诺依曼压缩完全从比特流中去除偏倚。
遗憾的是,这以吞吐量为代价。输入导致有效输出的概率是2(1/2+e)(1/2-e)=2(1/4-e2)。然而,该过程仍然将两个输入比特减小为一个输出比特,从而导致1/4+e2的吞吐量。注意的是,最好情况吞吐量——意指不存在偏倚——导致1/4的输入比特速率。这要作出昂贵折衷。又如图8中所示,各方面可以包括针对“合理”数目的随机数请求的(例如固件)检查。数字组件107内的固件可以包括计数器380、定时器382和逻辑电路385。计数器380和定时器382接收随机数请求并且分别对所请求的随机数的数目和这样的请求的定时进行计数。例如,逻辑电路385可以将计数器380和定时器382值与阈值相比较以确定攻击者是否正在以不和正常用例匹配的方式要求随机数。正常用例的示例是在固定时间段期间的最大数目的随机数请求。各种其它正常用例可被定义并且在本公开的范围内。
TRNG 101的正常用例可以被确定并且也可以是应用特定的,使得由逻辑电路385应用的算法可以被适配(例如,阈值适配或定义正常用例的某个其它更复杂的算法)。如果逻辑电路385确定随机数请求在正常用例外则可以采取保护性动作,诸如关闭TRNG 101(FSM的空闲状态405)和/或禁用缓冲器250。
根据其它方面,后处理器300可以包括攻击检测模块320,所述攻击检测模块320可以实现用于确定TRNG 101是否在攻击下的一套技术中的一个或多个。为了提供对潜在攻击的进一步鲁棒性,本公开的TRNG 101也可以包括将在攻击事件下向FSM 400警示并且禁用TRNG(例如,通过进入空闲状态405)的一个或多个检测器(例如,温度、电源毛刺等)。攻击检测模块也可以运行NIST测试套件的子集(存储器受限)以及较简单的检查。
可以在后处理器300中实现的另一技术是比特搅动器340。比特搅动器将新数据覆盖在旧数据之上。更详细地,比特搅动器可以对来自截取器200的新近获得的随机数异或回存储在缓冲器250中的先前获得的随机数。一旦存在存储在缓冲器250中的至少一个随机数就可以激活这样的比特搅动。在一个替选方案中,可以在缓冲器250满时激活比特搅动。比特搅动器340为若干目的服务,所述若干目的包括使模拟块105、106的功耗保持恒定活动从而使得更难以检测RO 120的塌缩时间并且增加比特的随机性(非法侵入一次不足以对由缓冲器250存储的随机数进行解码并且攻击者将需要跟踪每一单个塌缩以解出比特)。因此,比特搅动器340以指数方式减小成功的侧信道攻击的概率并且增加数据的模糊性。
图9是包括根据本文中所描述的一个或多个实施例的,随机数生成器的示例性装置(700)的高级框图。例如,装置700可以是微控制器,诸如使用所生成的随机数来向连接的计算机或通信装置提供安全、加密、和密码协议的安全微控制器,或包括包含随机数生成器并且使用所生成的随机数的嵌入式安全的计算机或通信装置。依照至少一个实施例,数字组件/计算装置(700)可以被配置成执行支持加强随机数生成器模拟组件105/106的各种功能,并且可以包括如在上文参考图4、图5A、图6、图7和图8进一步说明的PRBS 210、FSM 400、截取器200、后处理器300、缓冲器250、分析器260、后处理器组件(控制寄存器305、比特模糊器310、攻击检测模块320、熵增强器、和比特搅动器)、计数器380、定时器382、以及逻辑电路385。
在非常基本配置(701)中,计算装置(700)通常包括一个或多个处理器(710)和系统存储器(720)。存储器总线(730)可被用于在处理器(710)与系统存储器(720)之间通信。
取决于所期望的配置,处理器(710)可具有任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)、或其任何组合。处理器(710)可以包括:一个更多层级的高速缓存——诸如一级高速缓存(711)和二级高速缓存(712)、处理器核心(713)、和寄存器(714)。处理器核心(713)可包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)、或其任何组合。存储器控制器(715)也可与处理器(710)一起使用,或者在一些实施方式中存储器控制器(715)可以是处理器(710)的内部部分。
取决于所期望的配置,系统存储器(720)可具有任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪速存储器等)、或其任何组合。系统存储器(720)通常包括操作系统(721)、一个或多个应用(722)、和程序数据(724)。应用(722)可以包括用于支持依照本文中所描述的一个或多个实施例的加强随机数生成器的数字组件107的各种组件的软件实施方式。程序数据(724)可以包括存储指令,所述指令当由一个或多个处理装置执行时,实现用于执行如在上面详细地描述的数字组件107的各种功能的方法。在一些实施例中,应用(722)可被布置成在操作系统(721)上与程序数据(724)一起进行操作。
计算装置(700)可具有附加特征或功能性,以及用于促进基本配置(701)与任何需要的装置和接口之间的通信的附加接口。
系统存储器(720)是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储装置,或可用于存储所期望的信息并且可由计算装置700访问的任何其它介质。任何这样的计算机存储介质可以是装置(700)的一部分。
计算装置(700)可作为小封装技术便携式(或移动)电子装置的一部分被实现,所述电子装置诸如蜂窝电话、智能电话、个人数据助理(PDA)、个人媒体播放器装置、平板计算机(平板)、无线web手表装置、个人头戴式送受话器装置、专用装置、或包括以上功能中的任一个的混合装置。计算装置(700)也可作为包括膝上型计算机和非膝上型计算机配置两者的个人计算机被实现。
上述详细描述已经由框图、流程图、和/或示例阐述了装置和/或过程的各个实施例。在这样的框图、流程图、和/或示例包含一个或多个功能和/或操作的范围内,本领域内的技术人员将理解的是,这样的框图、流程图、或示例内的每个功能可由各式各样的硬件、软件、固件、或实际上其任何组合来单独地和/或共同地实现。
依照至少一个实施利,本文中所描述的主题的若干部分可以经由一个或多个ASIC、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其它集成格式来实现。然而,本领域的技术人员将认识到,本文中所公开的实施例的一些方面总体上或部分地可用一个或多个集成电路等效地加以实现,可作为在一个或多个计算机上运行的一个或多个计算机程序、作为在一个或多个处理器上运行的一个或多个程序、作为固件、或者作为实际上其任何组合被等效地实现,并且设计电路和/或为软件和或固件写代码鉴于本公开将完全在本领域的技术人员的技术范围内。
此外,本领域的技术人员将了解的是,本文中所描述的主题的机制能够作为程序产品被以各种形式分发,并且本文中所描述的主题的说明性实施例不管所使用的非暂时性计算机可读介质的具体类型如何都适用。非暂时性计算机可读介质的示例包括但不限于以下:诸如闪速驱动器、硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字磁带、以及计算机存储器等的可记录型介质。
关于基本上任何复数和/或单数术语在本文中的使用,本领域的技术人员可在适合于场境(context)和/或应用的情况下从复数转化为单数和/或从单数转化为复数。为了清楚起见,可以在本文中明确地阐述各种单数/复数排列组合。
因此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,权利要求中所记载的动作可被以不同次序执行并且仍然实现所期望的结果。此外,附图中所描绘的过程不一定需要所示的特定次序或顺序次序来实现所期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
本文中所讨论的系统和方法不需要对用户个人信息的收集或使用。在某些实施方式可以收集或者使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和时间、用户的生物计量信息、用户的活动和人口统计信息)的情形下,用户被提供一个或多个机会来控制个人信息是否被收集、个人信息是否被存储、个人信息是否被使用、以及该信息如何关于用户被收集、存储和使用。也就是说,本文中所讨论的系统和方法具体地在从相关用户接收到用于这样做的明确授权时收集、存储和/或使用用户个人信息。此外,某些数据可以在它被存储或者使用之前被以一个或多个方式处理,使得个人可识别信息被去除。作为一个示例,用户的身份可以被处理为使得无法确定个人可识别信息。作为另一示例,可以使用户的地理位置一般化到较大区域以使得无法确定用户的具体位置。

Claims (10)

1.一种随机数生成器设备,包括:
模拟电路,所述模拟电路包括被配置成以随机塌缩时间从不稳定振荡状态塌缩到稳定振荡状态的环形振荡器;
计数器,所述计数器对表示所述随机塌缩时间的计数器值进行计数;以及
截取器,所述截取器基于所述计数器值的截取来生成随机数。
2.根据权利要求1所述的随机数生成器设备,进一步包括:
伪随机数生成器,所述伪随机数生成器输出伪随机值,
所述截取器具有基于所述伪随机值而变化的可变截取长度。
3.根据权利要求2所述的随机数生成器设备,所述伪随机数生成器输入第二随机数,其中所述第二随机数确定所述伪随机数生成器在将所述伪随机值提供给所述截取器之前运行的循环的数目。
4.根据权利要求1所述的随机数生成器设备,所述计数器在所述环形振荡器的所述塌缩之后继续对所述计数器值进行计数。
5.根据权利要求1所述的随机数生成器设备,进一步包括:
专用电压调节器,所述专用电压调节器向所述环形振荡器提供专用电力;以及
电源,所述电源向所述随机数生成器的除所述环形振荡器以外的部分提供电力。
6.根据权利要求1所述的随机数生成器设备,
所述环形振荡器包括主环形振荡器和参考环形振荡器,所述参考环形振荡器被配置成以参考振荡频率振荡并且所述计数器对所述参考环形振荡器的振荡进行计数以取得所述计数器值。
7.根据权利要求1所述的随机数生成器设备,所述设备进一步包括:
相位频率检测器,所述相位频率检测器将所述参考环形振荡器的相位与所述主环形振荡器的相位进行比较以检测所述主环形振荡器的塌缩事件;以及
锁存器,所述锁存器基于由所述相位频率检测器对所述塌缩事件的检测来捕获所述计数器值。
8.根据权利要求6所述的随机数生成器设备,进一步包括:
攻击检测模块,所述攻击检测模块对所述主环形振荡器和所述参考环形振荡器的输出进行异或;以及
分析器,所述分析器基于所述攻击检测模块的能够预测的异或输出来检测所述主环形振荡器和所述参考环形振荡器的频率锁定。
9.根据权利要求1所述的随机数生成器设备,进一步包括:
缓冲器,所述缓冲器存储包括至少第一随机数的所述随机数;以及
比特搅动器,所述比特搅动器将新近接收到的随机数与存储的随机数进行异或处理并且将结果存储在所述缓冲器中。
10.一种集成电路,包括:
主环形振荡器,所述主环形振荡器被配置成以随机塌缩时间从不稳定振荡状态塌缩到稳定振荡状态;
参考环形振荡器,所述参考环形振荡器被配置成以参考振荡频率振荡;
计数器,所述计数器对所述参考环形振荡器的振荡进行计数以取得计数器值,其中所述计数器值表示所述主环形振荡器的所述随机塌缩时间;
截取器,所述截取器基于所述计数器值的截取来生成随机数;以及
伪随机数生成器,所述伪随机数生成器输出伪随机值,
所述截取器具有基于所述伪随机值而变化的可变截取长度。
CN201710895967.4A 2016-11-09 2017-09-28 加强随机数生成器 Active CN108073383B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/347,593 US10331410B2 (en) 2016-11-09 2016-11-09 Hardened random number generator with ring oscillator collapse time random truncation
US15/347,593 2016-11-09

Publications (2)

Publication Number Publication Date
CN108073383A true CN108073383A (zh) 2018-05-25
CN108073383B CN108073383B (zh) 2022-02-15

Family

ID=60081272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710895967.4A Active CN108073383B (zh) 2016-11-09 2017-09-28 加强随机数生成器

Country Status (6)

Country Link
US (1) US10331410B2 (zh)
CN (1) CN108073383B (zh)
DE (2) DE102017118294A1 (zh)
GB (1) GB2556419B (zh)
TW (1) TWI661677B (zh)
WO (1) WO2018089113A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110045947A (zh) * 2019-04-22 2019-07-23 湖南国科微电子股份有限公司 一种随机数发生单元与装置
CN110096397A (zh) * 2019-03-27 2019-08-06 天津大学 基于多环形振荡器fpga配置电路鲁棒性检测方法
CN111027103A (zh) * 2019-01-31 2020-04-17 哈尔滨安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备
CN111399802A (zh) * 2020-03-24 2020-07-10 天津飞腾信息技术有限公司 多电源域多时钟域先进先出队列、集成电路芯片及计算机设备
CN114815952A (zh) * 2021-01-18 2022-07-29 瑞昱半导体股份有限公司 能应用于通过动态电压改变来进行系统保护的集成电路

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107918535B (zh) * 2017-11-17 2021-02-19 宁波大学 一种在fpga上实现的亚稳态真随机数发生器
US10438648B2 (en) * 2018-01-11 2019-10-08 Micron Technology, Inc. Apparatuses and methods for maintaining a duty cycle error counter
US11055411B2 (en) * 2018-05-10 2021-07-06 Acronis International Gmbh System and method for protection against ransomware attacks
US11023209B2 (en) 2019-01-25 2021-06-01 International Business Machines Corporation On-chip hardware random number generator
US10970046B2 (en) 2019-02-22 2021-04-06 International Business Machines Corporation Random number generator compatible with complementary metal-oxide semiconductor technology
US11770256B1 (en) * 2019-06-20 2023-09-26 Marvell Asia Pte, Ltd. System and method for bitcoin mining with reduced power
US11438142B1 (en) 2019-08-19 2022-09-06 Marvell Asia Pte, Ltd. System and method for mining digital currency in a blockchain network
US11381395B2 (en) * 2020-03-05 2022-07-05 Citrix Systems, Inc. System and methods for encryption based on environmental factors
GB2601171B (en) * 2020-11-20 2023-05-24 Toshiba Kk System and method to generate biased random bit streams and quantum communication system and method
US11741227B2 (en) 2021-06-22 2023-08-29 Intel Corporation Platform security mechanism
KR20220121632A (ko) 2021-02-25 2022-09-01 삼성전자주식회사 집적회로 및 집적회로 동작 방법
US11824436B2 (en) * 2021-06-01 2023-11-21 Apple Inc. Power supply glitch detection
US11962305B2 (en) * 2021-06-09 2024-04-16 Nxp B.V. Ring oscillator based true random number generator and a method for generating a random number
US20210312045A1 (en) * 2021-06-22 2021-10-07 Intel Corporation Integrated circuit side-channel mitigation mechanism
US11742836B1 (en) 2022-04-14 2023-08-29 International Business Machines Corporation Random number generator using cross-coupled ring oscillators

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2293684A1 (en) * 1997-03-10 1998-10-15 Paul N. Alito Secure deterministic encryption key generator system and method
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN1514346A (zh) * 2003-02-11 2004-07-21 智慧第一公司 随机数产生器及产生方法及具有随机位产生器的微处理器
US20040205095A1 (en) * 2003-04-14 2004-10-14 M-Systems Flash Disk Pioneers Ltd. Random number slip and swap generators
US20090172056A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Random number generator
CN101510150A (zh) * 2009-03-24 2009-08-19 北京中星微电子有限公司 随机数产生装置
CN102447558A (zh) * 2011-11-22 2012-05-09 王勇 按需取用随机序列的具有误导功能的加密方法
CN102571330A (zh) * 2012-02-01 2012-07-11 王勇 一种基于随机函数的分组加密算法的构造方法
US20140146833A1 (en) * 2012-11-29 2014-05-29 Kent C. Lusted Pma-size training frame for 100gbase-kp4
US20140191813A1 (en) * 2012-09-06 2014-07-10 Silicon Image, Inc. Test Solution for a Random Number Generator
US20150154006A1 (en) * 2013-11-29 2015-06-04 The Regents Of The University Of Michigan True random number generator
CN104778029A (zh) * 2014-01-09 2015-07-15 罗伯特·博世有限公司 用于产生随机数发生器的随机源的输出的方法
CN204926062U (zh) * 2015-08-18 2015-12-30 珠海市一微半导体有限公司 随机数后处理电路
CN105426159A (zh) * 2015-12-22 2016-03-23 上海爱信诺航芯电子科技有限公司 一种基于数字电路的真随机数发生器
CN105912301A (zh) * 2015-02-24 2016-08-31 英飞凌科技股份有限公司 随机数生成器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214423A (en) 1991-04-22 1993-05-25 Motorola, Inc. Random number generation using volatile RAM
US6065029A (en) * 1998-05-26 2000-05-16 N*Able Technologies, Inc. Method and system for providing a random number generator
US20020186086A1 (en) 2001-06-12 2002-12-12 Dallas Semiconductor Corporation Random number generator
US6963888B2 (en) * 2001-11-29 2005-11-08 Koninklijke Philips Electronics N.V. Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
US7028059B2 (en) 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation
US7233965B2 (en) 2002-09-30 2007-06-19 Sun Microsystems, Inc. Continuous random number generation method and apparatus
US7315874B2 (en) 2003-03-14 2008-01-01 Nxp B.V. Electronic circuit for random number generation
JP4248950B2 (ja) 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
DE102008048292B4 (de) 2008-09-22 2012-07-12 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US20110191129A1 (en) 2010-02-04 2011-08-04 Netzer Moriya Random Number Generator Generating Random Numbers According to an Arbitrary Probability Density Function
US9195434B2 (en) 2014-01-14 2015-11-24 Nvidia Corporation Power supply for ring-oscillator based true random number generator and method of generating true random numbers
US20160179472A1 (en) * 2014-12-19 2016-06-23 Megachips Corporation Random number generation device and method for generating random number

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2293684A1 (en) * 1997-03-10 1998-10-15 Paul N. Alito Secure deterministic encryption key generator system and method
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN1514346A (zh) * 2003-02-11 2004-07-21 智慧第一公司 随机数产生器及产生方法及具有随机位产生器的微处理器
US20040205095A1 (en) * 2003-04-14 2004-10-14 M-Systems Flash Disk Pioneers Ltd. Random number slip and swap generators
US20090172056A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Random number generator
CN101510150A (zh) * 2009-03-24 2009-08-19 北京中星微电子有限公司 随机数产生装置
CN102447558A (zh) * 2011-11-22 2012-05-09 王勇 按需取用随机序列的具有误导功能的加密方法
CN102571330A (zh) * 2012-02-01 2012-07-11 王勇 一种基于随机函数的分组加密算法的构造方法
US20140191813A1 (en) * 2012-09-06 2014-07-10 Silicon Image, Inc. Test Solution for a Random Number Generator
US20140146833A1 (en) * 2012-11-29 2014-05-29 Kent C. Lusted Pma-size training frame for 100gbase-kp4
US20150154006A1 (en) * 2013-11-29 2015-06-04 The Regents Of The University Of Michigan True random number generator
CN104778029A (zh) * 2014-01-09 2015-07-15 罗伯特·博世有限公司 用于产生随机数发生器的随机源的输出的方法
CN105912301A (zh) * 2015-02-24 2016-08-31 英飞凌科技股份有限公司 随机数生成器
CN204926062U (zh) * 2015-08-18 2015-12-30 珠海市一微半导体有限公司 随机数后处理电路
CN105426159A (zh) * 2015-12-22 2016-03-23 上海爱信诺航芯电子科技有限公司 一种基于数字电路的真随机数发生器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIU YING等: "《Design of a Random Number Generator from Fingerprint》", 《2010 INTERNATIONAL CONFERENCE ON COMPUTATIONAL AND INFORMATION SCIENCES》 *
付俊等: "一种高斯白噪声信号发生器的设计与实现", 《计算机测量与控制》 *
赵海英: "《 随机数发生器随机性检测系统的设计与实现》", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027103A (zh) * 2019-01-31 2020-04-17 哈尔滨安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备
CN111027103B (zh) * 2019-01-31 2023-11-10 安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备
CN110096397A (zh) * 2019-03-27 2019-08-06 天津大学 基于多环形振荡器fpga配置电路鲁棒性检测方法
CN110096397B (zh) * 2019-03-27 2022-10-25 天津大学 基于多环形振荡器fpga配置电路鲁棒性检测方法
CN110045947A (zh) * 2019-04-22 2019-07-23 湖南国科微电子股份有限公司 一种随机数发生单元与装置
CN111399802A (zh) * 2020-03-24 2020-07-10 天津飞腾信息技术有限公司 多电源域多时钟域先进先出队列、集成电路芯片及计算机设备
CN114815952A (zh) * 2021-01-18 2022-07-29 瑞昱半导体股份有限公司 能应用于通过动态电压改变来进行系统保护的集成电路
CN114815952B (zh) * 2021-01-18 2024-03-01 瑞昱半导体股份有限公司 能应用于通过动态电压改变来进行系统保护的集成电路

Also Published As

Publication number Publication date
DE202017104836U1 (de) 2017-11-22
DE102017118294A1 (de) 2018-05-09
US20180129476A1 (en) 2018-05-10
GB201715234D0 (en) 2017-11-08
GB2556419A (en) 2018-05-30
TWI661677B (zh) 2019-06-01
GB2556419B (en) 2020-04-15
TW201818656A (zh) 2018-05-16
CN108073383B (zh) 2022-02-15
WO2018089113A1 (en) 2018-05-17
US10331410B2 (en) 2019-06-25

Similar Documents

Publication Publication Date Title
CN108073383A (zh) 加强随机数生成器
US8595274B2 (en) Random number generator
Yang et al. An all-digital edge racing true random number generator robust against PVT variations
KR102267263B1 (ko) 진성 난수 생성기
Martin et al. A new TRNG based on coherent sampling with self-timed rings
Luo et al. A quantitative defense framework against power attacks on multi-tenant FPGA
Bayon et al. Fault model of electromagnetic attacks targeting ring oscillator-based true random number generators
Althoff et al. Hiding intermittent information leakage with architectural support for blinking
Tehranipoor et al. DVFT: A lightweight solution for power-supply noise-based TRNG using dynamic voltage feedback tuning system
JP7122142B2 (ja) 電力変動攻撃対策を有するコンピューティングシステム
CN110945372B (zh) 用于检测电信号中的至少一个毛刺的方法和用于实施该方法的装置
Miura et al. An intermittent-driven supply-current equalizer for 11x and 4x power-overhead savings in CPA-resistant 128bit AES cryptographic processor
Bharat Meitei et al. FPGA implementation of true random number generator architecture using all digital phase-locked loop
Yang et al. Power analysis attack resistance engineering by dynamic voltage and frequency scaling
Loutfi et al. Smartphone sensors as random bit generators
Karabacak et al. Remote detection of unauthorized activity via spectral analysis
Fischer et al. Modern random number generator design–Case study on a secured PLL-based TRNG
Gomez et al. Improved entropy bounds for parity filtered self-timed ring based random number generators
Diktopoulos et al. Assessing the Effectiveness of Active Fences Against SCAs for Multi-Tenant FPGAs
Yu et al. Malicious attacks on physical unclonable function sensors of internet of things
Sridhar et al. Countermeasure against side channel power attacks in cryptography devices
Fischer et al. True random number generators in configurable logic devices
Alam et al. In-situ extraction of randomness from computer architecture through hardware performance counters
Devi et al. Design of Hybrid True Random Number Generator for Cryptographic Applications.
Priyatharishini et al. Realization of Re-configurable True Random Number Generator on FPGA

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant