孙子文 叶 乔
①(江南大学物联网工程学院 无锡 214122)
②(物联网技术应用教育部工程研究中心 无锡 214122)
随着物联网(Internet of Things, IoT)技术的发展,无线射频识别(Radio Frequency IDentification, RFID)技术也受到广泛关注[1]。其中,关于RFID用户隐私信息的安全问题已经引发消费者的重点关注。由于体积、资源、功耗等方面的限制,传统的高级加密标准、椭圆加密算法等加密算法应用于RFID时存在局限性[2]。物理不可克隆函数(Physically Unclonable Function, PUF)利用集成芯片制造工艺的差异,实现对不同的激励产生特定的激励响应对(Challenge Response Pairs,CRPs)[3]。作为一种轻量级的安全原语,PUF所产生的不可预测性的CRPs可有效地解决RFID、智能卡等物理实体的安全问题[4]。
围绕不同PUF产生机制的研究较为成熟。目前比较常见的PUF类型有:SRAM PUF[5]、触发器PUF[6]、 锁 存 PUF[7]、 蝴 蝶 PUF[8]、 仲 裁 器PUF[9,10]、环形震荡器PUF (Ring-Oscillator PUF,RO PUF)[11-13]以及毛刺PUF[14]。其中,RO PUF相比较其他各种PUF,更容易在FPGA上进行布局实现,并且具有优良的性能,所以被广泛的使用[3]。RO PUF中比较有代表性的是Suh等人[11]提出的PUF方案,该方案拥有比较简单的熵评价标准并且很方便在FPGA上进行设计。
Suh等人[11]提出的RO PUF的原理通过比较两个随机选取的震荡环的频率值大小产生信息熵。这种方案每次一组环形震荡器只能产生1位信息熵,随着RO PUF需要生产的随机信息数量的增加,所消耗的资源也将成倍地增加[15]。同时,工作温度对频率的影响很大,当a震荡环在一个温度下比b震荡环频率高,而在另一个温度下比b震荡环频率低时,这种频率交叉变化会使这对环形震荡器产生的信息熵不可靠。ROPUF存在环形震荡器提取的信息熵数量少,以及信息熵的可靠性易受温度影响等问题。
为消除温度对PUF的信息熵可靠性的影响,Maiti等人[12]提出可配置的RO PUF(Configurable RO PUF, CRO PUF)。CRO PUF通过在FPGA上频率差异最大的区域布置CRO,然后选取一对CRO产生信息熵。此方法在一定程度上降低了温度的影响,不过在温度变化较大的情况下依然会存在比特跳变[16],可靠性不能得到完全的保证。同时,为了选取频率差异较大的区域布置CRO,导致所能部署的CRO数量极大地减少,进而影响了CRO PUF一次所能产生随机数据的数量。因此,为了保证CRO PUF一次产生足够长的可靠的随机数据,解决一对CRO提取信息熵的数量少和震荡器易受温度的影响等问题仍然是关键。
为了解决RO PUF和CRO PUF方案存在的震荡环单元提取信息熵位数少、易受温度影响等问题,本文采用一种提取多位可靠信息熵的PUF方案ME-ROPUF(Muitibit Entropy RO PUF)。MEROPUF方案中,通过对FPGA中震荡环频率数据的分析,采用提取震荡环的频率特征位产生信息熵的方法来替代RO PUF比较频率大小产生信息熵的方法,有效地提高PUF产生信息熵的数量;此外,通过对逆变器时延受温度影响的分析,ME-ROPUF方案中环形震荡器采用由电流饥饿逆变器[17]和传统逆变器组成的混合可配置环形震荡器(Hybrid CRO, HCRO)[16]单元,从而减小温度对环形震荡器频率的影响,降低不同温度下PUF信息熵的跳变率,提高ME-ROPUF的可靠性。
ME-ROPUF采用提取多位信息熵方法以及HCRO单元产生多位可靠信息熵,其中,提取多位信息熵方法是基于对FPGA震荡环特征的研究,而HCRO是基于对逆变器温度特性的研究。
环形震荡器在FPGA上是由同构的硬宏单元组成,但由于集成芯片制造工艺的差异,环形震荡器的时延会有一定的差异[17]。结合Maiti等人[12]提出的震荡环的时延模型,并且将时延数据转化成频率时,其转化过程会存在偏斜效应[18],这种偏斜效应会使在同一制造工艺、同一位置的环形震荡器多次测量的频率存在偏差。那么,环形震荡器的频率组成成分表示为式(1)
图1 不同RO的频率分布图
由于MOS管处于不同区域时,漏极电流与温度的关系呈现相反的状态,这就为构建一种能够降低温度影响的环形震荡器提供了可能。
ME-RO PUF整体结构如图2,主要由8个5阶的HCRO单元、9个24位计数器和一个特征位提取器组成,其中特征位提取器实现的功能是从24位频率数据中选出指定的几位数据。ME-ROPUF的激励数据作为激励信号配置5阶的HCRO单元,计数器和HCRO单元受到触发信号开始工作。当计数器1的计数值达到参考值时所有计数器停止计数,然后特征位提取器从计数器2~9所产生的24位二进制频率数据中分别选取频率特征位区域组成响应数据输出。
ME-ROPUF为了降低温度对环形震荡器频率的影响,使用HCRO单元产生震荡频率;为了提高从环形震荡器中提取多位信息熵,采用提取频率特征位的方法产生信息熵。
环形震荡器的时延主要取决于组成环形震荡器的逆变器的时延,由于逆变器的时延会受到温度的影响,所以环形震荡器的频率也会受到温度影响。常规逆变器的MOS管是工作于饱和区,逆变器的时延与温度呈现正相关变化。为了降低温度对环形震荡器频率的影响,可根据电流饥饿逆变器的MOS管是工作在截止区且其时延与温度呈现负相关变化的特性,将环形震荡器的部分常规逆变器替换成电流饥饿逆变器。饥饿逆变器和常规逆变器组成的HCRO单元的结构如图3所示。
电流饥饿逆变器是在常规逆变器上下分别增加1个PMOS管和1个NMOS管,通过偏置电压 Vp和Vn使图4中逆变器的MOS管工作于截止区域。
图2 ME-ROPUF整体框图
图3 HCRO结构
图4 电流饥饿逆变器
图5 3种震荡环频率随温度变化图
采用cadence virtuoso中specture环境进行蒙特卡洛仿真,比较了常规逆变器CRO、电流饥饿逆变器CRO与HCRO的频率受温度影响的变化情况,如图5所示。由图5可知,以27°C作为参考温度,常规逆变器CRO单元所产生的频率随温度升高而减小,电流饥饿逆变器CRO单元所产生的的频率随温度的升高而升高,而由常规逆变器和电流饥饿逆变器组成的HCRO单元所产生的频率基本不会受温度的影响,因此采用HCRO单元的PUF结构拥有很好的抗温度特性。相比较常规逆变器CRO单元和电流饥饿逆变器CRO单元,ME-ROPUF所采用的HCRO单元所受到温度的影响更小,HCRO单元所产生的频率受温度影响的位数处于(0, low)区域,不影响ME-ROPUF所提取的特征位数据,提高ME-ROPUF产生信息熵的可靠性。
基于仿真和实验两个层面,对本文采用的方法的有效性从不同的角度进行了验证和分析。在linux系统下,采用cadence virtuoso中specture环境进行蒙特卡洛仿真,用于验证采用HCRO单元的ME-ROPUF结构的可靠性;使用赛灵思synq7000系列的FPGA开发板,进一步通过实验验证MEROPUF提取信息熵方法的有效性以及所提取信息熵的唯一性和均匀性。
linux系统下的仿真的器件工艺库选择的是TSMC0.18 μm, 1.8 V CMOS工艺库。实验使用verilog语言进行PUF结构设计,为了防止电路被优化,采用xilinx官方提供的原语操作和XDC Macro技术在FPGA的SLICEL逻辑单元中配置LUT单元和数据选择器组成震荡环,每个震荡环采用9个LUT和4个数据选择器,具体的布局如图6所示。采用vivado自带的ila逻辑分析仪对实验数据进行辅助分析。
整个实验和仿真用来验证ME-ROPUF提取信息熵方法的有效性以及对ME-ROPUF的可靠性、唯一性和均匀性的分析。
4.2.1 ME-ROPUF提取信息熵方法的有效性
在27°环境温度下,在FPGA上对ME-ROPUF提取信息熵方法进行验证。ME-ROPUF产生信息熵的方法是选取准确的频率特征位,选取准确的震荡环特征位分为两步。第1步,根据式(13)和式(16)求得震荡环的 Si和Ri的 分布如图7所示,满足Si>0.990且Ri>0.490条件的预选区域为(13, 17)的各子区域。第2步,根据式(17)-式(20)计算不同预选区域对应的Spuf, Upuf, Rpuf以 及Vpuf,结果如表1所示。
由表1可知,(14, 17)的 Vpuf最大且Rpuf>0.45,所以选取(14, 17)作为ME-ROPUF的特征位区域,即ME-ROPUF每个震荡环产生4位信息熵。而RO PUF使用两个震荡环进行比较频率大小产生1位信息熵,故ME-ROPUF使用相同的LUT资源得到ROPUF8倍的信息熵。
图6 震荡环在FPGA上的布局图
4.2.2 ME-ROPUF的可靠性
采用cadence virtuoso中specture环境进行蒙特卡洛仿真ME-ROPUF的可靠性,并与ROPUF[11],CROPUF[12]、使用CRO单元的ME-ROPUF以及使用HCRO单元的ME-ROPUF的可靠性进行了对比。根据式(17)-式(20),以室温27°为参考温度,仿真了实验温度在0°~100°范围内变化过程中MEROPUF的可靠性,其结果如图8所示。由图8可知,采用HCRO单元的ME-ROPUF方案的可靠性在98.062%~99.592%之间浮动,而RO PUF, CRO PUF以及采用CRO的ME-ROPUF方案的可靠性分别在95.017%~98.142%, 96.121%~98.768%和95.809%~99.542%之间浮动。使用HCRO单元的ME-ROPUF方案的可靠性明显高于采用CRO单元的可靠性;可靠性随温度变化的浮动程度也明显小于RO PUF, CRO PUF以及采用CRO的ME-ROPUF方案,表明采用HCRO单元的ME-ROPUF方案能有效降低温度对可靠性的影响。
4.2.3 ME-ROPUF的唯一性和均匀性
采用FPGA实验对ME-ORPUF的唯一性和均匀性进行性能验证,并与ROPUF[11], CRO PUF[12]和使用CRO的ME-ROPUF的唯一性和均匀性进行了对比实验,实验在27°下进行,结果如图9所示。由图9可知,ME-ROPUF的唯一性在49.897%~50.176%之间浮动,均匀性在46.290%~48.378%之间浮动,而RO PUF, CRO PUF以及采用CRO的ME-ROPUF方案的唯一性分别在49.621%~50.369%, 49.604%~50.274%和49.752%~50.238%之间浮动,均匀性分别在46.395%~47.807%, 46.959%~47.809%和46.086%~48.936%之间浮动。表明相对于其他几种方案,ME-ROPUF方案的唯一性都得到了改善,均匀性相差不大。
图7 位稳定性和位随机性分布图
表1 预选区域性能指标
图8 PUF的可靠性
图9 PUF的唯一性和均匀性
ROPUF作为一种可靠的硬件加密原语,为低功耗设备不适合使用传统的加密方法提出新的解决方案。但是ROPUF易受到温度的影响且震荡环所产生的信息熵数量少。本文采用的ME-ROPUF方案采用提取震荡环特征位的方法来提取更多信息熵,并采用HCRO单元来降低温度对震荡环频率的影响,从而能够有效的提高PUF的可靠性、唯一性以及信息熵数量。ME-RO PUF可靠性提升到98.062%以上,唯一性在49.621%~50.369%浮动,相同的LUT资源得到8倍的RO PUF信息熵。