基于物理不可克隆功能的安全数据存储的制作方法

文档序号:9766154阅读:468来源:国知局
基于物理不可克隆功能的安全数据存储的制作方法
【专利说明】
【背景技术】
[0001]除非在此处进行说明,否则此处所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
[0002]随着涉及到诸如财务和个人信息的敏感信息的电子交互变得更加流行,关于数据安全性的担忧也增长。为了解决这些担忧,可以采用多种安全措施。这些安全措施可以包括对称或非对称加密算法的加密技术,以及依赖于用于认证的无序物理系统的物理安全技术。
[0003]概述
[0004]本公开一般描述了基于从非易失性存储器提取的物理不可克隆功能(physicallyunclonable funct1ns)来进行安全数据存储的技术。
[0005]根据一些示例,提供了一种利用物理不可克隆功能对非易失性存储器上的数据进行编程的方法。该方法可以包括:对于非易失性存储器上的多个存储器位,确定程序阈值均值和程序阈值偏差。该方法可以进一步包括:基于程序阈值均值和程序阈值偏差来取得第一仓库阈值和第二仓库阈值,以及基于至少所述第一仓库阈值和第二仓库阈值将位分组成至少第一位组、第二组和第三组。该方法可以进一步包括:至少基于位的分组,确定数据要写入的一组位;以及基于程序阈值均值和程序阈值偏差对所述一组位执行数据的部分编程。
[0006]根据其他示例,提供了一种利用物理不可克隆功能对非易失性存储器上的数据进行编程的编码模块。编码模块可以包括:接口,其配置为与非易失性存储器上的多个存储器位耦合;以及处理器块。该处理器块可配置为对多个存储器位确定程序阈值均值和程序阈值偏差。该处理器块可进一步配置为:从程序阈值均值和程序阈值偏差取得第一仓库阈值和第二仓库阈值;以及基于至少第一仓库阈值和第二仓库阈值将多个位分组成至少第一位组、第二位组和第三位组。处理器块可以进一步配置为:基于至少位的分组和密钥掩码,确定数据要写入的一组位;以及基于程序阈值均值和程序阈值偏差对所述一组位执行数据的部分编程。
[0007]根据另外的示例,提供了一种利用物理不可克隆功能从非易失性存储器读取数据的方法。该方法可以包括:基于程序阈值均值、程序阈值偏差和/或与至少一位相关联的位组特征,将至少一个部分程序脉冲应用于非易失性存储器中的多个存储器位中的至少一位。该方法可以进一步包括:读取多个存储器位的最终状态;以及基于最终状态和另一数据值来取得最终数据。
[0008]根据另外的示例,提供了一种具有附加的部分程序循环从而取回正确的数据的解码模块。解码模块可以包括接口和处理器块,该接口配置为与非易失性存储器中的多个存储器位耦合。处理器块可配置为基于程序阈值均值、程序阈值偏差和/或与位相关联的位组特征,将至少一个程序脉冲应用于多个存储器位中的一个或多个位,其中程序阈值可以表示将存储器位中的位从第一值修正为第二值的部分程序脉冲数量。处理器块可以进一步配置为读取多个存储器位的最终状态,以及基于最终状态和另一数据值来取得最终数据。
[0009]前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施例和特征之外,另外的方面、实施例和特征将变得清晰可见。
【附图说明】
[0010]通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加清晰。应理解的是,这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对本发明范围的限制,将通过利用附图结合附加的具体描述和细节对本公开进行说明,在附图中:
[0011]图1是图示出包含物理不可克隆功能(PUF)的示例的非易失性存储器设备的系统图;
[0012]图2是存储器设备的物理不可克隆程序特性的图示,其由将位的状态快送到读出放大器模块的部分程序循环的数量来表;^ ;
[0013]图3是利用物理不可克隆功能将数据写入存储器设备以及从存储器设备恢复数据的第一示例的图示;
[0014]图4是利用物理不可克隆功能将数据写入存储器设备以及从存储器设备恢复数据的第二示例的图示;
[0015]图5是利用物理不可克隆功能将数据写入存储器设备以及从存储器设备恢复数据的第三示例的图示;
[0016]图6是利用部分程序循环作为PUF对存储器设备上的数据进行编程和恢复的第一示例过程的图示;
[0017]图7是利用部分程序循环作为PUF对存储器设备上的数据进行编程和恢复的第二示例过程的图示;
[0018]图8是可用来基于物理不可克隆功能提供安全数据存储的通用计算设备的图示;
[0019]图9是图示出基于物理不可克隆功能来提供安全数据存储的示例方法的流程图,可通过诸如图8的计算设备的计算设备来执行物理不可克隆功能;以及
[0020]图10是示例的计算机程序产品的框图的图示,全部是根据本文所描述的至少一些实施例布置的。
【具体实施方式】
[0021]在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
[0022]本公开一般尤其涉及与基于物理不可克隆功能(PUF)的安全数据存储有关的方法、装置、系统、设备和/或计算机程序产品。
[0023]简言之,一般描述了具有用于安全数据存储的物理不可克隆功能的存储器的部分编程的技术。在一些示例中,希望利用物理存储器将数据安全地发送到接收方的发送器可以对于存储器中的位测量程序阈值均值和程序阈值偏差且基于测量的均值和偏差将位分组到不同的仓库。通过基于程序阈值均值和程序阈值偏差将部分程序脉冲应用于位,发送器可以部分地将数据编程到从一个或多个仓库中选出的一组位。然后,发送器可以将部分编程的存储器提供给接收方。接收方随后可以基于程序阈值均值和程序阈值偏差对接收到的存储器进行部分编程以恢复编程的数据。
[0024]图1是图示出依照本文所描述的至少一些实施例布置的具有物理不可克隆功能(PUF)的示例的存储器设备的系统图。
[0025]根据系统图100,物理存储器102可以包括存储器控制器104、读模块106、编程/擦除模块108和存储器单元110。存储器单元110可以在每个单元中存储一个或多个二进制数据位,并且可以是易失性的(例如,动态随机存取存储器)或非易失性(例如,闪速存储器或EEPROM存储器)。在为非易失性存储器的情况下,存储器单元110可以利用浮动栅极设备来实现,浮动栅极设备将数据值存储为电荷或电荷载体。电荷阈值可用来描绘不同的数据值。存储比电荷阈值多的电荷的存储器单元可被认为存储一个值(例如,二进制“I”),而存储比电荷阈值少的电荷的存储器单元可被认为存储不同的值(例如,二进制“O”)。在其他实施例中,电荷与值的对应可以反向(即,比阈值少的电荷对应于二进制“I”),能够在每个单元中存储多个位的多级单元可以实现多个阈值。存储器单元110可以被组织成一个或多个字、页、块、或任何适当尺寸的区段。在一个实施例中,存储器单元110可以包括包含存储器单元121-128的8位字120。
[0026]存储器控制器104可以分别利用读模块106和写模块108来从存储器单元110读数据或者将数据编程到存储器单元110中。在一些实施例中,存储器控制器104可以利用编程模块108将数据编程到存储器单元110中以调节存储在一个或多个存储器单元上的电荷,在电荷阈值以上或以下移动,从而改变存储在存储器单元上的数据值。编程模块108可以通过将不同的电压值和/或电流值施加到存储器单元上来调节存储在诸如存储器单元121的存储器单元上的电荷。在一些实施例中,编程模块108可以施加一个或多个离散的电压/电流脉冲,或者“程序脉冲”,以修改存储在存储器单元121上的电荷。每个程序脉冲可以具有预定的或动态确定的电压值或电流值,并且可以持续预定的或动态确定的持续时间。在一些实施例中,单一程序脉冲可能不能供应改变存储在存储器单元121上的数据值的足够电荷。因此,编程模块108可以将一系列程序脉冲施加到存储器单元121上,直到足够的电荷已经供应以改变存储在存储器单元121上的数据值。供应改变存储在存储器单元上的数据值的足够电荷的程序脉冲的数量可称为“程序阈值”。
[0027]在一些实施例中,用于存储器单元的程序阈值可以根据存储器单元而变化。例如,如果存储器单元121最初完全无电荷,则编程模块108可以将按照第一程序阈值的程序脉冲(具有特定的电压/电流值和持续时间)施加到存储器单元121上以改变存储在存储器单元121中的数据值。相反,编程模块108可能必须将按照不同于第一程序阈值的第二程序阈值的程序脉冲(具有相同的电压/电流值和持续时间)施加到存储器单元122上以改变存储在存储器单元122中的数据值。与特定的存储器单元相关联的程序阈值可以取决于由于存储器制造过程而产生的位物理特性。例如,存储器制造过程,作为物理的且相对随机(或无规则)的过程,本质上会导致存储器单元具有缺陷水平、掺杂剂水平和尺寸上的随机变化。这些变化,虽然通常随时间推移而稳定且不会实质地影响所制造的存储器单元的功能,但是会改变存储器单元的编程/擦除特性。结果,存储器上的不同的位可能会具有不同的程序阈值。
[0028]存储器单元程序阈值的无规则变化可用作安全性函数。因为变化源自于物理存储器制造过程,所以完全可能的情况是,变化的重现很难。这些变化可称为“物理不可克隆功能”或PUF。与程序阈值的变化相关联的PUF可以与“部分编程”操作相结合。部分编程操作是这样的操作:即,程序脉冲施加于一位,但是单个或少量的程序脉冲不足以实际上达到存储器单元的程序阈值。例如,如果存储器单元的程序阈值需要20个这样的部分程序脉冲,则部分编程操作可以涉及到对存储器单元施加10个程序脉冲、15个程序脉冲或少于20的任何其他数量的程序脉冲。在该情况下,存储器单元的读可表明,存储器单元存储原始的、未经改变的数据值,无论所施加的程序脉冲如何。结果,可以将数据编码到存储器单元中,无需在外部是可视的或可读的。当利用PUF和部分编程操作来保护数据时,攻击者将需要实际上拥有PUF的物理实例且能够识别存储数据的存储器单元从而能够取回存储的数据。
[0029]图2是依照本文所描述的至少一些实施例布置的存储器设备的物理不可克隆程序特性的图不。
[0030]根据程序200,8位字210 (类似于图1中的8位字120)可以包括八个存储器单元或位201-208。例如,由于上述的变化,位201-208可以各自与不同的程序阈值相关联。例如,位201可以具有程序阈值20,位202可以具有程序阈值15,位203可以具有程序阈值30,位204可以具有程序阈值17。位205可
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1