公开/公告号CN112835556A
专利类型发明专利
公开/公告日2021-05-25
原文格式PDF
申请/专利权人 广东省大湾区集成电路与系统应用研究院;中国科学院微电子研究所;
申请/专利号CN202110117458.5
申请日2021-01-28
分类号G06F7/58(20060101);
代理机构32260 无锡市汇诚永信专利代理事务所(普通合伙);
代理人朱晓林
地址 510535 广东省广州市开发区开源大道136号A栋
入库时间 2023-06-19 11:05:16
技术领域
本发明涉及随机发生器技术领域,具体涉及一种基于MTJ的真随机数发生器。
背景技术
在信息安全领域中,随机数发生器常用于信息加密、随机计算和PUF等。根据原理的不同,产生随机数的方法分为伪随机数发生器和真随机数发生器。
伪随机数发生器的伪随机序列是由数学公式计算产生,然而如果生成随机数的算法确定了,那么这个随机数序列也就确定了,所以从数学意义上讲,伪随机数并不随机,序列本身也必然会重复,只要伪随机数发生器所产生的伪随机序列的周期足够成并且通过相应的检验,就可以在一定范围内使用。
真随机数发生器所产生的随机数来源于自然界物理现象的随机特性,因而彻底地消除了伪随机数的周期性问题。然而目前大多数真随机数发生器的技术要求较高,结构复杂,例如在《Li nux内核设计与实现》一书的附录B中有详细介绍了“Li nux自1.3.30版就在内核提供了真随机数生成器,至少是理论上能产生真随机数,它利用机器的噪音生成随机数,噪音源包括各种硬件运行时速,用户和计算机交互时速。比如击键的间隔时间、鼠标移动速度、特定中断的时间间隔和块IO请求的响应时间等”。
发明内容
鉴于背景技术的不足,本发明是提供了一种基于MTJ的真随机数发生器,该真随机数发生器结构简单。
为解决以上技术问题,本发明提供了如下技术方案:一种基于MTJ的真随机数发生器,包括至少一个逻辑单元,逻辑单元输出一位二进制数据,逻辑单元包括两个输入MTJ和一个输出MTJ,两个输入MTJ的自由层分别接入电源,两个输入MTJ的参考层分别和输出MTJ的参考层电连接,输出MTJ的自由层接地。
可选地,在某种实施方式中,两个输入MTJ和输出MTJ分别连接有写入回路,写入回路向输入MTJ或者输出MTJ写入数据,当写入回路向输入MTJ或者输出MTJ写入逻辑“0”时,输入MTJ或者输出MTJ的存储状态为低阻态模式,当写入回路向输入MTJ或者输出MTJ写入逻辑“1”时,输入MTJ或者输出MTJ的存储状态为高阻态模式。
可选地,在某种实施方式中,输入MTJ或者输出MTJ在高阻态模式的阻值是输入MTJ或者输出MTJ在低阻态模式的阻值的两倍。
本发明的逻辑单元在产生随机数之前需要初始化配置参数,具体如下:写入回路向所述输入MTJ写入逻辑“1”,两个输入MTJ的存储状态均为高阻态状态,写入回路向输出MTJ写入逻辑“1”,输出MTJ的存储状态为高阻态状态,电源在输出MTJ上的电压小于第一临界调控电压Vc1,电源在两输入MTJ上的电压小于第二临界调控电压Vc2,当电源施加到输出MTJ的电压等于第一临界调控电压Vc1时,输出MTJ的各向异性能系数k=0,当电源施加到输入MTJ上的电压等于第二临界调控电压Vc2时,输入MTJ的各向异性能系数k=0。由于电源在输出MTJ上的电压小于第一临界调控电压Vc1、电源在两输入MTJ上的电压小于第二临界调控电压Vc2,因此输入MTJ和输出MTJ的存储状态在初始写入后不会发生变化。
可选地,在某种实施方式中,两输入MTJ分别在高阻态模式下的并联阻值小于输出MTJ在低阻态模式下的阻值。
本发明的逻辑单元在产生随机数时,电源在输出MTJ上的电压幅值大于第一临界调控电压Vc1,电源在两输入MTJ上的电压幅值小于第二临界调控电压Vc2,当有至少一个输入MTJ的存储状态发生改变时输出MTJ的存储状态变为低阻态模式和高阻态模式的概率均为二分之一。通过对输出MTJ的存储状态进行检测可以获取一位随机数,该位随机数用二进制进行表示,分别是0或1。
可选地,在某种实施方式中,输入MTJ和输出MTJ在自由层的下方分别设有底电极,输入MTJ和输出MTJ的外围分别设有保护层,保护层上开设有第一电极孔和第二电极孔,第一电极孔内安装有第一顶电极,第一顶电极的底部与参考层的上表面连接,第二电极孔内安装有第二顶电极,第二顶电极的底部与底电极的上表面连接,输入MTJ的第一顶电极和第二顶电极电连接,输出MTJ的第一顶电极和第二顶电极电连接,输入MTJ的第一顶电极和输出MTJ的顶电极电连接,输入MTJ的底电极与所述电源电连接,输出MTJ的底电极接地。当分别在输入MTJ和输出MTJ的第一顶电极和底电极之间接入写入电源时,可以单独对输入MTJ或者输出MTJ进行操作,方便输入MTJ和输出MTJ的初始化参数配置。
可选地,在某种实施方式中,逻辑单元还包括读取单元,读取单元用来读取输出MTJ的状态,当输出MTJ在低阻态模式时读取单元输出低电平信号,当输出MTJ在高阻态模式时读取单元输出高电平信号。
由于所有逻辑单元的输出MTJ在产生随机数时电源在输出MTJ上的电压大于第一临界调控电压Vc1,写入回路在改变输入MTJ的存储状态时,输出MTJ的存储状态也会发生变化,分别有二分之一的概率变为低阻态模式或者高阻态模式,因此根据读取单元读取输出MTJ的状态后输出的数据,可以获取多位二进制数据,将二进制数据转化为十进制数据便可获得一个十进制随机数。
本发明与现有技术相比所具有的有益效果是:本发明先初始配置两个输入MTJ的存储状态,使两个输入MTJ均为高阻态模式,电源在输出MTJ上的电压小于第一临界调控电压Vc1,当输入MTJ的存储状态发生变化时,电源在输出MTJ上的电压大于第一临界调控电压Vc1,这样输出MTJ的存储状态就会有二分之一的概率变为低阻态模式或者高阻态模式,通过对输出MTJ的存储状态进出检测可以产生一位随机的二进制的数据,对多个逻辑单元的输出MTJ的存储状态进行检测便可以得到多位随机的二进制数据,将这些随机的二进制数据转发为十进制数据便可获取一位随机的十进制数,整体结构简单,不用刻意寻找一些自然界的随机变量,只需更改输入MTJ的存储状态即可。
附图说明
本发明有如下附图:
图1为本发明的逻辑单元的结构示意图;
图2为本发明的输入MTJ的结构示意图;
图3为多个逻辑单元输出随机数的示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1-3所示,一种基于MTJ的真随机数发生器,包括至少一个逻辑单元,每个逻辑单元输出一位二进制数据,逻辑单元包括两个输入MTJ和一个输出MTJ,两个输入MTJ的自由层分别接入电源,两个输入MTJ的参考层分别和输出MTJ的参考层电连接,输出MTJ的自由层接地。
当本发明包括多个逻辑单元时,第一个逻辑单元的输出端o1输出第一位二进制数据,第二个逻辑单元的输出端o2输出第二位二进制数据,第N个逻辑单元的输出端oN输出第N位二进制数据。如果N为8则本发明的真随机数发生器产生的随机数范围在0和255之间。
本实施例中,两个输入MTJ和输出MTJ分别连接有写入回路,写入回路向输入MTJ或者输出MTJ写入数据,当写入回路向输入MTJ或者输出MTJ写入逻辑“0”时,输入MTJ或者输出MTJ的存储状态为低阻态模式,当写入回路向输入MTJ或者输出MTJ写入逻辑“1”时,输入MTJ或者输出MTJ的存储状态为高阻态模式。
本实施例中,输入MTJ或者输出MTJ在低阻态模式和高阻态模式下的阻值关系可参考如下:输入MTJ或者输出MTJ在高阻态模式的阻值是输入MTJ或者输出MTJ在低阻态模式的阻值的两倍。
本实施例中,逻辑单元在产生随机数之前需要初始化配置参数,具体如下:写入回路向所述输入MTJ写入逻辑“1”,两个输入MTJ的存储状态均为高阻态状态,写入回路向输出MTJ写入逻辑“1”,输出MTJ的存储状态为高阻态状态,电源在输出MTJ上的电压小于第一临界调控电压Vc1,电源在两输入MTJ上的电压小于第二临界调控电压Vc2,当电源施加到输出MTJ的电压等于第一临界调控电压Vc1时,输出MTJ的各向异性能系数k=0,当电源施加到输入MTJ上的电压等于第二临界调控电压Vc2时,输入MTJ的各向异性能系数k=0。由于电源在输出MTJ上的电压小于第一临界调控电压Vc1、电源在两输入MTJ上的电压小于第二临界调控电压Vc2,因此输入MTJ和输出MTJ的存储状态在初始写入后不会发生变化。
本发明的逻辑单元在产生随机数时,电源在输出MTJ上的电压幅值大于第一临界调控电压Vc1,电源在两输入MTJ上的电压幅值小于第二临界调控电压Vc2,当有至少一个输入MTJ的存储状态发生改变时输出MTJ的存储状态变为低阻态模式和高阻态模式的概率均为二分之一。通过对输出MTJ的存储状态进行检测可以获取一位随机数,该位随机数用二进制进行表示,分别是0或1。在实际应用时,两输入MTJ和输出MTJ的真值表可参照表一:
表一
由于初始化配置时,两个输入MTJ的存储状态均配置为高阻态模式、输出MTJ的存储状态为高组态模式,因此写入回路在向两输入MTJ写入数据时不会使两个输入MTJ中的数据均为1,因此每当两输入MTJ中的一个输入MTJ的存储状态发生变化时,输出MTJ的存储状态便在低阻态模式和高阻态模式中随机选择,且概率相同。
本实施例中,逻辑单元还包括读取单元,读取单元用来读取输出MTJ的状态,当输出MTJ在低阻态模式时读取单元的输出端A1输出低电平信号,当输出MTJ在高阻态模式时读取单元输出高电平信号。
由于所有逻辑单元的输出MTJ在产生随机数时电源在输出MTJ上的电压大于第一临界调控电压Vc1,写入回路在改变输入MTJ的存储状态时,输出MTJ的存储状态也会发生变化,分别有二分之一的概率变为低阻态模式或者高阻态模式,因此根据所有读取单元读取输出MTJ的状态后输出的数据,可以获取多位二进制数据,将二进制数据转化为十进制数据便可获得一个十进制随机数。
本实施例中,为了确保本发明在产生随机数的过程中电源在输出MTJ上的电压分别始终大于电源在输入MTJ上的电压,两输入MTJ分别在高阻态模式下的并联阻值小于输出MTJ在低阻态模式下的阻值。当两个输入MTJ的存储状态有一个从高阻态模式变为低阻态模式时,两个输入MTJ的并联电阻阻值会小于两个输入MTJ分别在高阻态模式下的并联电阻阻值,因此电源在输出MTJ上的电压在两输入MTJ的存储状态分别从高阻态模式变为至少有一个输入MTJ变为低阻态模式时会增加。
参照图2,输入MTJ和输出MTJ在自由层的下方分别设有底电极1,输入MTJ和输出MTJ的外围分别设有保护层2,保护层2上开设有第一电极孔和第二电极孔,第一电极孔内安装有第一顶电极3,第一顶电极3的底部与参考层的上表面连接,第二电极孔内安装有第二顶电极4,第二顶电极4的底部与底电极1的上表面连接,输入MTJ的第一顶电极和第二顶电极电连接,输出MTJ的第一顶电极和第二顶电极电连接,输入MTJ的第一顶电极和输出MTJ的顶电极电连接,输入MTJ的底电极与电源电连接,输出MTJ的底电极接地。当分别在输入MTJ和输出MTJ的第一顶电极和底电极之间接入写入电源时,可以单独对输入MTJ或者输出MTJ进行操作,方便输入MTJ和输出MTJ的初始化参数配置,当在输入MTJ的底电极和输出MTJ的底电极之间接入电源时,逻辑单元可以用来产生随机数。
综上,本发明先初始配置两个输入MTJ的存储状态,使两个输入MTJ均为高阻态模式,电源在输出MTJ上的电压小于第一临界调控电压Vc1,当输入MTJ的存储状态发生变化时,电源在输出MTJ上的电压大于第一临界调控电压Vc1,这样输出MTJ的存储状态就会有二分之一的概率变为低阻态模式或者高阻态模式,通过对输出MTJ的存储状态进出检测可以产生一位随机的二进制的数据,对多个逻辑单元的输出MTJ的存储状态进行检测便可以得到多位随机的二进制数据,将这些随机的二进制数据转发为十进制数据便可获取一位随机的十进制数,整体结构简单,不用刻意寻找一些自然界的随机变量,只需更改输入MTJ的存储状态即可。
上述依据本发明为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
机译: 用于多源真随机数发生器的系统和方法,包括基于多源熵提取器的量子光子真随机数发生器
机译: 异步真正随机数发生器使用STT-MTJ
机译: 基于物理不可渗透功能的真正随机数发生器,用于生成真正随机数的方法,以及相关的电子设备