电子说
关键词: RO PUF;多输出环振荡器;动态配置处理模块;汉明距离
中图分类号: TP331
文献标识码: A
DOI:10.16157/j.issn.0258-7998.170750
中文引用格式: 刘勇聪,王建业,丁浩. 动态可配置多输出RO PUF[J].电子技术应用,2017,43(9):43-45,49.
英文引用格式: Liu Yongcong,Wang Jianye,Ding Hao. Dynamic configurable multi-output RO PUF[J].Application of Electronic Technique,2017,43(9):43-45,49.
0 引言
随着计算机技术和集成电路的飞速发展和广泛应用,芯片信息安全越来越受重视。而环形振荡器物理不可克隆函数(RO PUF)在信息安全领域作为一项非常有潜力的技术,在芯片信息安全领域备受关注[1]。传统RO PUF通过比较放置在同一芯片不同位置的一对环形振荡器的频率来生成输出0或1。由于随机的工艺偏差,输出位将因芯片的不同而变得无法预测[2]。因此,基于传统RO PUF的可配置的RO PUF被提出来。在可配置RO PUF中, 输出位通过最大频率差的配置向量生成[3],从而可以降低工艺偏差带来的影响。
然而,不论是传统RO PUF还是可配置RO PUF都存在一个相同的不足:通过比较两个环形振荡器频率的不同只能产生一位输出。为了产生更多的输出位,只能不断增加振荡器数量。虽然频率比较的方法可以提高输出位数,但是有限的芯片资源限制了可配置RO PUF的实际运用[4]。
根据以上不足,本文提出了动态可配置多路输出RO PUF。不仅从根本上增加了输出位数,而且可以根据实际需求确定输出位的数量。同时,振荡器的结构随工作条件的变化而相应的改变,因此可以提高芯片的鲁棒性和安全性。
1 多输出环形振荡器
多输出环形振荡器由反相器、开关单元和路径分配器组成,路径分配器是动态可配置多路输出RO PUF的基础。多输出结构的环形振荡器如图1所示。
图1中所有开关单元都与仲裁器PUF[5]中的开关单元一致。如果在开关S[0..2]配置位是‘1’,信号将在对应的开关交叉,否则信号将平行通过。图1中由3个开关单元组成的振荡器共有8(23=8)种信号传输模式。路径分配器用以确保信号不会在振荡器上下路径之间交叉传播,以保证每条路径的稳定振荡。信号从路径分配器的输出端开始传输,通过反相器和开关单元,最后回到路径分配器的输入引脚。路径分配器根据每个信号的配置向量决定信号的流向,确保信号重新开始流动时,会沿着之前的路径流动。不同的配置向量将导致不同的信号传输模式。不同的传输模式导致不同传输延迟的线路和门电路,从而产生不同的振荡频率。
相比传统RO PUF中和可配置RO PUF振荡器只能产生一位输出,该振荡器只占一个LAB却可以产生2个输出位。除此之外,通过调整开关单元的通断和路径分配器的信号分配路径,该振荡器还可以产生更多的输出位。
图2表示一对多输出环形振荡器和4个输出位(RO1-1、RO1-2、RO2-1、RO2-2)。RO1和RO2的配置向量相同。通过逻辑锁存器,RO1-和 RO2-1具有相同的路径。所以RO1-和RO2-1(或RO1-2and RO2-2)唯一的区别就是物理工艺偏差。因此,RO1-1和 RO2-1(或RO1-2and RO2-2)频率比较结果可以作为一个输出位。
在Xilinx FPGA中进行实验,如图3所示,实验结果表明RO1-1和RO1-2在不同配置向量下的输出频率。
实验结果表明,RO1-1和RO1-2的输出频率确实存在差异。此外,随着配置向量的不同,它们的输出频率也存在差异。因此,验证了多输出振荡器结构确实能有效产生多个输出位。
RO1-1和RO2-1的频率差和RO1-2和RO2-2的频率差在不同配置向量下的实验结果如图4所示。可以看出,RO1-1和RO2-1的频率差和RO1-2和RO2-2的频率差是不相关的。因此,它们的输出不相互影响,可以看作两个独立输出位。
表1列出了不同输出位数多输出RO和传统RO的芯片资源占用情况。第二列表示不同输出位数下,一对多输出ROs用以产生不同的输出位的LAB占用数量。第三列表示传统RO产生相对应的输出位数所占用的LAB数量。可以看出,多输出RO占用的芯片资源更少。例如,128位输出需要65个两位输出ROs,占65个LAB,也可以由33个四位输出ROs产生,占99个LAB, 但如果使用传统的RO结构,则需要129年ROs,占129个LAB,所占的LAB数量是最多的。可以看出,多输出RO在芯片资源利用率上具有很大的优势。
2 动态配置过程模块
动态可配置多路输出RO PUF的总体结构如图5所示。N个两位输出的一对环形振荡器(ROs)通过比较相邻ROs的频率生成2(N-1)个输出位。传感器由五级环形振荡器构成,振荡频率与环境温度和电源电压成线性关系[6]。传感器主要用于检测芯片工作情况。为了可以根据环境情况动态调整相邻振荡器的结构,从而确保相邻的ROs保持一个相对较大的频率差,当环境温度和工作电压超过预先设定的阈值时,FSM控制器[7]启动动态配置过程从而计算出在当前环境下的“最优配置向量”。因此,环境对输出位的影响将降低,从而动态可配置多输出RO PUF鲁棒性得到提高。
“最优配置向量”不是简单的产生最大的频率差的向量。相反,它是由ROs的频率差的分布来决定。对不同配置向量下所有的ROs的正频率差进行求和。如果上一个ROs的正频率差大于下一个ROs的正频率差,表明上下两对ROs的频率差为正,选择可使正频率差最大的配置向量作为“最优配置向量”。相反,如果上一个ROs的正频率差小于下一个ROs的正频率差,选择一个对应的负频率差最大的配置向量作为“最优配置向量”,从而可以扩大上下频率差的绝对值,进而提高比较精度。
3 实验结果
对10个Xilinx Spartan XC3S1000 FPGA进行数据提取,数据通过快速单一链接(Fast Simple Link)接口传输到MicroBlaze中进行处理。每个FPGA通过65个ROs产生128位的输出。每个输出测量50次。分别对传统RO PUF、可配置RO PUF和动态可配置多输出RO PUF进行数据分析。
RO PUF的平均片间汉明距离比例[8]可以表征同一类型PUF电路与其他个体的区分度。其计算方式如式(1)。
其中hij表示第i和第j个PUF电路产生的位输出相应,k是FPGA的个数。提取数据后计算可得不同RO PUF的平均片间汉明距离比例如表2所示。
对比以上3种RO PUF对总的位数输出相应的平均片间汉明距离比例结果可以看出,3种RO PUF的平均片间汉明距离比例都接近理想的50%,动态可配置多输出RO PUF片间汉明距离比例最高。但3种RO PUF都表现出良好的唯一性。因此,3种RO PUF的输出都可以作为每个芯片ID。
片内汉明距离可以描述PUF系统的鲁棒性和可靠性,其计算如式(2)所示。
其中,M为不同工作环境的个数,hri表示在理想工作条件(25 ℃,1.2 V)下和第i种工作情况对比条件下的n位输出响应。由于鲁棒性和可靠性主要受环境温度和电源电压的影响。让所使用的Xilinx FPGA分别工作在固定工作环境下和变化的工作环境下进行参数提取,分别对其片内汉明距离进行检测。
(1)固定环境温度和电源电压情况下
在30 ℃,1.2 V接近理想工作环境下进行参数提取,不同RO PUF结构的平均片内汉明距离如表3所示。
在接近FPGA标准工作条件下,测试误差和片内噪声是影响其鲁棒性的主要因素[9]。由表可以看出,可配置RO PUF可以将该RO PUF对误差和噪声影响降至几乎0。
(2)变化的环境温度和电源电压情况下
现实条件下,芯片的工作环境温度和电源电压总是在不断的变化之中。因此,降低环境温度和电源电压对芯片ID提取的影响意义重大。表4列出环境温度从-30 ℃变化到+70 ℃,电压1.15 V变化到1.25 V时,3种RO PUF的平均片内汉明距离比例变化情况。虽然在温度变化时,动态可配置RO PUF在ID提取上没有很大优势,但是电源电压改变时,可配置多输出RO PUF在位翻转率最低,可更加精确地提取芯片ID。
4 结论
本文结合针对传统RO PUF和可配置RO PUF输出位数不足,占用芯片资源过多的现实情况,在可配置RO PUF的基础上改进,提出了动态可配置多输出RO PUF,在提高输出位数和节约芯片资源的同时,还提高了系统的唯一性和鲁棒性,进而可提高提取芯片ID的精度。对应用RO PUF进行芯片知识产权(IP核)保护意义重大。
全部0条评论
快来发表一下你的评论吧 !