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