文獻標識碼: 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 引言
隨著可編程技術的不斷發(fā)展,F(xiàn)PGA已經(jīng)成為各類商業(yè)系統(tǒng)的重要組成部分。然而,由于配置文件(比特流)必須存儲在FPGA外部,通過竊取外部存儲器后,攻擊者可直接盜版生產(chǎn),還可通過FPGA逆向工程(FPGA Reverse Engineering)獲得硬件設計[1,2]或加入硬件木馬[3,4],對產(chǎn)品進行偽造和破壞,嚴重地威脅了用戶知識產(chǎn)權。
為克服這一漏洞,Xilinx公司在ISE、Vivado等設計軟件中增加AES-256 CBC加密配置方式,并在FPGA內(nèi)部集成解密模塊,從而防止硬件設計被克隆和偽造[5]。然而,這種方式并不完全可靠。2011年Moradi等人使用差分能量攻擊(Differential Power Attack,DPA)恢復了Virtex-II Pro系列FPGA加密比特流所用3DES算法密鑰[6],引起了工業(yè)界的廣泛關注。此后,使用AES-256算法加密的Xilinx 4系列和5、6、7系列FPGA分別于2012年[7]和2016年[8]被DPA攻擊和差分電磁攻擊(Differential Electromagnetic Attack,DEMA)攻破。
本文針對Xilinx 7系列FPGA實施能量攻擊,從攻擊和檢驗等兩個角度對攻擊效率進行了提升。首先根據(jù)Xilinx FPGA解密的實現(xiàn)方式,討論了攻擊點函數(shù)的選取方法,使用DPA攻擊成功恢復了AES-256算法密鑰,并基于相關系數(shù)極性設計了一種新的檢驗方法。
1 FPGA克隆技術
基于FPGA生產(chǎn)的商用產(chǎn)品,必須通過外部非易失存儲器進行重新配置。而FPGA克隆則是通過非法手段獲取比特流配置文件,配合FPGA逆向工具(如BIL[1]、FpgaTools[9])竊取其內(nèi)部設計XDL/NCD網(wǎng)表的方法,具體流程如圖1所示。
加密比特流結(jié)構(gòu)如圖2所示,使用HMAC算法生成認證碼SHA256,并通過AES-256算法以CBC模式對SHA256、HMAC密鑰kHMAC和配置信息加密;初始向量IV明文寫入比特流中[5]。因此,密文存儲時,F(xiàn)PGA克隆的關鍵在于AES密鑰kAES的獲取。
由于kAES保存于FPGA內(nèi)部eFUSE中,一次性寫入,外部無法讀取[5],而明文信息plaintext直接用于FPGA配置,同樣無法獲取,kAES的獲取演變?yōu)槲芪墓?Ciphertext-Only Attack,COA)。由于CBC模式具備很強的抗COA攻擊能力,傳統(tǒng)密碼分析方法難以攻破,此時引入旁道攻擊成為一種較為理想的方法,如圖1所示。
2 能量攻擊方法設計
2.1 能量攻擊原理
2.1.1 攻擊流程
能量攻擊是最流行的旁道攻擊方法,攻擊者無須了解被攻擊設備的詳細知識,根據(jù)功耗的數(shù)據(jù)相關性,利用加密或解密時的能量跡即可恢復密鑰,能量攻擊流程如圖3所示[10],具體流程如下:
(1)選取攻擊點
(4)計算假設功耗值
(6)結(jié)果檢驗
一般直接代入攻擊所得密鑰,使用新的分組數(shù)據(jù)加密或解密,從而驗證攻擊結(jié)果的正確性。
2.1.2 常用功耗模型及統(tǒng)計方法
針對硬件實現(xiàn)的密碼設備,DPA攻擊通常針對寄存器翻轉(zhuǎn)功耗的數(shù)據(jù)相關性進行攻擊[10],根據(jù)統(tǒng)計方法不同,主要分為基于相關系數(shù)的CPA攻擊和基于均值差的DPA攻擊兩種。
(1)基于相關系數(shù)的CPA攻擊
其中,rij表示用第i個猜測密鑰對能量跡上第j個點求得的均值差(下文統(tǒng)稱相關系數(shù))。
2.2 攻擊點選取
2.2.1 CPA攻擊
Xilinx FPGA中AES-256解密模塊內(nèi)部結(jié)構(gòu)如圖4所示[7],寄存器中寄存每一輪的解密中間值,通過數(shù)據(jù)選擇器控制進行新的分組解密或下一輪運算。
則第i次解密運算中,每輪運算結(jié)果可以表示為式(2):
2.2.2 DPA攻擊
考慮DPA攻擊,采用單比特模型,為減少影響Δ的密鑰長度,對Δ進行分割和化簡如下:
則當被攻擊的FPGA固定時,K13,K14均為定值,可得Δ1也為定值。則當采用單比特功耗模型進行攻擊,可使用Δ2代替Δ,從而評估寄存器R中某一比特的翻轉(zhuǎn)情況,具體分析如表1所示。
由表1可知,使用單比特模型實施DPA攻擊時,所得的兩組功耗集完全相同,只有極性相反,可以達到攻擊目的,即攻擊點函數(shù)為:
3 實驗驗證及分析
3.1 DPA攻擊結(jié)果
3.2 攻擊結(jié)果檢驗
DPA攻擊通常采用直接代入密鑰加/解密來檢驗攻擊結(jié)果的正確性。然而,這種檢驗方法在FPGA克隆中并不適用,因為錯誤密鑰解密得到的比特流可能導致FPGA功能失常,甚至毀壞[8]。為克服這一問題,本文設計了一種基于DPA攻擊相關系數(shù)極性的檢驗方法。
4 結(jié)論
本文針對加密配置的FPGA克隆技術進行了研究,引入能量攻擊,針對AES-256 CBC模式,設計了對應的DPA攻擊方法;同時,針對FPGA不可直接代入驗證的特殊情況,設計了一種基于DPA攻擊相關系數(shù)極性的檢驗方法,為DPA攻擊結(jié)果檢驗提供了一種新思路。
參考文獻
[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,F(xiàn)YRBIAK 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)