CN103890712A - 用于随机数产生器的具有磁阻元件的熵源 - Google Patents
用于随机数产生器的具有磁阻元件的熵源 Download PDFInfo
- Publication number
- CN103890712A CN103890712A CN201280051736.0A CN201280051736A CN103890712A CN 103890712 A CN103890712 A CN 103890712A CN 201280051736 A CN201280051736 A CN 201280051736A CN 103890712 A CN103890712 A CN 103890712A
- Authority
- CN
- China
- Prior art keywords
- random value
- equipment according
- source
- sensing
- value
- 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
Links
- 238000012805 post-processing Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000001514 detection method Methods 0.000 claims abstract description 20
- 230000005415 magnetization Effects 0.000 claims abstract description 20
- 230000008859 change Effects 0.000 claims description 16
- 230000009182 swimming Effects 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 7
- 238000007906 compression Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000001787 Wald–Wolfowitz test Methods 0.000 claims 1
- 238000009987 spinning Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 abstract description 20
- 230000003068 static effect Effects 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 180
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 18
- 239000010410 layer Substances 0.000 description 16
- 230000004087 circulation Effects 0.000 description 14
- 230000008878 coupling Effects 0.000 description 11
- 238000010168 coupling process Methods 0.000 description 11
- 238000005859 coupling reaction Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 9
- 239000000696 magnetic material Substances 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005648 markovian process Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 238000005309 stochastic process Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1659—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1695—Protection circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1697—Power supply circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/581—Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Hall/Mr Elements (AREA)
- Measuring Magnetic Variables (AREA)
Abstract
本发明揭示熵源和随机数RN产生器。在一个方面中,低能量熵源包含磁阻MR元件和感测电路。所述MR元件被施加静态电流并且具有基于所述MR元件的磁化而确定的可变电阻。感测电路感测所述MR元件的电阻,并且基于所述MR元件的感测到的电阻提供随机值。在另一方面中,RN产生器包含熵源和后处理模块。熵源包含至少一个MR元件,并且基于所述至少一个MR元件提供第一随机值。所述后处理模块接收和处理所述第一随机值(例如,基于密码散列函数、错误检测码、流密码算法等),并且提供具有改善的随机性特性的第二随机值。
Description
本申请案要求2011年9月20日申请的名称为“用于随机数产生器的具有STT-MTJ半导体装置的熵源(ENTROPY SOURCE WITH STT-MTJ SEMICONDUCTOR DEVICEFOR RANDOM NUMBER GENERATOR)”的第61/536,769号美国临时申请案的优先权,该申请案以全文引用的方式并入本文中。
技术领域
本发明大体上涉及电子电路,且更具体来说涉及用于产生随机值的技术。
背景技术
随机数(RN)产生器广泛用于针对多种应用产生随机值。举例来说,实施密码安全算法的计算机类装置通常需要随机值(通常是随机二进制位)的源。RN产生器可用于向计算机类装置提供随机值以便用于密码安全算法。RN产生器通常也被称作RNG或随机位产生器(RBG)。
RN产生器可以用熵源来实施,所述熵源可以提供一序列的随机位。熵源可以用一个物理装置来实施,所述物理装置具有在最大程度上可以通过简单的一阶马尔可夫过程建模的状态转移,使得熵质量和相关安全强度可以更容易定量以便确保充足的安全强度。随机位可以从物理装置的一序列的状态转移导出。但是,大多数可以用于熵源的物理装置昂贵、需要高功率并且产生数据较慢。另外,可能将这些物理装置的状态转移建模成简单的马尔可夫过程很难或者不切实际,这可能会使得物理装置的性能更难定量。
发明内容
本文中描述可以基于一个或一个以上磁阻(MR)元件产生随机值的熵源和RN产生器。在一个方面中,低能量熵源可包含MR元件和感测电路。可以向MR元件施加静态电流(并且不施加电流脉冲),并且MR元件可以具有基于MR元件的磁化而确定的可变电阻。静态电流是具有恒定振幅和极性的电流,例如,没有电流脉冲。MR元件可以自发地并且随机地在不同磁化状态之间转移,并且这些转移可能会影响MR元件的电阻。感测电路可以感测MR元件的电阻,并且基于MR元件的感测到的电阻提供随机值。
在另一方面中,RN产生器可包含熵源和后处理模块。熵源可包含至少一个MR元件,并且可以基于至少一个MR元件提供第一随机值。所述后处理模块可以接收和处理所述第一随机值(例如,基于密码散列函数、错误检测码、流密码算法等),并且提供具有改善的随机性特性的第二随机值。
在又一方面中,熵源可包含MR单元的阵列和感测电路。MR单元的阵列可以布置成多个行和多个列。每一MR单元可包括至少一个MR元件。多个字线可以耦合到MR单元的所述多个行。多个选择线可以耦合到MR单元的所述多个列。多个位线也可耦合到MR单元的所述多个列。所述感测电路可以耦合到所述多个选择线,并且可以感测所述阵列中的MR单元的电阻。可以用第一速率选择(例如,以交错方式)和感测阵列中的MR单元,以便用第二速率产生随机值,第二速率可能高于第一速率。
在又一方面中,篡改检测模块可包含熵源和检测模块。熵源可包含至少一个MR元件,并且可以基于至少一个MR元件提供第一值。检测模块可以接收和处理第一值,并且提供对于熵源的窜改的指示。检测模块可以基于多种准则检测对于熵源的窜改,所述准则例如是:第一值中的“0”的百分比和“1”的百分比,或第一值中的“0”游程和“1”游程,或第一值中的“0”和“1”的预定模式的出现次数,或第一值的压缩的输出速率等。
下文更详细地描述本发明的各种方面和特征。
附图说明
图1展示RN产生器的框图。
图2A和2B展示低能量熵源的两个设计。
图3展示高能量熵源的设计。
图4展示图3中的控制电路执行的过程。
图5展示具有MR单元阵列的熵源的设计。
图6A、6B和6C展示MR单元的三个设计。
图7A到12展示RN产生器的多种设计。
图13展示篡改检测电路。
图14展示用于产生随机值的过程。
图15展示无线装置的框图。
具体实施方式
本文中揭示可以基于一个或一个以上MR元件产生随机值的熵源和RN产生器。MR元件是具有随其磁化而变化的电阻的元件。MR元件可以是磁性隧道结(MTJ)半导体装置、自旋力矩转移磁性隧道结(STT-MTJ)半导体装置或其它某种具有相对于磁化可变的电阻的装置。STT-MTJ是一种MTJ装置,其通过使电流通过装置而被编程/写入(而不是像其它MTJ装置一样用磁场编程)。对熵源使用MR元件(例如,STT-MTJ装置)可以提供某些优点,例如制造起来容易、成本低、性能良好,并且能够对熵和安全强度进行定量。
熵源和RN产生器可以用于多种电子装置,例如无线装置、蜂窝式电话、智能电话、平板电脑、个人数字助理(PDA)、膝上型计算机、桌上型计算机、迷你笔记本、智能笔记本等。熵源和RN产生器还可用于多种应用,例如密码术、噪声源(例如,用于测试设备)、用于概率逻辑的序列产生(例如,表示随机变量的序列)、蒙特卡洛仿真、优化问题、基因算法等。
图1展示RN产生器100的设计的框图。在这个设计中,RN产生器100包含熵源110和后处理模块120。熵源110包含一个或一个以上MR元件(例如,一个或一个以上STT-MTJ装置)并且产生第一随机值,所述第一随机值可以是“1”或“0”的随机位。术语“随机”和“不可预测”可以互换使用。在图1中展示的设计中,后处理模块120从熵源110接收第一随机值,并且产生与来自真实随机源的随机值(在统计上)更接近地匹配的第二随机值。模块120进行的后处理可以改善随机性特性。第二随机值可以是二进制值或非二进制值。在图1中未展示的另一设计中,第一随机值可以不加任何后处理直接被提供作为第二随机值。在这个设计中,RN产生器将仅包含熵源110。
在一个方面中,低能量熵源可包含一个或一个以上MR元件,其基于静态电流(例如低DC电流)操作。静态电流也可被称作感测电流,并且可能小于切换MR元件的状态通常需要的电流量。不是将电流脉冲施加到所述一个或一个以上MR元件以诱发电阻变化。而是,由于热噪声和/或其它现象引起的MR元件的电阻变化被检测并且用于产生随机值。对MR元件使用静态电流可以提供多种优点,例如低功耗、简化的电路设计等。低能量熵源使用低能量现象(例如,热噪声)产生熵,而高能量熵源使用较高能量刺激(例如,电流脉冲)产生熵。低能量熵源可以产生合适的数量和质量的熵,所述熵可以与来自高能量熵源的熵相当。
图2A展示低能量熵源110x的示意图,低能量熵源110x是图1中的熵源110的一种设计。熵源110x包含电阻器210、MR元件220和感测电路230。电阻器210的一个末端耦合到第一参考电压(VREF1),并且第二末端耦合到节点X。电阻器210还可耦合到供电电压(VDD)而不是VREF1电压。MR元件220的一个末端耦合到节点X,并且另一末端耦合到接地电路。感测电路230包含读出放大器240(例如,比较器)和D触发器250。读出放大器240的非反相输入耦合到节点X,其反相输入接收第二参考电压(VREF2),并且其输出耦合到触发器250的D输入。触发器250还在其时钟输入处接收时钟,并且在其Q输出处提供第一随机值(例如,随机位)。使用触发器250的优点是触发器的输出的所有转移都与时钟同步。
MR元件220可包括STT-MTJ装置或其它某种类型的MR元件。STT-MTJ装置是由两个磁性材料层与中间的磁性隧穿层的夹层形成的。两个电导体连接到所述两个磁性材料层。STT-MTJ装置的电阻是可变的,并且取决于所述两个层的相对磁化。所述两个磁性材料层中的一者通常具有固定磁化(自旋极化)并且可被称为固定层。所述两个磁性材料层中的另一者可以切换并且可被称为自由层。即使当没有施加驱动电流时,所述两个层的相对磁化也可以自发地切换(例如,由于热噪声/能量)。STT-MTJ装置的电阻取决于所述两个层的相对磁化。
在图2A中展示的设计中,使用电阻性分压器来感测MR元件220的电阻。具体来说,节点X处的电压(VX)取决于电阻器210的固定电阻R1、MR元件220的可变电阻R2和施加到电阻性分压器的VREF1电压。VX电压可以表达为:
如等式(1)中所示,当MR元件220的R2电阻由于两个磁性材料层的相对磁化的自发切换而变化时,VX电压也相应地变化。读出放大器240将VX电压与VREF2电压比较,在VX电压高于VREF2电压的情况下提供高输出电压,并且否则的话提供低输出电压。电阻器210的R1电阻、VREF1电压和/或VREF2电压可以经过选择,以使得当MR元件220的电阻处在目标值时VX电压接近于VREF2电压。
读出放大器240可以感测MR元件220的电阻并且基于感测到的电阻提供二进制输出值。触发器250基于时钟对来自读出放大器240的二进制输出值进行取样以便获得第一随机值。用触发器250对来自读出放大器240的输出值进行取样,可以确保与后续数字电路的设置时间和保持时间一致。
图2A中的设计基于低能量现象检测MR元件220的电阻变化。具体来说,MR元件220的电阻在没有任何驱动电流的情况下由于自由振荡而变化。这个设计可以产生用于熵源110x的相对简单的电路。这个设计还可缓和MR元件220的磨损并且改善MR元件220的可靠性。MR元件还可设计和构造成使得在来自热噪声和/或其它能源的搅动下,可以更容易进行自发状态切换。举例来说,STT-MTJ装置可以用弱保持实施和/或不用稳定轴实施,使得其可以进行自发状态切换。
图2B展示低能量熵源110y的示意图,低能量熵源110y是图1中的熵源110的另一设计。熵源110y包含电阻器210、MR元件220和感测电路230,其如上文针对图2A所述耦合,只不过电阻器210是耦合到VDD电压而不是VREF1电压。熵源110y进一步包含由电阻器212和214形成的分压器。电阻器212耦合在VDD电压与节点Y之间。电阻器214耦合在节点Y与接地电路之间。读出放大器240的非反相输入耦合到节点X,其反相输入耦合到节点Y,并且其输出耦合到触发器250的D输入。触发器250还在其时钟输入处接收时钟,并且在其Q输出处提供第一随机值(例如,随机位)。
图2B使用桥接电路测量MR元件220的电阻。桥接电路允许读出放大器240比较节点X处的电压与节点Y处的电压。因此,不需要用VREF1和VREF2参考电压来感测MR元件220的阻抗,这可以简化电路设计。
图2A和2B展示使用电阻性分压器感测MR元件220的可变电阻的两个设计。也可用其它方式感测MR元件220的可变电阻。在另一设计中,电流源可以向MR元件220施加静态电流(例如,电阻器210被省略)。节点X处的VX电压于是将取决于静态电流(其是已知的)和MR元件220的电阻(其正被测量)。在又一设计中,另一电阻器可以与MR元件220串联连接,并且电压可以被施加到所述串联组合。可以感测所述元件中的一者(MR元件或电阻器)上的电压。在又一设计中,MR元件220可以放置在“桥接”电路中,所述桥接电路可以是所属领域的技术人员已知的任何桥接电路。桥接电路可以避免对于参考电压(例如,图2A中的VREF2电压)的需要。
在又一设计中,第二MR元件可以耦合到读出放大器240的反相输入,并且可用于产生参考电压。电阻器可以耦合在第二MR元件与供电电压之间,或者电流源可以向第二MR元件提供静态电流。耦合到非反相输入的MR元件220和耦合到读出放大器240的反相输入的第二MR元件可以具有不同设计、不同形状、不同大小、不同厚度和/或其它有所不同以便提供对于参考电压的良好匹配和更好追踪的特性。
总的来说,可以通过以下方式测量MR元件220的电阻:(i)使电流通过MR元件并且感测电压;或(ii)向MR元件施加电压并且感测电流。对于选项(i),可以使用少量电流来感测MR元件220的阻抗(并且因此感测其状态)。这个少量电流可以远远低于对MR元件220的磁化进行概率倒转所需要的量。还可测量MR元件220的总磁性力矩。
图2A和2B展示具有单个MR元件220的低能量熵源的两个设计。总的来说,低能量熵源可包含任何数目的MR元件,其可以用任何方式耦合。在一个设计中,多个MR元件可以串联耦合。在另一设计中,多个MR元件可以并联耦合。MR元件的串联或并联组合可以耦合在节点X与接地电路之间。使用多个MR元件可以(i)改善从更多MR元件收集熵,(ii)改善冗余MR元件的集成电路(IC)产量,因为任何给定MR元件上的产量将小于100%,和(iii)最低限度地增加成本和电路/裸片面积,因为MR元件的大小通常较小。
熵源可包含一个或一个以上MR元件,其具有的电阻可以通过施加写入脉冲(例如,电流脉冲)而变化。在这种情况下,可以基于高能量现象来检测所述MR元件的电阻变化。基于高能量现象操作MR元件可以产生用于熵源的更加稳固的操作,但是可能导致MR元件的磨损加快。
图3展示高能量熵源110z的示意图,高能量熵源110z是图1中的熵源110的另一设计。在熵源110z内,电阻器310、312和314的一个末端耦合到节点E,并且另一末端耦合到控制电路340的三个端口。MR元件320的一个末端耦合到节点E,并且另一末端耦合到接地电路。读出放大器330(例如,比较器)的非反相输入耦合到节点E,其反相输入接收参考电压(VREF),并且其输出耦合到控制电路340的输入。控制电路340还在其时钟输入处接收时钟,并且在其输出处提供第一随机值。在另一设计中,读出放大器330可以直接提供第一随机值。
控制电路340可以产生写入脉冲以便改变MR元件320的状态。MR元件320可以在任何给定时刻处在状态“0”或“1”。状态“0”可以对应于MR元件320的电阻小于目标值,并且状态“1”可以对应于MR元件320的电阻大于目标值。
总的来说,脉冲可以是电流脉冲或电压脉冲,并且可以具有正极性或负极性。在一个设计中,控制电路340可包含(i)经由第一开关耦合到电阻器312的正脉冲产生器和(ii)经由第二开关耦合到电阻器314的负脉冲产生器。可以经由电阻器312向MR元件320施加正电流脉冲,以便将MR元件320的状态从“0”倒转成“1”。可以经由电阻器314向MR元件320施加负电流脉冲,以便将MR元件320的状态从“1”倒转成“0”。可以通过断开第二开关、启用正脉冲产生器和闭合第一开关而经由电阻器312向MR元件320施加正脉冲。可以通过断开第一开关、启用负脉冲产生器和闭合第二开关而经由电阻器314向MR元件320施加负脉冲。电阻器312和314也可用两个电流路径替换。每一脉冲产生器可以产生适当振幅的电压或电流脉冲,例如,100微安(μA)或其它某个值的电流脉冲。脉冲可以致使MR元件320的两个磁性材料层的相对磁化以某一概率变化。相对磁化的变化可以致使MR元件320的电阻变化。
在另一设计中,控制电路340可包含单个脉冲产生器。第一组开关可以连接这个脉冲产生器,以使得其可以(i)经由电阻器312产生用于MR元件320的正脉冲或(ii)经由电阻器314产生用于MR元件320的负脉冲。在又一设计中,可以通过控制耦合在电阻器312和314与电力供应源之间的开关而形成一个或一个以上脉冲产生器。可以通过开关闭合的持续时间来确定脉冲的宽度。
在一个设计中,可以向MR元件320施加写入脉冲,并且可以在施加写入脉冲之后感测MR元件320的电阻。在另一设计中,可以感测MR元件320的电阻,并且可以接着向MR元件320施加写入脉冲以便可能改变其状态。在又一设计中,可以在向MR元件320施加写入脉冲的同时感测MR元件320的阻抗。
图4展示通过图3中的控制电路340执行的过程400的设计的流程图。首先,可以经由图3中的电阻器310接通感测/读取电流,并且可以通过读出放大器330感测MR元件320的状态(框412)。可以确定MR元件320的感测到的状态是“0”还是“1”(框414)。如果在框414中感测到状态“0”,那么可以向熵累加器提供逻辑“0”(框416)。可以断开经由电阻器310的感测电流,并且可以施加倾向于将MR元件320的磁化倒转成状态“1”的写入脉冲(例如,正电流脉冲)(框418)。否则,如果在框414中感测到状态“1”,那么可以向熵累加器提供逻辑“1”(框420)。可以断开经由电阻器310的感测电流,并且可以施加倾向于将MR元件320的磁化倒转成状态“0”的写入脉冲(例如,负电流脉冲)(框422)。在框418或422之后,过程返回到框412。
图3中的控制电路340可以用多种方式实施。在一个设计中,控制电路340可包含耦合到电阻器312的正脉冲产生器、耦合到电阻器314的负脉冲产生器和开关,如上所述。在任何给定时刻,开关可以启用正脉冲产生器或负脉冲产生器并将其连接到MR元件320。在另一设计中,控制电路340可包含单个脉冲产生器,其输出可以经由开关用正或负的方式跨越MR元件320的两个端子放置。在这个设计中,可以跨越脉冲产生器放置MR元件320的两个端子,并且可以将电阻器312和314吸收到含有脉冲产生器的框中。在又一设计中,电路可以将MR元件320的一个端子连接到电源(例如,经由电阻器310),并且可以将MR元件320的另一端子连接到接地电路。可以基于是期望将MR元件320倒转成“0”状态还是“1”状态而选择在与电源的连接或与接地电路的连接之间的切换。
在一个设计中,熵源110z可以操作以使得控制电路340针对MR元件320产生的每一写入脉冲具有切换MR元件320的状态的大约50%的概率。控制电路340可包含用以控制写入脉冲的振幅和/或持续时间和/或写入脉冲之间的时间量以获得切换状态的恰当地50%的概率的电路。举例来说,控制电路340内的反馈电路(例如,状态机)可以在充分长的时间中使读出放大器330提供的“0”和“1”值的数目平均化,并且可以将写入脉冲朝向MR元件320的50%的概率切换点调整(例如,调整写入脉冲的电压、电流和/或持续时间),以便从读出放大器330获得更加未偏置的输出。
在另一设计中,控制电路340可以向MR元件320施加一系列写入脉冲,直到MR元件320对状态进行双态触发为止。可以提供经过施加以便对MR元件320的状态进行双态触发的写入脉冲的数目作为第一随机值。在施加一序列的写入脉冲之前,可以将MR元件320复位成初始状态。
电阻性分压器由具有固定电阻的电阻器310和具有可变电阻的MR元件320形成,其方式类似于图2A和2B中的电阻器210和MR元件220。通过由读出放大器330比较节点E处的电压(VE)与VREF电压,可以感测MR元件320的电阻。也可用其它方式感测MR元件320的电阻。在任何情况下,读出放大器330都可以基于MR元件320的感测到的电阻提供二进制输出值。可以由控制电路340基于时钟对来自读出放大器330的二进制输出值进行取样以便获得第一随机值。
图3展示使用写入脉冲改变MR元件320的电阻并且使用电阻性分压器感测MR元件320的电阻的设计。也可用其它方式改变MR元件320的电阻。举例来说,可以通过强外部磁场改变MR元件320的电阻。
图3展示具有单个MR元件320的熵源的设计。总的来说,熵源可包含任何数目的MR元件,其可以用串联、并联或用其它某种方式耦合。使用多个MR元件可以改善熵收集以及IC产量。
图5展示熵源110w的示意图,熵源110w是图1中的熵源110的又一设计。熵源110w包含M×N阵列510,其具有MR单元520的M行和N列,其中总的来说M>1且/或N>1。如下文所描述,每一MR单元520可以基于多种设计来实施。每一列包含M个MR单元520aj到520mj、开关522j到528j和编程(“Prog.”)源532j和534j,其中j是列索引并且j∈{a,...,n)。每一列中j的M个MR单元520aj到520mj连接到所述列的位线(BL)542j和选择线(SL)544j。每一列j中的M个MR单元520aj到520mj分别进一步连接到M个字线(WL)546a到546m。对于每一列j,开关522j耦合在编程源532j与位线542j的第一末端之间,并且开关524j耦合在编程源534j与选择线544j的第一末端之间。对于每一列j,开关526j耦合在位线542j的第二末端与接地电路之间,并且开关528j耦合在选择线544j的第二末端与接地电路之间。对于每一列j,向感测电路550提供位线542j的第二末端和选择线544j的第二末端。感测电路550可以感测相关联的字线和位线所选择的每一MR单元的电阻。感测电路550基于所选MR单元的感测到的电阻提供第一随机值。
对于每一列j,可以使用编程源532j将列j中的MR单元520aj到520mj的状态从“0”改变成“1”。可以使用编程源534j将MR单元520aj到520mj的状态从“1”改变成“0”。因而,可以使用编程源532j和534j写入MR单元520aj到520mj。在一个设计中,可以将相同编程源532j和534j用于(i)写入电路用以改变MR元件520aj到520mj的状态和(ii)读取电路用以感测MR元件520aj到520mj的状态。
在一个设计中,例如对于包括串联耦合的MR元件的MR单元520,编程源532和534可以是电流源,如图6B中所示。在另一设计中,例如对于包括并联耦合的MR元件的MR单元520来说,编程源532和534可以是电压源,如图6C中所示。
在一个设计中,编程源532和534可以是提供固定振幅/量值和宽度的电流或电压脉冲的固定电流或电压源。在另一设计中,编程源532和534可以是提供可调整的振幅和/或宽度的电流或电压脉冲的可配置电流或电压源。在任何给定时刻,MR单元都可以处在状态P或状态AP。状态P可以等效于MR元件的逻辑“0”,并且状态AP可以等效于MR元件的逻辑“1”。在一个设计中,编程源532和534可以独立配置以在两个方向上提供MR单元520的期望编程,这两个方向是从状态P到状态AP的第一方向和从状态AP到状态P的第二方向。
切换给定MR单元的状态的概率可以取决于施加到MR单元的编程脉冲(例如,电流脉冲或电压脉冲)的振幅。通过调整来自编程源532的编程脉冲的振幅,可以获得在第一方向上切换状态的期望/目标概率。通过调整来自编程源534的编程脉冲的振幅,可以获得在第二方向上切换状态的期望概率。举例来说,可以向第一MR单元施加来自编程源532的脉冲,以便致使这个MR单元以大约50%的概率切换成AP状态。可以向第二MR单元施加来自编程源534的脉冲,以便致使这个MR单元以大约50%的概率切换成P状态。总的来说,通过调整编程脉冲的振幅和/或编程脉冲的持续时间,可以获得在第一或第二方向上切换状态的期望/目标概率。
编程源532或534可经配置以提供合适的振幅的编程脉冲,其可以(i)概率性地切换MR单元的状态(例如,以20到80%之间的概率)或(ii)确定性地切换MR单元的状态(例如,以超过90%的高概率)。举例来说,编程源532或534可以提供(i)用于20%的概率性切换的第一振幅(例如,80μA)的编程脉冲或(ii)用于99%的确定性切换的第二振幅(例如,150μA)的编程脉冲。编程源532和534可以允许MR单元在两个方向上(从状态P到状态AP还有从状态AP到状态P)的期望/最优概率性编程。
可以在单个操作中在第一或第二方向上例如用来自一个编程源532或534的单个编程脉冲对MR单元进行概率性编程。也可以在多个操作中对MR单元进行概率性编程,以便改善来自MR单元的熵的质量和数量。举例来说,可以在第一操作中用第一切换概率对MR单元进行概率性编程,并且接着在第二操作中用第二切换概率对MR单元进行概率性编程。第一和第二切换概率可以或可以不接近优选的50%的切换概率。
在一个设计中,可以如下对MR单元进行编程。可以将编程计数初始化成零。可以读取MR单元以确定其当前状态。可以接着对MR单元进行编程以便以特定概率切换成相反状态,这个特定概率可以或可以不接近优选的50%的切换概率。可以接着使编程计数递增。如果编程计数小于总计数(例如,16),那么通过重复上述步骤,可以再一次对MR单元进行编程。总的来说,来自MR单元的熵的质量针对逐渐变大的总计数和逐渐增多的编程操作有所改善,即使当切换概率很大程度上偏离优选的50%的切换概率时也是这样。
在一个设计中,可以直接将来自熵源110w的第一随机值用作第二随机值。在另一设计中,可以由后处理模块120进一步处理来自熵源110w的第一随机值以便产生具有更好的随机性特性的第二随机值。在这个设计中,可以使用熵源110w进行熵产生,并且可通过调整总计数获得期望质量和数量的熵。
熵源110w可以针对状态之间多种多样的切换概率(例如,从1%到99%)产生期望质量和数量的熵。举例来说,熵源110w可以产生大约50%的概率是“0”并且大约50%的概率是“1”的每一随机位,即使当切换概率不接近优选的50%的切换概率时并且即使当切换概率是未知的时也是这样,只要概率不是0或100%即可。可以选择总计数以提供期望质量和数量的熵。熵源110w可以产生期望质量和数量的熵,而不必调整来自编程源532和534的编程脉冲的振幅和/或宽度以便获得大约50%的切换概率。以多种多样的切换概率产生是“0”或是“1”的概率相等的随机位的能力可能非常合乎需要,因为在IC过程、电压和温度(PVT)变化上获得50%的切换概率可能很难或不切实际。
可以用N沟道金属氧化物半导体(NMOS)晶体管、P沟道金属氧化物半导体(PMOS)晶体管和/或其它类型的晶体管实施图5中的开关522到528。对于每一列j,通过用于列j的第一控制信号Uj来控制开关524j和526j,并且通过用于列j的第二控制信号Vj来控制开关522j和528j。
图6A展示MR单元520a的设计,其可以用于图5中的MR单元520中的每一者。在这个设计中,MR单元520a包含单个MR元件620(例如,STT-MTJ装置)和NMOS晶体管622。NMOS晶体管622的漏极耦合到选择线(SL),其栅极耦合到字线(WL),并且其源极耦合到MR元件620的一个端子。MR元件620的另一端子耦合到位线(BL)。NMOS晶体管622可以(i)接通以将MR元件620连接在源极线与位线之间或(ii)断开以将MR元件620从源极线和位线分离。
图6B展示MR单元520b的设计,其也可以用于图5中的MR单元520中的每一者。在这个设计中,MR单元520b包含多个(K个)串联耦合的MR元件620a到620k和NMOS晶体管622。NMOS晶体管622的漏极耦合到选择线(SL),其栅极耦合到字线(WL),并且其源极耦合到最上面的MR元件620a的自由层的端子。MR元件620可以是STT-MTJ装置,其可以经过耦合,以使得一个STT-MTJ装置(例如,STT-MTJ装置620a)的固定层耦合到下一个STT-MTJ装置(例如,STT-MTJ装置620b)的自由层。最下面的MR元件620k的固定层的端子耦合到位线(BL)。NMOS晶体管622可以(i)接通以将MR元件620a到620k连接在源极线与位线之间或(ii)断开以将MR元件620a到620k从源极线和位线分离。
图6C展示MR单元520c的设计,其也可以用于图5中的MR单元520中的每一者。在这个设计中,MR单元520c包含多个(K个)并联耦合的MR元件620a到620k和NMOS晶体管622。NMOS晶体管622的漏极耦合到选择线(SL),其栅极耦合到字线(WL),并且其源极耦合到K个MR元件620a到620k的自由层的端子。MR元件620可以是STT-MTJ装置,其可以经过耦合,以使得所有STT-MTJ装置的自由层都耦合在一起,并且所有STT-MTJ装置的固定层也耦合在一起。K个MR元件620a到620k的固定层的端子耦合到位线(BL)。NMOS晶体管622可以(i)接通以将MR元件620a到620k连接在源极线与位线之间或(ii)断开以将MR元件620a到620k从源极线和位线分离。
返回参看图5,如果MR单元520用图6B中的串联耦合的MR单元520b实施,那么编程源532和534可以是电流源。如果MR单元520是用图6C中的并联耦合的MR单元520c实施,那么编程源532和534可以是电压源。
图5中的熵源110w可以如下操作。可以通过如下方式感测行i和列j中的给定MR单元520ij的状态:(i)激活行i的字线WLi以接通MR单元520ij的NMOS晶体管622,(ii)断开列j的开关522j到528j,和(iii)感测BLj和SLj线之间的电阻。可以通过如下方式将MR单元520ii的状态从“0”改变成“1”:(i)激活行i的字线WLi,(ii)向MR单元520ij施加列j的编程源532j,(iii)闭合列j的开关522i和528i,和(iv)断开列j的开关524j和526j。可以通过如下方式将MR单元520ij的状态从“1”改变成“0”:(i)激活行i的字线WLi,(ii)向MR单元520ij施加列j的编程源534j,(iii)闭合列j的开关524i和526i,和(iv)断开列j的开关522j和528j。通过激活这些MR元件的字线,可以并行地感测给定列中的多个MR元件。通过恰当地激活这些MR单元的控制线,可以在不同时钟循环中感测不同MR单元520。
在一个设计中,可以使用参考阵列来感测阵列510中的MR元件520的电阻和状态。在一个设计中,参考阵列可以与MR阵列510类似(例如,相同)。在另一设计中,参考阵列可以与MR阵列510不同。举例来说,阵列510中的MR元件可以与参考阵列中的MR元件不同,例如,由于不同设计、不同形状、大小、厚度等。也可用多电阻器而不是MR元件来实施参考阵列。
熵源可包含多个MR元件或单元(例如,如图5中所示),以便获得上述优点。此熵源可以用多种方式操作以便改善熵产生的性能。
在一个设计中,通过交错或多路复用多个MR元件(例如,数百或数千个MR元件)的输出,可以提高熵产生速率。举例来说,单个MR元件可以在10MHz的速率下感测,并且可以支持10MHz的熵产生速率。通过循序地感测1000个MR元件和交错这些MR元件的输出,可以获得10GHz的更高许多的熵产生速率。
在另一设计中,通过多路复用多个MR元件的输出,可以减少功率消耗和切换电流。举例来说,可以用100ns或更小的切换脉冲在10MHz的速率下感测单个MR元件,以便获得10MHz的熵产生速率。通过用1μs或更小的切换脉冲循序地感测10个MR元件并且交错这些MR元件的输出,可以获得相同的10MHz的熵产生速率。较长切换脉冲可以减少功率消耗。
在另一方面中,RN产生器可包含熵源和后处理模块,例如如图1中所示。熵源可以基于一个或一个以上MR元件产生第一随机值。后处理模块可以从熵源接收第一随机值,并且可以产生具有更好的随机性特性的第二随机值。后处理模块可以用多种方式实施,并且下文描述后处理模块的一些示范性设计。
图7A展示RN产生器100a的框图,RN产生器100a是图1中的RN产生器100的一个设计。在这个设计中,RN产生器100a包含熵源110和密码散列模块120a,密码散列模块120a是图1中的后处理模块120的一个设计。散列模块120a从熵源110接收第一随机值(例如,随机位)并且产生第二随机值。在一个设计中,散列模块120a从熵源110聚集L个随机位的每一块,以形成L位随机值,其中L可以是任何合适的整数值。散列模块120a接着基于密码/安全散列算法使多个L位随机值成为散列,并且提供N位散列值,其中N可以是任何合适的整数值。N位散列值通常也被称作散列摘要并且被提供为第二随机值。散列模块120a可以实施SHA-1(安全散列算法)、SHA-2(其包含SHA-224、SHA-256、SHA-384和SHA-512)、MD-4(消息摘要)、MD-5或此项技术中已知的其它某种安全散列算法。安全散列算法具有密码特性,使得输入消息与其摘要之间的函数是不可逆的,并且两个输入消息映射到相同摘要的可能性极小。安全散列算法可以接收任何长度的输入消息,并且可以提供固定长度的散列摘要。
图7B展示RN产生器100b的框图,RN产生器100b是图1中的RN产生器100的另一设计。在这个设计中,RN产生器100b包含K个熵源110a到110k和一个密码散列模块120b,密码散列模块120b是图1中的后处理模块120的另一设计。总的来说,K可以是大于一的任何整数值。使用多个熵源可以改善随机性。K个熵源110a到110k中的每一者可以用以下熵源实施:图2A中的熵源110x、图2B中的熵源110y、图3中的熵源110z、图5中的熵源110w或其它某个熵源。图7B中的每一熵源110可以基于一个或一个以上MR元件产生第一随机值(例如,随机位)的序列。
在散列模块120b内,K个移位寄存器720a到720k可以分别从K个熵源110a到110k接收第一随机值。每一移位寄存器720可以从相关联熵源110聚集Q个随机位的每一块,以形成Q位随机值,其中Q可以是大于一的任何整数值。散列模块120b可以从移位寄存器720a到720k接收Q位随机值,并且可以组合这些Q位随机值,以形成L位随机值。在一个设计中,散列模块120b可以从移位寄存器720a到720k聚集每一组K个Q位随机值,以获得一个L位随机值,其中K*Q=L。在另一设计中,散列模块120b可以将来自移位寄存器720a到720k的每一组K个Q位随机值与异或(XOR)函数组合,以获得一个L位随机值,其中Q=L。散列模块120b还可用其它方式组合来自移位寄存器720a到720k的每一组K个Q位随机值。在任何情况下,散列函数730都可以基于密码/安全散列算法使多个L位随机值成为散列,并且提供N位散列值,其中N可以是任何合适的整数值。
在一个设计中,散列函数730可以具有L位的宽输入宽度,其中L可以是散列函数的块大小,其对于SHA-256可以是256位。在另一设计中,散列函数730可以具有整数数目字节的输入宽度,例如,1、2、4或8个字节。可以使用移位寄存器720累加来自熵源110a到110k的第一随机值(例如,随机位),如图7B中所示。在又一设计中,散列函数730可以直接从熵源110a到110k接收第一随机值,并且可以省略移位寄存器720。
图8A展示RN产生器100c的框图,RN产生器100c是图1中的RN产生器100的又一设计。在这个设计中,RN产生器100c包含熵源110和循环冗余检查(CRC)模块120c,循环冗余检查模块120c是图1中的后处理模块120的另一设计。CRC模块120c从熵源110接收第一随机值(例如,随机位)并且产生第二随机值。CRC模块120c可以用线性反馈移位寄存器(LFSR)实施,线性反馈移位寄存器包括R个寄存器,其中R可以是任何整数值。所述R个寄存器可以基于产生器多顶式连接,产生器多顶式可以提供具有良好统计特性的输出。在一个设计中,可以用类似于向CRC模块提供的数据包的方式向CRC模块120c提供第一随机值。CRC模块120c可以在已经向CRC模块提供特定数目的第一随机值之后提供N位第二随机值,例如其方式类似于在已经向CRC模块提供整个数据包之后产生CRC,其中N≤R。还可使用来自熵源110的随机位为确定性伪随机位产生器提供种子,或基于错误检测码或其它某个位产生器产生位的模块。
图8B展示RN产生器100d的框图,RN产生器100d是图1中的RN产生器100的又一设计。在这个设计中,RN产生器100d包含多个(K个)熵源110a到110k和一个CRC模块120d,CRC模块120d是图1中的后处理模块120的又一设计。每一熵源110可以基于一个或一个以上MR元件产生一序列的第一随机值(例如,随机位)。
在图8B中展示的设计中,CRC模块120d包含K个异或门820a到820k和一个LFSR830。LFSR830可包含串联耦合的R个寄存器。在每一时钟循环中,R个寄存器的输出可以向左移位K个位。异或门820a到820k可以分别从K个熵源110a到110k接收第一随机值。每一异或门820还可接收LFSR830中的一个或一个以上位,其中所述一个或一个以上位是基于CRC模块120d实施的产生器多顶式确定的。每一异或门820可以执行所有输入位的模2加法,并且在每一时钟循环中提供1位输出。K个异或门820a到820k可以向LFSR830的前K个寄存器提供其输出。在一个设计中,CRC模块120d可以从熵源110a到110k接收第一随机值,并且在已经向CRC模块提供特定数目的第一随机值之后可以提供N位第二随机值,其中N≤R。
在一个示范性设计中,K可以等于4,R可以等于34,并且N可以等于32。四个熵源110可以向CRC模块120d内的四个异或门820提供其随机位。CRC模块120d还可包含34位LFSR830,并且可以实施如下产生器多顶式:
x33+x11+1=0。 等式(2)
在所述示范性设计中,第一异或门820a可以从第一熵源110a接收随机位,并且还接收LFSR830的位10和33。第二异或门820b可以从第二熵源110b接收随机位,并且还接收LFSR830的位9和32。第三异或门可以从第三熵源接收随机位,并且还接收LFSR830的位8和31。第四异或门可以从第四熵源接收随机位,并且还接收LFSR830的位7和30。第一到第四异或门可以分别向LFSR830的寄存器3、2、1和0提供其输出。在每一时钟循环中,LFSR830可以向左移位4位。在每16个或更多的时钟循环中(例如,在已经向LFSR830提供来自四个熵源的64或更多的随机位之后),可以由LFSR830的32个寄存器(例如,寄存器2到33)提供32位第二随机值。
图9展示RN产生器100e的框图,RN产生器100e是图1中的RN产生器100的又一设计。在这个设计中,RN产生器100e包含熵源110和后处理模块120e。后处理模块120e包含熵累加器122和密码模块124。熵累加器122可以接收和累加来自熵源110的第一随机值,并且提供中间随机值。熵累加器122可以基于多顶式产生器、代码等执行熵累加。密码模块124可以接收中间随机值并且提供第二随机值。密码模块124可以实施任何密码算法,例如联邦信息处理标准(Federal Information Processing Standards,FIPS)特别出版物800-90中列举的算法或FIPS140和其附件(其可公开获得)允许的其它算法。密码模块124还可实施所属领域的技术人员已知的其它某个密码算法。
图10展示RN产生器100f的框图,RN产生器100f是图1中的RN产生器100的又一设计。在这个设计中,RN产生器100f包含K个熵源110a到110k和一个组合器120f,组合器120f是图1中的后处理模块120的又一设计。K个熵源110a到110k可以产生第一随机值(例如,随机位)的K个序列。组合器120f可以从K个熵源110a到110k接收第一随机值的K个序列,并且可以产生第二随机值。在图10中展示的一个设计中,组合器120f可以用异或门126实施,异或门126具有接收第一随机值的K个序列的K个输入。在图10中未展示的另一设计中,组合器模块120f可以实施模M求和器,其中M可以是任何合适的值。
RN产生器100f可以用多种方式产生N位第二随机值。在一个设计中,在每一时钟循环中,可以用模2N对K个序列中的K个第一随机值进行求和,以便获得用于所述时钟循环的N位第二随机值。举例来说,如果N=2并且K≥4,那么在每一时钟循环中,可以用模4对来自K个熵源110a到110k的K个第一随机位进行求和,以便获得用于所述时钟循环的2位第二随机值。在另一设计中,在每一时钟循环中,可以用模2N对K个序列中的K个第一随机值进行求和,以便获得用于所述时钟循环的1位组合值。在N个时钟循环中,可以用组合器120f提供的N个组合值形成N位第二随机值。组合器120f还可用其它电路来实施。
图11展示RN产生器100g的框图,RN产生器100g是图1中的RN产生器100的又一设计。在这个设计中,RN产生器100g包含两个熵源110a和110b和一个流密码模块120g,流密码模块120g是图1中的后处理模块120的另一设计。每一熵源110基于一个或一个以上MR元件产生一序列的随机位。
流密码模块120g包含两个LFSR1120和1130和一个非线性函数1140,其共同地实施修改的K2流密码算法。LFSR1120实施第一产生器多顶式,并且包含串联耦合的五个Q位寄存器1122a到1122e,其中Q可以是大于一的任何整数值,例如,Q=8、16、32等。乘法器1124从最后一个寄存器1122e接收Q位值,并且将这个Q位值乘以系数α0。求和器1126从乘法器1124和寄存器1122b接收Q位值,基于有限场加法对所述两个Q位值进行求和,并且向寄存器1122a提供Q位结果。通过执行两个Q位值的逐位异或,可以获得两个Q位值的有限场加法。LFSR1130实施第二产生器多顶式,并且包含串联耦合的十一个Q位寄存器1132a到1122k。乘法器1134a从寄存器1132c接收Q位值,并且将这个Q位值乘以系数1或α3,所述系数是基于来自熵源110a的随机位选择的。乘法器1134b从寄存器1132k接收Q位值,并且将这个Q位值乘以系数α1或α2,所述系数是基于来自熵源110b的随机位选择的。求和器1136a从乘法器1134b和寄存器1122j接收Q位值并且对其进行求和。求和器1136b从求和器1136a和寄存器1132e接收Q位值并且对其进行求和。求和器1136c从乘法器1134a和求和器1136b接收Q位值并且对其进行求和。每一求和器1136基于有限场加法对其两个Q位值进行求和,并且提供Q位结果。
非线性函数1140从LFSR1120的寄存器1122a和1122e接收Q位值,并且从LFSR1130的寄存器1132a、1132b、1132g和1132k接收Q位值。非线性函数1140基于非线性函数处理接收到的Q位值,并且提供N位第二随机值。可以将第二随机值用作密码密钥,以便实现加密、解密和/或其它密码和非密码功能。清本(Kiyomoto)等人在可以公开获得的标题为“使用时钟控制的面向字的流密码(A Word-Oriented Stream CipherUsing Clock Control)”的论文中详细描述了非线性函数和K2流密码算法。
在图11中展示的设计中,使用一个熵源110a动态地选择乘法器1134a的系数,并且使用另一熵源110b动态地选择乘法器1134b的系数。在这个设计中,根据来自熵源110a和110b的随机值,LFSR1130的反馈多顶式具有四个可能值。在另一设计中,可使用单个熵源选择仅仅乘法器1134a的系数或仅仅乘法器1134b的系数或乘法器1134a和1134b两者的系数。举例来说,来自熵源的偶数索引的随机位可以选择乘法器1134a的系数,并且来自熵源的奇数索引的随机位可以选择乘法器1134b的系数。在又一设计中,多个熵源可以组合(例如,用异或运算)并且用于选择乘法器1134a的系数。或者或另外,多个熵源可以组合并且用于选择乘法器1134b的系数。使用多个熵源来选择乘法器1134a和/或1134b的系数,可以改善对于各个MR元件故障的耐受性,并且还可以使得每一状态“0”或“1”的百分比更加接近50%。还可使用一个或一个以上熵源用其它方式动态地选择LFSR1130的一个或一个以上乘法器的系数。
来自一个或一个以上熵源的随机值也可用其它方式更改LFSR1130的操作和/或状态。在一个设计中,随机值可以与LFSR中的所选位组合(例如,用异或运算)。在另一设计中,随机值可以选择LFSR中的不同分接头。在又一设计中,寄存器(例如,移位寄存器)可以从Q个熵源接受许多位。当寄存器装满时,可以将来自LFSR的一组位中的每一位替换成其先前值与寄存器的所选位进行异或运算后的结果。
图12展示RN产生器100h的框图,RN产生器100h是图1中的RN产生器100的又一设计。在这个设计中,RN产生器100h包含Q个熵源110a到110q和一个流密码模块120h,流密码模块120h是图1中的后处理模块120的另一设计,其中Q可以是大于一的任何整数值。熵源110a到110q产生随机位的Q个序列。在图12中展示的设计中,串行/并行(S/P)转换器1210接收所述随机位的Q个序列,并且提供Q位随机值的序列。每一Q位随机值可包含来自所述随机位的Q个序列中的每一者的一位。S/P转换器1210可以用直通线来实施。在图12中未展示的另一设计中,S/P转换器1210从单个熵源110接收随机位的单个序列,并且提供Q位随机值的序列。每一Q位随机值可以基于随机位的单个序列中的Q位形成。总的来说,S/P转换器1210可以从一个或一个以上熵源接收随机位的一个或一个以上序列,并且可以提供Q位随机值的序列。
流密码模块120h实施修改的SNOW3G流密码算法,并且包含LFSR1220、有限状态机(FSM)1230和求和器1240和1242。LFSR1220包含串联耦合的16个Q位寄存器1222a到1222p,并且实施产生器多顶式α.x15+x13+α-1.x4+1=0。有限场乘法器1224a从最后一个寄存器1222p接收Q位值,并且将这个Q位值乘以系数α0。有限场乘法器1224b从寄存器1222e接收Q位值,并且将这个Q位值乘以系数α-1。求和器1226a从乘法器1224a和FSM1230接收Q位值并且对其进行求和。求和器1226b从求和器1226a和寄存器1222n接收Q位值并且对其进行求和。求和器1226c从求和器1226b和乘法器1224b接收Q位值并且对其进行求和。每一求和器1226基于有限场加法对其两个Q位值进行求和,并且提供Q位结果。
FSM1230包含三个Q位寄存器1232a到1232c和两个置换盒(S盒)1234a和1234b。整数求和器1236a从寄存器1222a和1232a接收Q位值,并且基于加法模2Q对其进行求和。求和器1238a从求和器1236a和寄存器1232b接收Q位值且对其进行求和,并且提供其Q位输出作为FSM1230的输出。求和器1242从寄存器1222k和S/P转换器1210接收Q位值,并且对其进行求和。求和器1238b从求和器1242和寄存器1232c接收Q位值并且对其进行求和。求和器1238和1242中的每一者基于有限场加法对其两个Q位值进行求和,并且提供Q位结果。整数求和器1236b从求和器1238b和寄存器1232b接收Q位值并且基于加法模2Q对其进行求和,并且向寄存器1232a提供其Q位输出。求和器1240对来自寄存器1222p和FSM1230的Q位值进行求和,并且提供N位第二随机值,其中N≤Q。S盒1234a接收寄存器1232a的输出,并且向寄存器1232b提供输入。S盒1234b接收寄存器1232b的输出,并且向寄存器1232c提供输入。每一S盒1234基于预定义的函数向Q位输出映射Q位输入。
在一个设计中,可以在多个时钟循环中操作FSM1230和求和器1242以便使LFSR1220初始化。可以接着操作LFSR、FSM1230和求和器1240以便产生第二随机值。RN产生器100h也可用其它方式操作。
在一个设计中,熵源110和S/P转换器1210可以基于与用于LFSR1220和FSM1230相同的时钟操作。在另一设计中,LFSR1220和FSM1230可以基于第一时钟操作,并且熵源110和S/P转换器1210可以基于比第一时钟快的第二时钟操作。如果每一时钟循环使LFSR1220和FSM1230步进一次,那么这个设计可能尤其适用。
图11和12展示不断地将熵注入到RN产生器中的两个实例。在图11中,RN产生器100g接受两个随机位并且提供32个随机位。因此,根据NIST定义,RN产生器100g未取得非确定性随机位产生器(NRBG)的资格。在图12中,RN产生器100h从MR装置接受大约等于输出速率的熵。因此,根据NIST定义,RN产生器100h可以取得NRBG的资格。
图11和12展示基于一个或一个以上熵源修改两个示范性密码函数(例如,流密码算法)的内部状态的两个设计,其中每一熵源可包含一个或一个以上MR元件。除了图11和12中给出的特定实例之外,还可基于一个或一个以上熵源用其它方式修改密码函数的操作。还可使用熵源修改其它密码函数的内部状态和/或操作。
上文已经描述了后处理模块120的多种示范性设计。总的来说,后处理电路120可以从单个熵源串行接收第一随机值(例如,如图7A、8A或9中所示),或者从多个熵源并行接收第一随机值(例如,如图7B、8B、10、11或12中所示)。后处理模块120可以是可以在统计上或计算上组合第一随机值的熵提取器。统计熵提取器可以基于模型的假设(例如,假设某些事件的例子是独立的并且相同地分布)而操作,并且可以产生未加偏置并且不相关的而且相对于真实随机源在统计上不可区分的随机值。计算熵提取器可以将第一随机值馈送到例如散列函数等函数中,并且可以作为随机位的块呈现输出。如果所选散列函数接近地近似理想散列函数,那么计算熵提取器应当能够基于从一个或一个以上MR元件导出的第一随机值产生相对于真实随机源不可区分的第二随机值。
在另一方面中,可以使用检测电路检测对于包括一个或一个以上MR元件的熵源的窜改。MR元件具有基于磁场而变化的可变电阻。举例来说,STT-MTJ装置的电阻可以基于两个磁性材料层的相对磁化而变化,如上所述。MR元件可能会受到例如放置在非常靠近MR元件之处的磁体的窜改。可以如下文所描述检测对于MR元件的窜改。
图13展示可用于检测对于MR元件1320的窜改的模拟篡改检测电路1300的示意图。篡改检测电路1300包含熵源1310和检测模块1330。在熵源1310内,电阻器1312的一个末端耦合到第一参考电压(VREF1),并且另一末端耦合到节点A。MR元件1320的一个末端耦合到节点A,并且另一末端耦合到接地电路。
在检测模块1330内,读出放大器1332的输入耦合到节点A,并且其输出耦合到电阻器1334的一个末端。读出放大器1332还可接收参考电压,如图2A或2B中所示,但为简单起见未在图13中展示。电阻器1334的另一末端耦合到节点B。电容器1336耦合在节点B与接地电路之间。第一比较器1340a的非反相输入耦合到节点B,其反相输入接收第二参考电压(VREF2),并且其输出耦合到或门1350的第一输入。第二比较器1340b的反相输入耦合到节点B,其非反相输入接收第三参考电压(VREF3),并且其输出耦合到或门1350的第二输入。或门1350提供误差信号。VREF2电压高于VREF3电压。VREF2和VREF3电压定义在正常操作下用于MR元件1320的电阻值的目标范围。篡改检测器1360从或门1350接收误差信号,如下文所描述确定MR元件1320是否已被窜改,并且提供篡改指示。
读出放大器1332感测节点A处的电压(VA),其取决于MR元件1320的电阻。包括电阻器1334和电容器1336的低通滤波器对感测到的电压进行滤波。比较器1340a将节点B处的经滤波的电压(VB)与VREF2电压比较,并且比较器1340b还将VB与VREF3电压比较。当比较器1340a或1340b的输出为高时,误差信号处在逻辑高。
将MR元件1320用作传感器来检测外部操纵MR元件的操作的尝试,例如,使用强磁场或温度的尝试。在一个设计中,MR元件1320可以不同于熵源中使用的MR元件。在另一设计中,熵源中使用的MR元件还可用作篡改检测电路1300中的MR元件1320。在任何情况下,VB电压都与读出放大器1332的输出的工作循环线性相关,其中工作循环取决于输出位是“1”的百分率。比较器1340a检测工作循环是否超出通过VREF2电压确定的高阈值。比较器1340b检测工作循环是否低于通过VREF3电压确定的低阈值。当工作循环不在高阈值和低阈值以内时,误差信号处在逻辑高。虽然图13中未展示,但是可以向触发器提供或门1350的输出,触发器可以提供误差信号。在任何情况下,误差信号都可包含基于检测到的工作循环所确定的“1”和“0”的序列,检测到的工作循环取决于MR元件1320的感测到的电阻。
模块1360可以基于误差信号用多种方式检测对于MR元件1320的窜改。在一个设计中,模块1360可以对预定时间间隔上误差信号中的”1”游程和”0”游程进行计数。如果”1”游程的计数或”0”游程的计数过小或过大,那么模块1360可以声明窜改。在另一设计中,模块1360可以对预定时间间隔中预定模式(例如,“11”、“10”、“01”和“11”的模式)的出现次数进行计数。如果任何模式的计数过小或过大,那么模块1360可以声明窜改。在又一设计中,模块1360可以在误差信号中向压缩算法提供“1”和“0”的序列。如果压缩算法的输出速率过小,那么模块1360可以声明窜改。模块1360还可基于误差信号用其它方式检测对于MR元件1320的窜改。
在另一设计中,读出放大器1332的输出可以例如使用连接到读出放大器1332的输出的触发器而数字化。可以用模拟低通滤波器对读出放大器1332的数字化输出进行滤波,所述模拟低通滤波器可以用电阻器1334和电容器1336形成。低通滤波器可以执行数字化输出的平均化。比较器1340a和1340b可以将经滤波的信号与高阈值和低阈值比较。如果经滤波的信号高于高阈值或低于低阈值,那么可以将来自或门1350的误差信号设定成逻辑高,这指示窜改。
也可使用图3中的熵源110c(具有或不具有反馈电路)来检测窜改。举例来说,可以确定通过读出放大器330提供的“1”值与“0”值的比率,并且将此比率与低阈值和高阈值比较。可以基于所述比率的所允许值的窗来定义高阈值和低阈值,这个窗应当围绕50%为中心。当所述比率超出高阈值或降低到低阈值以下时,可以检测窜改。
在一个设计中,设备(例如,IC、无线装置、电子模块等)可包含MR元件和感测电路,例如,如图2A或2B中所示。可以向MR元件(例如,MR元件210)施加静态电流,并且MR元件可以具有基于MR元件的磁化而确定的可变电阻。MR元件可包括STT-MTJ装置或其它某种类型的具有与磁化相对的可变电阻的装置。感测电路可以感测MR元件的电阻,并且基于MR元件的感测到的电阻提供随机值。
在一个设计中,感测电路可包括读出放大器(例如,图2A中的读出放大器240),其第一输入耦合到MR元件,第二输入接收参考电压,并且输出提供用于产生第一随机值的感测到的值。感测电路可以进一步包括与MR元件串联耦合的电阻器(例如,电阻器210),其中电阻器和MR元件的组合形成电阻性分压器。在一个设计中,可以通过参考电压产生器产生参考电压(例如,图2A中的VREF2电压)。在另一设计中,可以基于电阻性分压器产生参考电压(例如,图2B中的VY电压),电阻性分压器可以与MR元件形成桥接电路,并且可用于测量MR元件的电阻(例如,如图2B中所示)。在又一设计中,第二MR元件可以耦合到读出放大器的第二输入,并且可用于产生参考电压。
在一个设计中,电阻器(例如,电阻器210)可以耦合在MR元件与电压之间,并且可以提供用于所述MR元件的静态电流(例如,如图2A和2B中所示)。在另一设计中,电流源可以耦合到MR元件,并且可以提供用于MR元件的静态电流。
在一个设计中,感测电路可以进一步包括耦合到读出放大器的触发器(例如,触发器250)。触发器可以从读出放大器接收感测到的值,并且提供随机值。用触发器锁存感测到的值,可以确保随机值可以符合接收随机值的数字电路的设置时间和保持时间。
在一个设计中,至少一个额外MR元件可以与所述MR元件串联耦合(例如,如图6B中所示)或并联耦合(例如,如图6C中所示)。使用多个MR元件可以改善熵产生以及可靠性。
在另一设计中,设备(例如,IC、无线装置、电子模块等)可包含熵源和后处理模块,例如,如图1中所示。熵源可包括至少一个MR元件,并且可以基于至少一个MR元件提供第一随机值。后处理模块可以接收和处理第一随机值,并且提供第二随机值。
在一个设计中,后处理模块可以从单个熵源接收第一随机值的单个序列,并且可以基于第一随机值的这个单个序列产生第二随机值。在另一设计中,后处理模块可以从多个熵源接收第一随机值的多个序列,并且可以基于第一随机值的所述多个序列产生第二随机值。
在一个设计中,后处理模块可以使第一随机值成为散列(例如,基于如图7A中所示的密码散列函数),并且提供第二随机值。在另一设计中,后处理模块可包含多个移位寄存器和一个散列模块,例如,如图7B中所示。所述多个移位寄存器可以从包含所述熵源在内的多个熵源接收第一随机值的多个序列。散列模块可以从所述多个移位寄存器接收中间值的多个序列,使所述中间值变成散列,并且提供第二随机值。每一第一随机值可包括1位值,每一中间值可包括Q位值,并且每一第二随机值可包括N位值,其中Q和N可以大于一。在一个设计中,每一第二随机值的位的总数可以小于用于产生第二随机值的所有第一随机值的位的总数,使得输入位的总数大于输出位的总数。
在又一设计中,后处理模块可以基于第一随机值和错误检测码(例如,如图8A中所示的CRC)产生第二随机值。后处理模块可包含实施产生器多顶式的LFSR。LFSR可以接收第一随机值,并且提供第二随机值。
在又一设计中,后处理模块可包含多个串联耦合的寄存器(例如,图8B中的寄存器830)和至少两个组合器。每一组合器可以是异或门(例如,如图8B中所示)、模2加法器等。至少两个组合器可以耦合到所述多个寄存器中的至少两个寄存器,并且可以从至少两个熵源接收第一随机值的至少两个序列。所述多个寄存器和所述至少两个组合器可以用至少两个反馈位实施产生器多顶式。
在又一设计中,后处理模块可包含熵累加器和密码模块,例如,如图9中所示。熵累加器可以接收第一随机值,并且提供中间随机值。密码模块可以接收中间随机值并且提供第二随机值。密码模块可以基于密码散列函数、流密码算法等产生第二随机值。
在又一设计中,后处理模块可包含组合器。组合器可包括如图10中所示的异或门,或模M求和器(其中M是大于一的整数),或其它某个电路。组合器可以从多个熵源接收第一随机值的多个序列并且对其进行处理,并且提供第二随机值。组合器可以对第一随机值的所述多个序列中的多个第一随机值执行模M求和,以便获得相应第二随机值。
在又一设计中,后处理模块可包含流密码产生器,例如,如图11或12中所示。流密码产生器可以产生第二随机值。第一随机值可以更改流密码产生器的操作和/或内部状态。在一个设计中,流密码产生器可以基于K2流密码算法产生第二随机值,例如,如图11中所示。第一随机值可以选择K2流密码算法的系数。在另一设计中,流密码产生器可以基于SNOW3G流密码算法产生第二随机值,例如,如图12中所示。第一随机值可以改变SNOW3G流密码算法的内部状态。
在一个设计中,熵源可以是低能量熵源,并且可包括偏置电路和感测电路,例如,如图2A或2B中所示。偏置电路(例如,电阻器210)可以提供用于至少一个MR元件的静态电流。感测电路(例如,感测电路230)可以感测至少一个MR元件的电阻,并且基于感测到的电阻提供第一随机值。在另一设计中,熵源可以是高能量熵源,并且可包括控制电路和感测电路,例如,如图3中所示。控制电路可以产生电流或电压脉冲以改变至少一个MR元件的状态。感测电路可以感测至少一个MR元件的电阻,并且基于感测到的电阻提供随机值。
在一个设计中,第一随机值可包括1位值,并且第二随机值可包括多位值。总的来说,第一和第二随机值可以各自包括任何数目位的值。
熵源可以在硬件中实施,例如,在IC、电子模块等上实施。后处理模块可以用多种方式在硬件、软件和/或固件中实施,如下文所描述。
在又一设计中,设备(例如,IC、无线装置、电子模块等)可包含MR单元阵列、感测电路和多个编程源,例如如图5中所示。MR单元阵列(例如,MR阵列510)可以布置成多个行和多个列。多个字线可以耦合到MR单元的所述多个行。多个选择线可以耦合到MR单元的所述多个列。多个位线也可耦合到MR单元的所述多个列。感测电路(例如,感测电路550)可以耦合到所述多个选择线,并且可以感测阵列中的所选MR单元的电阻,且提供随机值。所述多个编程源(例如,编程源532和534)可以耦合到所述多个选择线,并且可以提供脉冲以改变阵列中的MR单元的状态。所述多个编程源可包含(i)第一编程源(例如,编程源532a),当所选MR单元要在第一方向上切换时,第一编程源耦合到所选MR单元;和(ii)第二编程源(例如,编程源534a),当所选MR单元要在第二方向上切换时,第二编程源耦合到所选MR单元。
每一MR单元可包含至少一个MR元件。在一个设计中,每一MR单元可包含单个MR元件,例如,如图6A中所示。在另一设计中,每一MR单元可包含多个串联耦合(例如,如图6B中所示)或并联耦合(例如,如图6C中所示)的MR元件。在一个设计中,阵列中的MR单元可包括相同MR元件。在另一设计中,阵列中的MR单元可包括不同设计、形状、大小、厚度等的MR元件,以便改善IC产量。
在一个设计中,所选MR单元可以在单个操作中编程,并且可以在所述单个操作中被施加来自第一或第二编程源的电流脉冲或电压脉冲。在另一设计中,所选MR单元可以在多个操作中编程,并且可以在每一操作中被施加来自第一或第二编程源的电流脉冲或电压脉冲。在一个设计中,可以使用至少一个MR单元来提供用于感测电路的参考电压。
所述多个编程源可以提供电流脉冲或电压源,以便改变阵列中的MR单元的状态。在一个设计中,第一和第二编程源中的至少一者可以提供基于所选MR单元的目标切换概率而确定的可变振幅的脉冲。在另一设计中,第一和第二编程源中的至少一者可以提供基于目标切换概率而确定的可变持续时间的脉冲。在又一设计中,第一和第二编程源中的至少一者可以提供基于目标切换概率而确定的可变振幅和可变持续时间的脉冲。在一个设计中,所述多个编程源可以具有单独地配置的脉冲振幅和/或脉冲持续时间。
在一个设计中,可以用第一速率选择和感测阵列中的MR单元,以便用第二速率产生随机值,第二速率可能高于第一速率。MR单元可以交错以便用更高速率获得随机值。
在又一设计中,设备(例如,IC、无线装置、电子模块等)可包含熵源和检测模块,例如,如图13中所示。熵源可包含至少一个MR元件(例如,至少一个STT-MTJ装置),并且可以基于至少一个MR元件提供第一值。检测模块可以接收和处理第一值,并且可以提供对于熵源的窜改的指示。
检测模块可以用多种方式检测窜改。在一个设计中,检测模块可以基于第一值中的“0”与“1”的百分比来检测对于熵源的窜改。在另一设计中,检测模块可以基于第一值中的“0”游程和“1”游程来检测对于熵源的窜改。在又一设计中,检测模块可以基于“0”和“1”的预定模式的出现次数来检测对于熵源的窜改。在又一设计中,检测模块可以执行第一值的压缩,并且可以基于压缩的输出速率而检测对于熵源的窜改。检测模块也可以用其它方式检测窜改。
图14展示用于产生随机值的过程1400的设计。可以向MR元件施加静态电流,MR元件具有基于MR元件的磁化而确定的可变电阻(框1412)。可以用施加于MR元件的静态电流来感测MR元件的电阻(框1414)。可以基于MR元件的感测到的电阻产生第一随机值(框1416)。在框1414和1416的一个设计中,可以将MR元件的电阻与参考值比较以便获得感测到的值。可以接着锁存感测到的值以便获得第一随机值。
需要随机值的应用程序可以直接使用第一随机值。或者,可以对第一随机值进行处理以获得第二随机值(框1418)。举例来说,可以基于密码散列函数、错误检测码、流密码算法等对第一随机值进行处理。
在一个设计中,可以通过感测包含所述MR元件在内的多个MR元件的电阻而产生第一随机值的多个序列。可以对第一随机值的所述多个序列进行处理(例如,使用如图7B中所示的散列函数、如图8B中所示的错误检测码或如图10中所示的组合器)以获得第二随机值。
来自包括至少一个MR元件的熵源的第一随机值可以具有以下特性中的一者或一者以上:
●即使在无限计算能力下的某种不可预测性,
●对方不知道,
●不受对方影响,
●不必未加偏置或不相关,以及
●熵可以小于输出位速率。
来自包括熵源和后处理模块的RN产生器的第二随机值可以具有以下特性中的一者或一者以上:
●即使在无限计算能力下也不可预测,
●对方不知道,
●不受对方影响,
●可忽略的偏置和相关,以及
●熵等于或非常接近输出位速率。
使用至少一个MR元件产生用于RN产生器的第一随机值可以提供多种优点。首先,MR元件可以比其它熵源具有更好的特性,并且可用于建立良好的熵源。MR元件的电阻变化形成随机过程。MR元件的特征可以在于基于MR元件的物理性质的简单的可检验模型。可以基于MR元件的测量值估计模型的参数。可以基于测量值、计算机模拟等检验MR元件以遵守模型。可以不使用高增益装置(但用以感测电阻的读出放大器除外)为MR元件建立熵源。熵源可以是低成本和低功率的,可以占据较小电路面积,并且可以易于制造在半导体装置上。熵源可以具有快速产生速率,并且可能能够以高速率(可能在GHz范围内)提供第一随机值。可以对来自熵源的第一随机值进行调节或后处理,以便改善随机性。
可以在多种电子装置中使用熵源和包括至少一个MR元件的RN产生器,如上所述。下文描述熵源和RN产生器在无线装置中的使用。
图15展示无线装置1500的框图,无线装置1500可包含一个或一个以上熵源和/或一个或一个以上RN产生器。无线装置1500可以是蜂窝电话、智能电话、平板电脑、PDA、膝上型计算机、迷你笔记本、智能本、终端、手持机等。无线装置1500可以经由一个或一个以上无线通信网络支持通信,一个或一个以上无线通信网络可包含码分多址(CDMA)网络、全球移动通信系统(GSM)网络、长期演进(LTE)网络、无线局域网(WLAN)等。
无线装置1500可以经由接收路径和发射路径支持双向通信。在接收路径中,基站和/或其它装置发射的信号可以被天线1512接收,并且被提供给接收器(RCVR)1514。接收器1514可以对接收到的信号进行调节和数字化,并且向数字区段1520提供输入样本以便进行进一步处理。在发射路径中,发射器(TMTR)1516可以从数字区段1520接收有待发射的数据。发射器1516可以处理和调节数据,并且可以产生经调制信号,经调制信号可以经由天线1512被发射到基站和/或其它装置。
数字区段1520可包含多种处理、接口和存储器模块,例如,举例来说,调制解调器处理器1522、中央处理单元(CPU)/精简指令集计算机(RISC)1524、主控制器1526、静态随机存取存储器(SRAM)1528、安全模块1530、只读存储器(ROM)1532、与非闪存控制器1534和同步动态RAM(SDRAM)控制器1536,所有这些装置都可以经由一个或一个以上总线1560彼此通信。调制解调器处理器1522可以执行用于数据发射和接收的处理,例如,编码、调制、解调、解码等。CPU/RISC1524可以执行用于多种应用(例如,语音呼叫、网络浏览、多媒体、游戏、用户界面、定位等)的通用处理。主控制器1526可以指导数字区段1520内的多种单元的操作。SRAM1528可以存储数字区段1520内的控制器和处理器所使用的程序代码和数据。ROM1532可以存储用于无线装置1500的启动代码和/或其它代码和数据。与非闪存控制器1534可以便于在与非闪存1544与数字区段1520之间传送数据。SDRAM控制器1536可以便于在SDRAM1546与数字区段1520之间传送数据。
安全模块1530可以安全地存储敏感信息(例如,个人信息、企业信息、口令等)和/或装置1500的其它信息。安全模块1530可包含熵源和/或RN产生器1540以产生随机值。RN产生器1540可包含后处理电路,以从熵源1540接收第一随机值并且产生第二随机值。安全模块1530可以实施密码算法,所述密码算法可以使用熵源和/或RN产生器1540所产生的随机值。安全模块1530还可向无线装置1500内的其它模块提供随机值。无线装置1500内的其它模块和处理器也可包含熵源和/或RN产生器以产生随机值。例如处理器1524等处理器也可包含RN产生器(例如,供在处理器上运行的软件使用)。
总的来说,数字区段1520可包含任何数目的处理、接口和存储器模块。数字区段1520还可实施有一个或一个以上数字信号处理器(DSP)、微处理器、RISC处理器等。可以在一个或一个以上专用集成电路(ASIC)和/或某种其它类型的集成电路(IC)上制造数字区段1520。
所属领域的技术人员将理解,可使用多种不同技艺和技术中的任一种来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或者其任何组合来表示整个以上描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
所属领域的技术人员将进一步了解,结合本文中的揭示内容描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和外加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本发明的范围。
因而,结合本文中的揭示内容描述的各种说明性逻辑块、模块和电路可以用通用处理器、DSP、ASIC、现场可编程门阵列(FPGA)或经设计以执行本文所述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器与DSP核心的联合,或任何其它此配置。
结合本文中的揭示内容而描述的方法或算法的步骤可直接在硬件中、由处理器执行的软件模块中或此两者的组合中体现。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在ASIC中。ASIC可驻留在用户终端中。在替代例中,处理器和存储媒体可作为离散组件驻留在用户终端中。
在一个或一个以上示范性设计中,所描述的功能可在硬件、软件、固体或其任何组合中实施。如果在软件中实施,则可将功能作为一个或一个以上指令或代码而存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体包含计算机存储媒体与包含促进将计算机程序从一处传送到另一处的任何媒体的通信媒体两者。存储媒体可以是可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,这些计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或任何其它可以用于运载或存储指令或数据结构的形式的期望程序代码装置并且可以由通用或专用计算机或通用或专用处理器存取的媒体。而且,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或无线技术(例如红外线、无线电和微波)从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外线、无线电和微波)包含在媒体的定义中。如本文所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
提供对本发明的先前描述以使得所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将易于了解对本发明的各种修改,且本文中界定的一般原理可应用于其它变体而不脱离本发明的精神或范围。因此,本发明并不希望限于本文中所描述的实例和设计,而应被赋予与本文中所揭示的原理和新颖特征相一致的最广范围。
Claims (56)
1.一种设备,其包括:
磁阻MR元件,其被施加静态电流,并且具有基于所述MR元件的磁化而确定的可变电阻;以及
感测电路,其经配置以感测所述MR元件的所述电阻,并且基于所述MR元件的所述感测到的电阻提供随机值。
2.根据权利要求1所述的设备,所述MR元件包括自旋力矩转移STT磁性隧道结MTJ装置。
3.根据权利要求1所述的设备,所述感测电路包括:
读出放大器,其具有耦合到所述MR元件的第一输入、接收参考电压的第二输入和提供用于产生第一随机值的感测到的值的输出。
4.根据权利要求3所述的设备,其进一步包括:
电阻器,其与所述MR元件串联耦合,并且电阻器与所述MR元件形成电阻性分压器。
5.根据权利要求3所述的设备,其进一步包括:
第二MR元件,其耦合到所述读出放大器的所述第二输入。
6.根据权利要求5所述的设备,其中所述MR元件和所述第二MR元件具有不同形状或不同大小或不同厚度或其组合。
7.根据权利要求3所述的设备,其进一步包括:
电流源,其耦合到所述MR元件并且经配置以提供用于测量所述MR元件的所述电阻的所述静态电流。
8.根据权利要求3所述的设备,所述感测电路进一步包括:
触发器,其耦合到所述读出放大器并且经配置以接收所述感测到的值且提供所述随机值。
9.根据权利要求1所述的设备,其进一步包括:
至少一个额外MR元件,其与所述MR元件串联或并联耦合。
10.一种设备,其包括:
熵源,其包括至少一个磁阻MR元件,并且经配置以基于所述至少一个MR元件提供第一随机值;以及
后处理模块,其经配置以接收和处理所述第一随机值,并且提供第二随机值。
11.根据权利要求10所述的设备,其中所述后处理模块经配置以使所述第一随机值成为散列并且提供所述第二随机值。
12.根据权利要求11所述的设备,其中所述后处理模块经配置以基于密码散列函数使所述第一随机值成为散列。
13.根据权利要求10所述的设备,其中每一第二随机值的位的总数大于用于产生所述第二随机值的所有第一随机值的位的总数。
14.根据权利要求10所述的设备,所述后处理模块包括:
多个移位寄存器,其经配置以从包含所述熵源在内的多个熵源接收多个第一随机值序列;以及
散列模块,其经配置以从所述多个移位寄存器接收多个中间值序列,使所述中间值成为散列,并且提供所述第二随机值。
15.根据权利要求14所述的设备,其中每一第一随机值包括一1位值,每一中间值包括一Q位值,并且每一第二随机值包括一N位值,其中Q和N各自大于一。
16.根据权利要求10所述的设备,其中所述后处理模块经配置以基于所述第一随机值和错误检测码产生所述第二随机值。
17.根据权利要求16所述的设备,其中所述错误检测码包括循环冗余检查CRC。
18.根据权利要求10所述的设备,所述后处理模块包括:
线性反馈移位寄存器LFSR,其实施产生器多顶式并且经配置以接收所述第一随机值和提供所述第二随机值。
19.根据权利要求10所述的设备,所述后处理模块包括:
多个寄存器,其串联耦合;以及
至少两个组合器,其耦合到所述多个寄存器中的至少两个寄存器,并且经配置以从至少两个熵源接收至少两个第一随机值序列,所述多个寄存器和所述至少两个组合器用至少两个反馈位实施产生器多顶式,并且所述至少两个熵源包含所述熵源。
20.根据权利要求10所述的设备,所述后处理模块包括:
熵累加器,其经配置以接收所述第一随机值并且提供中间随机值;以及
密码模块,其经配置以接收所述中间随机值并且提供第二随机值。
21.根据权利要求10所述的设备,所述后处理模块包括:
组合器,其经配置以从多个熵源接收多个第一随机值序列且对其进行处理,并且提供所述第二随机值,所述多个熵源包含所述熵源。
22.根据权利要求21所述的设备,所述组合器包括异或XOR电路。
23.根据权利要求21所述的设备,其中所述组合器经配置以对所述多个第一随机值序列中的多个第一随机值执行模M求和,以便获得相应的第二随机值,其中M是大于一的整数。
24.根据权利要求10所述的设备,所述后处理模块包括:
流密码产生器,其经配置以产生所述第二随机值,所述第一随机值更改所述流密码产生器的操作或内部状态。
25.根据权利要求24所述的设备,其中所述流密码产生器经配置以基于流密码算法产生所述第二随机值,所述第一随机值选择所述流密码算法的系数。
26.根据权利要求24所述的设备,其中所述流密码产生器经配置以基于流密码算法产生所述第二随机值,所述第一随机值改变所述流密码产生器的所述内部状态。
27.根据权利要求10所述的设备,其中所述第一随机值包括1位随机值,并且所述第二随机值包括多位随机值。
28.根据权利要求10所述的设备,所述熵源包括:
偏置电路,其经配置以为所述至少一个MR元件提供静态电流;以及
感测电路,其经配置以感测所述至少一个MR元件的电阻,并且基于所述感测到的电阻提供随机值。
29.根据权利要求10所述的设备,所述熵源包括:
电路,其经配置以产生电流或电压脉冲以改变所述至少一个MR元件的状态;以及
感测电路,其经配置以感测所述至少一个MR元件的电阻,并且基于所述感测到的电阻提供随机值。
30.一种设备,其包括:
磁阻MR单元阵列,其布置成多个行和多个列,每一MR单元包括至少一个MR元件;
多个字线,其耦合到MR单元的所述多个行;
多个选择线,其耦合到MR单元的所述多个列;
感测电路,其耦合到所述多个选择线,并且经配置以感测所述阵列中的所选MR单元的电阻且提供随机值;以及
多个编程源,其耦合到所述多个选择线,并且经配置以提供脉冲以改变所述阵列中的所述MR单元的状态,所述多个编程源包含
第一编程源,当所述所选MR单元要在第一方向上切换时,所述第一编程源耦合到所述所选MR单元;以及
第二编程源,当所述所选MR单元要在第二方向上切换时,所述第二编程源耦合到所述所选MR单元。
31.根据权利要求30所述的设备,其中所述多个编程源经配置以提供电流脉冲或电压脉冲以改变所述阵列中的所述MR单元的所述状态。
32.根据权利要求30所述的设备,其中所述第一和第二编程源中的至少一者经配置以提供基于所述所选MR单元的目标切换概率而确定的可变振幅或可变脉冲持续时间或可变振幅和可变脉冲持续时间两者的脉冲。
33.根据权利要求30所述的设备,其中所述多个编程源具有单独地配置的脉冲振幅或脉冲持续时间或脉冲振幅和脉冲持续时间两者。
34.根据权利要求30所述的设备,其中所述所选MR单元在单个操作中进行编程,并且在所述单个操作中所述所选MR单元被施加来自所述第一或第二编程源的电流脉冲或电压脉冲。
35.根据权利要求30所述的设备,其中所述所选MR单元在多个操作中进行编程,并且在所述多个操作中的每一者中所述所选MR单元被施加来自所述第一或第二编程源的电流脉冲或电压脉冲。
36.根据权利要求30所述的设备,其中以第一速率选择和感测所述阵列中的所述MR单元以便以高于所述第一速率的第二速率产生随机值。
37.根据权利要求30所述的设备,其中每一MR单元包含串联耦合的多个MR元件。
38.根据权利要求30所述的设备,其中每一MR单元包含并联耦合的多个MR元件。
39.根据权利要求38所述的设备,其中每一MR单元中的所述多个MR元件具有耦合在一起的自由层和也耦合在一起的固定层。
40.根据权利要求30所述的设备,其进一步包括:
至少一个MR单元,其用于为所述感测电路提供参考电压。
41.根据权利要求30所述的设备,其中所述阵列中的所述MR单元包括不同形状或不同大小或不同厚度或其组合的MR元件。
42.一种设备,其包括:
熵源,其包括至少一个磁阻MR元件,并且经配置以基于所述至少一个MR元件提供第一值;以及
检测模块,其经配置以接收和处理所述第一值,并且提供对于所述熵源的窜改的指示。
43.根据权利要求42所述的设备,其中所述检测模块经配置以基于所述第一值中的“零”的百分比和“1”的百分比检测对于所述熵源的窜改。
44.根据权利要求42所述的设备,其中所述检测模块经配置以基于所述第一值中的“零”游程和“1”游程检测对于所述熵源的窜改。
45.根据权利要求42所述的设备,其中所述检测模块经配置以基于“零”和“1”的预定模式的出现次数检测对于所述熵源的窜改。
46.根据权利要求42所述的设备,其中所述检测模块经配置以执行所述第一值的压缩和基于所述压缩的输出速率检测对于所述熵源的窜改。
47.一种产生随机值的方法,其包括:
向磁阻MR元件施加静态电流,所述MR元件具有基于所述MR元件的磁化而确定的可变电阻;
用施加于所述MR元件的所述静态电流感测所述MR元件的所述电阻;以及
基于所述MR元件的所述感测到的电阻产生第一随机值。
48.根据权利要求47所述的方法,其中所述感测所述MR元件的所述电阻包括将所述MR元件的所述电阻与参考值比较以获得感测到的值,并且其中所述产生所述第一随机值包括锁存所述感测到的值以获得所述第一随机值。
49.根据权利要求47所述的方法,其进一步包括:
处理所述第一随机值以获得第二随机值。
50.根据权利要求49所述的方法,其中所述处理所述第一随机值包括基于密码散列函数、错误检测码或流密码算法中的至少一者处理所述第一随机值。
51.根据权利要求47所述的方法,其进一步包括:
通过感测包含所述MR元件在内的多个MR元件的电阻而产生多个第一随机值序列;以及
处理所述多个第一随机值序列以获得第二随机值。
52.根据权利要求47所述的方法,其进一步包括:
检测对于所述MR元件的窜改。
53.一种设备,其包括:
用于向磁阻MR元件施加静态电流的装置,所述MR元件具有基于所述MR元件的磁化而确定的可变电阻;
用于用施加于所述MR元件的所述静态电流感测所述MR元件的所述电阻的装置;以及
用于基于所述MR元件的所述感测到的电阻产生第一随机值的装置。
54.根据权利要求53所述的设备,其进一步包括:
用于处理所述第一随机值以获得第二随机值的装置。
55.根据权利要求53所述的设备,其进一步包括:
用于通过感测包含所述MR元件在内的多个MR元件的电阻而产生多个第一随机值序列的装置;以及
用于处理所述多个第一随机值序列以获得第二随机值的装置。
56.一种计算机程序产品,其包括:
计算机可读媒体,其包括:
用于致使至少一个处理器向磁阻MR元件直接施加静态电流的代码,所述MR元件具有基于所述MR元件的磁化而确定的可变电阻;
用于致使所述至少一个处理器用施加于所述MR元件的所述静态电流直接感测所述MR元件的所述电阻的代码;以及
用于致使所述至少一个处理器基于所述MR元件的所述感测到的电阻直接产生第一随机值的代码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161536769P | 2011-09-20 | 2011-09-20 | |
US61/536,769 | 2011-09-20 | ||
US13/367,322 | 2012-02-06 | ||
US13/367,322 US9189201B2 (en) | 2011-09-20 | 2012-02-06 | Entropy source with magneto-resistive element for random number generator |
PCT/US2012/055785 WO2013043543A2 (en) | 2011-09-20 | 2012-09-17 | Entropy source with magneto-resistive element for random number generator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103890712A true CN103890712A (zh) | 2014-06-25 |
CN103890712B CN103890712B (zh) | 2017-02-15 |
Family
ID=47881665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280051736.0A Active CN103890712B (zh) | 2011-09-20 | 2012-09-17 | 用于随机数产生器的具有磁阻元件的熵源 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9189201B2 (zh) |
EP (1) | EP2758865B1 (zh) |
JP (1) | JP5826400B2 (zh) |
KR (1) | KR101617832B1 (zh) |
CN (1) | CN103890712B (zh) |
IN (1) | IN2014CN02071A (zh) |
TW (1) | TW201319930A (zh) |
WO (1) | WO2013043543A2 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168896A (zh) * | 2016-07-05 | 2016-11-30 | 北京大学深圳研究生院 | 一种真随机数发生器 |
CN106257860A (zh) * | 2015-06-18 | 2016-12-28 | 松下知识产权经营株式会社 | 随机数处理装置以及集成电路卡 |
CN106257590A (zh) * | 2015-06-18 | 2016-12-28 | 松下知识产权经营株式会社 | 具有防篡改性的非易失性存储装置以及集成电路卡 |
CN106899402A (zh) * | 2015-12-18 | 2017-06-27 | Id量子技术公司 | 将熵源添加到量子密钥分发系统的装置和方法 |
CN105912834B (zh) * | 2015-02-19 | 2019-09-10 | 英飞凌科技股份有限公司 | 用于检查随机数序列的熵的装置和方法 |
CN111406248A (zh) * | 2018-05-10 | 2020-07-10 | 闪迪技术有限公司 | 用磁性隧道结生成随机位流 |
CN111435295A (zh) * | 2019-01-13 | 2020-07-21 | 力旺电子股份有限公司 | 具非易失性存储器的随机码产生器 |
CN111868827A (zh) * | 2018-03-20 | 2020-10-30 | 克罗科斯科技公司 | 具有认证和物理不可克隆功能的基于mlu的磁性装置以及使用所述mlu装置的认证方法 |
CN112835556A (zh) * | 2021-01-28 | 2021-05-25 | 广东省大湾区集成电路与系统应用研究院 | 一种基于mtj的真随机数发生器 |
TWI753544B (zh) * | 2019-08-30 | 2022-01-21 | 台灣積體電路製造股份有限公司 | 機率亂數產生器與產生包括機率隨機位元的資料的位元流的方法 |
WO2023155240A1 (zh) * | 2022-02-15 | 2023-08-24 | 清华大学 | 随机数生成器、电子装置和操作方法 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464141B2 (en) * | 2008-08-13 | 2013-06-11 | Infineon Technologies Ag | Programmable error correction capability for BCH codes |
US9053071B2 (en) * | 2012-03-15 | 2015-06-09 | Qualcomm, Incorporated | Spin torque transfer magnetic tunnel junction intelligent sensing |
GB2504457A (en) * | 2012-06-06 | 2014-02-05 | Univ Bruxelles | Message authentication via distributed secret keys |
US9110746B2 (en) * | 2012-09-04 | 2015-08-18 | Qualcomm Incorporated | Magnetic tunnel junction based random number generator |
US20140108478A1 (en) * | 2012-10-15 | 2014-04-17 | Qualcomm Incorporated | Magnetic tunnel junction based random number generator |
US9311051B2 (en) * | 2013-01-10 | 2016-04-12 | Advanced Micro Devices, Inc. | Hardware random number generator |
US9214214B2 (en) * | 2013-09-09 | 2015-12-15 | Qualcomm Incorporated | Physically unclonable function based on the random logical state of magnetoresistive random-access memory |
EP3050132A4 (en) * | 2013-09-27 | 2017-05-24 | Intel Corporation | Voltage controlled nano-magnetic random number generator |
US9417845B2 (en) * | 2013-10-02 | 2016-08-16 | Qualcomm Incorporated | Method and apparatus for producing programmable probability distribution function of pseudo-random numbers |
TWI545580B (zh) | 2014-01-07 | 2016-08-11 | 群聯電子股份有限公司 | 隨機數產生方法、記憶體儲存裝置及控制電路 |
US9459835B2 (en) * | 2014-01-15 | 2016-10-04 | HGST Netherlands B.V. | Random number generator by superparamagnetism |
US9270455B1 (en) * | 2014-02-14 | 2016-02-23 | Google Inc. | CPU assisted seeding of a random number generator in an externally provable fashion |
EP3114690B1 (en) * | 2014-03-07 | 2020-02-12 | Intel Corporation | Physically unclonable function circuit using resistive memory device |
US9529570B2 (en) | 2014-03-19 | 2016-12-27 | Seagate Technology Llc | Random number generation using pulsed programming parameters |
JP6380804B2 (ja) * | 2014-04-16 | 2018-08-29 | パナソニックIpマネジメント株式会社 | 乱数処理装置および乱数処理方法 |
EP2940923B1 (en) * | 2014-04-28 | 2018-09-05 | Université de Genève | Method and device for optics based quantum random number generator |
KR102368507B1 (ko) | 2014-05-09 | 2022-02-25 | 퀀텀 넘버스 코포레이션 | 난수 생성 방법 및 난수 생성기 |
WO2015172352A1 (en) | 2014-05-15 | 2015-11-19 | Seagate Technology Llc | Storage device tampering detection |
US10317480B2 (en) * | 2014-10-15 | 2019-06-11 | Infineon Technologies Ag | Magneto resistive device |
US9846569B1 (en) | 2014-11-17 | 2017-12-19 | Seagate Technology Llc | Random values based on a random components of noise |
US9489999B2 (en) | 2014-11-26 | 2016-11-08 | Qualcomm Incorporated | Magnetic tunnel junction resistance comparison based physical unclonable function |
JP6423270B2 (ja) * | 2014-12-26 | 2018-11-14 | 株式会社メガチップス | 乱数生成装置及び乱数生成方法 |
EP3062215B1 (en) * | 2015-02-24 | 2018-04-04 | Crocus Technology S.A. | Mram-based programmable magnetic device for generating random numbers |
KR102416979B1 (ko) * | 2015-06-17 | 2022-07-05 | 인텔 코포레이션 | 난수 발생기 |
US9813049B2 (en) * | 2015-08-12 | 2017-11-07 | Qualcomm Incorporated | Comparator including a magnetic tunnel junction (MTJ) device and a transistor |
US10521618B1 (en) * | 2015-10-20 | 2019-12-31 | Marvell International Ltd. | Methods and apparatus for secure root key provisioning |
DE102016207451A1 (de) * | 2016-04-29 | 2017-11-02 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Erzeugen von Zufallsbits |
US10217498B2 (en) * | 2016-09-12 | 2019-02-26 | Qualcomm Incorporated | Techniques for preventing tampering with PROM settings |
CN108399328B (zh) * | 2017-02-08 | 2021-04-27 | 新唐科技股份有限公司 | 系统存储器内容认证设备及方法 |
US10536266B2 (en) | 2017-05-02 | 2020-01-14 | Seagate Technology Llc | Cryptographically securing entropy for later use |
TWI634478B (zh) * | 2017-07-18 | 2018-09-01 | 展達通訊股份有限公司 | 真亂數產生系統及其真亂數產生之方法 |
US10965456B2 (en) | 2017-09-25 | 2021-03-30 | The Boeing Company | Systems and methods for facilitating data encryption and decryption and erasing of associated information |
US10924263B2 (en) | 2017-09-25 | 2021-02-16 | The Boeing Company | Systems and methods for facilitating iterative key generation and data encryption and decryption |
US10860403B2 (en) * | 2017-09-25 | 2020-12-08 | The Boeing Company | Systems and methods for facilitating truly random bit generation |
US11036472B2 (en) | 2017-11-08 | 2021-06-15 | Samsung Electronics Co., Ltd. | Random number generator generating random number by using at least two algorithms, and security device comprising the random number generator |
US11082432B2 (en) * | 2017-12-05 | 2021-08-03 | Intel Corporation | Methods and apparatus to support reliable digital communications without integrity metadata |
US10878897B2 (en) * | 2018-01-04 | 2020-12-29 | Silicon Storage Technology, Inc. | System and method for storing and retrieving multibit data in non-volatile memory using current multipliers |
US10168996B1 (en) | 2018-01-15 | 2019-01-01 | Quantum Numbers Corp. | Method and system for generating a random bit sample |
US10698658B2 (en) * | 2018-02-12 | 2020-06-30 | Seagate Technology Llc | Random number generation from spin torque oscillator noise |
CN108345446B (zh) * | 2018-03-08 | 2021-08-10 | 太原理工大学 | 一种高速随机数产生方法及装置 |
US10311930B1 (en) * | 2018-04-05 | 2019-06-04 | Qualcomm Incorporated | One-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations |
CN108509180B (zh) * | 2018-04-13 | 2021-04-06 | 太原理工大学 | 一种基于二输入异或门低功耗随机数产生装置 |
KR102483374B1 (ko) | 2018-05-11 | 2022-12-30 | 한국전자통신연구원 | 양자 난수 생성 장치 및 방법 |
US10515697B1 (en) * | 2018-06-29 | 2019-12-24 | Intel Corporation | Apparatuses and methods to control operations performed on resistive memory cells |
KR102182232B1 (ko) * | 2019-01-17 | 2020-11-24 | 한양대학교 산학협력단 | 자기터널접합구조체 기반 연산 소자 |
US11023209B2 (en) * | 2019-01-25 | 2021-06-01 | International Business Machines Corporation | On-chip hardware random number generator |
KR102191305B1 (ko) * | 2019-07-09 | 2020-12-15 | 국민대학교산학협력단 | 경량 엔트로피 관리 장치 및 방법 |
US11521664B2 (en) * | 2019-08-30 | 2022-12-06 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device with tunable probabilistic state |
JP7553293B2 (ja) | 2019-10-18 | 2024-09-18 | 国立大学法人東北大学 | 乱数生成器 |
US11573768B2 (en) * | 2020-02-11 | 2023-02-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device and method for generating random bit stream with configurable ratio of bit values |
KR102495632B1 (ko) * | 2020-11-26 | 2023-02-06 | 포항공과대학교 산학협력단 | 아날로그 신호를 확률 신호로 변환하는 역치 변환 소자 기반의 아날로그-확률 변환 장치 |
KR102499682B1 (ko) * | 2020-11-26 | 2023-02-14 | 한국과학기술연구원 | 확률론적 자기터널접합구조를 이용한 랜덤 넘버 발생기 |
US20220343030A1 (en) * | 2021-04-26 | 2022-10-27 | Everspin Technologies, Inc. | Cryptographic mram and methods thereof |
KR102690367B1 (ko) * | 2021-08-19 | 2024-07-31 | 한성대학교 산학협력단 | 의사 난수 생성기를 학습시키는 방법, IoT 디바이스에 난수를 제공하는 방법 및 의사 난수 생성기를 구비하는 전자장치 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246970B1 (en) * | 1998-07-10 | 2001-06-12 | Silverbrook Research Pty Ltd | Method for making a chip tamper-resistant |
US6480072B1 (en) * | 2000-04-18 | 2002-11-12 | Advanced Micro Devices, Inc. | Method and apparatus for generating random numbers |
US7571199B1 (en) * | 2000-11-15 | 2009-08-04 | Microsoft Corporation | Method and apparatus for generating random numbers |
US20090265112A1 (en) * | 2005-07-22 | 2009-10-22 | Psigenics Corporation | Device and method for responding to influences of mind |
CN101620523A (zh) * | 2009-07-29 | 2010-01-06 | 深圳国微技术有限公司 | 一种随机数发生器电路 |
US20100131578A1 (en) * | 2007-06-12 | 2010-05-27 | Akio Fukushima | Random number generating device |
US20100174766A1 (en) * | 2009-01-06 | 2010-07-08 | Seagate Technology Llc | Magnetic Precession Based True Random Number Generator |
JP2011013901A (ja) * | 2009-07-01 | 2011-01-20 | Sony Corp | 乱数発生装置 |
US20110123022A1 (en) * | 2009-11-24 | 2011-05-26 | Sony Corporation | Random number generating device, random number generating method, and security chip |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166296B2 (en) | 2004-10-20 | 2012-04-24 | Broadcom Corporation | User authentication system |
EP1686458B1 (en) | 2005-01-28 | 2008-07-23 | Infineon Technologies AG | Oscillator-based random number generator |
DE102006030888B4 (de) * | 2006-07-04 | 2009-06-25 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Erzeugen eines Startwertes für einen Pseudo-Zufallszahlengenerator |
TWI393415B (zh) | 2006-10-12 | 2013-04-11 | Interdigital Tech Corp | 使用廣播的隨機雜訊來增強無線裝置的加密能力的方法和系統 |
US7728622B2 (en) | 2007-03-29 | 2010-06-01 | Qualcomm Incorporated | Software programmable logic using spin transfer torque magnetoresistive random access memory |
US8495118B2 (en) | 2008-10-30 | 2013-07-23 | Seagate Technology Llc | Tunable random bit generator with magnetic tunnel junction |
US8886692B2 (en) * | 2009-02-09 | 2014-11-11 | Samsung Electronics Co., Ltd. | Apparatus for generating random number |
JP5100677B2 (ja) | 2009-02-09 | 2012-12-19 | 株式会社東芝 | 乱数発生器および乱数発生方法 |
US8526252B2 (en) | 2009-03-17 | 2013-09-03 | Seagate Technology Llc | Quiescent testing of non-volatile memory array |
-
2012
- 2012-02-06 US US13/367,322 patent/US9189201B2/en active Active
- 2012-09-17 EP EP12798033.2A patent/EP2758865B1/en active Active
- 2012-09-17 WO PCT/US2012/055785 patent/WO2013043543A2/en active Application Filing
- 2012-09-17 CN CN201280051736.0A patent/CN103890712B/zh active Active
- 2012-09-17 JP JP2014531893A patent/JP5826400B2/ja not_active Expired - Fee Related
- 2012-09-17 KR KR1020147010432A patent/KR101617832B1/ko not_active IP Right Cessation
- 2012-09-17 IN IN2071CHN2014 patent/IN2014CN02071A/en unknown
- 2012-09-19 TW TW101134319A patent/TW201319930A/zh unknown
-
2015
- 2015-10-13 US US14/882,255 patent/US20170010864A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246970B1 (en) * | 1998-07-10 | 2001-06-12 | Silverbrook Research Pty Ltd | Method for making a chip tamper-resistant |
US6480072B1 (en) * | 2000-04-18 | 2002-11-12 | Advanced Micro Devices, Inc. | Method and apparatus for generating random numbers |
US7571199B1 (en) * | 2000-11-15 | 2009-08-04 | Microsoft Corporation | Method and apparatus for generating random numbers |
US20090265112A1 (en) * | 2005-07-22 | 2009-10-22 | Psigenics Corporation | Device and method for responding to influences of mind |
US20100131578A1 (en) * | 2007-06-12 | 2010-05-27 | Akio Fukushima | Random number generating device |
US20100174766A1 (en) * | 2009-01-06 | 2010-07-08 | Seagate Technology Llc | Magnetic Precession Based True Random Number Generator |
JP2011013901A (ja) * | 2009-07-01 | 2011-01-20 | Sony Corp | 乱数発生装置 |
CN101620523A (zh) * | 2009-07-29 | 2010-01-06 | 深圳国微技术有限公司 | 一种随机数发生器电路 |
US20110123022A1 (en) * | 2009-11-24 | 2011-05-26 | Sony Corporation | Random number generating device, random number generating method, and security chip |
Non-Patent Citations (2)
Title |
---|
MARCO BUCCI等: ""Fully digital random bit genetors for cryptographic applications"", 《IEEE TRANSACTIONSONCIRCUITS AND SYSTEMS-I:REGULAR PAPERS》, vol. 50, no. 3, 30 April 2008 (2008-04-30) * |
TETSUFUMI TANAMOTO等: ""High-speed magnetoresistive random-acess memory random number generator using error-correcting code"", 《JAPANESE JOURNAL OF APPLIED PHYSICS》, vol. 50, 20 April 2011 (2011-04-20) * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912834B (zh) * | 2015-02-19 | 2019-09-10 | 英飞凌科技股份有限公司 | 用于检查随机数序列的熵的装置和方法 |
CN106257860B (zh) * | 2015-06-18 | 2021-02-09 | 松下半导体解决方案株式会社 | 随机数处理装置以及集成电路卡 |
CN106257860A (zh) * | 2015-06-18 | 2016-12-28 | 松下知识产权经营株式会社 | 随机数处理装置以及集成电路卡 |
CN106257590A (zh) * | 2015-06-18 | 2016-12-28 | 松下知识产权经营株式会社 | 具有防篡改性的非易失性存储装置以及集成电路卡 |
CN106257590B (zh) * | 2015-06-18 | 2021-03-30 | 新唐科技日本株式会社 | 具有防篡改性的非易失性存储装置以及集成电路卡 |
CN106899402A (zh) * | 2015-12-18 | 2017-06-27 | Id量子技术公司 | 将熵源添加到量子密钥分发系统的装置和方法 |
CN106899402B (zh) * | 2015-12-18 | 2021-02-23 | Id量子技术公司 | 将熵源添加到量子密钥分发系统的装置和方法 |
CN106168896B (zh) * | 2016-07-05 | 2018-10-09 | 北京大学深圳研究生院 | 一种真随机数发生器 |
CN106168896A (zh) * | 2016-07-05 | 2016-11-30 | 北京大学深圳研究生院 | 一种真随机数发生器 |
CN111868827A (zh) * | 2018-03-20 | 2020-10-30 | 克罗科斯科技公司 | 具有认证和物理不可克隆功能的基于mlu的磁性装置以及使用所述mlu装置的认证方法 |
CN111406248A (zh) * | 2018-05-10 | 2020-07-10 | 闪迪技术有限公司 | 用磁性隧道结生成随机位流 |
CN111406248B (zh) * | 2018-05-10 | 2023-12-15 | 闪迪技术有限公司 | 用磁性隧道结生成随机位流 |
CN111435295A (zh) * | 2019-01-13 | 2020-07-21 | 力旺电子股份有限公司 | 具非易失性存储器的随机码产生器 |
TWI753544B (zh) * | 2019-08-30 | 2022-01-21 | 台灣積體電路製造股份有限公司 | 機率亂數產生器與產生包括機率隨機位元的資料的位元流的方法 |
CN112835556A (zh) * | 2021-01-28 | 2021-05-25 | 广东省大湾区集成电路与系统应用研究院 | 一种基于mtj的真随机数发生器 |
CN112835556B (zh) * | 2021-01-28 | 2024-01-16 | 广东省大湾区集成电路与系统应用研究院 | 一种基于mtj的真随机数发生器 |
WO2023155240A1 (zh) * | 2022-02-15 | 2023-08-24 | 清华大学 | 随机数生成器、电子装置和操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201319930A (zh) | 2013-05-16 |
JP5826400B2 (ja) | 2015-12-02 |
KR101617832B1 (ko) | 2016-05-03 |
US20170010864A1 (en) | 2017-01-12 |
WO2013043543A2 (en) | 2013-03-28 |
EP2758865B1 (en) | 2017-10-18 |
JP2014531669A (ja) | 2014-11-27 |
US20130073598A1 (en) | 2013-03-21 |
WO2013043543A3 (en) | 2013-06-06 |
EP2758865A2 (en) | 2014-07-30 |
CN103890712B (zh) | 2017-02-15 |
KR20140069195A (ko) | 2014-06-09 |
US9189201B2 (en) | 2015-11-17 |
IN2014CN02071A (zh) | 2015-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103890712A (zh) | 用于随机数产生器的具有磁阻元件的熵源 | |
US20220318436A1 (en) | Integrated circuit for security of a physically unclonable function and a device including the same | |
CN104978499B (zh) | 用于制造数字电路的方法和数字电路 | |
Uddin et al. | Techniques for improved reliability in memristive crossbar PUF circuits | |
CN106664204A (zh) | 差分功率分析对策 | |
Anandakumar et al. | Design and analysis of FPGA-based PUFs with enhanced performance for hardware-oriented security | |
CN106850227A (zh) | 一种采用cnfet实现的三值puf单元及电路 | |
Jia et al. | Correlation power analysis of Trivium | |
Zalivaka et al. | FPGA implementation of modeling attack resistant arbiter PUF with enhanced reliability | |
CN108932438B (zh) | 基于线性反馈的多模混合可重构puf单元电路 | |
CN203299865U (zh) | 一种基于puf的银行卡 | |
Kareem et al. | Matlab gui-based tool to determine performance metrics of physical unclonable functions | |
Cui et al. | An efficient ring oscillator PUF using programmable delay units on FPGA | |
Yang et al. | A low cost and high reliability true random number generator based on resistive random access memory | |
Lu et al. | High-efficiency TRNG design based on multi-bit dual-ring oscillator | |
Wu et al. | CT PUF: Configurable tristate PUF against machine learning attacks | |
Alimohammadi et al. | Secure hardware key based on physically unclonable functions and artificial neural network | |
Ayat et al. | On design of PUF-based random number generators | |
Carboni et al. | Applications of resistive switching memory as hardware security primitive | |
CN109086631B (zh) | 一种抗模型攻击的强/弱混合型puf电路 | |
Yao et al. | FPGA implementation of dynamic key management for DES encryption algorithm | |
CN110088760A (zh) | 使用片上存储单元的逻辑加密 | |
CN113946882A (zh) | 基于施密特触发器的超低功耗弱物理不可克隆函数电路 | |
Hamburg | Understanding intel’s ivy bridge random number generator | |
Xu et al. | Security Evaluation of Feed-Forward Interpose PUF Against Modelling Attacks |
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 |