可双重预充电的PUF存储器及其密码生成方法与流程

文档序号:12368856阅读:377来源:国知局
可双重预充电的PUF存储器及其密码生成方法与流程

本发明属于信息安全技术领域,具体涉及一种带有双重预充电机制的比较器的可排除不确定态的存储器及其密码生成方法。



背景技术:

电子时代,在计算机给人们提供便利的同时,也带来了一个严峻问题,那就是硬件安全问题,尤其是私人器件的认证问题。

密钥生成及管理是现代社会中信息安全的基础系统之一。在各种使用密钥的领域,都需要通过不同层级的密钥分散过程得到整个系统中的所有密钥。在这一过程中,最顶级的密钥,即系统密钥,是整个系统中最重要、最核心的密钥——根密钥生成、管理过程中的安全性、可靠性直接决定了整个系统的安全性和可靠性,保证认证密钥的独特性,安全性成为关键。目前,系统密钥大多以明文或者密文的形式储存于非易失性存储器中,面临着侵入式攻击和非侵入式物理攻击等物理攻击的威胁。与常规系统密钥安全的研究策略相比,物理不可克隆(Physically Unclonable Function,PUF)技术采用硅片独特的物理特性和 IC 制造过程的变异性来识别各个硅芯片,使每个芯片具有自己特有的密钥。此密钥不可预测,永久存在且无法仿制,具有更高的安全性。

然而,在PUF的制造过程中,面临着另外一个严峻的问题。随着制造工艺的提高,器件在物理上的差异也越来越小,这导致系统在识别硅片的物理差异时会遇到大量无法判断(不确定态)的情况。这就意味着,在数次产生密码的情况,得到的密钥可能会有所不同,这就导致了密钥的不稳定性,对系统安全极为不利。因此,提出解决判断硬件不确定态的PUF存储器就尤为重要。

在现有技术中,美国专利US9093128提出了一种解决不确定态的方案,称为方案一,该专利采用一种特殊的阵列形式,如图1所示。该阵列共有两行n列,每列构成一个CELL对,在密钥生成过程中,每对CELL产生1-BIT密文。方案一解决不确定态的方法是在生产时对阵列进行初步判定,判定时对每对CELL进行一次预充电,并根据预比较结果对存储阵列进行处理。处理方法包括两种:第一种是对差异小的CELL对进行标记,标记后的CELL在密钥生成过程中无法读出,即将其从密钥生成过程剔除;第二种方法同样是对差异小的CELL对进行标记,不同之处在于标记后的CELL对在密码生成过程中无法进行写入操作。方案一的特点是在PUF出厂前对所有阵列进行一次预处理,并将处理信息储存在系统内,这也就需要额外的存储空间。

三星公司在2016年发表的论文(Physically Unclonable Function for Secure Key Generation with a Key Error Rate of 2E-38 in 45nm Smart-Card Chips, ISSCC 2016)提出了一种类似的解决方案:在芯片的生产过程中,利用一个存储区域对每个芯片单元的可用性进行标记,生成一个“VALID_MAP”,在每次生成密钥的过程中首先查找VALID_MAP,然后进行差异性判断,并将差异性小的CELL对舍去。此外,该论文中取5个CELL对生成1-BIT密文,进一步降低单个CELL对的不确定态对整体密文的影响。

除了上述方案之外,在论文(Extracting Physically Unclonable Function From Spin Transfer Switching Characteristics in Magnetic Tunnel Junctions, IEEE TRANSACTIONS ON MAGNETICS, VOL. 50, NO. 11, NOVEMBER 2014)中,还提出了另外一种解决方案,称为方案二,如图2:方案二针对MTJ-PUF的不确定态设计了4x4的存储阵列,在密码生成过程中,对存储阵列进行100次循环操作,每次操作后,剔除处于不确定态的CELL,然后进行下次循环;100次循环操作结束后,剩余的确定态作为该系统的密钥。方案二的特点在于并不对可能不确定态的CELL进行预处理,而是在密钥生成过程中才对处于不确定态的CELL进行剔除。相对于方案一,方案二不需要额外的存储空间,但是每次密码生成时的大量循环操作会浪费大量的时间。

方案一在处理不确定态时,会占用部分存储空间,方案二在处理不确定态时会占用大量时间,两种方案具有不足之处。因此,需要提出一种新的处理不确定态的方法,要求其在解决基于非挥发性存储器的PUF的不确定态问题的同时,不会对存储空间有太大的要求,也不会在密码生成过程中浪费大量时间。



技术实现要素:

本发明的目的在于提供一种可双重预充电的PUF存储器及其密码生成方法,以便能够在尽可能减少对存储空间以及生成密钥的时间的前提下,实现对基于非挥发性存储器的PUF的不确定态的判断。

本发明所针对的非挥发存储器,主要是逻辑工艺兼容的非挥发存储器,特别包含能通过高低阻值转换实现存储的非挥发存储器,例如阻变存储器(Resistive memory), 相变存储器(Phase-change memory), 铁电存储器(Ferroelectric memory),等等。

本发明提出的可双重预充电的PUF存储器,是一种可判断硅片不确定态的PUF存储器,其电路结构如图3所示,包括:非挥发存储阵列100,基准电流模块101,行列译码器102,非挥发参考阵列103,Vref调整模块104,带双重预充电机制的比较器105,RESPONSE寄存器106,密码生成模块107,地址产生模块108;控制信号包括:地址生成模块使能A_EN,基准电流模块使能I_EN,带双重预充电机制的比较器工作状态控制信号W/P,预充电电平控制信号PRE,密码生成模块使能SEC_EN。其中:

(1)所述非挥发存储阵列100由M*N个非挥发存储单元构成,共有M行N列;每行有M个非挥发单元构成,每列由N个非挥发单元构成,每次生成密钥时,随机选取阵列中某行,并对该行进行逐列扫描。该非挥发存储阵列受控于行列译码器,当行选通信号为1时,整行非挥发单元全部选通,当列选通信号为1时,整列非挥发单元全部选通,两者交点为选通单元;其电流输入为基准电流源的输出,输出为每个非挥发存储单元上的电压。

(2)所述基准电流模块101,由一个电流镜构成;其信号输入为I_EN,电流输入为一个基准电流IREF,输出为Iout1与Iout2。当信号输入I_EN为高电平时,基准电流模块工作,将输入电流分为两个相等的电流Iout1和Iout2,输出电流Iout1作为非挥发阵列的电流输入,输出电流Iout2作为非挥发参考阵列作为电流输入。

(3)所述行列译码器102,由译码器构成(包括行译码器和列译码器),列译码器还包括COMS晶体管作为选通开关;输入为非挥发阵列地址,输出为行列选通信号。其功能是根据的输入地址产生相应的选通信号,控制比较单元的通断。例如,当输入行地址为0000000000时,第一行选通,此时,若输入列地址为0000000000,则第一列选通,最终选通非挥发单元为第一行第一列非挥发单元;当输入为0000000001时,第二行选通,此时,若输入列地址为0000000000则第一列选通,最终选通输入地址为第二行第一列非挥发单元。

(4)所述非挥发参考阵列103,由n个非挥发存储单元构成,也可以由n个非挥发存储单元串并联构成,功能为产生非挥发存储单元工作时的平均电阻值,以对抗工艺波动。该阵列作为非挥发存储阵列102的比较,其输入为基准电流源的输出,输出为n个非挥发存储单元的平均电压(Vref0)。

(5)所述Vref调整模块104,其功能是根据密钥生成的不同阶段对Vref进行调整;其输入为Vref0,输出为经调整后的参考电压Vref。Vref调整模块104根据密钥生成的不同阶段对Vref进行调整,以提高对确定态“0”和确定态“1”筛选的严格程度,例如:PRE为高电平时,Vref相对于Vref0减小δ,即对确定态0的筛选严格程度提高δ;PRE为低电平时,Vref相对Vref0增大δ,即对确定态1的筛选严格程度提高δ;无预充电时,Vref等于Vref0。

(6)所述带双重预充电机制的比较器105,包括灵敏放大器121及预充电部分122;灵敏放大器对比较器输入进行初步放大;预充电部分状态包括工作状态和预充电状态;比较器处于工作态时,输出随输入同步变化;比较器处于预充电状态时,电输出由预充电电平决定,其预充电电平包括预充高电平和预充低电平。

所述灵敏放大器121,其输入为参考电压Vref和待判断电压Vin,其中,Vref为非挥发参考阵列103的输出,Vin为非挥发存储阵列100的输出;输入电压Vref和Vin的差值经过灵敏放大器121的放大作为灵敏放大器的输出,同时也作为预充电部分122的输入V_IN。

所述预充电部分122,其输入包括预充电使能信号S_EN,预充电电平控制信号PRE,工作状态控制信号W/P,和灵敏放大器121输出V_IN,输出信号为OUT;S_EN为低电平时,预充电部分122不具有预充电功能,输出随输出同步变化;S_EN为高电平时,预充电功能启动;预充电电平控制信号PRE包括预充高电平和预充低电平两种状态,高电平由数字信号“1”表示,低电平由数字信号“0”表示;工作状态控制信号包括工作态和预充电态,工作状态由数字信号“1”表示,预充电状态由数字信号“0”表示;灵敏放大器121输出V_IN可分为三种状态:高电平,低电平和不确定态,其中高电平由数字信号“1”表示,低电平由数字信号“1”表示,不确定态由“X”表示。预充电部分122工作时,首先确定预充电态电平,例如,当预充为高电平“1”时,预充电部分首先处于预充电态,即W/P信号为“0”,此时无论输入V_IN为何值,输出OUT均为预充电电平“1”,随后预充电部分进入工作态,即W/P=“1”,此时对输入V_IN进行判断,当且仅当输入V_IN为低电平“0”时,输出OUT变为低电平“0”,若输入V_IN为“1”或者“X”,输入OUT保持高电平“1”;若预充为高电平“0”时,预充电部分首先处于预充电态,即W/P信号为“0”,此时无论输入V_IN为何值,输出OUT均为预充电电平“0”,随后预充电部分进入工作态,即W/P=“1”,此时对输入V_IN进行判断,当且仅当输入V_IN为低电平“1”时,输出OUT变为高电平“1”,若输入V_IN为“0”或者“X”,输入OUT保持低电平“0”。

(7)所述RESOPNSE存储器106,由预充高电平存储器131、预充低电平存储器132以及无预充存储器133构成;预充高电平存储器用于预充电平为“1”时的储存,预充低电平存储器用于预充电平为‘0’时的储存,无预充存储器用于无预充时的存储。输入信号包括:列地址扫面信号ADDRESS_IN,存储器片选信号SIG_SLT,数据输入信号DATA_IN输出数据为SEC0。当预充电使能信号S_EN位高电平“1”且预充电平PRE为高电平“1”时,预充高电平存储器131选中,用于输出结果的储存,当预充电使能信号S_EN为“1”且预充电平PRE为“0”时,预充低电平存储器132用于输出结果的储存;当预充电使能信号S_EN为低电平“0”时,选中无预充存储器133用于输出结果的存储。输出结果时,首先由预充高电平存储器131中的“0”和预充低电平存储器132中的“1”的位置得到确定态非挥发单元地址,然后通过在无预充存储器133中查找相应地址的数据以得到输出SEC0。

(8)所述密钥生成模块107,其输入为RESPONSE存储器中的确定态部分,输出为根据确定态部分生成的密钥。即其输入包括模块使能信号SEC_EN,密钥输入信号SEC0,输出为密钥。模块使能信号SEC_EN分为有效和无效两种状态,有效状态用数字信号“1”表示,无效状态用数字信号“0”表示。当列扫描信号实现三个循环后,SEC_EN信号有效,即SEC_EN置为“1”,此时密钥生成模块106输入为RESPONSE存储器105中的确定态部分,即预充高电平存储器中的“0”和预充低电平存储器中的“1”。密钥生成模块根据输入生成相应的密钥。

(9)所述地址产生模块108,由行地址生成模块141和列地址生成模块142构成。工作时,行地址生成模块随机生成行地址,并将其传送至行译码器;列地址生成模块在行地址确定后,进行列地址扫描,生成扫描信号,并将其传送至列译码器。其信号输入为A_EN,输出为非挥发存储阵列内部地址。

本发明还提供基于本发明的所提出的带有带双重预充电机制的比较器的PUF存储器的密钥生成方法,其流程见图4所示,具体步骤如下:

步骤401:地址生成模块使能A_EN,地址生成启动;

步骤402:译码电路工作;

步骤403:S_EN置1,PRE置1,确定预输出为高,Vref调整模块对Vref进行调整,例如,将Vref减小δ,RESPONSE存储模块选中预冲高电平存储器,预充高电平存储器工作;

步骤404:W/P信号启动,为时钟信号,比较器状态在工作态和预充电态之间转换,并找出可以确定为低电平“0”的非挥发单元;

步骤405:输出结果写入预充高电平存储器;

步骤406:S_EN置1,PRE置0,确定与输出为低,Vref调整模块对Vref进行调整,例如,将Vref增大δ,RESPONSE存储模块选中预充电平存储器,预充低电平存储器工作;

步骤407:行地址保持不变,列地址重新扫描;

步骤408:W/P信号启动,为时钟信号,比较器状态在工作态和预充态之间转换,并找出可以确定为高电平“1”的非挥发单元;

步骤409:输出结果写入预充低电平存储器;

步骤410:S_EN置0,此时无预充动能,选中无预充存储器;

步骤411:行地址保持不变,列地址重新扫描;

步骤412:W/P信号启动,为直流高电平,比较器一直处于工作状态

步骤413:密码生成模块使能信号SEC_EN置‘1’,生成密码。

本发明的技术效果是,在利用PUF生成密钥的前期阶段,采用预充电为1、预充电为0的两次读取,将不确定位置确定出来,无需大量循环,不需额外的NVM存储不确定位置,不需在制造阶段进行额外的不确定态筛选工作。

附图说明

图1为现有技术提出的一种PUF存储阵列。

图2为现有技术提出的针对MTJ-PUF的不确定态的解决方案。

图3为本发明提出的带有带双重预充电机制的比较器的PUF存储器结构。

图4为本发明提出的密钥生成的工作流程。

图5为本发明提出的带有双重预充电机制的RRAM-PUF的一个实施例。

具体实施方式

下面结合实施例对本发明具体实施方式做进一步的详细描述。

图5是本发明的一个实施例,即针对RRAM- PUF,其包括RRAM存储阵列600,基准电流模块601,行列译码器602,RRAM参考阵列603,Vref调整模块604,带双重预充电机制的比较器605,RESPONSE存储器606,密码生成模块607,地址产生模块608。

所述RRAM存储阵列601在初始状态时都处于高阻态,且整个工作过程电阻状态不变。

地址产生模块使能信号A_EN有效,地址产生模块607产生地址,行地址输送至行译码器,列地址输送至列译码器;行列译码器602工作,选出待测RRAM单元。

基准电流模块I_EN使能信号有效,输出基准电路I_out1,I_out2;I_out1输送至RRAM存储阵列600,I_out2输送至RRAM参考阵列603;电流经过两个阵列产生电压V_in,Vref0。

带双重预充电机制的比较器使能信号S_EN置1,PRE信号置“1”,即预充电输出为高,W/P信号设为时钟信号,带双重预充电机制的比较器在工作态与预充电态之间切换;此时,Vref调整模块对Vref进行调整,例如,将Vref0减小δ,预充电部分选出确定态,即预充高电平时,输出为低电平“0”的RRAM单元。

RESPONSE存储器片选信号工作,片选信号为S_EN信号和PRE信号,此时,S_EN信号为“1”,PRE为“1”,选中预充高电平存储器631,预充高电平时的输出结果储存至预充高电平存储器631。

带双重预充电机制的比较器使能信号S_EN置1,PRE信号置“0”,即预充电输出为低,W/P信号设为时钟信号,带双重预充电机制的比较器在工作态与预充电态之间切换;此时,Vref调整模块对Vref进行调整,例如,将Vref0增大δ,预充电部分选出确定态,即预充低电平时,输出为低电平“1”的RRAM单元。

此时,S_EN信号为“1”,PRE为“0”,选中预充低电平存储器632,输出结果储存至预充低电平存储器632。

带双重预充电机制的比较器始终处于工作态;此时,Vref等于Vref0。

此时,S_EN信号为“0”,选中预充低电平存储器633,输出结果储存至预充低电平存储器633。

密码生成模块使能信号SEC_EN有效,密码生成模块工作,密钥生成模块606输入为RESPONSE存储器105中的确定态部分。密钥生成模块根据输入生成相应的密钥。

尽管对本发明的描述是以参考实例的方式作出的,但是本领域的技术人员将认知到,在不脱离本发明的范围和前提下,可以在形式或者细节上做出改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1