《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于能量攻击的FPGA克隆技术研究
基于能量攻击的FPGA克隆技术研究
2017年电子技术应用第4期
许纪钧,严迎建
解放军信息工程大学,河南 郑州450000
摘要: 针对FPGA克隆技术展开研究,指出其关键问题在于对加密密钥的攻击,并以Xilinx公司7系列FPGA为列,讨论了采用AES-256 CBC模式解密条件下的攻击点函数选择方法,通过单比特功耗模型实施差分能量攻击,成功恢复了256 bit密钥。同时,针对不可直接代入密钥检验正确性的问题,设计了一种基于DPA攻击相关系数极性的检验方法,避免了密钥错误引起FPGA错误配置,实验表明,该方法能够有效消除相关系数的“假峰”现象。
中图分类号: TP309.7
文献标识码: 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.
FPGA cloning technology based on power attack
Xu Jijun,Yan Yingjian
The PLA Information Engineering University,Zhengzhou 450000,China
Abstract: Aiming at the FPGA cloning technology, it is pointed out that the key problem is attacking the encryption key. Attack function selection method against AES-256 CBC mode decryption is discussed with Xilinx 7 series FPGA as the column. 256 bit key was successfully recovered by performing a differential power attack with a single-bit power model. Meanwhile, in order to solve the problem that the key cannot be directly substituted into the correctness of the key test, a test method based on the polarity of the DPA attack correlation coefficient is designed, to avoid the misconfiguration caused by error key. Experimental results show that the method can effectively eliminate the "false peak" phenomenon.
Key words : FPGA cloning technology;power attack;AES-256 CBC;correlation coefficient;test method

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所示。

wdz4-t1.gif

    加密比特流结构如图2所示,使用HMAC算法生成认证码SHA256,并通过AES-256算法以CBC模式对SHA256、HMAC密钥kHMAC和配置信息加密;初始向量IV明文写入比特流中[5]。因此,密文存储时,FPGA克隆的关键在于AES密钥kAES的获取。

wdz4-t2.gif

    由于kAES保存于FPGA内部eFUSE中,一次性写入,外部无法读取[5],而明文信息plaintext直接用于FPGA配置,同样无法获取,kAES的获取演变为唯密文攻击(Ciphertext-Only Attack,COA)。由于CBC模式具备很强的抗COA攻击能力,传统密码分析方法难以攻破,此时引入旁道攻击成为一种较为理想的方法,如图1所示。

2 能量攻击方法设计

2.1 能量攻击原理

2.1.1 攻击流程

    能量攻击是最流行的旁道攻击方法,攻击者无须了解被攻击设备的详细知识,根据功耗的数据相关性,利用加密或解密时的能量迹即可恢复密钥,能量攻击流程如图3所示[10],具体流程如下:

wdz4-t3.gif

    (1)选取攻击点

wdz4-2.1.1-x1.gif

    (4)计算假设功耗值

wdz4-t3-x1.gif

    (6)结果检验

    一般直接代入攻击所得密钥,使用新的分组数据加密或解密,从而验证攻击结果的正确性。

2.1.2 常用功耗模型及统计方法

    针对硬件实现的密码设备,DPA攻击通常针对寄存器翻转功耗的数据相关性进行攻击[10],根据统计方法不同,主要分为基于相关系数的CPA攻击和基于均值差的DPA攻击两种。

    (1)基于相关系数的CPA攻击

wdz4-2.1.2-x1.gif

wdz4-gs1.gif

    其中,rij表示用第i个猜测密钥对能量迹上第j个点求得的均值差(下文统称相关系数)。

2.2 攻击点选取

2.2.1 CPA攻击

    Xilinx FPGA中AES-256解密模块内部结构如图4所示[7],寄存器中寄存每一轮的解密中间值,通过数据选择器控制进行新的分组解密或下一轮运算。

wdz4-t4.gif

    则第i次解密运算中,每轮运算结果可以表示为式(2):

wdz4-gs2-5.gif

wdz4-gs2-5-x1.gif

2.2.2 DPA攻击

    考虑DPA攻击,采用单比特模型,为减少影响Δ的密钥长度,对Δ进行分割和化简如下:

     wdz4-gs6.gif

    则当被攻击的FPGA固定时,K13,K14均为定值,可得Δ1也为定值。则当采用单比特功耗模型进行攻击,可使用Δ2代替Δ,从而评估寄存器R中某一比特的翻转情况,具体分析如表1所示。

wdz4-b1.gif

    由表1可知,使用单比特模型实施DPA攻击时,所得的两组功耗集完全相同,只有极性相反,可以达到攻击目的,即攻击点函数为:

wdz4-gs7.gif

3 实验验证及分析

3.1 DPA攻击结果

wdz4-3.1-x1.gif

wdz4-3.1-x2.gif

wdz4-t5.gif

wdz4-t6.gif

3.2 攻击结果检验

    DPA攻击通常采用直接代入密钥加/解密来检验攻击结果的正确性。然而,这种检验方法在FPGA克隆中并不适用,因为错误密钥解密得到的比特流可能导致FPGA功能失常,甚至毁坏[8]。为克服这一问题,本文设计了一种基于DPA攻击相关系数极性的检验方法。

wdz4-3.2-x1.gif

wdz4-t7.gif

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)