物理可克隆函数(PUF)是一种安全原语,其利用集成电路制造过程中的工艺偏差,为芯片产生唯一的标志[1].它们可用于提供独特的身份,或生成和存储加密密钥,以防止物理设备的篡改攻击[2].目前已提出的主流PUF电路包括仲裁器PUF(APUF)[3],RO PUF[4],SRAM-PUF[5]和SR-Latch PUF[6]等.其中,SR-Latch PUF是一种适于FPGA实现的弱PUF电路,其最主要的特征是结构简单,功耗低,易于实现.与基于内存的SRAM-PUF相比,其在启用时无须重新上电来产生响应;与APUF相比,其在FPGA上实现时没有严格的对称路径要求,因此SR-Latch PUF在FPGA上实现可以获得较佳的性能.但SR-Latch PUF面临的主要问题是可靠性不足,偏置特性较差[7].当PUF原始响应不可靠时,通常会使用模糊提取器(FE)从PUF响应中提取稳定密钥[8].但是,FE需要用到耗时、耗电的纠错方案,这不仅降低了PUF的效率,而且增大了PUF应用成本.尽管研究人员针对SR-Latch PUF提出了一些可靠性增强方法,但提升可靠性的效果有限,后期仍需要复杂的ECC纠错机制[9].此外,PUF电路易受系统偏差的影响,响应输出会倾向于偏向0或1.当PUF响应偏置较大时,会使纠错过程中的辅助数据信息泄露密钥的信息,从而带来熵损失[10-11].冯∙诺依曼等经典去偏算法尽管可以解决偏置问题,但PUF的利用率太低,最高不超过0.25,因此须要消耗大量的PUF单元.针上述问题,这里针对SR-Latch PUF提出一种基于动态自检的可靠性增强技术,采用PDL附加延迟线来检测并输出可靠的SR-Latch PUF单元.提出一种基于可靠性置信信息的轻量级纠偏方法,提升了纠错过程中的PUF利用率.1 可靠自检SR-Latch PUF模型SR锁存器结构简单,功耗低,但面积消耗大,可靠性较低[7].为此提出了一种基于PDL延迟线的可靠性自检方法,实时动态检测PUF响应的可靠性.在SR-Latch PUF中嵌入了一个PDL延迟检测模块,自动测试SR-Latch PUF输出的反馈延迟偏差并生成可靠性标志.PDL可编程延迟线利用Xilinx FPGA中的查找表(LUT)结构,通过改变信号传播路径长度来实现不同的传播延时.PDL基本结构如图1所示,当LUT被编程为一个反相器时,选择A1作为输入,O作为输出.A2,A3和A4为充当路径选择的“无关”位,可以改变从A1到O的信号传输路径.从A1到O最短传输路径为A2A3A4=000(图中红线所示),最长路径为A2A3A4=111.因此可以通过LUT来实现具有3个控制输出的可编程延迟反向器.10.13245/j.hust.238195.F001图1四输入查找表的可编程逻辑线动态自检SR-Latch PUF结构如图2所示,采用两个LUT来构建与非门,一个配置为带PDL延时控制的与门结构,另一个为带PDL的非门,这里采用两个LUT的原因是为了引入更大的附加延迟差.在LUT中,两个端口作为与非门输入,剩下的“无关”信号作为延迟配置端口.此时SR-Latch PUF上链端口的延迟配置信号为A3A4A5A6,下链端口配置信号为B3B4B5B6.10.13245/j.hust.238195.F002图2基于PDL的动态SR-Latch PUF结构由于PDL延迟控制采用的是LUT中未使用的无关端口,因此未增加任何硬件开销.此外还在SR-Latch PUF的两个与非门的输入端各增加一个D触发器(FF),来保证连接到两个与非门的路径延时一致.可靠性标志Fi产生过程如下:首先,对D触发器的CLK端输入有效电平,使SR-Latch PUF初始化,然后在使能端EN输入有效电平,对上下两个PDL编程线的延迟配置位进行设置.a.将PDL延迟配置位端口A3A4A5A6和B3B4B5B6全部设置为0,此时两路附加延迟差ΔD=0.SR-Latch PUF正常输出响应Ri,将Ri保持在寄存器中.b.将上链配置信号设置为0001至1111之间的某一值,下链设置为0000,此时PDL能够在上路产生值为DT的附加延迟,上路的总延迟变为DH+DT,两路的延迟差则变为ΔDH=ΔD+DT,此时产生一个测试输出Tr1并将其存储.c.将下链配置信号设置为0001至1111之间的同一值,上链设置为0000,此时PUF下路的总延迟变为DL+DT,两条路径的延迟差ΔDL=ΔD-DT,此时产生的测试响应Tr2.d.在步骤b和c中,若Tr1和Tr2输出相同,即ΔDH和ΔDL的极性相同,则满足ΔDH=ΔD+DT>0且ΔDL=ΔD-DT<0,或者ΔDH<0且ΔDL>0.因为DT是正值,可得|ΔD|>DT,即ΔD的绝对值大于阈值DT.若阈值DT设定的足够大,则产生的响应在受到环境噪音影响时仍然可以保持稳定.相反,若Tr1和Tr2不相同,则满足|ΔD|<DT,此时输出响应易受环境影响而不可靠.因此,可以将两次测试输出同或,来产生可靠性标志Fi,即Tr1⊙Tr2=Fi.当Fi=1时,证明SR-Latch PUF产生的响应Ri是可靠的;否则,证明响应Ri不可靠.2 基于可靠性标志的去偏技术针对PUF响应的均匀性不足所导致的熵泄露问题,对新提出的可靠性动态自检SR-Latch PUF,提出了一种基于可靠性置信信息的响应去偏方法.其基本思想为:在密钥生成过程中,利用动态自检SR-Latch PUF产生的响应R和可靠性置信信息(即可靠性标志F)对响应进行去偏处理,从而产生去偏数据D和去偏响应Y,过程如表1所示.10.13245/j.hust.238195.T001表1基于可靠性置信信息的去偏注册和恢复过程注册恢复输入输出输入输出F2iF2i+1R2iR2i+1YidiF2iF2i+1R'2iR'2i+1diY'i1100—011000—1101011101101110111110111111—011110—101—11101—11100—01100—1001—11101—11101—00101—010000——000—00—表1给出了去偏算法中注册和恢复阶段的输入输出关系,其中可靠性标志F是辅助数据.当可靠性标志F2i为1时,表示与之对应的响应R2i是可靠的,反之不可靠.该方法通过判断连续两位的可靠性标志F和响应R,选取可靠标志为1的响应进行去偏,生成无偏响应Y.注册阶段:步骤1 当F2i=0和F2i+1=0,或F2i+1=1和R2i+1=R2i,则D的值为di=0,Yi被丢弃,否则di=1;步骤2 当F2i=1和F2i+1=1,且R2i≠R2i+1,则D的值为di=1且Yi=R2i;步骤3 当F2i=1和F2i+1=0,则D的值为di=1, Yi=R2i,当F2i=0和F2i+1=1,则D的值为di=1,Yi=R2i+1.经过上述操作,Y中0和1的发生概率都将相等,如表1和图3所示.在恢复阶段,使用可靠性标志F和去偏数据D从有噪声的响应R'中恢复去偏响应Y',如表1和图4所示.10.13245/j.hust.238195.F003图3去偏注册阶段图10.13245/j.hust.238195.F004图4去偏恢复阶段注册阶段如图3所示,通过可靠性标志F和响应R共同判断生成无偏响应Y.恢复阶段如图4所示,去偏数据D和可靠性标志F可作为辅助数据,由于这些数据仅显示可靠响应的位置信息,因此不会有额外的熵泄露.该方法除了针对比特自检PUF,还可以应用于其他能生成可靠性置信度信息的PUF中,提高PUF利用率,从而增加纠偏效率.3 轻量型密钥产生电路3.1 密钥产生电路经过可靠性自检和去偏之后的SR-Latch PUF的输出响应可以直接用于部分安全应用中.但为了增强电路的鲁棒性并满足对密钥可靠性要求极高的场景,结合纠错算法提出了一种轻量型的模糊提取器,并设计实现了密钥产生电路.基于可靠性动态自检SR-Latch PUF和新型纠偏算法的密钥产生电路结构如图5所示,包括动态自检SR-Latch PUF电路、非易失性存储器(NVM)、去偏算法、轻量型模糊提取算法、随机种子生成器、密钥派生函数(SPONGENT Hash)和控制器 (Controller).10.13245/j.hust.238195.F005图5基于可靠性自检SR-Latch PUF和纠偏算法的密钥生成器结构当输入使能信号时,动态自检SR-Latch PUF产生N比特响应R及对应的N比特可靠性标志F.将R和F输入到去偏算法中,得到无偏响应Y和去偏数据D.随机种子生成器生成种子S,经过Hash(哈希函数)运算后得到分布均匀的密钥K.接着将S和无偏响应Y一起输入到轻量型模糊提取算法中,生成辅助数据W.此时F,D和W作为辅助数据存储在非易失存储器中,用来在恢复阶段恢复密钥K.控制器用来控制各模块的工作.该密钥产生电路采用轻量型模糊提取算法和轻量级Hash算法SPONGENT,有效减少了执行开销.3.2 辅助数据的安全性在密钥生成器中,存储在非易失存储器(NVM)中的去偏数据D、可靠性标志F和辅助数据W作为公开数据可被对手获取.假设攻击者知道某比特响应Ri的可靠性标志Fi的值(例如Fi=1),这意味着生成Ri的延时偏差的绝对值大于阈值DT.由于理想状态下延时偏差是呈正态分布的,此时Ri为1或0的概率都为50%,因此不能以不可忽略的概率猜测出Ri的值,也就是Fi的泄露不会导致Ri的熵损.而去偏数据D独立于R和F,因此也不会泄露密钥的信息,即上述辅助数据的公开不会泄露密钥的任何信息.4 实现与测试为了验证提出的SR-Latch PUF的性能,在10块Xlinx Artix 7 FPGA(XC7A35T-1CPG236C)开发板上设计实现了5 120个相同SR-Latch PUF单元.为了设计一致性,每块Xlinx Artix 7 FPGA板均使用了256个Slice-L的可编程逻辑块(CLB)实现,其中每个CLB包含2个PDL动态自检SR-Latch PUF单元.在测试阶段,通过设置PDL延时控制端口的值,来测试施加不同附加延迟DT下可靠性测试电路所自检出的可靠PUF单元的比率、可靠性、偏置性及唯一性等特性.其中偏置和唯一性在标准环境下(温度为25℃,工作电压为1 V)测的,而可靠性在不同环境下测试(温度从-25℃到80℃;电压从0.8 V到1.05 V).由于4个PDL控制位可以实现16种不同的附加延迟DT,考虑到配置信号A3A4A5A6和B3B4B5B6的值与生成的附加延迟DT不是线性关系,因此将16种配置方式下产生的DT按从小到大排序(n)进行分析.4.1 可靠性测试表明:在标准温度25℃下,附加延迟n越大,被标记为可靠的PUF单元(也就是可靠性标准为1的单元)的比例就越低,如红色曲线所示.当产生最大附加延迟时,只有约19.5%的PUF输出被标记.图6的灰色曲线表示则显示了被标记为可靠的响应在最坏的情况下比特错误率(BER),其随着附加延迟n的增加而迅速减小.当挑选的可靠PUF单元比率(挑选比特概率Pb)接近50%时,其比特错误率Pe为1×10-6,满足了基本的密钥产生需求.10.13245/j.hust.238195.F006图6施加不同附加延迟(n)时标记出的可靠响应的挑选比特概率Pb及其比特错误率Pe(BER)4.2 偏置特性和唯一性用于密钥产生的PUF响应须要具备良好的均匀性,其偏置特性应接近50%.在标准温度25℃测试被标记出的可靠响应的偏置特性随附加延迟n变化的曲线如图7所示.可以看出:随着附加延迟增加,SR-Latch PUF输出中“1”的比例明显降低,其均匀性变差.当施加附加延时达到最大时,PUF响应偏置PR约为44.5%,这会导致较大的熵泄露,因此须要进行纠偏处理.10.13245/j.hust.238195.F007图7动态自检SR-Latch PUF偏置PR和唯一特性PHD接着分析挑选的可靠响应的唯一性.测试发现,在施加不同附加延迟情况下,挑选出的可靠响应均达到了良好的唯一性,平均片间汉明距离PHD在48.1%和50.8%之间变化.如图7中红线所示.当自检出可靠响应的比率为53.3%,也就是响应可靠性达到1×10-6时,其片间汉明距离为50.8%,此时的片间汉明距如表2所示.10.13245/j.hust.238195.T002表2不同片间汉明距离的概率片间汉明距离/%概率/%片间汉明距离/%概率/%251.3502630355183556074013652.745237014.3 新型纠偏算法的实现与验证在FPGA上实现了纠偏算法并对其进行了单独测试.在标准环境下(温度为25℃),输入30个不同偏置特性的测试数据(偏置性在0.1~0.9之间),通过去偏处理之后获取去偏结果,如图8所示,其中水平轴表示原始(输入)响应的偏置PR,垂直轴为去偏处理后响应R'的偏置特性PR'.10.13245/j.hust.238195.F008图8SR-Latch PUF去偏结果可以看出:本文方法显著降低了响应偏差.由于将不可靠响应也用于去偏处理中,PUF利用率由常规的25%增加到了33%,由于与自检PUF结合,其输出的稳定性也得到了大幅提升.4.4 密钥产生器采用Verilog及Xilinx设计工具Vivado2017.2在基于Xilinx Artix-7的FPGA开发平台上实现了图5所示的密钥产生器.由于同时采用了响应预选择和纠错码两种可靠性增强技术,设置合适的参数可以更好地降低整体纠错开销.通过测试分析与对比,在可靠性自检部分采用了第10种延迟配置,此时预选择比例约为50%.纠错码则采用重复码(3,1)和BCH(127,64,7)的内外码组合.在整个密钥提取过程中,不含纠偏模块总共消耗了803个片(Slices),其中核心SR-Latch PUF为512个Slices,纠错码模块消耗87个Slices,轻量哈希函数消耗54个Slices,辅助数据缓冲器和控制器,分别消耗90和60个Slices.由于纠偏处理本身需要消耗大量的原始PUF响应,提出的改进型去偏算法的利用率为33%,增加了3倍的PUF需求,导致整体开销增加至1 861个Slices.表3为提出的密钥生成器与其他方案的对比.可以看出:提出的动态自检SR-Latch PUF在生成相同长度的密钥情况下,密钥生成电路硬件消耗约为文献[12]、文献[13]和文献[14]方案的70%,而密钥恢复失败率达到了10-9以下.上述几种方案均未采用纠偏技术,在加入纠偏模块情况下开销有了较大增加,但由于纠偏模块的采用消除了辅助数据的熵泄露,因此在安全性方面得到了极大提升.10.13245/j.hust.238195.T003表3不同密钥生成器方案比较密钥生成方案密钥长度比特错误率Slices密钥泄露量文献[12]1281×10-91 162—文献[13]1281×10-61 234—文献[14]1281×10-6907—本文1281×10-9803*/1 8610注:*表示不含纠偏模块的开销.5 结语提出了一种动态自检SR-Latch PUF电路结构.在SR-Latch PUF中引入PDL附加延迟特征,来动态自检SR-Latch PUF的响应,从而提高响应的可靠性.同时针对PUF响应存在偏置而导致模糊提取器的熵泄露问题,提出基于可靠标志的去偏方法,解决辅助数据公开引起的安全性问题.在此基础上提出一种安全高效的密钥生成电路.实验结果表明:相比较其他方案,本方案密钥错误率达到1×10-9,资源开销方面也具有明显的优势.因此,提出的基于动态自检SR-Latch PUF的密钥生成方案可以实现安全、可靠高效的密钥提取.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读