一种非易失性存储器及其数据处理方法

文档序号:1952035 发布日期:2021-12-10 浏览:3次 >En<

阅读说明:本技术 一种非易失性存储器及其数据处理方法 (Nonvolatile memory and data processing method thereof ) 是由 侯正义 王昭昊 王朝 王旻 赵巍胜 于 2021-09-08 设计创作,主要内容包括:本发明提供一种非易失性存储器及其数据处理方法,所述非易失性存储器包括控制器、译码器和存储器阵列,其中:控制器分别与所述译码器和所述存储器阵列相连;存储器阵列包括真随机数发生单元和物理不可克隆函数单元,真随机数发生单元用于产生随机数序列,控制器根据所述随机数序列和预设算法生成随机字符串,并将生成的随机字符串存储到物理不可克隆函数单元形成物理不可克隆函数。所述数据处理方法应用于上述非易失性存储器。本发明实施例提供的非易失性存储器及其数据处理方法,利用存储器阵列实现随机字符串的生成和存储,从而实现PUF与存储器的复用以及PUF的刷新,无需使用外部独立的TRNG,减少了硬件安全电路的体积。(The invention provides a nonvolatile memory and a data processing method thereof, wherein the nonvolatile memory comprises a controller, a decoder and a memory array, wherein: the controller is respectively connected with the decoder and the memory array; the memory array comprises a true random number generating unit and a physical unclonable function unit, wherein the true random number generating unit is used for generating a random number sequence, the controller generates a random character string according to the random number sequence and a preset algorithm, and the generated random character string is stored in the physical unclonable function unit to form a physical unclonable function. The data processing method is applied to the nonvolatile memory. According to the nonvolatile memory and the data processing method thereof provided by the embodiment of the invention, the random character string is generated and stored by using the memory array, so that the multiplexing of the PUF and the memory and the refreshing of the PUF are realized, an external independent TRNG is not required, and the volume of a hardware security circuit is reduced.)

一种非易失性存储器及其数据处理方法

技术领域

本发明涉及半导体器件技术领域,具体涉及一种非易失性存储器及其数据处理方法。

背景技术

物理不可克隆函数(Physical Unclonable Function,简称PUF)是一种硬件安全技术,它利用固有的设备差异来对给定的输入产生不可克隆的唯一设备响应。

现有技术中,已提出在静态随机存取存储器(Static Random-Access Memory,简称SRAM)内部实现物理不可克隆函数的方法,通过修改传统的SRAM单元结构,实现了PUF和SRAM之间的切换。采用SRAM实现PUF,PUF占用整个SRAM存储阵列,并且在SRAM掉电后数据全部丢失。进一步地,出现利用独立的、基于环形振荡器的真随机数发生器(True RandomNumber Generator,简称TRNG)模块产生随机数序列,并将该TRNG产生的随机数依次赋值给阻变式存储器(Resistive Random Access Memory,RRAM)阵列,形成PUF阵列,但需要外部独立的TRNG为产生随机数序列,增加了芯片面积,并且PUF会一直占用RRAM单元,增加了芯片的面积开销和功耗。

发明内容

针对现有技术中的问题,本发明实施例提供一种非易失性存储器及其数据处理方法,能够至少部分地解决现有技术中存在的问题。

第一方面,本发明提出一种非易失性存储器,包括控制器、译码器和存储器阵列,其中:

所述控制器分别与所述译码器和所述存储器阵列相连;

所述存储器阵列包括真随机数发生单元和物理不可克隆函数单元,所述真随机数发生单元用于产生随机数序列,所述控制器根据所述随机数序列和预设算法生成随机字符串,并将生成的随机字符串存储到所述物理不可克隆函数单元形成物理不可克隆函数。

进一步地,所述真随机数发生单元和所述物理不可克隆函数单元设置在所述存储器阵列的同一个存储块上。

进一步地,所述真随机数发生单元和所述物理不可克隆函数单元设置在所述存储器阵列的不同存储块上。

第二方面,本发明提供一种采用上述任一实施例所述的非易失性存储器的数据处理方法,包括:

控制器从真随机数发生单元中读取随机数序列;其中,所述随机数序列是预先生成的;

所述控制器基于预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串;

所述控制器将每段随机数对应的随机字符串存储到物理不可克隆单元形成物理不可克隆函数。

进一步地,生成所述随机数序列的步骤包括:

所述控制器通过所述真随机数发生单元产生随机数序列;

所述控制器将所述随机数序列存储到所述真随机数发生单元。

进一步地,所述非易失性存储器的数据处理方法还包括:

所述控制器接收重置指令,将所述物理不可克隆函数单元存储的随机字符串清空。

进一步地,所述非易失性存储器的数据处理方法还包括:

所述控制器接收重构指令,并从所述真随机数发生单元中读取随机数序列;

所述控制器基于所述预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串;

所述控制器将每段随机数对应的随机字符串存储到物理不可克隆单元形成物理不可克隆函数。

进一步地,所述非易失性存储器的数据处理方法还包括:

所述控制器接收刷新指令以刷新所述真随机数发生单元中存储的随机数序列,进而实现物理不可克隆函数的刷新。

第三方面,本发明提供一种硬件加密芯片,包括上述任一实施例所述的非易失性存储器。

第四方面,本发明提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器包括上述实施例所述的硬件加密芯片。

本发明实施例提供的非易失性存储器及其数据处理方法,包括控制器、译码器和存储器阵列,控制器分别与译码器和存储器阵列相连,存储器阵列包括真随机数发生单元和物理不可克隆函数单元,真随机数发生单元用于产生随机数序列,控制器根据随机数序列和预设算法生成随机字符串,并将生成的随机字符串存储到所述物理不可克隆函数单元形成物理不可克隆函数,利用存储器阵列实现随机字符串的生成和存储,从而实现PUF与存储器的复用以及PUF的刷新,无需使用外部独立的TRNG,减少了硬件安全电路的体积。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明一实施例提供的非易失性存储器的结构示意图。

图2是本发明一实施例提供的非易失性存储器的数据处理方法的流程示意图。

图3是本发明另一实施例提供的非易失性存储器的数据处理方法的流程示意图。

图4是本发明又一实施例提供的非易失性存储器的数据处理方法的流程示意图。

图5是本发明再一实施例提供的非易失性存储器的数据处理方法的流程示意图。

图6是本发明一实施例提供的计算机设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。

物理不可克隆函数:PUF是一种利用芯片内部特征来实现高安全性硬件防护功能的低成本硬件安全原语。对PUF电路输入一定的激励,可以得到唯一对应的随机输出响应,不同的激励将得到不同的输出响应;另外,由于芯片间物理偏差的存在,相同电路结构的不同PUF电路对于相同的输入激励,也将得到不同的输出响应。PUF可用作生成密钥或芯片的识别ID。

图1是本发明一实施例提供的非易失性存储器的结构示意图,如图1所示,本发明实施例提供的非易失性存储器包括控制器1、译码器2和存储器阵列3,其中:

控制器1分别与译码器2和存储器阵列3相连;

存储器阵列3包括真随机数发生单元31和物理不可克隆函数单元32,真随机数发生单元31用于产生随机数序列,控制器1根据所述随机数序列和预设算法生成随机字符串,并将生成的随机字符串存储到物理不可克隆函数单元32形成物理不可克隆函数。

具体地,存储器阵列3可以划分为多个存储块,将其中一个或者多个存储块作为真随机数发生单元31,还可以将其中一个或者多个存储块作为物理不可克隆函数单元32。真随机数发生单元31能够产生随机数序列并存储到真随机数发生单元31中,控制器1会从真随机数发生单元31中获得所述随机数序列,然后根据所述随机数序列和预设算法生成随机字符串,并将所述随机字符串存储到物理不可克隆函数单元32形成PUF,在需要利用PUF进行安全应用(密钥生成或芯片识别等)时,控制器1可以获取物理不可克隆函数单元32存储的随机字符串。控制器1需要通过译码器2对存储器阵列3中存储的数据进行访问。在不用于PUF时,物理不可克隆函数单元32可以存储数据,使物理不可克隆函数单元32所在的存储块作为PUF和存储数据的复用区,但真随机数发生单元31存储的随机数序列保持不变。其中,所述非易失性存储器包括但不限于RRAM、铁电存储器(Ferroelectric Random AccessMemory,简称FeRAM),磁性随机存取存储器(Magnetic Random Access Memory,简称MRAM)。存储器阵列3划分的存储块的数量,根据实际需要进行设置,本发明实施例不做限定。

本发明实施例提供的非易失性存储器,包括控制器、译码器和存储器阵列,控制器分别与译码器和存储器阵列相连,存储器阵列包括真随机数发生单元和物理不可克隆函数单元,真随机数发生单元用于产生随机数序列,控制器根据随机数序列和预设算法生成随机字符串,并将生成的随机字符串存储到所述物理不可克隆函数单元形成物理不可克隆函数,利用存储器阵列实现随机字符串的生成和存储,从而实现PUF与存储器的复用,无需使用外部独立的TRNG,减少了硬件安全电路的体积。此外,可减小硬件安全电路在芯片中占用面积的比例,并提高芯片的交互速度。

在上述各实施例的基础上,进一步地,真随机数发生单元31和物理不可克隆函数单元32设置在存储器阵列3的同一个存储块上。

例如,可以将存储器阵列3中的一个存储块A上的设定行数的存储单元作为真随机数发生单元31,将存储块A中剩余的存储单元作为物理不可克隆函数单元32。

在上述各实施例的基础上,进一步地,真随机数发生单元31和物理不可克隆函数单元32设置在存储器阵列3的不同存储块上。

例如,将存储块1作为真随机数发生单元31,将存储块2-存储块9,共计8个存储块作为物理不可克隆函数单元32。

图2是本发明一实施例提供的非易失性存储器的数据处理方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,本发明实施例提供的应用于上述任一实施例所述的非易失性存储器的数据处理方法,包括:

S201、控制器从真随机数发生单元中读取随机数序列;其中,所述随机数序列是预先生成的;

具体地,预先生成的随机数序列会存储到真随机数发生单元中,控制器可以从所述真随机数发生单元中读取随机数序列。

S202、所述控制器基于预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串;

具体地,所述控制器会根据所述预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串。其中,所述预设算法根据实际需要进行设置,本发明实施例不做限定。

例如,所述预设算法采用安全散列算法(Secure Hash Algorithm,简称SHA),安全散列算法是美国安全局提出的一种安全加密算法,可以将任意长度的数据加密为长度等于512比特的码字。

例如,真随机数发生单元中存储随机数序列,随机数序列包括多段32位二进制数,控制器根据安全散列算法SHA-512对每段32位二进制数进行加密,获得每段32位二进制数对应的512比特的码字。

S203、所述控制器将每段随机数对应的随机字符串存储到物理不可克隆单元。

具体地,所述控制器会将每段随机数对应的随机字符串存储到物理不可克隆单元,以便于在利用PUF进行安全应用(密钥生成或芯片识别等)时使用。

本发明实施例提供的非易失性存储器的数据处理方法,控制器从真随机数发生单元中读取随机数序列,控制器基于预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串,控制器将每段随机数对应的随机字符串存储到物理不可克隆单元形成物理不可克隆函数,无需使用外部独立的TRNG,实现PUF,减少了硬件安全电路的体积。还实现了物理不可克隆函数单元PUF和存储的复用。

图3是本发明另一实施例提供的非易失性存储器的数据处理方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,生成所述随机数序列的步骤包括:

S301、所述控制器通过所述真随机数发生单元产生随机数序列;

具体地,所述控制器可以通过电流或者磁场作用于所述真随机数发生单元,使所述真随机数发生单元产生随机数序列,然后获取所述随机数序列。

例如,所述非易失性存储器为SOT-MRAM,利用SOT-MTJ的随机翻转特性,所述控制器可以为所述真随机数发生单元中的每个SOT器件单元通入写电流或外磁场,使MTJ的自由层的磁化状态由垂直磁化方向变为水平磁化方向,再撤去电流或磁场,此时,自由层的磁化方向会随机的翻转到某一最终态,所述控制器为所述真随机数发生单元通入读电流读出此时所述真随机数发生单元的电阻,即可获得所述随机数序列。

S302、所述控制器将所述随机数序列存储到所述真随机数发生单元。

具体地,所述控制器在获得所述随机数序列之后,可以将所述随机数序列存储到所述真随机数发生单元。

在上述各实施例的基础上,进一步地,本发明实施例提供的非易失性存储器的数据处理方法还包括:

所述控制器接收重置指令,将所述物理不可克隆函数单元存储的随机字符串清空。

具体地,当需要将所述物理不可克隆函数单元作为普通存储器使用时,可以向所述控制器下达重置指令,所述控制器接收到所述重置指令之后,会将所述物理不可克隆函数单元存储的随机字符串清空,以提高安全性。需要说明的是,此时所述真随机数发生单元存储的随机数序列保持不变。

图4是本发明又一实施例提供的非易失性存储器的数据处理方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的非易失性存储器的数据处理方法还包括:

S401、所述控制器接收重构指令,并从所述真随机数发生单元中读取随机数序列;

具体地,在将所述物理不可克隆函数单元作为普通存储器使用之后,如果又需要使用所述物理不可克隆函数单元用作PUF进行安全应用(密钥生成或芯片识别等),那么可以向所述控制器下达重构指令,所述控制器接收到所述重构指令之后,会从所述真随机数发生单元中读取随机数序列。

S402、所述控制器基于所述预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串;

具体地,所述控制器会根据所述预设算法对所述随机数序列中的每段随机数进行加密处理,获得每段随机数对应的随机字符串。

S403、所述控制器将每段随机数对应的随机字符串存储到物理不可克隆单元形成物理不可克隆函数。

具体地,所述控制器会将每段随机数对应的随机字符串存储到物理不可克隆单元,以便于在利用PUF进行安全应用(密钥生成或芯片识别等)时使用。

在上述各实施例的基础上,进一步地,本发明实施例提供的非易失性存储器的数据处理方法还包括:

所述控制器根据刷新指令刷新所述真随机数发生单元中存储的随机数序列,进而实现物理不可克隆函数的刷新。

具体地,可以向所述控制器下发刷新指令,所述控制器接收到所述刷新指令之后,可以刷新所述真随机数发生单元中存储的随机数序列,通过更新随机数序列来生成新的PUF,实现PUF的刷新,从而提高安全性。其中,刷新所述随机数序列与步骤S301和S302生成所述随机数序列的过程类似,此处不进行赘述。

图5是本发明再一实施例提供的非易失性存储器的数据处理方法的流程示意图,如图5所示,以SOT-MRAM作为非易失性存储器为例,具体说明SOT-MRAM的数据处理过程。可理解的是,能够利用存储器阵列构成真随机数发生单元的非易失存储器都可以应用本发明实施例提供的非易失性存储器的数据处理方法。

第一步、生成随机数序列。将SOT-MRAM分块,并选定某一存储块的其中几行存储单元作为真随机数发生单元。给真随机数发生单元通入SOT电流,将SOT-MTJ由垂直磁化方向拉到面内磁化方向,然后撤掉电流,让其在热扰动的干扰下,随机翻转到某一最终态。此时该真随机数发生单元中各单元对应的阻值即对应了所产生的随机数序列,控制器读取各个阻值,将获得的随机数序列存储到真随机数发生单元中。

第二步、生成随机字符串。在SOT-MTJ的上电极和任一底电极之间通入读电流,依次读出真随机数发生单元的阻值对应数据,控制器即可从真随机数发生单元中获取随机数序列。控制器将随机数序列分为N段随机数据,基于安全散列算法SHA-512分别对每段随机数据进行加密,获得每段随机数对应的512比特的码字。

第三步、存储随机字符串。控制器将各段512比特的码字存储到PUF单元中。

第四步、进行安全验证。控制器通过译码器解析输入激励,按照输入激励进行寻址,找到所对应的物理不可克隆函数单元存储的数据,作为该输入激励的一个输出响应,形成一个激励-响应对(CRP),CRP可以用于PUF安全认证。其中,输入激励可以为一串字符,根据实际需要进设置,本发明实施例不做限定。

第五步、切换为存储器。当SOT-MRAM需要用作存储器时,向控制器下发重置指令,控制器接收到重置指令之后可以将PUF单元重置,用于存储数据。此时真随机数发生单元保持当前状态不变,即存储的随机数序列不变;当SOT-MRAM需要用做PUF时,则重复第二步和第三步,使PUF单元中存储各段512比特的码字。

第六步、刷新PUF单元。由于真随机数发生单元和PUF单元占用的面积和数据空间是固定的,因此能够注册和认证的用户数量是有限的,当用户需要刷新PUF或者当前PUF已经不再安全时,可以向控制器下发刷新指令,以刷新真随机数发生单元中存储的随机数序列,生成新的随机数序列,再经过第二步和第三步形成新的PUF。PUF单元存储的随机数序列的刷新,能够提高安全性和实用性。

可理解的是,当PUF单元所在的存储块用作存储器时,真随机数发生单元保存当前的随机数据序列固定不变,该存储块中的其余单元则被初始化用于存储数据,能够像正常存储器一样进行数据读写。当PUF单元需要用作PUF时,控制器读出真随机数发生单元保存的随机数序列,并通过安全散列算法进行加密,将获得的随机字符串存储到PUF单元。以此实现PUF单元作为PUF和存储器的复用。

需要说明的是,第五步切换为存储器和第六步刷新PUF单元的执行没有先后顺序关系。

本发明实施例提供的非易失性存储器及其数据处理方法,具有如下有益效果:

(1)在非易失性存储器中实现PUF,避免单独的PUF模块合并到存储器中,减小了硬件安全电路在芯片中的面积占比。

(2)将非易失性存储器分块,并只利用其中的部分存储块作为PUF和TRNG,在实现硬件安全功能的同时保留了存储功能。

(3)利用非易失性存储器内部的单元实现TRNG,避免使用单独的外部TRNG,减少了器件所占用的面积。

(4)利用预设算法实现了TRNG到PUF的赋值,实现了存储器与PUF单元的复用。

(5)利用TRNG产生新的随机数,实现了PUF的刷新,提高了安全性。

本发明实施例提供一种硬件加密芯片,包括上述任一实施例所述的非易失性存储器。

本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器包括上述实施例所述的硬件加密芯片。

其中,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

下面参考图6,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。

如图6所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。

本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可应用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于闪存的固态硬盘及其数据管理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类