基于SRAM PUF稳定性处理的RFID标签密钥生成方案

2020-09-18 00:23潘畲稣张继军张钊锋
计算机工程 2020年9期
关键词:失败率错误率密钥

潘畲稣,张继军,,张钊锋

(1.上海大学 材料科学与工程学院,上海 201900; 2.中国科学院上海高等研究院,上海 200120)

0 概述

随着RFID技术的不断发展和广泛应用,用户隐私密钥泄露等安全问题变得越来越重要。传统RFID通信系统应用对称加密时,标签将密钥信息存储在非易失性存储器中,但这种方式容易被窃取或恶意篡改。物理不可克隆函数(Physical Unclonable Function,PUF)以其不可克隆的理想特性,被认为是一种具有应用前景的安全构建模块,可用于各种认证和识别应用的密钥。PUF信息是电路在制造过程由工艺造成的差异产生的,电路下电后其响应信息自动湮灭,不容易被攻击[1-2]。

近年来,国内外学者对PUF在安全通信方面的应用进行了深入研究[3-5],但多数研究均没有考虑到PUF在实际使用过程中的稳定性处理问题。因为相同的PUF在每次响应时往往还存在一定差异,所以不能直接作为密钥使用。针对PUF响应的稳定性处理问题,文献[6-7]提出一种利用模糊提取器得到稳定输出,该方法虽然能够有效纠正PUF的错误响应,但是运算量较大,不适用于计算力、面积与功耗等受限的标签。文献[8]提出将PUF响应行为看作布尔函数,并与傅里叶变换分析相结合,该方案的运算量较纠错码方案减小了很多,然而,利用8 kB的SRAM生成128 bit的密钥对于标签而言成本较高。文献[9]提出的反向模糊提取器虽然可以大幅降低标签的负担,但是当PUF片间距离较大时,硬件开销也会随之增加。为了降低PUF的片间距离,以减小ECC纠错负担,文献[10-12]提出各种预选位方法,以选择最稳定的PUF单元,但各种预选位方法都需要在大量的PUF源中进行测试挑选,造成多数PUF单元被浪费。

本文通过对SRAM PUF进行研究,利用其非稳定位且总是相邻的特点,提出基于条件概率的预选位方法。结合反向模糊提取器设计了应用于RFID标签密钥生成的SRAM PUF处理模块,以在非正常工作条件下达到较小失败率。

1 SRAM PUF介绍

硅PUF由于原理和结构的不同存在基于时延的仲裁PUF、环形振荡器PUF、基于失配的SRAM PUF、蝶形PUF以及基于电流的PUF等各种类型。

SRAM作为传统存储器被普遍嵌入各种电子商品。每个SRAM单元都具有优先上电状态,而优先上电状态对于不同SRAM单元和不同芯片都各不相同,这种上电模式可以作为PUF。SRAM PUF是目前最受欢迎的硅PUF之一,它无需硬件修改和额外硬件开销即可作为PUF模块[13-14]。因此,本文采用SRAM作为标签的PUF源,并以此展开研究。

2 稳定性设计

2.1 反向模糊提取器

PUF测量物理电路特性以产生响应,然而与任何物理测量一样,SRAM PUF的响应值不可避免地受到热噪声和不同环境条件的影响,因此,PUF响应的复制不是完全稳定的[15]。为了稳定噪声响应得以在加密协议中使用,需要引入模糊提取器提取PUF响应的稳定部分并生成密钥。

基于code-offset的模糊提取器结构如图1所示[16],其通过注册和重现2个阶段产生SRAM PUF密钥。在注册阶段,通过Gen()产生辅助数据W,该辅助数据在重现阶段用来通过Rep()恢复响应。Gen()和Rep()分别为相应纠错码的编码和解码函数,汉明距离在纠错码的纠错范围内的带噪响应可以被正确纠正。KDF()为密钥派生函数,用来生成强密钥。

图1 基于code-offset的模糊提取器结构

通常在模糊提取器的设置中,服务器存储在注册阶段,执行Gen()函数后生成辅助数据,在重现阶段将辅助数据发送给PUF设备,由PUF设备纠错修正Rep()函数生成的带噪响应。然而,由于Rep()函数的计算量远大于Gen()函数,文献[9]提出将Gen()函数放在资源受限的设备中,由服务器负责执行Rep()函数修正存储值,该方法称为反向模糊提取器。考虑到标签对面积、功耗等的要求远高于读写器,本文选择基于code-offset的反向模糊提取器作为标签的PUF响应处理,以轻量海绵结构的哈希函数作为KDF。

2.2 熵泄露分析及参数选择

由图1可知,生成的密钥由随机数种子S经过KDF()函数后生成,而辅助数据W是公开的,因此,为保证安全性需要保证在W已知情况下,S仍具有足够的熵。S为长度为k的随机数种子,因此,H∞(S)=length(S)=k。用条件熵H∞(S|W)表示已知W时S的剩余熵,具体如式(1)所示:

H∞(S|W)=H∞(S)-I(S,W)

(1)

其中:

I(S,W)=I(S,X⊕SG)=H∞(S)-H∞(X)+H∞(XHT)=

k-H∞(X)+H∞(XHT)

H∞(XHT)≤|XH|=n-k

H∞(X)=nh(pb)

h(pb)=-lb (max(pb,1-pb))

(2)

最终可得:

H∞(S|W)=H∞(X)-H∞(XHT)≥k-n(1-h(pb))

(3)

其中,n为纠错码码长,pb为PUF响应的偏置(响应值出现1的概率),h()为最小熵密度函数,H为相应纠错码的校验矩阵。为提高纠错效率,采用BCH码C2作为外码,重复码C1作为内码,L个(n2,k2,t)结构的BCH码和(n1,1,n1)重复码级联后,H∞(XHT)可由式(4)表示[16-18]:

H∞(XHT)≤L·(n2·H∞(X1:n1H1T)+H∞(X1:n2H2T))=

L·(n1n2-k2)

(4)

因此,级联后的剩余熵下限如式(5)所示,并以该下限值作为设计最终所得密钥熵。

H∞(S|W)≥L-(n1n2h(pb)-n1n2+k2)

(5)

假设PUF响应每比特出现的错误概率为e,级联码的纠错失败率可由式(6)表示:

(6)

其中,p1和p2分别为经过重复码译码和BCH码译码后的成功率。对于给定BCH(n2,k2,t)码,生成熵为k的密钥需要L=(k/H∞(S|W))个块,pfail为最终密钥生成失败率。

对1 kB ISSI SRAM上电初始值进行统计,得到片内距离均值为0.075,该值可作为每比特发生错误的平均概率e,pb为0.51。当偏置pb范围为[0.42,0.58]时,增加初始响应长度可得到所需密钥熵[19],因此,本文设计通过增加初始长度而不额外增加针对密钥泄露的处理部分。考虑到标签的面积和计算力制约,根据式(5)、式(6)设计生成熵为64 bit的密钥,不同纠错码的结果比较如表1所示。从表1可以看出,相较于RM码和Golay码,BCH码的效果更好。

表1 不同纠错码级联结果比较

2.3 基于条件概率的预选位方法

上述实验结果是在正常工作条件下得到的,当标签老化或处于较极端外界环境下(高温、高压等)时,实验的失败率会相应增加,如果仅靠纠错码进行纠错,硬件开销和计算复杂度也会随之增加。图2为0℃~100℃下,1 kB SRAM经过100次测试得到的平均错误率,当温度为100℃时,平均错误率e上升至0.14,用表1中效果最好的Rep(5,1,5)与BCH(127,85,13)纠错码级联只能得到约为0.02的失败率。因此,可以通过预选位减小SRAM PUF的片内距离,在不增加纠错码复杂度的条件下降低密钥生成失败率。

图2 不同温度下SRAM的平均错误率

通过对SRAM PUF响应分析发现,与其他PUF不同的是,其具有大量的稳定位,此外,由于低面积和低功耗的需求,相邻SRAM单元的物理距离相应减小,从而增加了耦合电容产生的电容串扰,因此SRAM单元的稳定性会受其相邻位的影响[12]。图3为相邻100 bit的SRAM PUF响应测量100次得到的错误率分布。从图3可以看出,每比特错误率分布不均,且稳定位和非稳定位总是各自相邻。基于SRAM单元非稳定位的相邻特性,提出在反向模糊提取器纠错的基础上去除少量连续出错概率较高的非稳定位,以提高纠错成功率。

图3 相邻100 bit的SRAM PUF错误率分布

为去除连续出错概率较高的非稳定位,实验使用条件概率描述SRAM单元对相邻单元稳定性的依赖,具体如式(7)所示:

(7)

其中,P(A)表示测试位发生错误的概率,由于实验选用Rep(5,1,5)作为内码进行测试比较,P(B)则表示窗长度为5时,该测试位的窗内邻近位发生2个及以上错误的概率,当测试位条件概率P(A|B)大于阈值T时,则弃用该SRAM单元。由于SRAM PUF进行注册阶段前预选位的测试次数会影响到开发的时间和成本,实验在不同工作条件下(具体如表2所示)对非稳定位的条件概率超过0.5的比例进行比较。实验结果发现,在高温、高压条件下,SRAM PUF相邻非稳定位的比例最高,具体如图4所示,这说明了在该工作环境下,SRAM单元对相邻单元依赖性最高。因此,该工作条件可作为预选位时的测试环境,高效去除了由于外界环境影响最容易出现连续不稳定的SRAM单元。

表2 工作环境参数

图4 不同测试条件下不稳定位条件概率超过0.5的比例

Rep(5,1,5)与BCH(127,85,13)级联作为反向模糊提取器中的纠错码,图5为采用上述预选位方法在不同阈值下生成64 bit密钥,并测试5 万次的失败率以及相应丢弃的位数,图6为在相同丢弃位数下,本文方法与丢弃最高错误率SRAM单元方法的失败率比较。当阈值T=0.3时,仅去除51个非稳定SRAM单元可以达到4.6×10-5的失败率,比丢弃相同数量的最高错误率单元方法下降了约2个数量级。

图5 不同阈值下SRAM单元弃用位数与失败率

图6 2种方法在弃用相同SRAM单元数量下的失败率对比

3 实验结果与分析

上述方法选择的丢弃位地址可以存储在非易失性存储器中,这是因为位置信息与响应值无关,不会泄露密钥。表3为对上述ISSI SRAM PUF初始响应进行不同处理方法生成64 bit密钥的性能比较,实验均取平均错误率为0.14,pb=0.51。文献[10-11]只是在大量PUF单元内以较高概率选择稳定位,同样需要结合ECC纠错,软判决[20]相较于硬判决所需资源更小,然而由于需要位相关的可靠度信息作为辅助数据以分辨可靠响应,容易受到辅助数据攻击[21]。本文利用部分不稳定SRAM单元相邻的特点,提出的改进方法结合了反向模糊提取器和预选位的优点,相比于其他方案,其能够以较小的PUF得到失败率在10-5量级的64 bit密钥。

表3 不同稳定性处理方法性能比较

表4为实现10-5量级失败率时,本文预选位方法和文献[9]方法的各模块面积比较。一个标准SRAM单元可以看作1个等效门GE[20]。由于本文设计是针对标签应用的反向模糊提取器,因此不考虑在读写器端执行的Rep()重现部分,此外标签的各种通信协议均需要产生随机数,反向模糊提取器中的随机数种子可以通过复用标签自身的随机数发生器得到。

表4 文献[9]方法与本文方法的模块面积比较

4 结束语

本文对SRAM PUF的响应特征进行研究,利用SRAM部分非稳定位相邻的特点,提出基于条件概率的预选位方法。采用该方法去除容易连续出错的非稳定位,并结合反向模糊提取器设计可应用于标签的SRAM PUF稳定性处理方案。实验结果表明,本文方法即使在非正常工作条件下仍能保持10-5量级的较低失败率。然而,位置信息的存储在一定程度上增加了标签的存储成本,下一步将对该方案继续改进,在平衡SRAM PUF大小、算法复杂度和辅助信息的存储代价的基础上,进一步降低方案的开发成本。

猜你喜欢
失败率错误率密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
种植体早期失败的相关因素分析
失败率33%
失败率33%
小学生分数计算高错误率成因及对策
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
正视错误,寻求策略
解析小学高段学生英语单词抄写作业错误原因