陈鑫辉 倪 力 刘子坚* 张跃军 陈祺来 刘 钢
①(金华职业技术学院信息工程学院 金华 321017)
②(宁波大学信息科学与工程学院 宁波 315211)
③(上海交通大学电子信息与电气工程学院 上海 200240)
随着物联网应用和现代通信技术的高速发展,网络攻击事件次数快速增加,信息的共享和应用安全越来越重要。传统密码学将特定私钥保存在非易失性单元电路实现加解密过程,但易受版图逆向工程、微探测等方式攻击导致私钥暴露引起安全事故[1]。物理不可克隆函数(Physical Unclonable Function,PUF)通过分析硬件工艺制造引起器件结构细微变化出现的物理偏差[2],能有效抵御物理攻击。
物理克隆函数根据激励响应(Challenge Response Pair, CRP)数量分为弱PUF[3]和强PUF[4]。弱PUF的CRP数量与PUF基本单元呈线性或多项式函数关系,用于加密过程中密钥生成,但CRP数量有限导致无法生成大量密钥,使得PUF应用受限。强PUF的CRP数与PUF基本单元数呈指数关系,例如仲裁器PUF(Arbiter-PUF)[5]、异或PUF(Exclusive OR-PUF, XOR-PUF)[6]以及环形振荡器PUF(Ring Oscillator-PUF, RO-PUF)[7],其指数级的CRP使得短期内难以被完全获得。然而,针对PUF电路的攻击算法也越来越多样和成熟,基于逻辑回归和机器学习算法的建模攻击[8]可以在数学上以超高精度克隆强PUF,攻击者可以通过构建强的软件模型来很好地预测CRP。PUF电路被攻击的主要原因为电路内部产生的激励响应呈线性相关。为增强电路抗建模攻击,更多的高鲁棒性和新型结构PUF研究被提出[9–12]。张跃军等人[9]利用门电路竞争冒险现象和信号传输理论提出一种毛刺型物理不可克隆函数(Glitch-PUF)电路,通过延时模块引入非线性毛刺信号增强抗建模攻击能力,采用多级串联采样模块测试输出响应,但复杂电路结构导致面积增大。Nozaki等人[10]在28 nm工艺FPGA上实现长度为128 bit的基于展开密码PRINCE的毛刺型PUF。Ni等人[11]采用施密特触发器设计降噪电路,提出一种128 bit多级并行架构的Glitch-PUF,随机性达到99.9%、唯一性为50.03%,但电路受温度和电压变化影响较大。董永兴等人[12]提出一种基于延时控制的Glitch-PUF电路,通过调节不同路径的延时大小和毛刺数量的奇偶性判决响应比特抵御机器学习攻击,导致存在较高的误码率,降低电路稳定性。
忆阻器被认为是硬件安全原语最有希望的候选者之一,具有结构简单、CMOS兼容性、高集成度以及非线性特性[13],能有效增强PUF抗建模攻击和电路稳定性。鉴此,本文提出基于ZnO忆阻器的Glitch-PUF电路方案。本方案利用器件固有的非线性特性和回滞效应,使PUF电路具备防御模式攻击的能力,根据忆阻器非易失性和阻变原理设计忆阻寄存器、忆阻毛刺产生模块和忆阻采样模块,替换传统大量缓冲器和复杂电路结构,从而减少器件数量,降低电路面积,实现具有高随机性、稳定性和鲁棒性的忆阻PUF电路。
忆阻器阻变层主流材料有2维材料、有机材料、金属氧化物等,其中金属氧化物具有制备简单、开关比高等特性。因此本文以ZnO作为阻变层,Pt作为两端电极,Pt/ZnO/Pt器件的阻变现象是由于离子迁移和氧化还原反应所产生的,是一种常见的导电细丝机制。该器件表现出明显的双极电阻开关行为和适合多级调制的大存储窗口,如图1(a)所示。值得注意的是,低阻态(Low Resistance State, LRS)转变为高阻态(High Resistance State, HRS)是缓慢变化的,这种缓变曲线有利于后续选择合适的编程电压来调控忆阻器多电导状态,从而实现图像识别功能。如图1(b)所示,编写脉冲测试程序,所有电阻状态都可以重复编程和读取。实验中取得的相邻阻态比值大于10,阻态之间具有较好的区分窗口,如图1(c)所示。同时,各个阻态在室温下具有较好的保持性(图1(d))。本文结合所设计器件自身寄生电容、寄生电阻以及离子迁移等实际因素,获得I-V曲线、阈值电压等电学特性,采用硬件语言对器件进行数学建模(算法1),电路模型的数学形式表达如式(1)和式(2)所示
图1 Pt/ZnO/Pt忆阻器电学参数
其中,G(x)为忆导值,x为内部导电细丝状态,v为电压值,RON和ROFF分别为导通和关断时电阻值。τ,T,k为常数,e表示电荷量,VON和VOFF为阻态转变阈值电压。
在模型基础上设计并提出基于忆阻器的逻辑完备集电路,分别为忆阻与门(图2(a))、忆阻或门(图2(b))、忆阻非门(图2(c))。设计原理为忆阻器阻变机制及阻值分压公式,当器件两端输入信号相同时,忆阻器两端电压相抵消,阻值保持高阻态,输出为低电平;当器件两端输入信号不同时,其中高电平将忆阻器从高阻态转变为低阻态,输出电压经器件分压后表现为高电平,如式(3)所示
图2 基于忆阻器的逻辑门
其中,Vhigh为电源电压,VOUT为输出电压。
算法1 忆阻器伪代码程序描述
忆阻Glitch-PUF电路输出由毛刺信号决定,因此毛刺信号的电压、宽度以及非线性特性是电路架构的关键,直接影响PUF电路的性能。电路中毛刺产生主要是由于竞争冒险现象和忆阻器非线性。信号在通过门电路和电路连线时存在细微延时,且忆阻器阻值存在多个阻态,阻态切换也需要转换时间,不同阻值使得路径延时不同。因此,在实际电路传输时,逻辑门输入端的信号到达时间不同,使得电路出现非线性毛刺信号。
毛刺信号的产生除了受温度、电压波动和噪声等外界影响,还受电路固有特性影响。当电路函数中某个变量同时存在正、反两种变量形式时,就满足了竞争要求。去掉其余变量,保留有竞争现象的变量,其中“0”冒险为正反变量相与,如图3(a)所示,“1”冒险为正反变量相加,如图3(b)所示。此外,动态结构电路也会产生Glitch信号,当异或门发生冒险现象产生Glitch信号后,还需输入信号C为高电平时,Glitch才传输到Y 端,如图3(c)所示。
图3 毛刺产生原理
有效Glitch信号应同时符合脉冲幅度和宽度的条件。脉冲幅值需要超过Vdd的10%,Glitch的宽度只有大于D触发器的建立和保持时间才能被成功采样。
传统的Glitch输出需要级联一定级数的门电路偏差,并且产生的Glitch信号可以随着电路进行传输,但大量寄存器导致硬件利用率降低。本文利用忆阻器交叉阵列构建延迟树结构电路,设计毛刺产生电路,获得具有稳定Glitch的输出波形,然后通过施密特采样电路实现忆阻Glitch-PUF设计,电路结构如图4所示。忆阻Glitch-PUF电路由控制电路模块、忆阻寄存器、忆阻毛刺产生模块和忆阻采样模块组成。
图4 Glitch PUF电路框图
传统的同步时钟D触发器由多个与非门及缓冲器组成,电路结构较为复杂,大量CMOS器件增加电路面积,导致功耗高。图5为忆阻D触发器电路结构及元件符号,当时钟为低电平时,输入信号不会对输出端产生影响,输出端仅与忆阻器M2上一个脉冲内的忆阻值相关,若M2为低阻态,则输出为逻辑“1”,若M2为高阻态,则输出为逻辑“0”。当时钟为高电平时,p型半导体(Positive channel Metal Oxide Semiconductor, PMOS)截止,n型半导体(N-Metal-Oxide-Semiconductor, NMOS)导通,输出端次态与输入信号D保持一致,忆阻器作用为当时钟信号从1转变为0,继续保持输出端信号,实现同步D触发功能。忆阻D触发器时钟串联,上一级触发器的输出作为下一级触发器的输入,逐步锁存数据内容,以此构建多位忆阻寄存器模块。
图5 忆阻D触发器模块
图6为忆阻毛刺产生模块电路图,通过将传统门单位替换为新型忆阻门结构,并新增延时调节模块来控制毛刺的宽度。延迟模块由忆阻可编程阵列构成,替换大量CMOS结构缓冲器,优化电路结构。忆阻器阵列有直通路径和交叉路径,不同路径的延时不同,通过选通信号控制路径的选择,以此调节信号到达逻辑门的先后顺序,控制毛刺信号的宽度。延时调节模块不同路径延时的大小不仅与阵列大小有关,还与忆阻器参数有关。阻变材料和沟道宽度的不同、阈值电压的差异、电极种类和厚度等都会使延时大小不同。因此,即使是相同的选择信号,延时也存在差异,电路随机性增加。由于工艺偏差的存在,到达与电路的延迟会有差别,会使Glitch产生的宽度不同。为使电路产生的毛刺宽度对延迟调节模块敏感,在电路最后一级接入异或门电路,加强毛刺的非线性特征,增加电路抗建模攻击属性。
图6 忆阻毛刺产生模块
忆阻采样模块电路由降噪、延迟和采样电路组成,如图7所示。施密特具有正负两个阈值电压,控制输入电压高低电平转换,正向阈值大于50% Vdd,负向阈值小于50% Vdd,其差值为回差电压。输入电压在50% Vdd时,利用忆阻器的迟滞特性和施密特降噪模块,过滤电路中弱电平噪声信号来提高电路的抗噪声能力,提高电路的鲁棒性。根据降噪后稳定毛刺的宽度,调整毛刺宽度检测模块中缓冲器数量,当毛刺信号宽度大于延迟时间时,毛刺才能正常传输和采样输出。
图7 忆阻采样模块
本文采用Cadence Virtuoso IC617完成忆阻Glitch-PUF电路设计,利用Python和高性能电路仿真软件(High Simulation Program with Integrated Circuit Emphasis, HSPICE)测试Glitch-PUF抗攻击性、随机性、自相关性、唯一性和误码率5项关键指标,并与相关文献对比,综合评估电路性能。
建模攻击主要有逻辑回归(Logic Register, LR)、向量机(Support Vector Machine, SVM)等方法。攻击者通过收集部分CRP作为训练集,利用学习算法进行多次训练,建立PUF激励下预测响应。
本文采用Python测试LR和SVM算法对所提电路的抗攻击能力,并与典型Arbiter-PUF, XORAPUF对比。在LR攻击下,Arbiter-PUF, XORAPUF, Glitch-PUF预测率分别为90.1%, 85.0%,75.8%,如图8(a)所示。在SVM攻击下,Arbiter-PUF, XOR-APUF, Glitch-PUF预测率分别为83.1%, 87.5%, 78.2%,如图8(b)所示。实验表明在LR和SVM攻击下,Glitch-PUF的预测率低于Arbiter-PUF和XOR-APUF,随着训练次数增加,优势逐渐增大,最后趋于稳定,具有较好的抗建模攻击能力。
图8 Glitch-PUF电路抗攻击性测试
随机性主要通过观察PUF电路输出响应中逻辑0和逻辑1的概率统计分布情况,理想情况下,两种逻辑输出平均分布,随机性为100%,计算公式如式(4)所示
图9为测试16个PUF电路输出灰度图,根据式(4)计算得随机性为98.2%。表2为PUF电路通过美国国家标准与技术(National Institute of Standards and Technology, NIST)的10项测试,实验表明所提Glitch-PUF具有良好的随机性。
表1 NIST测试
表2 与相关文献的比较结果
图9 Glitch-PUF电路随机性测试
PUF电路在芯片中位置布局不同,可能会影响电路安全性,表现为生成数据与位置关系具有函数关系。因此,电路产生的密钥应不受芯片内部电路布局的影响。相关性采用自相关函数(Auto-Correlation Function, ACF)评估[14]。ACF值越小,表明PUF输出响应间的相关性越低。实验结果如图10所示,PUF电路在ACF为0.018时,数据无明显空间相关性,具有良好的独立性。
图10 Glitch-PUF电路自相关性测试
唯一性根据同类型PUF输出响应间差异,标识不同个体区分度,可以通过平均片间汉明距离(Hamming Distance, HD)来评估。k个PUF的平均片间均值E(HDinter)计算如式(5)所示
其中,k为PUF电路数量,ri和rj为相同激励下,第i个和第j个PUF的输出响应。如图11所示,HD呈现正态分布,数学期望为µ=0.500 2,标准差为σ=0.049 6,计算E(HDinter)为50.04%,具有较好的唯一性。
图11 Glitch-PUF电路唯一性测试
误码率(Bit Error Rate, BER)指错传输过程中错误数据占所传输数据的比例,是衡量数据通信质量常用指标。PUF电路在运行过程中会受到温度和电压的影响,为验证电路可靠性,本文将温度区间设置为–20~120°C,每隔10°C进行数据读取及计算,常温下Arbiter-PUF与Glitch-PUF误码率分别为4.25%和0.08%,如图12(a)所示。电压区间设置为0.8~1.4 V,每隔0.1 V读取数据,常压下Arbiter-PUF与Glitch-PUF误码率分别为4.38%和0.06%,如图12(b)所示。表3为所设计的Glitch-PUF与其他先进PUF性能对比。
图12 Glitch-PUF电路误码率测试
本文利用门电路竞争冒险引起的毛刺现象,结合忆阻器存算一体和阻变效应,提出一种基于忆阻器的Glitch-PUF方案。根据忆阻器非易失性和阻变效应实现逻辑完备集与忆阻寄存器,选择不同忆阻阵列导通路径来调节延时大小,实现毛刺稳定产生。忆阻器迟滞特性和施密特降噪模块实现过滤电路噪声。实验结果表明电路具有抗建模攻击能力,良好的随机性、唯一性和可靠性,大幅优化电路结构,减少器件数量,可广泛应用于物联网安全领域。