《电子技术应用》

基于能量攻击的FPGA克隆技术研究

2017年电子技术应用第4期 作者:许纪钧,严迎建
2017/5/9 14:00:00

许纪钧,严迎建

(解放军信息工程大学,河南 郑州450000)


    摘  要: 针对FPGA克隆技术展开研究,指出其关键问题在于对加密密钥的攻击,并以Xilinx公司7系列FPGA为列,讨论了采用AES-256 CBC模式解密条件下的攻击点函数选择方法,通过单比特功耗模型实施差分能量攻击,成功恢复了256 bit密钥。同时,针对不可直接代入密钥检验正确性的问题,设计了一种基于DPA攻击相关系数极性的检验方法,避免了密钥错误引起FPGA错误配置,实验表明,该方法能够有效消除相关系数的“假峰”现象。

    关键词: FPGA克隆;能量攻击;AES-256 CBC;相关系数;结果检验

    中图分类号: 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.

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.

继续阅读>>