文献标识码: A
DOI:10.16157/j.issn.0258-7998.2017.04.012
中文引用格式: 许纪钧,严迎建. 基于能量攻击的FPGA克隆技术研究[J].电子技术应用,2017,43(4):47-50.
英文引用格式: Xu Jijun,Yan Yingjian. FPGA cloning technology based on power attack[J].Application of Electronic Technique,2017,43(4):47-50.
0 引言
随着可编程技术的不断发展,FPGA已经成为各类商业系统的重要组成部分。然而,由于配置文件(比特流)必须存储在FPGA外部,通过窃取外部存储器后,攻击者可直接盗版生产,还可通过FPGA逆向工程(FPGA Reverse Engineering)获得硬件设计[1,2]或加入硬件木马[3,4],对产品进行伪造和破坏,严重地威胁了用户知识产权。
为克服这一漏洞,Xilinx公司在ISE、Vivado等设计软件中增加AES-256 CBC加密配置方式,并在FPGA内部集成解密模块,从而防止硬件设计被克隆和伪造[5]。然而,这种方式并不完全可靠。2011年Moradi等人使用差分能量攻击(Differential Power Attack,DPA)恢复了Virtex-II Pro系列FPGA加密比特流所用3DES算法密钥[6],引起了工业界的广泛关注。此后,使用AES-256算法加密的Xilinx 4系列和5、6、7系列FPGA分别于2012年[7]和2016年[8]被DPA攻击和差分电磁攻击(Differential Electromagnetic Attack,DEMA)攻破。
本文针对Xilinx 7系列FPGA实施能量攻击,从攻击和检验等两个角度对攻击效率进行了提升。首先根据Xilinx FPGA解密的实现方式,讨论了攻击点函数的选取方法,使用DPA攻击成功恢复了AES-256算法密钥,并基于相关系数极性设计了一种新的检验方法。
1 FPGA克隆技术
基于FPGA生产的商用产品,必须通过外部非易失存储器进行重新配置。而FPGA克隆则是通过非法手段获取比特流配置文件,配合FPGA逆向工具(如BIL[1]、FpgaTools[9])窃取其内部设计XDL/NCD网表的方法,具体流程如图1所示。
加密比特流结构如图2所示,使用HMAC算法生成认证码SHA256,并通过AES-256算法以CBC模式对SHA256、HMAC密钥kHMAC和配置信息加密;初始向量IV明文写入比特流中[5]。因此,密文存储时,FPGA克隆的关键在于AES密钥kAES的获取。
由于kAES保存于FPGA内部eFUSE中,一次性写入,外部无法读取[5],而明文信息plaintext直接用于FPGA配置,同样无法获取,kAES的获取演变为唯密文攻击(Ciphertext-Only Attack,COA)。由于CBC模式具备很强的抗COA攻击能力,传统密码分析方法难以攻破,此时引入旁道攻击成为一种较为理想的方法,如图1所示。
2 能量攻击方法设计
2.1 能量攻击原理
2.1.1 攻击流程
能量攻击是最流行的旁道攻击方法,攻击者无须了解被攻击设备的详细知识,根据功耗的数据相关性,利用加密或解密时的能量迹即可恢复密钥,能量攻击流程如图3所示[10],具体流程如下:
(1)选取攻击点
(4)计算假设功耗值
(6)结果检验
一般直接代入攻击所得密钥,使用新的分组数据加密或解密,从而验证攻击结果的正确性。
2.1.2 常用功耗模型及统计方法
针对硬件实现的密码设备,DPA攻击通常针对寄存器翻转功耗的数据相关性进行攻击[10],根据统计方法不同,主要分为基于相关系数的CPA攻击和基于均值差的DPA攻击两种。
(1)基于相关系数的CPA攻击
其中,rij表示用第i个猜测密钥对能量迹上第j个点求得的均值差(下文统称相关系数)。
2.2 攻击点选取
2.2.1 CPA攻击
Xilinx FPGA中AES-256解密模块内部结构如图4所示[7],寄存器中寄存每一轮的解密中间值,通过数据选择器控制进行新的分组解密或下一轮运算。
则第i次解密运算中,每轮运算结果可以表示为式(2):
2.2.2 DPA攻击
考虑DPA攻击,采用单比特模型,为减少影响Δ的密钥长度,对Δ进行分割和化简如下:
则当被攻击的FPGA固定时,K13,K14均为定值,可得Δ1也为定值。则当采用单比特功耗模型进行攻击,可使用Δ2代替Δ,从而评估寄存器R中某一比特的翻转情况,具体分析如表1所示。
由表1可知,使用单比特模型实施DPA攻击时,所得的两组功耗集完全相同,只有极性相反,可以达到攻击目的,即攻击点函数为:
3 实验验证及分析
3.1 DPA攻击结果
3.2 攻击结果检验
DPA攻击通常采用直接代入密钥加/解密来检验攻击结果的正确性。然而,这种检验方法在FPGA克隆中并不适用,因为错误密钥解密得到的比特流可能导致FPGA功能失常,甚至毁坏[8]。为克服这一问题,本文设计了一种基于DPA攻击相关系数极性的检验方法。
4 结论
本文针对加密配置的FPGA克隆技术进行了研究,引入能量攻击,针对AES-256 CBC模式,设计了对应的DPA攻击方法;同时,针对FPGA不可直接代入验证的特殊情况,设计了一种基于DPA攻击相关系数极性的检验方法,为DPA攻击结果检验提供了一种新思路。
参考文献
[1] BENZ F,SEFFRIN A,HUSS S A.Bil:A tool-chain for bitstream reverseengineering[C]//Field Programmable Logic and Application 2012,22nd International Conference on,2012:735-738.
[2] Betajet.Icestorm:reverse-engineering the lattice iCE40 bitstream[EB/OL].http://www.eetimes.com/author.asp?section_id=36&doc_id=1327061,2015.
[3] SWIERCZYNSKI P,FYRBIAK M,KOPPE P,et al.FPGA trojans through detecting and weakening of cryptographic primitives[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2015,34(8):1-1.
[4] CHAKRABORTY R S,SAHA I,PALCHAUDHURI A,et al.Hardware trojan insertion by direct modification of FPGA configuration bitstream[J].IEEE Design & Test,2013,30(2):45-54.
[5] Xilinx,Inc.Using encryption to secure a 7 series FPGA bit-stream[EB/OL].https://www.xilinx.com/support/documentation/application_notes/xapp1239-fpga-bitstream-encryption.pdf,2015.
[6] MORADI A,BARENGHI A,KASPER T,et al.On the vulnerability of FPGA bitstream encryption against power analysis attacks: extracting keys from xilinx Virtex-II FPGAs[C]//ACM Conference on Computer and Communications Security.ACM,2011:111-124.
[7] MORADI A,KASPER M,PAAR C.Black-Box side-channel attacks highlight the importance of countermeasures: an analysis of the xilinx virtex-4 and virtex-5 bitstream encryption mechanism[C]//Conference on Topics in Cryptology.Springer-Verlag,2012:1-18.
[8] MORADI A,SCHNEIDER T.Improved side-channel analysis attacks on Xilinx bitstream encryption of 5,6,and 7 series[C]//Constructive Side-Channel Analysis and Secure Design.2016.
[9] Xiangfu.Fpgatools[EB/OL].https://github.com/Wolfgang-Spraul/fpgatools,2015.
[10] 曼哥德.能量分析攻击[M].北京:科学出版社,2010.
[11] 郭世泽.密码旁路分析原理与方法[M].北京:科学出版社,2014.
作者信息:
许纪钧,严迎建
(解放军信息工程大学,河南 郑州450000)