基于数据残留时间的SRAM-PUF预选方法及装置、电子设备

未命名 10-09 阅读:168 评论:0

基于数据残留时间的sram-puf预选方法及装置、电子设备
技术领域
1.本技术涉及物理不可克隆函数技术领域,尤其涉及基于数据残留时间的sram-puf预选方法及装置、电子设备。


背景技术:

2.电子设备是我们日常生活中不可分割的一部分,这类设备如智能卡、移动电话、rfids可用于验证其所有者的身份,并为其提供访问私人区域或其银行账号的权限,并且都可存储其私人数据以及信息。由于这些设备的广泛使用,这就使其容易成为被攻击的目标,这实际上就是一个安全问题。大多数的设备都包含一些用于验证其拥有者身份的密钥或者信息,因此,这些信息或者密钥必须以一种安全的方式存储,如此才可以防止信息的泄露,保证设备以及个人信息的安全性。
3.密钥的安全存储和使用是一项具有挑战性的任务,通常情况下密钥存储于非易失性存储器中,但其容易受到侵入式攻击而造成密钥的泄露,为了能够安全存储密钥,电子设备中必须有额外的硬件安全架构来做攻击的检测,这些硬件需要提供稳定的电源来维持工作,但这对于一些小的平台如微控制器、rfids都是一笔巨大的开销。以上的这些描述都带出了目前嵌入式设备中普遍存在的问题,在提高设备安全性的基础上需要增大过多硬件资源,提高了芯片的功耗及面积。puf以一种安全的方式保存密钥信息,正越来越多的应用于加密协议、系统安全架构中。
4.sram由于其自身天然的随机性,不需要额外的puf硬件电路来生成熵源,成为国内外研究的热门,且已经以一种较为成熟的技术用于商业。但是其存在如下问题,原生态的sram-puf错误率较高,随之要求的是纠错电路纠错能力的增加,同时伴随着电路面积的线性增加。
5.虽然对sram单元进行预选的方法很多,但是这些方法都存在一定的缺陷。利用sram单元上电坡度的特性,提出的sram上电坡度预选算法,虽然所需要的测试数据量少,但其需要从电源两端对sram进行梯度上电,对电源提出了较高的要求,且其对环境敏感不易进行密钥重构;利用sram跳闸电压特性,提出的sram最大跳闸电压预选算法,虽然测试数据结果准确,但是对电源分级颗粒度提出了较高的要求;临时多数表决算法通过数次评估sram重复上电值进行多数投票表决,选择表决之后仍具有强烈偏向性的单元作为puf响应,但是许多在前级评估中有相同偏向的单元在后续的评估中出现了相反的偏向性,虽然方法简单但是失去了puf的稳定性。


技术实现要素:

6.本技术实施例的目的是提供基于数据残留时间的sram-puf预选方法及装置、电子设备,以解决相关技术中存在的sram-puf稳定性低,纠错电路面积大的问题。
7.根据本技术实施例的第一方面,提供基于数据残留时间的sram-puf预选方法,包括:
8.设置sram单元断电时间扫描步长以及扫描总时长,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;
9.从所述上电信息中获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;
10.设置sram-puf响应长度,并设置是否进行sram单元分块操作;
11.如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位;
12.如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位;
13.根据所述的sram单元下标生成sram-puf响应;
14.存储所述分块号、掩码位作为生成sram-puf响应的信息源。
15.进一步地,所述sram单元既可是片外sram单元也可是嵌入式设备的片内sram单元,设置sram单元断电时间扫描步长以及扫描总时长,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息,包括:
16.向sram阵列中全写数据
‘1’
,根据设置的断电扫描步长进行批次断电,然后再进行上电,上电之后读取每个sram单元上电信息,将数据与断电扫描节点相对应;
17.向sram阵列中全写数据
‘0’
,根据设置的断电扫描步长进行批次断电,然后再进行上电,上电之后读取每个sram单元上电信息,将数据与断电扫描节点相对应。
18.进一步地,根据断电扫描的sram阵列数据结果,断电时间越短先翻转的sram单元就是偏向性较强的单元,可以构建出断电时间与数据残留情况之间的关系;
19.进一步地,从所述上电信息中获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间,包括:
20.根据所述的每个断电扫描节点获取的俩类sram单元上电信息,筛选出每个断电扫描节点上翻转的sram单元;
21.根据设置的sram单元断电时间扫描步长以及扫描总时长,将所述翻转的sram单元进行标号,sram单元的标号对应其数据残留时间。
22.进一步地,所述的sram-puf响应长度配置成64或128或256位,所述分块操作对应sram分块数量为2048或1024或512块。
23.进一步地,从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,包括:
24.根据所述偏
‘0’
单元的数据残留时间对sram单元进行升序排列,从升序排列中筛选出二分之一sram-puf响应长度的偏
‘0’
sram单元下标;
25.根据所述偏
‘1’
单元的数据残留时间对sram单元进行升序排列,从升序排列中筛选出二分之一sram-puf响应长度的偏
‘1’
sram单元下标;
26.将筛选出的偏
‘0’
sram单元下标和偏
‘1’
sram单元下标升序排列得到sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位。
27.进一步的,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块
号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位,包括:
28.从低地址到高地址将sram单元阵列进行分块,所有sram分块都有相同的大小,分块的大小取决于所述sram-puf响应长度;
29.统计每个断电扫描节点,sram分块内所有偏
‘0’
和偏
‘1’
俩类sram单元的上电信息中翻转的sram单元的数量,筛选出翻转的sram单元的数量首先到达sram-puf响应长度的sram单元分块号;
30.将所述sram分块内翻转的sram单元数量按照1:1划分为数据
‘0’
和数据
‘1’

31.将sram翻转单元的下标进行升序排列,此排列即为sram分块中sram偏向性单元在分块内的偏移;
32.从所述升序排列中筛出sram-puf响应长度的sram单元下标,块内剩余的sram单元作为掩码位;
33.根据本发明实施例提供的第二方面,提供基于数据残留时间的sram-puf预选装置,包括:
34.扫描模块,用于进行扫描步长以及扫描总时长的配置,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;
35.获取模块,用于获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;
36.配置模块,用于设置sram-puf响应长度,并设置是否进行sram单元分块操作。
37.第一下标生成模块,用于如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位。
38.第二下标生成模块,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位。
39.响应生成模块,用于根据所述的sram单元下标、掩码位生成sram-puf响应。
40.存储模块,用于储所述分块号、掩码位作为生成sram-puf响应的信息源。
41.根据本发明实施例提供的第三方面,提供一种电子设备,包括:
42.一个或多个处理器;
43.存储器,用于存储一个或多个程序;
44.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
45.根据本发明实施例提供的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
46.本技术的实施例提供的技术方案可以包括以下有益效果:
47.由以上技术方案可知,本技术采用了基于数据残留时间的sram-puf预选方法进行sram偏向性单元的预选,提高puf响应稳定性,结合区块择优筛选sram区块,降低puf响应的分散度,以更短的时间和资源消耗生成sram-puf响应。克服了其他预选算法测试复杂、准确率低的技术问题,进而达到了简化sram单元预选的筛选过程同时又保证高稳定性的技术效果。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
50.图1是根据一示例性实施例示出的基于数据残留时间的sram-puf预选方法的流程图。
51.图2是根据一示例性实施例示出的sram偏向性单元识别原理图。
52.图3是根据一示例性实施例示出的断电扫描sram单元翻转比例图。
53.图4是根据一示例性实施例示出的不同puf响应长度区块择优筛选下各个区块的数据残留时间。
54.图5是根据一示例性实施例示出的sram数据残留时间的预选方法检测装置的结构示意图。
具体实施方式
55.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
56.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
57.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
58.图1是根据一示例性实施例示出的基于数据残留时间的sram-puf预选方法流程图,如图1所示,该方法应用于终端中,可以包括以下步骤:
59.步骤s11,设置sram单元断电时间扫描步长以及扫描总时长,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;
60.步骤s12,从所述上电信息中获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;
61.步骤s13,设置sram-puf响应长度,并设置是否进行sram单元分块操作;
62.步骤s14,如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位;
63.步骤s15,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块
号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位;
64.步骤s16,根据所述的sram单元下标生成sram-puf响应;
65.步骤s17,存储所述分块号、掩码位作为生成sram-puf响应的信息源。
66.由以上技术方案可知,本技术采用了基于数据残留时间的sram-puf预选方法进行sram偏向性单元的预选,提高puf响应稳定性,结合区块择优筛选sram区块,降低puf响应的分散度,以更短的时间和资源消耗生成sram-puf响应。克服了其他预选算法测试复杂、稳定性低的技术问题,进而达到了简化sram单元预选的筛选过程同时又保证高稳定性的技术效果。本发明实施例提供的基于数据残留时间的sram-puf预选方法适用于片内片外各种类型的sram芯片做稳定点的预选。
67.在步骤s11的具体实施中,设置sram单元断电时间扫描步长以及扫描总时长,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;
68.本发明的基于数据残留时间的sram-puf预选方法在进行sram偏向性单元的预选时,首先执行第一步骤,设置sram断电时间扫描步长以及扫描总时长,获取每个断电时间节点所有sram单元的上电信息。获取单元上电信息时,可通过嵌入式设备获取片内sram信息,也可通过外部电路获取片外sram信息。进一步的,先进工艺的sram需要更短的读写时间,缩短完成整块sram读写所需的时间。
69.在步骤s12的具体实施中,从所述上电信息中获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;
70.将全
‘0’
和全
‘1’
写入sram阵列,下式列出了sram单元偏向性强度变量λ'
bias
(正数代表偏
‘1’
,负数代表偏
‘0’
,绝对值大小代表偏向性强度)、由电容电荷cq造成的对sram单元偏向性强度影响的变量λ
bias1
、由p管阈值电压差δv
th
对强度影响的变量λ
bias2
三者的关系式。其中η代表环境如电压、温度、噪声以及工艺对变量的影响,t表示时间。变量cq、δv
th
的大小跟时间t成反比即,λ
bias1
、λ
bias2
跟时间成反比,cq变化的时间量级为毫秒或秒,即载流子复合时间,δv
th
变化的时间量级为天,即由晶体管老化带来的影响,因此在控制环境变量相同的情况下,在电荷残留时间内可以忽略老化带来的对λ'
bias
的微小影响,此时λ
bias2
是常量。
71.λ'
bias
(t,η)=λ
bias1
(cq(t,η))+λ
bias2
(δv
th
(t,η))
72.如图2所示,上下俩图分别是q点的电压、sram单元偏向性强度λ'
bias
和时间的关系。
‘1’
偏向性的sram单元分为强偏向性单元和弱偏向性单元,强偏向性单元λ'
bias
大于弱偏向性单元,在上电阶段将
‘0’
写入sram,λ'
bias
降为负,之后断电,由于λ
bias1
和时间的负相关性,λ'
bias

‘0’
强度减弱,之后再次上电,强sram单元λ
bias2
强度大于弱sram单元,因此造成最终的偏向,强sram单元偏至
‘1’
,弱sram单元偏至
‘0’
。偏向性强的sram单元会以更少的断电时间恢复到
‘1’
,用数据残留时间长短来评估sram单元偏向性强度。在两次测试之间需要等待大约120ms,这个时间是所有sram单元残留电荷释放所需要的时间,根据俩次写数据以及断电扫描间隔获取数据点信息。
73.在步骤s13的具体实施中,设置sram-puf响应长度,并设置是否进行sram单元分块操作;
74.所述的sram-puf响应长度配置成64或128或256位,所述分块操作对应sram分块数
量为2048或1024或512块。
75.在步骤s14的具体实施中,如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位,包括:
76.根据所述偏
‘0’
单元的数据残留时间对sram单元进行升序排列,从升序排列中筛选出二分之一sram-puf响应长度的偏
‘0’
sram单元下标;
77.根据所述偏
‘1’
单元的数据残留时间对sram单元进行升序排列,从升序排列中筛选出二分之一sram-puf响应长度的偏
‘1’
sram单元下标;
78.将筛选出的偏
‘0’
sram单元下标和偏
‘1’
sram单元下标升序排列得到sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位。
79.用数据残留时间长短对sram单元偏向性进行评估,数据残留预选方法根据数据残留时间、puf长度以及断电扫描时间进行单元预选,其方法描述如下:
80.1.设置sram-puf长度l,sram单元数据量n,扫描时间间隔δt,扫描总时长t;
81.2.get_val()获取上电值矩阵
82.3.calculate_flip()得到sram阵列中的0或1数量,返回对应位置idx;
83.4.timsort排序算法,将预选的sram单元下标升序排列;
84.5.从sram阵列中根据idx生成puf响应。
85.其复杂度以及函数说明如下表1。
86.表1数据残留预选方法复杂度计算
[0087][0088]
使用型号为cy7c199-15pc的sram进行测试,每块芯片包含256k个sram单元。首先需要确定合适的断电时间,如果断电时间太短会导致sram残留电荷造成的偏向性强度λ
bias1
大于所有sram单元自身偏向强度λ
bias2
,如果断电时间太长,sram单元中的残留电荷将彻底放完电,λ
bias1
降低到0就无法评估自身强度λ
bias2

[0089]
图3在标准vdd、室温25℃下对5块同一类型的芯片断电时间从0ms~150ms进行扫描,并计算写
‘0’

‘1’
俩类测试中sram单元的翻转比例。图3左边图断电时间为0ms~150ms、
扫描间隔为1ms,为了更好的观察细节,图3右边图为细节图,断电时间0ms~40ms、扫描间隔2ms。每张图分为上下2部分,上部为偏
‘1’
单元写
‘0’
断电时间与翻转比例曲线,下部为偏
‘0’
单元写
‘1’
断电时间与翻转比例曲线。
[0090]

‘0’

‘1’
时,sram单元大概在断电30ms开始翻转,当断电时间增加到105ms时翻转比例达到50%。sram单元的翻转比例随断电时间的增加而增加,同一种sram芯片的
‘0’

‘1’
数据残留时间曲线基本一致,波动范围在
±
5ms之内,这也为采用本算法提供了很好的事实依据:同一类sram芯片或者说同一工艺下的sram整体的数据残留特性基本一致,也就说只要在此种工艺下首先进行一次数据残留时间的全面扫描得到断电时间曲线,即可大幅减少后续其他所有芯片的扫描时间,可以更快找到强偏向性的sram单元。
[0091]
在步骤s15的具体实施中,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位,包括:
[0092]
从低地址到高地址将sram单元阵列进行分块,所有sram分块都有相同的大小,分块的大小取决于所述sram-puf响应长度;
[0093]
统计每个断电扫描节点,sram分块内所有偏
‘0’
和偏
‘1’
俩类sram单元的上电信息中翻转的sram单元的数量,筛选出翻转的sram单元的数量首先到达sram-puf响应长度的sram单元分块号;
[0094]
将所述sram分块内翻转的sram单元数量按照1:1划分为数据
‘0’
和数据
‘1’

[0095]
将sram翻转单元的下标进行升序排列,此排列即为sram分块中sram偏向性单元在分块内的偏移;
[0096]
从所述升序排列中筛出sram-puf响应长度的sram单元下标,块内剩余的sram单元作为掩码位;
[0097]
为了生成固定长度如64、128、256位的密钥,每一类密钥长度都存在一个断电时间与之对应,例如生成256位密钥需要128位
‘0’

‘1’
,对sram阵列进行两次写
‘1’
和写
‘0’
的扫描,直到要求数量的偏向性单元出现翻转,此刻的断电时间即为产生256位密钥所需要的时间阈值。在本例中,生成256位puf,产生64位偏
‘1’
单元所需时间为22ms,产生64位偏
‘0’
单元所需时间为21ms,则取较大断电时间22ms作为puf响应序列生成所需时间,然后记录下这些翻转单元的位置作为之后重新提取puf响应的来源,同样可以得到64、128位puf响应生成所需要的断电脉冲为13ms、18ms。
[0098]
较短断电时间内翻转的单元在之后更长时间的断电测试中始终处于翻转状态,将全
‘0’
写入整片sram,然后关闭电源,设置断电时间,使得由于电荷残留带来的偏向性强度影响λ
bias1
随时间衰减,当断电时间为25ms时,1k个sram单元中第一个偏
‘1’
单元诞生,此单元就是这1k sram阵列空间内偏向性强度λ
bias2
最大的单元。当断电时间进一步增加时,会产生更多的偏
‘1’
单元,这些单元出现的时间先后顺序跟λ
bias2
成反比,先翻转的单元λ
bias2
大,偏向性强。也就是说,一旦确定了固定的断电时间和sram-puf响应长度,即可找到sram阵列内偏向性强度最大的单元。同样偏向
‘0’
强度最大的单元也可以通过写全
‘1’
,之后筛出断电时间最短翻转的sram单元。在设定阈值内未翻转的sram单元,记录成为掩码位。
[0099]
用sram区块择优算法,挑选出强偏向性sram单元最多的区块,减小响应的分散度,
如此只需要记录区块号以及块内sram单元的偏移,可以降低存储开销。将sram根据所需puf响应长度进行区块大小划分,64、128、256位puf响应对应的sram区块大小分别为128、256、512位。其方法描述如下:
[0100]
1.设置sram-puf长度l,sram单元数据量n,扫描时间间隔扫描总时长t;
[0101]
2.get_val()获取上电值矩阵
[0102]
3.calculate_blockflip()根据区块号返回区块中0或1数量,返回对应位置;
[0103]
4.timsort排序算法,将预选的sram单元下标升序排列;
[0104]
5.从sram阵列中根据idx生成puf响应;
[0105]
6.生成区块号。
[0106]
算法复杂度计算如下表2。
[0107]
表2区块择优方法复杂度计算
[0108][0109]
可以看出区块择优算法是数据残留预选算法的变式,在据残留预选算法的基础上进行区块的预选,在区块内进行数据残留预选,2者的算法复杂度一致,区块择优算法降低了预选单元的分散度,降低了存储空间要求。在本例测试中,参数t=150;δt=1;n=256k;l=64/128/256,算法复杂度化简为o(900n)。
[0110]
图4是3种puf长度对应的各个区块产生对应puf响应所需要的数据断电时间,在使用256k个sram单元进行测试的情况下,3类puf响应对应的区块数量分别为2048、1024、512块,对每一个区块的断电时间进行扫描,直到有足够的sram偏向性单元构成对应长度的puf响应。图4展示了64位puf响应下,各个区块生成64位sram-puf响应所需要的断电时间,其最小断电时间为56ms,区块号为237;128位puf响应,其对应的最小断电时间为58ms,对应的区块号为119;256位puf响应,其对应的最小断电时间为66ms,对应的区块号为54。
[0111]
可以根据所需要的sram-puf响应长度来选择不同的断电时间,挑选出强偏向性sram单元最多的区块,同样也是基于2次测试:写
‘0’
和写
‘1’
,利用区块择优方法计算对应puf长度下的区块号以及响应,在每次断电后再次上电计算每一个区块出现的偏向性单元
数量,直到有某个区块中的
‘0’

‘1’
偏向性单元数量到sram-puf响应长度,此时这个区块即是当前sram-puf长度下偏向性最强的区块,区块内的偏向性sram单元即为puf响应序列,
[0112]
在步骤s16的具体实施中,据所述的sram单元下标生成sram-puf响应;
[0113]
在步骤s17的具体实施中,存储所述分块号、掩码位作为生成sram-puf响应的信息源,用于密钥注册以及密钥重构。
[0114]
与前述的基于数据残留时间的sram-puf预选方法的实施例相对应,本技术还提供了基于数据残留时间的sram-puf预选装置的实施例。
[0115]
图5是根据一示例性实施例示出的基于数据残留时间的sram-puf预选装置框图。参照图5,该装置包括扫描模块11、获取模块12、配置模块13、第一下标生成模块14、第二下标生成模块15、响应生成模块16、存储模块17。
[0116]
扫描模块11,用于进行扫描步长以及扫描总时长的配置,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;
[0117]
获取模块12,用于获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;
[0118]
配置模块13,用于设置sram-puf响应长度,并设置是否进行sram单元分块操作;
[0119]
第一下标生成模块14,用于如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位;
[0120]
第二下标生成模块15,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位;
[0121]
响应生成模块16,用于根据所述的sram单元下标、掩码位生成sram-puf响应;
[0122]
存储模块17,用于储所述分块号、掩码位作为生成sram-puf响应的信息源。
[0123]
关于所述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0124]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0125]
相应的,本技术还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如所述的基于数据残留时间的sram-puf预选方法。
[0126]
相应的,本技术还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如所述的基于数据残留时间的sram-puf预选方法。
[0127]
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识
或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求指出。
[0128]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。

技术特征:
1.一种基于数据残留时间的sram-puf预选方法,其特征在于,包括:设置sram单元断电时间扫描步长以及扫描总时长,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;从所述上电信息中获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;设置sram-puf响应长度,并设置是否进行sram单元分块操作;如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位;如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位;根据所述的sram单元下标生成sram-puf响应;存储所述分块号、掩码位作为生成sram-puf响应的信息源。2.根据权利要求1所述的方法,其特征在于,设置sram单元断电时间扫描步长以及扫描总时长,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息,包括:向sram阵列中全写数据
‘1’
,根据设置的断电扫描步长进行批次断电,然后再进行上电,上电之后读取每个sram单元上电信息,将数据与断电扫描节点相对应;向sram阵列中全写数据
‘0’
,根据设置的断电扫描步长进行批次断电,然后再进行上电,上电之后读取每个sram单元上电信息,将数据与断电扫描节点相对应。3.根据权利要求1所述的方法,其特征在于,从所述上电信息中获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间,包括:根据所述的每个断电扫描节点获取的俩类sram单元上电信息,筛选出每个断电扫描节点上翻转的sram单元;根据设置的sram单元断电时间扫描步长以及扫描总时长,将所述翻转的sram单元进行标号,sram单元的标号对应其数据残留时间。4.根据权利要求1所述的方法,其特征在于,所述的sram-puf响应长度配置成64或128或256位,所述分块操作对应sram分块数量为2048或1024或512块。5.根据权利要求1所述的方法,其特征在于,从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,包括:根据所述偏
‘0’
单元的数据残留时间对sram单元进行升序排列,从升序排列中筛选出二分之一sram-puf响应长度的偏
‘0’
sram单元下标;根据所述偏
‘1’
单元的数据残留时间对sram单元进行升序排列,从升序排列中筛选出二分之一sram-puf响应长度的偏
‘1’
sram单元下标;将筛选出的偏
‘0’
sram单元下标和偏
‘1’
sram单元下标升序排列得到sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位。6.根据权利要求1所述的方法,其特征在于,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位,
包括:从低地址到高地址将sram单元阵列进行分块,所有sram分块都有相同的大小,分块的大小取决于所述sram-puf响应长度;统计每个断电扫描节点,sram分块内所有偏
‘0’
和偏
‘1’
俩类sram单元的上电信息中翻转的sram单元的数量,筛选出翻转的sram单元的数量首先到达sram-puf响应长度的sram单元分块号;将所述sram分块内翻转的sram单元数量按照1:1划分为数据
‘0’
和数据
‘1’
;将sram翻转单元的下标进行升序排列,此排列即为sram分块中sram偏向性单元在分块内的偏移;从所述升序排列中筛出sram-puf响应长度的sram单元下标,块内剩余的sram单元作为掩码位。7.基于数据残留时间的sram-puf预选装置,其特征在于,包括:扫描模块,用于进行扫描步长以及扫描总时长的配置,获取每个断电扫描节点中所有偏
‘1’
和偏
‘0’
俩类sram单元的上电信息;获取模块,用于获取偏
‘1’
和偏
‘0’
俩类sram单元的数据残留时间;配置模块,用于设置sram-puf响应长度,并设置是否进行sram单元分块操作。第一下标生成模块,用于如果设置不进行sram单元分块操作,则从俩类sram单元的数据残留时间中筛选出sram-puf响应长度的sram单元下标,剩余sram单元成为掩码位。第二下标生成模块,如果设置进行sram单元分块操作,则根据所设置的sram-puf响应长度将所有sram单元进行阵列分块,从sram单元分块中筛选出偏向性强度最大的sram单元分块号,根据所述sram-puf响应长度,从偏向性强度最大的sram单元分块中筛选出sram-puf响应长度的sram单元下标,此分块内剩余sram单元成为掩码位。响应生成模块,用于根据所述的sram单元下标、掩码位生成sram-puf响应。存储模块,用于储所述分块号、掩码位作为生成sram-puf响应的信息源。8.一种电子设备,其特征在于,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的方法。9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。

技术总结
本发明涉及物理不可克隆函数技术领域,公开了一种基于数据残留时间的SRAM-PUF预选方法,包括:设置SRAM单元断电时间扫描步长、扫描总时长,获取每个断电扫描节点中所有偏


技术研发人员:陈泽亮 张培勇
受保护的技术使用者:浙江大学
技术研发日:2022.12.23
技术公布日:2023/10/8
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐