CN101477450B - 随机数发生器 - Google Patents
随机数发生器 Download PDFInfo
- Publication number
- CN101477450B CN101477450B CN200810190335.9A CN200810190335A CN101477450B CN 101477450 B CN101477450 B CN 101477450B CN 200810190335 A CN200810190335 A CN 200810190335A CN 101477450 B CN101477450 B CN 101477450B
- Authority
- CN
- China
- Prior art keywords
- voltage
- circuit
- power
- random number
- number generator
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000004088 simulation Methods 0.000 claims description 38
- 238000012360 testing method Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000036039 immunity Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000005764 inhibitory process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003278 mimic effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 244000287680 Garcinia dulcis Species 0.000 description 1
- 206010019133 Hangover Diseases 0.000 description 1
- 208000004350 Strabismus Diseases 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Abstract
大体上,本发明内容介绍了一种用于产生随机数的系统和方法。在这里所述的至少一个实施例中,该方法可包括通过集成电路根据至少一种安全应用来产生随机比特,所述集成电路包括具有模拟内核的真随机数发生器。该方法还可以包括通过与所述真随机数发生器相关联的电压调节器,经由内部产生的电源向所述模拟内核提供功率。当然,附加的操作也包括在本公开内容的范围内。
Description
技术领域
本公开涉及随机数发生器,并且更具体地涉及对攻击免疫的真随机数发生器。
背景技术
密码技术需要良好的随机数。可能需要随机数发生器产生公/私密钥对用于非对称算法,如Rivest、Shamir、Adelman(RSA)、数字签名算法(DSA)和Diffie-Helman。随机数发生器可以是计算装置,其被设计成产生缺乏任何可识别模式的一系列数字和/或符号。由于安全协议可能依赖于他们使用的密钥的不可预知性,因此用于密码应用的随机数发生器必需满足有时非常严格的要求。
有两种主要方法用于产生随机数。伪随机数发生器(PRNG)使用确定性过程从初始籽(seed)状态产生一系列输出。即,在系统的未来状态的发展中不涉及随机性。相反,真随机数发生器(TRNG)使用非确定性源以产生随机性。有些TRNG通过测量不可预知的自然过程,如热噪声、大气噪声或核衰变来工作。可能需要用于屏蔽系统不受各种攻击弱点影响的随机数发生器。
附图说明
通过下面随着参照附图而进行的详细说明将使所要求保护的主题的实施例的特征和优点更加显而易见,其中:
图1示出了根据本发明的系统的示型性实施例;
图2示出了根据本发明的可操作性引擎的示例性实施例;
图3示出了根据本发明的真随机数发生器的示例性实施例;
图4示出了根据本发明的功率降检测器的示例性实施例;
图5示出了根据本发明的电压检测器的示例性实施例;以及
图6示出了根据本发明的方法的示例性实施例。
尽管下面的具体实施方式将参照示意性的实施例来进行说明,但是其多种替换方式、变形方式和变化对于本领域技术人员来说是显而易见的。相应地,所要求保护的主题趋于更宽的保护,并且仅由所附权利要求中所阐述的那样来限定。
具体实施方式
大体上,本公开内容介绍了对攻击免疫的真随机数发生器。在这里所述的至少一个实施例中,提供了一种集成电路,其用于根据至少一种安全应用来产生随机比特。该集成电路可以包括具有模拟内核的真随机数发生器。该真随机数发生器还可以包括电压调节器,该电压调节器用于向该模拟内核提供内部产生的电源。
图1示出了符合本公开内容的系统实施例100。系统100可以包括主处理器102、芯片组电路104和系统存储器106。主处理器102可以包括一个或多个处理器内核,并且可用于执行系统软件(未示出)。系统软件可包括例如操作系统代码(例如OS kernel代码)和局域网(LAN)驱动器代码。芯片组电路120通常可包括“北桥”电路104以控制处理器102、系统存储器106和总线电路108之间的通信。总线电路可以包括可与PCI-Express通信协议相符或兼容的I/O总线电路,以在“北桥”电路104和部件110a-c之间提供通信。部件110a-c可以包括视频/图形110a和/或其他外围控制器110c,但不限于此。而且,芯片组电路120可包括“南桥”电路110b,其用于控制主系统和各种部件之间的I/O通信,所述各种部件包括总线架构、I/O、存储器、音频codecs、内存、固件、功率管理、时钟发生器、局域网(LAN)和无线LAN(WLAN),但不限于此。当然,也可以根据系统100使用各种其他部件。
在有些实施例中,芯片组120的“北桥”104可以包括真随机数发生器(TRNG)112。TRNG 112可以由可操作性引擎(ME)114控制,该可操作性引擎114也可以位于芯片组120的“北桥”104内。TRNG112可包括模拟内核,其用于产生随机数比特流。如果模拟内核经受外部电压变化或噪声,则可能改变在模拟内核中产生的数据的随机性(熵)。因此,由该数据产生的密钥和加密代码可能不太安全。在这里所述的实施例中,模拟内核可以由用于保护它不受外部影响的各种电路所包围。来自TRNG 112中的模拟内核的数据可以被传输到可操作性引擎114,用于进一步精炼和收集。
现在参考图2,其示出了可操作性引擎200的示例性实施例。在有些实施例中,可操作性引擎200可用作芯片组120的北桥104内的嵌入式微控制器。ME 200可用于结合和/或独立于主处理器102来执行任务。ME 200可包括其自己的微代码和寄存器文件。有些微代码可以被储存在ROM中,并且可经由安全装置从存储器加载其他例程(routine)。ME 200可通过随机数发生器控制(RNG CTRL)和状态机电路202来控制TRNG 112的操作。响应某个微代码的执行,TRNG 112可被启动以产生随机比特流,或者被停止以节省功率。
从TRNG 112传输到ME 200的数据可以被传输到Von Neumann校正器(VNC)电路204。由模拟内核产生的数据可以具有偏向,即,1比0多,反之亦然。VNC电路204可用于分析比特对,并且在它们不一样时选择第一个。比特对“00”和“11”可以完全被放弃。因此,VNC电路204可以被配置用于偏向的随机流中的一些或所有偏向。在有些实施例中,位于由VNC电路204处理的数据对之间的比特还可以被丢弃以减少之前状态相关性。例如,当处于一种状态的触发器具有比改变状态稍高的想保持在该状态的可能性时,可能发生这种情况。由于,比特对具有相同值的机会基本上相等因此平均来说,六位中大约只有一个可以经过(past)VNC电路204。经过VNC电路204的数据转换的一个可能例子示于下面的表1中。表1示出了VNC电路204的输入和输出数据。在有些实施例中,3-比特序列的最后一个比特可以被丢弃而不管其值如何。当第一比特与第二比特不匹配时,VNC电路204的输出可以是3-比特序列的第一比特。
VNC输入数据序列(3比特) | VNC输出数据 |
00X | 没有数据 |
01X | 0 |
10X | 1 |
11X | 没有数据 |
表1:Von Neumann校正器数据转换表
一旦数据已经被VNC电路204过滤,它就可以被移位到移位寄存器电路206中(例如,32比特)。当移位寄存器电路206满时,数据可以被转移到第二数据寄存器208,从那里它可以通过移位寄存器控制(S/R Ctrl)电路212被ME内核210读取。读取数据寄存器208的操作可以使寄存器208“清空”。同时,移位寄存器电路206可以再次被填充。如果数据寄存器208是空的,则新的随机数据可以被转移到数据寄存器208。如果数据寄存器208不是空的(即,没有被ME内核210读取),则S/R Ctrl 212可以保持移位寄存器电路206直到数据寄存器208是空的。从VNC电路204接收的任何数据可以被放弃。在有些实施例中,ME内核电路210可以用于捕获和处理通过VNC电路204产生的一些或所有数据。
现在参照图3,其示出了真随机数发生器(TRNG)电路300的示例性实施例。TRNG电路300可操作地与可操作性引擎200连接。TRNG电路300可包括模拟内核电路302、电压调节器电路304、功率降检测电路306、电压检测电路308和可观察性端口310。
模拟内核302可包括用于给至少一个放大器305提供噪声输入303的至少一个电阻器(例如,两个50kΩ电阻器)、低频压控振荡器(LFO)电路307、高频振荡器(HFO)电路309和数据锁存器311。可以用差分电路来构成这些关键部件以使它们尽可能对电源上的噪声免疫。这些部件还可被构成为具有相对于电源电压的低灵敏度。例如,某些实施例可采用共发共基(cascoding)技术来降低对电源噪声或复制偏向的灵敏度,和/或可以采用校准技术来抵偿任何电源感应的变化。
在有些实施例中,随机数据的源(即熵源)可以是与至少一个电阻器相关的热噪声。热噪声可以是在所有频率当中具有平坦功率密度的白噪声。例如,两个基本相同的电阻器可以向至少一个放大器305提供差分热噪声输入303。在有些实施例中,可以选择电阻器使其具有在50kΩ到75kΩ之间的电阻值,由此产生根据以下等式1给出的大约60μV的标称热噪声。当然,也可以采用其他电阻值以产生不同的热噪声值。
噪声
其中:K是Boltzmann常数;T是开氏温标的温度;R是电阻器的值;Δf是测量噪声的带宽。
在有些实施例中,可以将差分噪声热输入303发送到放大器305(例如三级放大器),该放大器305可以具有大约250到600的增益。放大器305可以与1KHz偏移消除循环(offset cancellation cycle)进行AC耦合(例如,包括在各级之间的电容器以捕获偏移噪声)。为了实现所需的增益,放大器可以被配置为具有大增益的单级或者也可以将几级级联在一起。每级可具有相对低的和稳定的增益(例如4到10)和低偏移(例如<5mV)。在规定的时帧(例如每毫妙)期间,放大器305可经历简短序列,在允许电阻器的噪声再次通过之前,该简短序列可以捕获每一级的偏移。这不仅可以消除偏移(其可以完全控制小噪声信号),而且还可以消除低于1KHz的低频1/f噪声(其可以改变频率功率谱)。当放大器305进行偏移消除时,可操作性引擎200可以用于忽视来自TRNG电路300的数据,因为它在此时可能不是足够随机。ME 200还可用于有时允许放大器305在接收比特之前重新开始适当的操作。例如,在放大器唤醒、消除偏移或稳定化的阶段,产生的比特可具有一定程度的非随机性。通过将ME配置为在这个唤醒、偏移取消和稳定化阶段抑制这些比特,可以增加所产生的比特的随机性。在有些实施例中,消除和稳定化序列可能只占用总的比特生成时间的5%。
在有些实施例中,放大器305的输出可以作为差分电压信号输送给LFO电路307。LFO电路307可以被配置为在大约600KHz的中心频率下操作。放大器输出电压可使LFO电路307以大约2.0MHz/V的频率增益与输入信号电平成比例地改变频率。结果,由熵源产生的随机电压可以改变为从LFO电路307扩展的随机频率。LFO输出可以被波形整形(准-正弦曲线)为快速过渡互补金属-氧化物半导体(CMOS)信号以减少来自电源噪声的冲击。
在有些实施例中,高频振荡器(HFO)电路309可包括环型振荡器,其被配置为在大约300和500MHz之间运行。该频率可能主要取决于工艺(process),但是对于给定单位来说也可以是固定的。该频率可以稍微与温度相关。HFO频率可以被选择为对电压相对不灵敏的,因为电压可能是主要攻击机理。
在有些实施例中,HFO电路309的输出可以被512分割以驱动RNGCTRL和ME 200的状态机电路202。这可以给RNG CTRL电路202提供可以与外部影响无关的时钟。如下所述,从RNG CTRL和状态机电路202到TRNG电路300的输出对于适当的TRNG操作可以在规定的定时范围内。其他时钟源可以依赖于可外部改变的时钟,所述时钟可能是对于TRNG电路300而言可能的攻击点。
HFO电路309可以被配置为产生时钟数据信号并且将这个信号作为输入提供给数据锁存器311。HFO电路309的输出可以作为差分信号发送给锁存器311,以便使其基本上对噪声免疫。锁存器311可以由LFO电路307来提供时钟。HFO电路309可以快大约1000倍,并且LFO频率调制将其边缘移动到等于大于20HFO周期的范围之上。由于LFO电路307的频率输出可以是随机的,它采样HFO振荡器输出的点可以是随机的,并且由于被采样的HFO循环的范围可以是宽的,LFO电路采样一或零的概率是均匀的,假设在HFO电路309上的占空比为50%。HFO电路309可被配置为具有标称50%占空比。例如,HFO电路309可被配置为在输出级上具有除2电路,以提供来自HFO的50%占空比。有些偏压仍可能进入数据流。可使用VNC电路204来除去这些偏压。
在有些实施例中,数据锁存器311可以不具有在先状态相关性,并且可以用于对来自HFO电路309的输出进行采样。例如,数据锁存器311的各级可以使用反向缓冲器进行隔离。数据锁存器311的输出可以通过门控电平移位器(未示出)输送给ME 200中的VNC电路204。该电平移位器可以用于将模拟内核302的信号(signaling)电平转换成ME信号的不同电压。从ME 200到TRNG电路300的控制信号也可以通过电平移位器在相反方向进行转换。该电平移位器可以被门控,以便当ME 200关闭TRNG电路300电源时,或者当ME 200打开之前给TRNG电路300供电时,这两个域之间的信号传输是无效的。ME 200和TRNG电路300可以在不同的电源上。
在有些实施例中,模拟内核302可以被配置为具有完差分数据-路径,以便抑制系统中的共模噪声。如这里所述,电源上存在噪声可能影响差分电路。这种影响对于影响内核302中的共模电平来说在模拟内核302的两侧可能是相同的。下一个差分输入可以被设计成具有优异的共模抑制,由此消除噪声的影响。例如,放大器电路305可具有300dB的理论抑制,尽管数字处理中的实际限制可能将其限制到80dB。由电压调节器304提供的噪声减少和差分电路的PSRR可以组合以减少电源上的噪声。
在有些实施例中,这里所述的模拟电路可以是共发共基(cascode)以改进电源抑制比。共发共基是一种电路技术,其可以增加模拟电路的输出阻抗,由此使模拟电路对电源变化更具免疫力。在一个示例性实施例中,共发共基设计可以被配置为在0.9V(对于制做TRNG电路300的硅工艺的典型电压可以为1.25V)的低电压下工作。此外,可使用折叠共发共基方法来减少所需的工作电源电压。电压调节器304可以以1.05V为目标。由于这些电路可以在较低电压下工作,因此在功率降检测电路306切断(trip)之前使其经过电压调节器304的即使很小的变化也可能不会使模拟内核302失效。
电压调节器304、功率降检测电路(PDDET)306、电压检测电路308和可观察性端口310可以用于防止或检测可能影响数据流的熵的外部影响或攻击。这些部件各自可操作地与模拟内核电路302连接。这些部件中的每一个将在下面更详细地进行介绍。
在有些实施例中,电压调节器304可用于向TRNG电路300的模拟内核电路302提供电压。模拟内核电路302可在经由电压调节器电路304输送的内部产生的电源上工作。这种配置可以降低潜在的黑客通过调制电源来泄露电路元件行为的能力。电压调节器电路304可以从由内核电压供电的低电压带隙接收参考电压。这可以用于稳定该电压和向低频噪声或在该带隙的操作范围内的电压调制提供免疫力。在较高的频率(例如10MHz左右),该带隙抑制电源噪声的能力(通过PSRR测量的)可能变坏,并且实际上开始放大噪声。在有些实施例中,为了屏蔽模拟内核电源,参考电压可以通过简单两极(pole)RC滤波器进行低通滤波,以便除去这个放大的噪声和任何其他较高频率的噪声。
在有些实施例中,用于电压调节器电路304的供给电压可以被选择为噪声源,如存储器电源(例如双数据率(DDR))。这个噪声源可以消耗比TRNG电路300更多的功率并且可以防止脱离(out of)供给电流信号的比特检测。由电压调节器电路304驱动的电路消耗的电流可能是由电源供给的总电流的一小部分。当从电源汲取电流时电源电流可能下降(dip),由此表示“1”。如果汲取的电流的量是由电压源供给的净电流的一小部分,则可能难以检测“1”或“0”的概率。读取模拟内核电路302的供给电流可给这里产生的数据流提供信息。所有关键部件都使用完全差分电路可使净电流更稳定并且对于不同的数据输出基本上不会有不同。电压调节器304电源可以重重地被过滤以避免高频噪声的进入或离开。此外,DDR模块的数量级更高的噪声可以掩盖可能逃逸的任何电流信号(signature)。例如,DDR供给电压上的噪声可以为大约200mV峰-峰,而由TRNG产生的噪声可能仅有几毫伏。
在有些实施例中,TRNG电路300可以被保护不被外部侵入。换言之,可能不存在能够提供对TRNG电路300直接访问的电源、管脚或球。此外,TRNG电路300可被屏蔽,使其不能经由任何不安全的软件机制来访问。除了下述的测试模式之外,TRNG电路300可能不允许由用户、黑客或其他不安全的访问机制进行的控制访问。TRNG电路300可以通过ME固件进行控制。对于TRNG电路300的控制可以通过这个固件的安全性进行保护。
在有些实施例中,TRNG电路300可以通过在模拟内核电路302内产生的时钟来控制。因此,通过不使用在平台上可获得的时钟来控制TRNG电路300,就可以避免通过危及这些时钟来进行攻击的任何可能性。不使用外部时钟,因此避免了使用不安全固件的操纵。HFO电路309可以是到TRNG控制逻辑的时钟源。这个时钟可以被配置为在工艺、电压和温度上具有相对稳定的配置,并且它可以比简单的振荡器更稳定。由HFO电路309产生的频率的范围可以通过常数跨导(Gm)电路进行稳定化,其中该常数跨导电路可以用于跟踪和减少该电路的可变性。该时钟可以通过电压调节器电路304和/或PDDET电路306来保护。因此,这里所述的实施例可以不利用通常由芯片组120(例如,对于前端总线而言,存储器或图形)的“北桥”104使用的外部时钟驱动器源,并且可以不利用在南桥上的实时时钟(RTC)来产生。这些源可能被攻击,从而危及时钟周期,并且可能影响TRNG控制逻辑时序。
在有些实施例中,HFO电路309可以被设计成电流控制振荡器,其拖尾电流可以由稳定的参考电路来提供。参考电路可以被设计成通过使用折叠共发共基(Gm)偏压基电流参考电路设计提供相对稳定的电流。HFO电路309的每一级可以被配置为包括折叠共发共基级。电流控制振荡器和参考发生器可以由电压调节器电路304供电。这可以保证时钟在工艺、电压和温度上是相对稳定的。
现在参照图4,其示出了功率降检测器电路(PDDET)400的示例性实施例。如果在电源线上检测到威胁,例如,如果功率降低到预定最小阈值以下,则TRNG 300可利用功率降检测器电路400来停止比特产生。如果供给电压上的噪声(AC+DC)接近于带隙不再能产生稳定电压的水平,或者在电压调节器电路304停止充分地过滤噪声的情况下,PDDET 400可发送信号以停止比特产生并使状态机202复位。如果功率不稳定并且下降到瞬间的最小阈值之下,则PDDET 400中的比较器可发送信号给RNG CTRL和状态机电路202。例如,如果检测是两纳秒宽,则RNG CTRL 202可捕获它,立即使VNC 204的管路中的任何比特无效,并在最短时间内将TRNG模拟内核电路302送回其偏移消除状态。如果PDDET 400继续检测坏电压电平,TRNG电路300可保持在这个无效状态。只有当PDDET 400变为无效时,TRNG电路300才通过偏移序列的剩余部分被发送,并可以继续进行比特产生。在有些实施例中,由于可能存在向TRNG 300的部件(aspect)馈电的两个电源(例如VCCA_DDR和VCC_DDR电压),这两个可具有固定于他们上的检测器,从而可以在任何供给上检测到攻击。
在有些实施例中,带隙402可向比较器404和406提供大约640mV(V640)的参考电压。带隙可以由内核供给“VCCA_DDR”供电。带隙402可能不能保证在给定电压(例如1.0V)之下操作。如果“VCCA_DDR”上的电压高于1.0V,则电阻分压器410可向比较器404产生高于参考电压V640的电压,并且比较器404的输出电压可以为零。如果“VCCA_DDR”下降到1.0V以下,则电阻分压器410可产生低于参考电压V640的电压,并且比较器404的输出电压可以为逻辑1。OR门408的输出也可以变为逻辑1,并且可以触发PDDET信号以停止比特产生。供给到比较器404的电源可以来自DDR存储器电源“VCC_DDR”。因此比较器可独立于其正在监控的电源。
供给用于TRNG模拟内核302的内部电压调节器的电源可以来自DDR存储器电源“VCC_DDR”,并且可以通过电阻分压器412和比较器406进行监控。可以不保证电压调节器304工作在给定电压(例如1.15V)以下。当“VCC_DDR”下降到低于1.15V时,电阻分压器412可产生低于参考电压V640的电压,这将使比较器406的输出变为逻辑1,并且可能导致OR门408发送PDDET信号以停止比特产生。与比较器404相似,比较器406可以由它不监控的电源“VCCA_DDR”供电。
虽然上述说明主要涉及外部电源电压下降到由电阻分压器410和412形成的阈值电压以下,但是也可以检测外部电压是否超过安全操作范围或阈值电压。在有些实施例中,这可以由第二组电阻分压器形成的第二组阈值来实现,其中第二组电阻分压器连接到第二组比较器(未示出),其输出连接到OR门408上的两个附加输入以驱动PDDET信号。
现在参照图5,其示出了电压检测器电路500的示例性实施例。如上参照图3所述,TRNG电路300可包括用于测试内部DC电压和操作点的可观察性端口310。通过这种方式,可使用球来提供用于调试和/或制造测试的测试模式。对这个测试模式的访问可以通过熔丝来使其无效,并且测试模式球可以连接到VSS。电压检测器电路500可用于防止可能的攻击者识别并且接下来使用该球来达到进入TRNG电路300。电压检测器电路500可以被设置在可观察性端口310(例如,管脚)上以感测球电压,并且如果该球被提升到接近或者超出电压调节器304的内部电压就停止比特产生。在有些实施例中,电压检测器电路500可包括类似于PDDET 400的电路。如果测试球上的电压升高到足够高,该球周围的电路中的寄生二极管可提供电流给TRNG模拟内核电路302。这可以通过检测该球上的电压来防止。如果电压太高,则来自TRNG电路300的比特产生可以被停止,直到停止攻击。这种方案可能类似于上面参照图4所述的PDDET 400。
在有些实施例中,电阻分压器508可从用于比较器502的内核电压“VCCA_DDR”产生不超过电压调节器的输出的参考电压。这个参考电压可以与可观察性端口310(管脚“VCC_TSTRNG”506)上的电压相比较。如果“VCC_TSTRNG”506上的电压超过来自电阻分压器508的参考电压,则来自比较器502的输出可能变为逻辑1电平,使OR门504发送新的PDDET信号以停止比特产生。当使用球用于测试目的时,可以使比较器无效。在正常操作期间,比较器可以被启动,并且可使用下拉晶体管和电阻器组合510下拉“VCC_TSTRNG”506以保证在缺乏任何其他驱动源情况下506可以为低。
如上面参照图3所述,可观察性端口310可以可操作地连接到电压检测器电路308,该电压检测器电路308可用于检测球电压,并且如果球电压位于电压调节器电路304的电压范围以外就停止比特产生。尽管制作TRNG电路的硅工艺不容易受可观察性端口上的地电位以下的电压影响,但是一些其他工艺可能具有那个问题。低电压的检测可以通过另一比较器(未示出)来进行,该另一比较器的输出连接到OR门504上的附加输入以驱动PDDETNEW信号。
图6示出与本公开内容一致的典型操作的流程图600。在一个示例性实施例中,这些操作可包括经由集成电路根据至少一个安全应用产生随机比特,所述集成电路包括具有模拟内核(602)的真随机数发生器。这些操作还可包括经由与所述真随机数发生器(604)相关联的电压调节器向所述模拟内核提供内部产生的电源。当然,各种附加操作也包括在本公开内容的范围之内。
这里任何实施例中使用的术语“存储器”可包括一个或多个以下类型的存储器:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪速存储器、磁盘存储器、和/或光盘存储器。
附加的或替代的,存储器可包括其他和/或以后研制的计算机可读存储器类型。这里所述的方法的实施例可以用计算机程序来执行,该计算机程序可以储存在具有指令的存储介质上以对系统进行编程,从而执行该方法。该存储介质可包括,但不限于,任何类型的磁盘,包括软盘、光盘、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)和磁-光盘、半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM)如动态和静态RAM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器、磁卡或光卡、或者适合于储存电子指令的任何类型的介质。其他实施例可以作为通过可编程控制器件执行的软件模块来实现。
这里任何实施例中所使用的术语“电路”可包括例如硬线电路、可编程电路、状态机电路、和/或储存由可编程电路执行的指令的固件,这些电路或部件可单独使用或组合使用。
这里任何实施例中所使用的术语“安全应用”可包括例如密码应用或协议、密钥管理方案、旨在保护密码或者一块代码的任何应用和/或用于产生至少一个比特的任何系统。
这里已经采用的术语和短语作为说明的术语,但并不限于此,在使用这些术语和短语时,不排除所示和所述的特征(或其部分)的任何等效形式,并且应该认识到在权利要求的范围内可以进行各种修改。相应地,权利要求趋于覆盖所有这种等效形式。
Claims (18)
1.一种用于产生随机比特的装置,包括:
集成电路,其用于根据至少一种安全应用产生随机比特,所述集成电路包括具有模拟内核的真随机数发生器,所述真随机数发生器包括电压调节器,该电压调节器被配置为包括用于向所述模拟内核提供功率的内部产生的电源,其中所述内部产生的电源得自所述电压调节器,所述电压调节器由外部电压源供电。
2.根据权利要求1所述的装置,还包括功率降检测电路,其用于监控所述内部产生的电源,并且如果输送给所述模拟内核的所述功率下降到第一阈值以下或超过第一阈值,或者下降到第二阈值以下或超过第二阈值,则所述功率降检测电路就停止比特产生。
3.根据权利要求1所述的装置,还包括可观察性端口,其用于测试与所述真随机数发生器相关联的内部电压。
4.根据权利要求3所述的装置,其中所述可观察性端口可操作地连接到电压检测器电路,该电压检测器电路用于检测球电压,并且如果所述球电压位于所述电压调节器的电压范围以外,则该电压检测器电路就停止比特产生。
5.根据权利要求1所述的装置,其中通过所述模拟内核产生的时钟来控制所述真随机数发生器。
6.一种用于产生随机比特的系统,包括:
主处理器;
至少一个存储器;和
集成电路,其用于根据至少一种安全应用产生随机比特,所述集成电路包括具有模拟内核的真随机数发生器,所述真随机数发生器包括电压调节器,该电压调节器具有用于向所述模拟内核提供功率的内部产生的电源,其中所述内部产生的电源得自所述电压调节器,所述电压调节器由外部电压源供电。
7.根据权利要求6所述的系统,还包括与所述集成电路相关联的可操作性引擎,所述可操作性引擎包括用于控制所述真随机数发生器的固件。
8.根据权利要求6所述的系统,还包括功率降检测电路,其用于监控所述内部产生的电源,并且如果输送给所述模拟内核的所述功率下降到第一阈值以下或超过第一阈值,或者下降到第二阈值以下或超过第二阈值,则所述功率降检测电路就停止比特产生。
9.根据权利要求6所述的系统,还包括可观察性端口,其用于测试与所述真随机数发生器相关联的内部电压。
10.根据权利要求9所述的系统,其中所述可观察性端口可操作地连接到电压检测器电路,该电压检测器电路用于检测球电压,并且如果所述球电压位于所述电压调节器的电压范围以外,则该电压检测器电路就停止比特产生。
11.根据权利要求6所述的系统,其中通过所述模拟内核产生的时钟来控制所述真随机数发生器。
12.一种用于产生随机比特的方法,包括:
通过集成电路根据至少一种安全应用来产生随机比特,所述集成电路包括具有模拟内核的真随机数发生器;并且
通过与所述真随机数发生器相关联的电压调节器,经由内部产生的电源向所述模拟内核提供功率,其中所述内部产生的电源得自所述电压调节器,所述电压调节器由外部电压源供电。
13.根据权利要求12所述的方法,还包括通过功率降检测电路监控所述内部产生的电源,并且如果输送给所述模拟内核的所述功率下降到第一阈值以下或超过第一阈值,或者下降到第二阈值以下或超过第二阈值,则停止比特产生。
14.根据权利要求12所述的方法,还包括通过可观察性端口测试与所述真随机数发生器相关联的内部电压。
15.根据权利要求13所述的方法,其中所述可观察性端口可操作地连接到电压检测器电路,该电压检测器电路用于检测球电压,并且如果所述球电压在所述电压调节器的电压范围以外,则停止比特产生。
16.一种用于产生随机比特的系统,包括:
随机比特生成模块,用于根据至少一种安全应用来产生随机比特,所述随机比特生成模块包括具有模拟内核的真随机数发生器;以及
功率提供模块,其与所述真随机数发生器相关联,并且经由内部产生的电源向所述模拟内核提供功率,其中所述内部产生的电源得自所述功率提供模块,所述功率提供模块由外部电压源供电。
17.根据权利要求16所述的系统,还包括功率降检测模块,用于监控所述内部产生的电源,并且如果输送给所述模拟内核的所述功率下降到第一阈值以下或超过第一阈值,或者下降到第二阈值以下或超过第二阈值,则停止比特产生。
18.根据权利要求16所述的系统,还包括通过可观察性端口测试与所述真随机数发生器相关联的内部电压。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/967,716 | 2007-12-31 | ||
US11/967,716 US8595274B2 (en) | 2007-12-31 | 2007-12-31 | Random number generator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101477450A CN101477450A (zh) | 2009-07-08 |
CN101477450B true CN101477450B (zh) | 2012-07-18 |
Family
ID=40799859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810190335.9A Expired - Fee Related CN101477450B (zh) | 2007-12-31 | 2008-12-31 | 随机数发生器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8595274B2 (zh) |
JP (1) | JP4879964B2 (zh) |
CN (1) | CN101477450B (zh) |
DE (1) | DE102008061878B4 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4970221B2 (ja) * | 2007-11-16 | 2012-07-04 | 株式会社東芝 | 省電力制御装置及び方法 |
JP5072629B2 (ja) * | 2008-02-04 | 2012-11-14 | 株式会社東芝 | 制御装置、被制御装置、制御方法 |
US8495118B2 (en) * | 2008-10-30 | 2013-07-23 | Seagate Technology Llc | Tunable random bit generator with magnetic tunnel junction |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9558034B2 (en) * | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9575903B2 (en) | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US9798873B2 (en) | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US8788551B2 (en) | 2011-11-15 | 2014-07-22 | Seagate Technology Llc | Random number generation using switching regulators |
WO2014159906A1 (en) * | 2013-03-14 | 2014-10-02 | Microchip Technology Incorporated | Randomizing current injection circuit to obscure gate noise for added security |
US9798367B2 (en) * | 2013-04-09 | 2017-10-24 | Intel Corporation | Controlling supply of power to computing devices with dynamically variable energy capacity |
US8955144B2 (en) * | 2013-06-28 | 2015-02-10 | Intel Corporation | Protecting information processing system secrets from debug attacks |
US9507566B2 (en) * | 2014-04-01 | 2016-11-29 | Oracle International Corporation | Entropy generation for a distributed computing system |
JP6929776B2 (ja) | 2014-12-24 | 2021-09-01 | イントリンシツク・イー・デー・ベー・ベー | 物理的複製不可能関数からの暗号鍵生成 |
US9967094B2 (en) * | 2015-08-25 | 2018-05-08 | Nxp Usa, Inc. | Data processing system with secure key generation |
US10331410B2 (en) * | 2016-11-09 | 2019-06-25 | Google Llc | Hardened random number generator with ring oscillator collapse time random truncation |
US11394530B2 (en) * | 2017-11-01 | 2022-07-19 | Gideon Samid | RandoSol: randomness solutions |
TWI662826B (zh) * | 2018-03-23 | 2019-06-11 | 華邦電子股份有限公司 | 金鑰產生裝置及方法 |
CN110286878B (zh) * | 2019-06-25 | 2021-06-01 | 电子科技大学 | Mcu随机间隔转换电桥电压的真随机数产生器及产生方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1428691A (zh) * | 2002-01-14 | 2003-07-09 | 智权第一公司 | 振荡偏压变动装置 |
TW557636B (en) * | 2002-03-26 | 2003-10-11 | Ind Tech Res Inst | Random number generator |
CN1540582A (zh) * | 2003-04-22 | 2004-10-27 | 上海华园微电子技术有限公司 | 在集成电路卡中随机数发生器和产生随机初值的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6130602A (en) * | 1996-05-13 | 2000-10-10 | Micron Technology, Inc. | Radio frequency data communications device |
US6539410B1 (en) * | 1999-03-17 | 2003-03-25 | Michael Jay Klass | Random number generator |
US7197523B2 (en) * | 2001-05-09 | 2007-03-27 | Magiq Technologies, Inc. | Efficient use of detectors for random number generation |
JP2003150374A (ja) | 2001-11-19 | 2003-05-23 | Iwaki Electronics Corp | 乱数発生器 |
GB0221240D0 (en) * | 2002-09-13 | 2002-10-23 | Koninkl Philips Electronics Nv | Current source for cryptographic processor |
US20050055392A1 (en) * | 2002-11-06 | 2005-03-10 | Niigata University | Method for generating random number and random number generator |
US8209765B2 (en) * | 2003-04-22 | 2012-06-26 | Nxp B.V. | Electronic circuit device for cryptographic applications |
JP2006080642A (ja) | 2004-09-07 | 2006-03-23 | Sony Corp | 情報処理装置および方法、プログラム並びに記録媒体 |
JP4478643B2 (ja) * | 2005-10-31 | 2010-06-09 | Okiセミコンダクタ株式会社 | 乱数生成回路 |
JP2007128184A (ja) * | 2005-11-01 | 2007-05-24 | Sharp Corp | 消費電力解析対策機能付き半導体装置 |
US7873830B2 (en) | 2006-01-13 | 2011-01-18 | International Business Machines Corporation | Methods for coordinating access to memory from at least two cryptography secure processing units |
JP2007207054A (ja) | 2006-02-03 | 2007-08-16 | Renesas Technology Corp | データ処理装置 |
GB0603523D0 (en) * | 2006-02-22 | 2006-04-05 | Qinetiq Ltd | Apparatus and method for generating random numbers |
US7660142B2 (en) * | 2006-09-28 | 2010-02-09 | Infineon Technologies Flash Gmbh & Co. Kg | Device with memory and method of operating device |
CN1949708B (zh) * | 2006-11-10 | 2011-02-02 | 华为技术有限公司 | 随机数发生装置、方法及对应的数据交互系统 |
US7962539B2 (en) * | 2007-04-30 | 2011-06-14 | International Business Machines Corporation | System, method and device of generating a random value |
-
2007
- 2007-12-31 US US11/967,716 patent/US8595274B2/en not_active Expired - Fee Related
-
2008
- 2008-12-11 DE DE102008061878.0A patent/DE102008061878B4/de not_active Expired - Fee Related
- 2008-12-26 JP JP2008332214A patent/JP4879964B2/ja not_active Expired - Fee Related
- 2008-12-31 CN CN200810190335.9A patent/CN101477450B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1428691A (zh) * | 2002-01-14 | 2003-07-09 | 智权第一公司 | 振荡偏压变动装置 |
TW557636B (en) * | 2002-03-26 | 2003-10-11 | Ind Tech Res Inst | Random number generator |
CN1540582A (zh) * | 2003-04-22 | 2004-10-27 | 上海华园微电子技术有限公司 | 在集成电路卡中随机数发生器和产生随机初值的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101477450A (zh) | 2009-07-08 |
DE102008061878B4 (de) | 2015-03-05 |
JP4879964B2 (ja) | 2012-02-22 |
US20090172056A1 (en) | 2009-07-02 |
DE102008061878A1 (de) | 2009-08-06 |
JP2009163737A (ja) | 2009-07-23 |
US8595274B2 (en) | 2013-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477450B (zh) | 随机数发生器 | |
CN105891651B (zh) | 低功率开路检测系统 | |
US20020166058A1 (en) | Semiconductor integrated circuit on IC card protected against tampering | |
US9727310B2 (en) | Entropy source for random number generator | |
Van Herrewege et al. | Secure PRNG seeding on commercial off-the-shelf microcontrollers | |
Lampert et al. | Robust, low-cost, auditable random number generation for embedded system security | |
US8564324B2 (en) | Monitoring of the activity of an electronic circuit | |
CN108446555A (zh) | 对硬件木马进行实时监控和检测的方法 | |
Tehranipoor et al. | DVFT: A lightweight solution for power-supply noise-based TRNG using dynamic voltage feedback tuning system | |
Gnad et al. | Remote electrical-level security threats to multi-tenant FPGAs | |
Yao et al. | Programmable ro (pro): A multipurpose countermeasure against side-channel and fault injection attack | |
JP2003131867A (ja) | 乱数生成装置 | |
Yang et al. | Large delay analog trojans: A silent fabrication-time attack exploiting analog modalities | |
CN103679010B (zh) | 检测装置 | |
US11043102B1 (en) | Detection of frequency modulation of a secure time base | |
Laohavaleeson et al. | Current flattening circuit for DPA countermeasure | |
Martin et al. | Towards a dependable true random number generator with self-repair capabilities | |
EP2983103B1 (en) | Integrated circuit with distributed clock tampering detectors | |
Sridhar et al. | Countermeasure against side channel power attacks in cryptography devices | |
JP4335561B2 (ja) | 半導体集積回路装置 | |
JP2010062635A (ja) | 暗号処理装置および集積回路 | |
Kaur et al. | Analytical Classifications of Side Channel Attacks, Glitch Attacks and Fault Injection Techniques: Their Countermeasures | |
Kaur et al. | Peak detector circuits for safeguarding against fault injection attacks | |
EP1620829A1 (en) | Electronic circuit device for cryptographic applications | |
Krautter | Analysis and Mitigation of Remote Side-Channel and Fault Attacks on the Electrical Level |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120718 Termination date: 20191231 |
|
CF01 | Termination of patent right due to non-payment of annual fee |