文献标识码: A
DOI:10.16157/j.issn.0258-7998.190876
中文引用格式: 徐金甫,董永兴,李军伟. 基于MLP算法的Glitch PUF机器学习攻击[J].电子技术应用,2019,45(12):62-66.
英文引用格式: Xu Jinfu,Dong Yongxing,Li Junwei. Machine learning attack to Glitch PUF based on MLP algorithm[J]. Application of Electronic Technique,2019,45(12):62-66.
0 引言
当今社会信息化飞速发展,物理不可克隆函数(Physical Unclonable Function,PUF)的不断完善为保证信息安全提供了全新的方法[1-2]。基于FPGA架构的Glitch PUF首先由ANDERSON J H等[3]提出,文献[4]在其基础上,使用多路选择器链,增加了一个新的激励比特位,增强了随机性和可扩展性。文献[5]、[6]充分利用FPGA资源,根据不同工艺的FPGA和不同类别的Slice分别设计了相应的布局布线,使得电路资源利用率显著提升。文献[5]还改进了单元电路结构,提升了输出响应0/1的平衡性。
以上文献从提升Glitch PUF随机性的角度出发,提出了不同的改进方案,但都未涉及Glitch PUF输入输出映射关系的分析,因此不能从根本解决Glitch PUF的安全性问题。文献[7]提出使用2-DL表示RO PUF,并用PAC学习框架对RO PUF进行学习,证明RO PUF可以被机器学习攻击。文献[8]提出可用逻辑回归(Logistic Regression)和演化策略(Evolution Strategies)方法攻击PUF,并对Arbiter PUF、XOR Arbiter PUF、Feed-Forward Arbiter PUF、Lightweight Secure PUF和RO PUF分别进行了机器学习攻击。实验表明当收集到一定数量的激励响应对(Challenge Response Pairs,CRPs)时,这些电路均可被成功预测,预测精度可达99.9%。
本文对Glitch PUF进行了深入研究,针对其输入输出的映射关系,提出使用MLP算法对其进行机器学习攻击,并通过实验评估方案的可行性。
1 Glitch PUF
1.1 Glitch PUF架构
Glitch PUF本质是利用FPGA上的路径延迟差产生竞争冒险现象,以此来产生毛刺,决定PUF单元电路的输出为逻辑“0”或者“1”。由于在制造的过程中,电路的延时差异是由于工艺制作差异随机产生的,即使是相同的电路结构也很难复制出相同的延时,因此利用此原理的电路具有唯一性和物理不可克隆性。
Glitch PUF单元电路由两个移位寄存器、两个双路数据选择器和一个异步置位D触发器组成,如图1所示。移位寄存器的输入逻辑相反,分别为Ox5555(0101…0101)和OxAAAA(1010…1010),连接到数据选择器的控制端。两个数据选择器形成传输路径,在理想情况下,顶层数据选择器的输出为逻辑0。异步置位D触发器的输入初始值为逻辑0,因此单元电路输出为逻辑0。但在实际电路中,寄存器转换延时和路径传输延时不同,导致路径延时差不同,从而顶层数选器的输出会产生毛刺。毛刺传递到异步D触发器的异步置位端,控制电路产生逻辑0/1。由于毛刺在传递过程中可能会受到传输路径的影响,宽度较窄的毛刺会被过滤掉。只有宽度足够大的毛刺,才能使得单元电路产生逻辑1。
Glitch PUF单元电路没有外界输入,输出结果完全依赖于电路制作过程中的随机变量,因此具有很高的抗建模攻击能力。Glitch PUF单元电路中异步置位D触发器的输入端与输出端相连,使得单元电路稳定地输出逻辑0/1,这在一定程度上提高了电路的稳定性,但从攻击角度来看,这样的设计使得电路更容易受到攻击。为使得Glitch PUF可用于身份识别与认证等领域,ANDERSON J H设计了与RO PUF相似的Glitch PUF架构,如图2所示,虚线框内为n个单元电路,通过输入激励C选取不同的单元电路,异或后输出Glitch PUF的响应。
1.2 Glitch PUF模型分析
Glitch PUF单元电路的输出值是由传输延时和转换延时决定的,根据统计静态时序分析(Statistical Static Timing Analysis,SSTA)[9],延时Δ的分布符合平均值为μ、方差为σ的高斯分布N(μ,σ2),且Δ落在区间[μ-3σ,μ+3σ]的概率为99.7%。
2 基于MLP算法的机器学习攻击
2.1 数据处理
2.2 MLP算法
机器学习能够对PUF电路实现攻击的主要原因是PUF电路的结构相对固定,产生的大量激励响应对具有一定的线性特性,使得机器学习能够预测延迟信息和生成信息之间的关系,从而实现对电路的攻击。机器学习算法中,线性可分数据对于大部分算法来讲是容易处理的,但对于非线性可分数据却不能进行有效的学习预测。Glitch PUF电路正是利用这一点,使用异或输出,增加电路输出的非线性,以此增加抗建模攻击性能。
图4单层感知器由两层神经元组成,可以轻松实现逻辑与、或、非等运算,但是由于只有一层功能神经元,对于简单的非线性可分问题(如异或运算)就不能够正确实现[10]。为解决这一问题,多层感知器(Multilayer Perceptron,MLP)应运而生。根据普适逼近原理,多层感知器通过增加隐藏层(Hidden Layer)和激活函数可以逼近任意函数,将非线性问题表示为更高维度的线性问题[11]。采用的激活函数为阈值函数,即输入大于阈值时可被激活,输出为“1”,反之则未被激活,输出为“0”。解决异或问题,使用如图5所示的简单两层感知器就可以实现。图5中第一层为输入层,第二层为隐藏层,第三层为输出层,第二层第三层圆圈内数字为阈值,横线上数字为权重,y为输出。网络输出结果如表1所示。两层感知器实现了输入数据的异或操作。
具体来说,多层感知器就是在单层感知器的基础上增加了隐藏层,即单层的输入输出模型为y=f(x,w,θ),而多层感知器输入层到隐藏层模型为h=f1(x,wi,θi),隐藏层的输出作为下一层的输入,即y=f2(h,wj,θj),所以多层感知器的最终输入输出模型为y=fn(fi(f2(f1(x,w,θ))))。
当多层感知器输出与样本一致时,则权重和阈值不改变;当多层感知器输出与样本输出不一致时,权重和阈值会进行改变。以此方式迭代进行,直至符合条件。最后保存权重和阈值进行模型建立,然后对分类错误的样本数量进行统计,输出错误率。
多层感知器算法对Glitch PUF攻击的具体算法伪代码描述如下。
3 实验评估
本文采用Python建立Glitch PUF模型,模拟其输入与输出的映射关系,并收集其激励响应对,用于后续的机器学习攻击。机器学习使用数据挖掘软件WEKA,对单元数量为32、64、128、256的Glitch PUF进行建模攻击,采用MLP算法,十折交叉验证得到的攻击错误率及所需激励响应对数量如图6所示。
由图6可以看出,PUF单元数目越多,则攻击所需的激励响应对就越多,提高预测精度也越困难。单元电路数量越少,增加输入到WEKA中的激励响应对数量,错误率几乎呈直线下降。图中128 bit与256 bit的折线显示,当输入的激励响应对达到一定数量时,错误率降低速率放缓,基本保持不变,这表明机器学习模型已接近最优值,迭代可以结束。
为验证MLP算法对Glitch PUF攻击的优越性,本文参考文献[8]、[12]、[13]采用针对二分类数据常用的算法——随机森林(RF)和逻辑回归(LR)算法进行对比。以64 bit的Glitch PUF激励响应对数据作为样本,测试结果如图7所示。从图可以看出,随机森林和逻辑回归算法在对Glitch PUF攻击能力上基本保持一致,逻辑回归算法的攻击效果略低于随机森林,多层感知器算法攻击能力最强。MLP算法的预测错误率在样本数量为600左右时,已低于1%。随机森林和逻辑回归算法在样本数量小于1 000时,其预测错误率出现波动,说明算法不能很好地针对数据建立模型;而后不断增大样本数量,其预测错误率出现下降趋势。但当样本数量达到2 500时,其错误率仍保持在20%左右。可见针对Glitch PUF的机器学习攻击,本文所提的MLP算法的处理能力远强于其他两种算法。
4 结论
PUF的不断完善使其能够应用于信息安全领域,但随着攻击技术的不断进步,其安全性也面临着越来越多的挑战。本文分析了基于FPGA的Glitch PUF的物理架构,针对其单元电路输出的缺陷,分析其输入输出映射关系,使用独热码处理其激励响应对,采用MLP算法对其进行机器学习攻击,成功攻击并预测了Glitch PUF的输出。
参考文献
[1] 张紫楠,郭渊博.物理不可克隆函数综述[J].计算机应用,2012,32(11):3115-3120.
[2] 尹魏昕,贾咏哲,高艳松,等.物理不可克隆函数(PUF)研究综述[J].网络安全技术与应用,2018(6):41-42,54.
[3] ANDERSON J H. A PUF design for secure FPGA-based embedded systems[C].Design Automation Conference.IEEE,2010.
[4] Huang Miaoqing,Li Shiming.A delay-based PUF design using multiplexers on FPGA[C].IEEE International Symposium on Field-programmable Custom Computing Machines.IEEE Computer Society,2013.
[5] 庞子涵.FPGA的物理不可克隆函数关键技术研究[D].北京:中国矿业大学,2017.
[6] ZHANG J L,WU Q,DING Y P,et al.Techniques for design and implementation of an FPGA-specific physical unclonable function[J].Journal of Computer Science and Technology,2016,31(1):124-136.
[7] GANJI F,TAJIK S,SEIFERT J P,et al.Let me prove it to you:RO PUFs are provably learnable[M].Information Security and Cryptology-ICISC 2015.Springer International Publishing,2015.
[8] ULRICH R,SEHNKE F,SOLTER J,et al.Modeling attacks on physical unclonable functions[J].CCS,2010:237-249.
[9] CHANG H,SAPATNEKAR S.Statistical timing analysis considering spatial correlation in a pert-like traversal[C].International Conference on Computer Aided Design,2003:621-625.
[10] 周志华.机器学习[M].北京:清华大学出版社,2016.
[11] IAN GOODFELLOW H J,BENGIO Y,COURVILLE A.Deep learning[J].Genetic Programming and Evolvable Machines,2017:s10710-017-9314-z.
[12] 邓生雄,雒江涛.集成随机森林的分类模型[J].计算机应用研究,2015,32(6):1621-1624.
[13] 赵锦阳,卢会国,蒋娟萍,等.一种非平衡数据分类的过采样随机森林算法[J].计算机应用与软件,2019(4):255-261,316.
作者信息:
徐金甫,董永兴,李军伟
(解放军信息工程大学,河南 郑州450001)