时间:2024-07-28
乔彦淇,唐 明,2,刘树波
1.武汉大学 国家网络安全学院 空天信息安全与可信计算教育部重点实验室,武汉 430072
2.密码科学技术国家重点实验室,北京 100878
3.武汉大学 计算机学院,武汉 430072
随着物联网和嵌入式技术的发展,越来越多的硬件设备安全问题受到研究人员的广泛关注.普遍的硬件设备由集成电路构成,易受到侵入、伪造、复制等安全威胁.现代密码学中普遍使用单向函数用作签名或是信息摘要,但是有些函数使用了未被证明的猜测,有些则存在已知的缺陷.PUF(physical unclonable functions)技术利用电路在生产过程中随机工艺差异特性[1],给定任意一个输入激励,PUF会输出一个唯一、确定且不可预测的响应结果.2002年,Pappu等[2]首次提出了物理单向函数的概念.此后,Bulens等[3]提出了纸介质PUF,Hammouri等[4]提出了CD PUF的实现方法.这三种PUF类型均为非电子PUF类型.随着研究工作深入,出现了电子PUF类型,电子PUF分为模拟电路PUF和数字电路PUF.模拟电路PUF的代表性设计是Tuyls等[5]提出的涂层PUF.随着FPGA中的安全问题愈发地受到人们的重视,PUF在数字电路[6]上的实现也得到了越来越多的关注.因此,FPGA上的相关应用需要加密以及认证功能,由于PUF在FPGA上的实现不会额外增加大量资源开销,PUF在FPGA上的实现受到人们极大的关注.此外PUF技术还广泛应用于包括密钥生成[6]、IP保护[7]以及权限认证与管理[8,9]等方面.
在芯片制造过程中,晶片晶圆体上的芯片时延由于掩模的不同而不同.此外,由于工艺温度和压力的差异等因素,晶圆上不同的晶片晶圆体之间,也存在随机偏差.Boning等[10]使用高斯分布或其他概率分布对同一导线或设备在不同晶片中的时延差异进行了建模.集成电路(integrated circuit,IC)上的时延包括系统偏差以及工艺偏差两者带来的延迟.基于时延的PUF利用上述两个特征带来的时延,通过数字信号在IC上传输时延的差异进行时延电路设计.大部分时延PUF利用的是其设计电路上的路径时延[11,12].典型的基于时延的PUF类型共有3种:仲裁器PUF、基于环形振荡器的PUF以及毛刺PUF.
1.1.1 仲裁器PUF
为了解决Gassend等提出的硅PUF中由环境引起的噪声影响PUF结果的问题,Lim等[11]在2005年提出一种基于仲裁器的PUF(arbiter PUF,APUF)方案,其通过使用差分结构来提高PUF可靠性.此外,Suh等[12]基于APUF的原理设计了异或PUF(XOR APUF),提升了抗建模攻击的能力.为了有效地抵御针对PUF最新的建模攻击,Nguyen等[13]针对XOR PUF的安全问题提出了iPUF设计.XOR PUF和iPUF均是基于APUF来设计的,故三者的PUF产生基本原理是相同的.
仲裁器PUF并非测量PUF响应的绝对延迟.由于小的随机时延变化,两个布局相同的路径上的两个脉冲信号通常不会同时到达输出,在电路终端使用仲裁器比较两个相同布局的路径上信号的相对时延并生成判决结果.仲裁器PUF由于其电路结构特性,属于强PUF的范畴(在第3.1节有具体介绍).其可以产生大量的激励响应对(challenge-response pairs,CRPs),故可以用在嵌入式设备认证等应用场景.
1.1.2 基于环形振荡器的PUF(RO PUF)
Suh等[12]在2007年首次提出利用环形振荡器进行设计的PUF.与仲裁器PUF相比,RO PUF更容易在ASICs和FPGAs上实现,更容易评估熵并且提供更高的可靠性,但是RO PUF速度较慢、规模较高并且能耗较高.Maiti等[14]发现系统偏差会对RO PUF的唯一性产生不利影响,提出了一种可配置的RO PUF(configurable ring oscillator PUF,CRO PUF)来减轻系统偏差所带来的噪声.此外,Gao等[15]提出了另外一种可配置RO PUF的电路设计,将RO PUF设计提升至反相器层级.
RO PUF的时延电路由许多相同布局的时延环(环形振荡器)组成.每个环形振荡器都是以一个特定频率振荡的简单电路.由于制造差异,每个环形振荡器以一个略微不同的频率进行振荡,通过比较这些频率的不同产生最终的PUF比特.相同布局的环形振荡器的输出比特随芯片变化而变化.
1.1.3 毛刺PUF
为了解决时延PUF中时延信息与生成信息之间的关系容易被预测的问题,Suzuki等[16]提出了一种新的时延电路模型,其架构利用了逻辑门之间时延差异以及每个门的脉冲非线性传播特性所产生的毛刺.2010年,针对FPGA中固有的结构,Anderson[17]提出了一种利用FPGA中LUT的毛刺PUF.Anderson提出的毛刺PUF利用了LUT作为移位寄存器,输出到多路选择器的选择端时状态转化所产生的时延,将该时延使信号产生的毛刺通过触发器输出.
仲裁器PUF、RO PUF以及毛刺PUF的电路设计中存在PUF生成的最小单元(每片PUF组合电路产生一位响应),并且现有基于时延的PUF不直接使用电路中路径的时延,而是使用两条相同布局路径之间的相对路径时延[1,4].例如,Nguyen等[13]使用两个异或仲裁器PUF作为一个PUF cell来产生单比特响应,增加了硬件资源的消耗,在资源限制的情况下,能够产生的PUF响应位数降低.现有基于时延的PUF设计间接使用路径时延,使利用激励来产生响应的方式具有一定的限制,对于PUF电路中某些差异性不好的PUF响应最小单位并不能有效地从响应中体现出来,缺少灵活性从而降低了PUF的唯一性.综上所述,目前基于时延的PUF存在的问题主要有:
(1)现有基于时延的PUF设计,激励响应结构下产生响应消耗资源多.
(2)基于时延的PUF设计未利用具体路径时延,由于时延大小未知,不能够有效抛弃某些唯一性不好的PUF产生单元,从而降低PUF的唯一性.
本文提出了一种基于时延序列的新型时延PUF类型—CCD-PUF.CCD-PUF利用测量组合电路中的时延(该时延由于制造工艺差异而存在不同)来产生PUF响应.CCD-PUF降低了传统时延类型PUF的硬件资源消耗且能够利用精确的时延来提高PUF的唯一性.实验证明,与APUF和RO PUF相比,CCD-PUF可以降低硬件资源使用,并且使其唯一性达到49.806%.
本文组织如下:第2节介绍了CCD-PUF的总体方案和设计思路.第3节介绍了CCD-PUF方案主要解决的问题以及安全性分析.第4节介绍了实验和结果.第5节对本文进行了总结.
基于制造电路时的随机工艺偏差,我们提出了一种在FPGA上实现的PUF方案简称CCD-PUF.CCD-PUF的核心电路(详见2.2节)会产生精确的电路时延值作为PUF电路的输出,多个CCD-PUF的核心电路实例组合在一起会产生一组特定的响应序列.
FPGA电路设计中普遍存在一种寄存器到组合电路再到寄存器的结构,我们将这种结构的电路定义为:“原子电路”(primitive circuit,PC).绝大部分的电路设计均可以概括为上述PC结构.PC中的组合电路部分存在着路径时延,该时延受到芯片制造工艺偏差、温度和电压的影响.CCD-PUF利用PC中路径时延的差异来设计PUF核心电路.
与传统时延PUF不同的是,CCD-PUF测量FPGA上原子电路的路径精确时延,即测量组合电路的路径时延,输出为一个时延向量序列.利用原子电路的好处是提供路径时延的PUF电路非常灵活.
图1展示了CCD-PUF的总体框架.总体框架包括n个PUF核心电路以及时延序列处理模块.PUF核心电路包括原子电路或主电路(PC)和测量电路(measure circuit,MC).在PUF整体电路中,虚线框表示的PUF核心电路中的主电路为PC设计(寄存器到组合电路到寄存器),MC测量PC的路径时延.将路径时延处理后送给时延序列处理模块,对所有时延结果输入进行排序处理,最后输出时延序列.第2.2节和第2.3节分别给出PUF核心电路和时延序列处理模块的功能描述.
图2展示了我们PUF设计的核心电路,包括了主电路和测量电路.其中上方虚线框内为主电路部分,下方虚线框内为测量电路部分.电路使用了3个寄存器,一个查找表(look-up table,LUT),一个比较器以及一个触发器.
主电路是由源寄存器到LUT到目的寄存器构成的电路,该路径上的两个寄存器由主系统时钟(clk1)触发.数据通过源寄存器,送给LUT并在其中传输,最后通过目的寄存器来接收数据.测量电路是用来测量主电路中组合电路路径时延,包括影子寄存器、比较器和触发器.影子寄存器的输入与主电路中的目标寄存器相同,由影子时钟(clk2)触发,clk2的运行频率与clk1相同,但其相位偏移受控.比较器用来比较目的寄存器与影子寄存器两者间存储值是否一致,最后的比较结果经过触发器输出.
CCD-PUF电路的工作原理如下:首先一组PUF激励分别送给主电路的源寄存器以及测量电路的影子寄存器.两个寄存器的时钟分别由clk1和clk2来控制.系统主时钟clk1保持恒定,并不影响电路正常的功能.而clk2与clk1频率相同,并且存在负相位偏差,即clk2会在精确控制的时间下比原电路clk1触发目的寄存器较前地触发影子寄存器.PUF的激励作为数据分别经过主电路和测量电路,在每个时钟周期内,影子寄存器和目的寄存器的值进行比较,直到识别出差异为止,然后将比较结果后的单比特结果保存在结果位中.如果影子寄存器中的值与目的寄存器的值不相等(即影子寄存器在数据稳定之前触发存储了错误的值),则结果为‘1’,并且始终保持该结果.
电路运行一段时间后,通过在每个测量电路末端连接单比特触发器来读取结果位,以此来确定两个时钟相位偏移的精度下的路径时延.clk2与clk1相比,会提前捕获LUT中传输的数据,并将结果送给后面的比较器.此方法可以准确计算出激励数据在主电路由源寄存器到目的寄存器所需要的路径时延.由于路径的制造差异,输入寄存器数据的不同会导致路径的时延不相同,故不同的激励会产生不相同的响应.
时延序列处理模块是对多个PUF核心电路产生的时延结果进行排序的模块.将时延序列进行排序的目的是破坏响应结果的原始输出顺序.将图1能够产生n个时延结果并生成时延序列的PUF整体设计记为PUF-n,将PUF核心电路模型记为PUF(C,d).其中C为激励向量,d为某个PUF核心电路的时延.n个PUF核心电路实例化后产生的时延向量D记为(D1,D2,···,D n).时延序列处理模块最终产生的PUF时延序列向量R记为(R1,R2,···,R n),其中R1 图1所示的PUF整体电路中存在有n个PUF核心电路,它们独立产生n个时延结果构成一个时延向量(D1,D2,···,D n).该时延向量输入到时延处理模块(delay process module,DPM),DPM对该时延向量进行升序排序,产生新的时延序列DS(R1,R2,···,R n),其中R1 分析以下两种情况:(1)若D=R,即向量D中D i(1≤i≤n,n为整数)对应于向量R中的R i(1≤i≤n,n为整数),向量D中元素已经为升序的顺序.此时,映射F(D,R):D=R.这种情况下,如果多次结果中测试向量D中前部元素时延偏小,而后部元素时延偏大,那么适当调整核心电路实例的输出顺序,将时延偏大的核心电路模块放在前部输出,输出偏小时延的核心电路模块放在后部输出,就可以降低此种情况发生的概率.(2)若D̸=R,那么在映射F中∃x̸=y,使D x=R y.此时,映射F为双射,最后输出的向量R与向量D不相等. PUF可以为硬件设备提供加密密钥或者认证时的签名信息.CCD-PUF要解决的关键问题为:(1)如何产生CRP;(2)降低硬件实现上的资源消耗;(3)提高PUF响应的唯一性;(4)CCD-PUF的安全性. Guajardo[6]以及后来的Rührmair等[18]提出了强弱PUF的概念.弱PUF本质上是一种在易受攻击的硬件中存储密钥的新形式.它提供了ROM、Flash或其他非易失性存储器(NVM)的替代方案,仅有少量且固定的激励和访问受限的响应.与弱PUF相反,强PUF从PUF物理无序性中获得更复杂的激励响应对.强PUF具有大量的激励且无法预知激励响应对. PUF认证协议中,CRP的有效性保证了物理设备认证的正常功能.若激励与响应和PUF结构间存在某种关联或者变化趋势,就会存在模型攻击的风险,攻击者根据芯片电路的部分CRP进行建模仿真并对未来输入的激励信号进行响应预测,进而伪造身份.故PUF的关键问题是如何产生有效的CRP进行认证,同时保证其安全性. CCD-PUF拥有产生激励响应对的结构,产生CRP的方式与仲裁器PUF类型和RO PUF类型有不同之处.本文PUF核心电路的激励为输入源寄存器的数据,响应为影子寄存器与目的寄存器的比较结果,其是一个精确的时延数值.多个PUF电路的实例化产生多个响应.输出的响应经过时延序列处理模块,对响应进行排序,形成最终的激励响应对.对于某一激励C来说,CCD-PUF所产生的PUF响应为(R1,R2,···,R n),其中R1 CCD-PUF产生的CRP中响应为一串时延序列,与大多数FPGAPUF实现产生0或1比特串的方式有所区别.CCD-PUF的响应不能够直接被攻击者用来建立模型,因为激励响应对和每个PUF核心电路不是一一对应的,每个PUF核心电路产生的精确时延对于最终响应贡献的位置是不确定的.设两个本文PUF方案实现PUF-n、PUF′-n,对应的CRP向量集合分别为CRP(C,R)和CRP′(C′,R′).认证物理设备需要保证集合CRP中的任意激励向量C与CRP′中相同的激励向量C所对应的响应向量R与R′大概率不同,即 其中ϵ是不可忽略的正实数,并且Δ(r,r′)为向量R与R′间的差异.传统的PUF认证中,PUF设计是可以保证R与R′是不同的.由于CCD-PUF增加了时延序列处理模块,即映射F.需要证明当增加映射F时,同样能够保证R与R′不同为大概率事件. 定理1由于芯片制造过程中存在不可控的工艺偏差,在相同激励c下,两个不同PUF实现PUF1和PUF2的响应间的距离Δ(r,r′)̸=0为大概率事件,即满足公式(1). 证明:上述不等式中ϵ取无穷小时也能保证其不等式成立.利用反证法,假设向量R=R′.根据第2.3节中对映射F(D,R)的说明,当R=R′时,存在两种可能情况.第一种情况为向量D=D′,第二种情况为D̸=D′,但是向量D中的所有元素D i(1≤i≤n,n为整数)构成的集合与向量D′中的所有元素D′i构成的集合相等.这种情况说明在同一个激励C下,两个不同的PUF核心电路能够产生相同的时延,显然违背了在PUF设计中遵循的原则.故向量R与R′在实验标准下是大概率不同的. 一般来说,在FPGA上实现的PUF设计中,硬件资源的消耗是PUF设计者必须要考虑的问题.对轻量化的设备而言,PUF一般用于认证,此时PUF设计不应该占用太多的硬件资源,应当在合理的范围内控制PUF的规模,否则IC的正常功能会受到影响. 此外,由于FPGA中资源空间有限,在实现PUF结构时需要考虑各项资源(LUT、寄存器、触发器等)占比大小,减少资源使用面积可能会导致PUF关键路径时延增大,减缓运行速度.因此,如何协调好速度和面积之间的关系也是PUF设计中面临的问题. 基于时延的FPGAPUF电路结构通常采用激励响应模式,链路结构的灵活性使得生成1比特响应需要的硬件资源动态变化.对于APUF来说,生成1比特响应的硬件资源消耗与单个时延模块个数成正比.对于RO PUF来说,RO PUF电路结构与振荡电路中的反相器个数和多路选择器选择方式有关. CCD-PUF的硬件资源消耗与PUF核心电路个数成正比.根据第1节(PUF设计)所述,PUF核心电路包括主电路与测量电路两个部分.主电路是寄存器连接组合电路的形式,此结构在FPGA设计中普遍存在,其占用的硬件资源有限.以组合电路是查找表为例,主电路仅包括两个寄存器以及一个LUT和所需要的连线.测量电路是PUF电路中额外需要的电路资源,其包括影子寄存器、组合电路和触发器. 总体来看,与传统时延电路相比,本文的CCD-PUF电路资源消耗主要在于原子电路,额外需要一个寄存器和一个触发器就可以将电路的时延特征提取出来.在本文4.1节给出了CCD-PUF的硬件资源消耗情况统计结果.在相同资源约束的条件下,CCD-PUF比传统基于时延的PUF能够产生更多的PUF响应. 唯一性指的是不同芯片电路的差异程度,主要体现在电路生成的PUF响应具有的随机特性.如果PUF响应存在某种关联或者变化趋势,就容易遭受到建模攻击,攻击者根据PUF的部分CRP进行建模并针对某激励信号预测其响应,失去唯一性的PUF电路其安全性面临巨大威胁. 另外在认证方面,PUF唯一性影响了两个不同的PUF实现,相同激励产生相同响应的概率.使用唯一性不满足要求的PUF设计做认证,就可能出现误认情况,这在认证协议中是不允许出现的.因此如何提高PUF唯一性也是PUF设计的关键问题.PUF的唯一性可以衡量PUF作为“物理指纹”的能力,有效地提高PUF的唯一性可以在实际认证中,更容易达到识别设备的目的. 本文的CCD-PUF电路能够生成一组精确时延序列,对于两组不同激励,两组响应时延间的差值满足一定阈值时,可以区分两个PUF核心电路的唯一性.例如当激励为010101···时,某PUF核心电路的时延为D a;而激励为101010···时,该PUF核心电路的时延为D b.将两个时延的差值取绝对值记为δ(|D a−D b|).设定一个阈值Δ,若δ>Δ,则表明在不同激励下PUF核心电路能够产生差异很大的两个响应,证明该PUF核心电路唯一性较好.反之,当δ<Δ,表明该PUF核心电路唯一性不够好,则对效果不好的电路进行抛弃,保留唯一性好的PUF电路作为最后的实现电路. 若CCD-PUF的两个实现PUF-n和PUF′-n的响应之间的距离称为片间距离,定义为: 设r和r′为某一个特定激励c下,PUF-n和PUF′-n分别产生的响应.当两个响应为比特串形式时,片间距离可以转化为汉明距离(片间汉明距离)的计算,公式如下: 其中n为PUF响应位数,Δ(r i,r′j)为两组响应之间的汉明距离,k为两个响应的计算组数.CCD-PUF核心电路可以产生精确时延也可以产生0或1的比特结果,实验结果见第4.2节. PUF为硬件设备提供认证或加密功能时,要考虑其安全属性.一般来说,用作认证的PUF设计,要能够防止攻击者构建PUF模型,阻止攻击者预测任一激励所产生的响应.PUF的安全性关注克隆、篡改以及PUF协议引入的安全性问题[19]以及对PUF进行侧信道分析[20].CCD-PUF核心电路可以产生精确时延,并对精确时延进行升序排序. 针对PUF的攻击一般不考虑物理破坏.因为攻击者一旦物理破坏PUF实体,则不能够利用PUF签名伪造身份或者得到PUF密钥.PUF的安全性问题主要基于以下几个方面: (1)对PUF实现的克隆攻击; (2)对PUF实现进行猜测攻击; (3)对PUF实现利用机器学习进行建模攻击. CCD-PUF中PUF-n能够产生一组精确时延序列向量R(R1,R2,···,R n)作为最后的响应结果,对应激励记为C.该时延序列具有升序顺序.为简洁起见,我们使用符号Π:X→Y(Π(x)=y)表示PUF Π的激励响应映射关系.分别对上述攻击方式进行安全性分析: (1)克隆攻击.不可克隆性是PUF的核心属性.对于某一PUF克隆c来说,若不能提出任一包含另一个PUFΠc̸=Π的物理实体,使得∀x:Πc(x)≈Π(x),则证明Π在物理上是不可克隆的.论证理论上的不可克隆性非常困难,唯一可以证明在理论上是不可克隆的已知系统是基于量子物理学的.若攻击者尝试去克隆PUF-n,首先要克隆PUF(C,d).而映射关系PUF(C,d)的安全性由PUF自身的安全属性所保护.目前已知的物理克隆攻击主要针对基于存储的PUF电路结构[21],由于本文PUF方案属于时延PUF类型,故此攻击方法对于本文方案的实现难度与其他时延PUF一致,暂无此类攻击成功案例. (2)穷举攻击.对手尝试去猜测某一激励下对应的响应来伪造认证.使用传统的时延PUF设计方案,穷举的复杂度为O(2n),其中n为激励与响应的位数.由于穷举的复杂度为指数型增长,增加n的大小,可以降低攻击者猜测正确的概率. 对于CCD-PUF来说,对手需要穷举的是二维向量(C,R)之间的对应关系.具体地,CCD-PUF的输出响应向量R即能够将时延具体转换为比特型数据格式的响应输出,也可以是时延值类型的响应输出.CCD-PUF比特数据格式的响应具有nbit的激励位数以及响应位数. PUF-n由n个PUF(C,d i)(i=0,1,···,n)组成.对手猜测(C,R)即需要猜测出(C,d i)(i=0,1,···,n).每一个PUF核心电路的响应d i都是单比特的穷举空间,具有两种可能性.因此整个PUFn的响应穷举空间大小为n,故CCD-PUF在这种情况下的穷举空间为2n,猜测出(C,R)的复杂度为O(2n).第二种响应格式下,CCD-PUF产生时延值类型的响应,这种情况下每个核心电路PUF(C,d i)(i=0,1,···,n)的穷举空间为正实数范围内的任意值,与比特类型相比,响应值的可能性更多,且明显大于2,假设为常数c.故这种情况下,猜测成功的复杂度为O(c n). (3)建模攻击(modeling attack).机器学习方法是一种有效攻击传统时延PUF的手段.在文献[22,23]中,提出了对于APUF类型的各种机器学习攻击方法.APUF由于其线性的电路结构,适用于建模攻击并进行预测.CCD-PUF与APUF和RO PUF类似,均是由核心电路实例化若干个来组成整体PUF电路的. CCD-PUF在电路结构后方具有时延处理模块,此模块表示的函数为非线性函数映射.CCD-PUF产生的响应为时延序列R(R1,R2,···,R n),而向量R是通过映射函数F(D,R)得到的.对于传统机器学习可以有效预测APUF中(C,D)之间的关系.目前尚未知道CCD-PUF与APUF类型的建模区别,假设CCD-PUF与APUF的模型复杂度一致.由于增加了映射函数F,不直接输出向量D,构建的模型与APUF不一致,会额外增加函数F的影响,故增加了建模的困难度.此外与APUF相比,CCD-PUF方案在相同资源消耗的情况下,能够实例化更多的核心电路,产生响应的范围更大.APUF响应位数的增加会直接影响预测的精确度,根据假设APUF与CCD-PUF的建模复杂度一致,则产生更多的响应位数会降低预测的精确度. 本文实现了128个2.2节所述核心电路实例来产生一个128 bit的签名.实验平台采用xc6slx9(Xilinx Spartan-6).Xilinx Spartan-6 FPGA的每块开发板上具有大约11 000个寄存器以及大约5700个LUT,此外开发板上有一个串口RS-232输出,用该串口将PUF的响应结果传送给PC来进行观察统计.本文采用4个Xilinx Spartan-6 FPGA芯片,每个芯片利用其中的6片区域进行PUF实现,每个区域生成一组128 bit PUF响应,实验结果共有24组PUF响应数据. 实验目标: (1)通过在FPGA实现CCD-PUF设计方案,来证明CCD-PUF方案的可行性. (2)对实现的CCD-PUF方案的激励响应结果和所使用的硬件资源进行统计,计算CCD-PUF的各项指标,包括唯一性、稳定性以及硬件资源消耗,以此证明CCD-PUF达到了PUF实用性标准并且解决了现有时延PUF存在的问题. 实例化128个PUF核心电路作为实验对象,给定某一激励,128个PUF核心电路的响应记为d1,d2,···,d127.首先,本文进行了PUF核心电路响应的实验测试.具体地,选取一系列输入激励进行测试,得到了128个核心电路产生的响应结果(即电路时延).不同激励c1和c2下,某PUF核心电路产生的响应结果如表1所示,其中激励c1为0xAAAAAAAAAAAAAAAA,激励c1为0x5555555555555555.响应通过上位机程序接收,利用激励c1与c2对某一CCD-PUF实例进行1000次测试,分别统计两个激励下响应对应的平均时延分别为d=1.349 ns和d′=2.815 ns.计算得|d−d′|=1.466 ns,因此将Δ=1.466 ns作为CCD-PUF的判别阈值.实测阶段中某一CCD-PUF实例单元在激励c1与c2下时延差值低于Δ时会被丢弃,反之则保留,以此提高CCD-PUF的时延差异性. 表1 不同激励下PUF方案的响应情况Table 1 Response of PUF scheme under different challenge 第二步,上述产生的PUF核心电路响应,通过1.3节所述的时延序列处理模块进行处理,时延序列处理模块包括C语言实现的排序程序.在FPGA与单片机构成的SoC(system-on-a-chip)系统中,时延序列处理模块在单片机中实现,该时延序列处理模块对CCD-PUF的原始路径时延进行处理.FPGA产生的PUF响应传输到单片机中的处理模块进行排序,即可得到最终的响应时延序列.例如在激励c1与c2下,某次CCD-PUF的最终时延序列由原始的 最后,对PUF唯一性和稳定性指标的统计数据计算,需要将精确时延响应结果转换成比特串形式的响应进行计算,方便与其他类型的PUF设计进行指标的比较.所用方法为:选择两个汉明距为128的激励作为输入,统计所产生的时延响应的中位数作为阈值,将大于该阈值的时延响应记为1,反之记为0.对于两对响应来说,可以抛弃响应差绝对值较小的PUF响应.由此得到了PUF核心电路128个实例化的128个比特结果,表1为本文PUF方案产生响应的比特形式结果. 对具体实验方案所产生的PUF响应结果进行数据统计,整理了128 bit响应的CCD-PUF对应的硬件资源、唯一性以及稳定性结果. 4.3.1 硬件资源 生成单比特PUF响应时,CCD-PUF仅使用3个寄存器和1个LUT以及1个触发器等,由于主电路为简单的组合电路节约了硬件空间.传统的时延PUF需要对PUF电路其本身进行设计,它们使用多个LUT、寄存器等硬件资源来产生单比特PUF响应.表2为CCD-PUF产生128 bit响应时FPGA上的资源消耗情况,可以看到硬件资源占用率不足整体资源的4%.表3显示,本文实现128 bit的PUF需要128个Slice,而如Anderson PUF等[17]使用两个Slice产生单比特PUF响应的设计会使用Slice数目加倍;由于每个APUF单元占用4个Slice与16个LUT,故实例化产生PUF激励需要大量的硬件资源. 表2 128 bit PUF资源消耗占总FPGA的比例Table 2 128 bit PUF hardware resource consumption of total FPGA 表3 128 bit各种类型PUF资源消耗对比Table 3 Comparison of various types of PUF(128 bit)resource consumption 4.3.2 唯一性 两个相同PUF设计在同一颗芯片上不同区域的实现或是在两个不同芯片上的实现通常具有差异性.由于PUF技术被看作是“物理指纹”,因此不同实现之间应该具有差异性.两个相同PUF设计的不同实现产生响应的差异(或叫做距离)被称为片间距离.通过比较两个PUF响应之间的相似程度来判定PUF是否唯一,如果产生的2个响应结果相同或者极为相近时,则认定该PUF结构不具有唯一性.当两个响应的形式为比特串时,片间距离的计算可以转化为片间汉明距离的计算.一个PUF响应为n位,k为两个响应的计算组数,两个PUF实现间的平均汉明距离利用公式(3)进行计算. 理想情况下,PUF平均汉明距离是50%时,说明该PUF的唯一性最好.对24组PUF实现在不同区域进行实验,图3所示为CCD-PUF唯一性统计结果,其中最小与最大汉明距离分别为51和83,所有24组数据互相比较得到的276组片间距离的平均值为63.752,接近理想值64(128的50%).从表中也可以看出数据符合高斯分布,中位数接近64. 图3 24组PUF实现的片间汉明距离的密度分布图Figure 3 Density distribution of inter-Hamming distance between 24 groups of PUFs 4.3.3 稳定性 与唯一性计算不同的是,稳定性用来衡量PUF在多次相同激励下是否能够保持相同响应的能力.理想情况下,无论在什么环境中重复多少次实验,同一激励信号对应输出的响应应该完全一致.然而在实际环境中,PUF在FPGA上的实现受到温度、电压、设备老化等诸多因素影响,致使PUF电路中时延产生变化,最终导致输出响应的改变.大量重复实验生成的响应信号间距离越小,说明该PUF实现具有很好的稳定性.与唯一性的计算相似,通常计算响应比特间的汉明距离进行比较.对24组PUF实现在不同时间进行2次实验,图4所示为CCD-PUF稳定性统计结果.48个统计结果的片内汉明距离均在[0:5]的区间内,平均值为1.426(128比特的1.114%),故稳定性为98.886%. 图4 不同时间下24组PUF实现的片内汉明距离的密度分布图Figure 4 Density distribution of intra-Hamming distance implemented by 24 groups of PUFs at different times 表4所示为CCD-PUF与常见类型PUF在性能表现方面的对比.唯一性方面,CCD-PUF比APUF、RO PUF以及Anderson PUF高大约1-3%,达到了49.81%;稳定性方面,CCD-PUF略低于RO PUF,而比APUF以及Anderson PUF高大约2-4%.综合前面的数据与分析,本文提出的CCD-PUF设计具有良好的稳定性、唯一性,以及较少的硬件资源消耗等优点. 表4 常见PUF电路结构性能对照(%)Table 4 Comparison of common PUF circuit structure performance(%) 本文提出了CCD-PUF设计,该新型结构利用原子电路(由组合电路以及寄存器构成)的时延来产生PUF响应,其目的在于减少时延类型PUF在硬件资源方面的开销.CCD-PUF的主要原理是测量文中提出的一种原子电路上的时延.首先,原子电路为寄存器到组合逻辑电路到寄存器的一种电路结构,只需要通过一个额外的寄存器就可以捕获到原子电路上的精确时延,这样的设计极大减少了硬件资源开销.其次,因为CCD-PUF可以获得精确的时延,对于某些达不到时延要求的原子电路,就可以进行抛弃,从而提升PUF电路的唯一性和稳定性.最后,CCD-PUF引入时延序列的概念,可以更为方便地对PUF时延响应进行处理,例如对PUF电路产生的精确时延进行混淆,增加建模分析的复杂度,从而达到安全性需求. 通过实验证明,本文提出的CCD-PUF占用了不足4%的整体硬件资源,唯一性性能够达到49.806%,比APUF、RO PUF以及Anderson PUF高约1-3%.对于轻量化而言,在产生相同数量响应的情况下,CCD-PUF相比Anderson PUF减少了一倍Slice的使用.就稳定性而言,CCD-PUF达到98.886%,比APUF和毛刺PUF高约2-4%.未来的研究工作将集中于分析CCD-PUF方案是否能够有效抵抗机器学习等建模攻击.3 关键问题
3.1产生CRP方式
3.2 降低硬件资源消耗
3.3 如何提高PUF唯一性
3.4 安全性理论分析
4 实验结果与分析
4.1 实验设置与实验目标
4.2 实验方案
4.3 实验结果
5 总结
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!