王晨旭,張凱峰,喻明艷,王進(jìn)祥
1.哈爾濱工業(yè)大學(xué) 微電子中心,哈爾濱150001
2.哈爾濱工業(yè)大學(xué)(威海)微電子中心,山東 威海264209
差分功耗分析(DPA)攻擊是一種利用密碼設(shè)備的功率消耗信息來(lái)獲取密碼設(shè)備中私密信息的攻擊方法[1]。自1999 年P(guān)aul Kocher 首次提出以來(lái),該方法以其攻擊效率高、代價(jià)小等優(yōu)勢(shì),給國(guó)防、安全、金融、個(gè)人信息保護(hù)等多個(gè)信息領(lǐng)域的信息安全構(gòu)成了巨大威脅,因而受到了科學(xué)界的廣泛關(guān)注。
功耗分析攻擊之所以能夠成功的破譯智能卡、密碼芯片等多種設(shè)備的密鑰,是因?yàn)樵诿艽a設(shè)備中,設(shè)備的瞬時(shí)功率消耗與設(shè)備所處理的數(shù)據(jù)和正在執(zhí)行的操作存在相關(guān)性。為了能夠抵御功耗分析,即打破這種相關(guān)性,研究人員已經(jīng)提出了多種防御措施,例如基于環(huán)形振蕩器的抗DPA 防御措施[2]、基于掩碼技術(shù)的抗DPA 攻擊方法[3-4]、基于時(shí)鐘隨機(jī)化的防御措施[5]等。過(guò)去,對(duì)抗功耗分析攻擊效果的評(píng)估多采用對(duì)實(shí)際芯片進(jìn)行功耗曲線(Power Trace)測(cè)量,然后進(jìn)行攻擊。該方法雖然更有說(shuō)服力,但存在兩個(gè)缺陷:一是不能在設(shè)計(jì)周期評(píng)估防御措施的效果,當(dāng)芯片實(shí)測(cè)效果不理想時(shí)需要重新設(shè)計(jì)芯片,增加了設(shè)計(jì)成本,致使產(chǎn)品上市時(shí)間滯后;二是實(shí)際測(cè)量難度較大,并且由于測(cè)量噪聲的存在,需要更多的功耗曲線,這就造成了測(cè)量時(shí)間的增加,因而不適用于對(duì)抗功耗分析理論的研究。為了能夠準(zhǔn)確快速地研究抗功耗分析攻擊的新方法,并評(píng)估各種防御措施的實(shí)際效果,一些研究人員開(kāi)發(fā)了評(píng)估平臺(tái)。文獻(xiàn)[6]基于軟硬件協(xié)同設(shè)計(jì)和仿真的思想,開(kāi)發(fā)了一款以FPGA 為載體的抗DPA 攻擊評(píng)估平臺(tái),加速了早期設(shè)計(jì)階段的DPA 評(píng)估,但其應(yīng)用背景主要面向基于單片機(jī)軟件實(shí)現(xiàn)的密碼芯片抗攻耗分析攻擊評(píng)估。在國(guó)內(nèi),軍械工程學(xué)院的研究人員在文獻(xiàn)[7]中,基于LabVIEW 開(kāi)發(fā)了一個(gè)針對(duì)真實(shí)硬件系統(tǒng)的評(píng)測(cè)平臺(tái)。該平臺(tái)的不足之處也是只能用于單片機(jī)軟件實(shí)現(xiàn)密碼算法的DPA 攻擊實(shí)驗(yàn)或評(píng)估,而不能用于專用集成電路(Application Specific Integrated Circuit,ASIC)的DPA 防御措施的預(yù)估。清華大學(xué)的研究人員則在文獻(xiàn)[8]中,面向密碼芯片的ASIC 實(shí)現(xiàn),提出一種基于電路級(jí)模擬器Star-Sim 的功耗分析研究平臺(tái)。該平臺(tái)用Star-Sim 模擬出功耗曲線,然后用均值差的DPA 攻擊方式,進(jìn)而評(píng)估ASIC 芯片的抗攻耗分析能力。Star-Sim 是一款晶體管級(jí)仿真器,功耗模擬結(jié)果比較精確,但是該平臺(tái)只能在設(shè)計(jì)周期的后期才能評(píng)估芯片的抗功耗分析能力,而且晶體管級(jí)仿真器的仿真速度極慢,導(dǎo)致功耗曲線的獲取效率較低,給評(píng)估工作帶來(lái)不便。相形之下,如果能夠獲取密碼芯片門級(jí)功耗曲線,則可以在設(shè)計(jì)周期的早期進(jìn)行功耗分析攻擊和評(píng)估。雖然其結(jié)果不及Star-Sim 精確,但是功耗分析攻擊能否成功的關(guān)鍵不在于功耗的絕對(duì)值(即功耗準(zhǔn)確性),而是在于單條功耗曲線不同點(diǎn)之間和不同功耗曲線相同點(diǎn)之間的相對(duì)數(shù)值。因此這種基于門級(jí)網(wǎng)表的功耗獲取方法依然有一定的實(shí)際意義,而且極快的門級(jí)功耗模擬速度必將給評(píng)估工作帶來(lái)方便。本文基于PrimeTime PX 模擬輸出的門級(jí)功耗曲線,使用MATLAB 建立CPA 攻擊平臺(tái),通過(guò)MATLAB 建立功耗模型并計(jì)算相關(guān)系數(shù)后,再進(jìn)行相應(yīng)的數(shù)據(jù)分析處理以實(shí)現(xiàn)攻擊。
功耗分析攻擊是一種通過(guò)分析密碼設(shè)備的電流信息來(lái)獲得密鑰的方法。這種方法之所以能夠奏效,是因?yàn)槊艽a設(shè)備在使用不同明文進(jìn)行加密的過(guò)程中,元件的翻轉(zhuǎn)次數(shù)會(huì)有所不同,這就造成了設(shè)備消耗的功耗會(huì)有微小的不同,瞬時(shí)功耗依賴于設(shè)備所處理的數(shù)據(jù)和設(shè)備所執(zhí)行的操作。
PrimeTime PX 是Synopsys公司的功耗模擬軟件,它提供了較為精確的動(dòng)態(tài)和靜態(tài)功耗分析能力,可以對(duì)門級(jí)電路的功耗進(jìn)行模擬,進(jìn)而得出密碼芯片的功耗曲線,因此可以將其用于密碼芯片的算法級(jí)DPA 防御能力的評(píng)估。密碼算法芯片的功耗模擬過(guò)程如圖1 所示,流程如下:(1)對(duì)編寫的加密算法HDL 設(shè)計(jì)文件進(jìn)行功能模擬;(2)將模擬無(wú)誤的設(shè)計(jì)文件進(jìn)行邏輯綜合;(3)綜合后模擬,并記錄所用的明文和加密后的密文信息;(4)將綜合后產(chǎn)生的網(wǎng)表文件、相應(yīng)的波形文件和庫(kù)文件經(jīng)PrimeTime PX 模擬功耗,生成功耗曲線文件。重復(fù)(3)、(4)過(guò)程,完成多組功耗曲線的測(cè)量。圖2 給出了使用PrimeTime PX 模擬出的AES 算法功耗曲線直觀效果圖。
圖1 PrimeTime PX 功耗模擬流程圖
在使用PrimeTime PX 快速準(zhǔn)確地得出功耗曲線之后,為了能夠達(dá)到攻擊的目的,通過(guò)MATLAB 建立功耗模型并計(jì)算相關(guān)系數(shù)后,再進(jìn)行相應(yīng)的數(shù)據(jù)分析處理,如圖3所示。
使用MATLAB進(jìn)行CPA攻擊,按照以下5個(gè)步驟進(jìn)行[4]:
(1)選擇所執(zhí)行算法的某個(gè)中間值。這個(gè)中間值必須是一個(gè)函數(shù)f(d,k),其中d 是已知的非常量數(shù)據(jù),一般為加密算法的明文或密文,k 是密鑰的一小部分。
(2)使用PrimeTime PX 模擬密碼設(shè)備加密或解密D個(gè)不同數(shù)據(jù)分組時(shí)的功耗,產(chǎn)生一個(gè)D×T 的功耗曲線矩陣T 。
(3)對(duì)每一假設(shè)的k 值計(jì)算對(duì)應(yīng)的中間值,對(duì)所有D次加密和所有K 個(gè)密鑰假設(shè),可以得到一個(gè)D×K 的中間值矩陣V,V 中的每一個(gè)元素vij=f(di,kj)。
圖2 PrimeTime PX 模擬出的AES 功耗曲線圖
圖3 CPA 攻擊研究平臺(tái)的實(shí)現(xiàn)方式
(4)根據(jù)元件輸出翻轉(zhuǎn)次數(shù)的變化,利用漢明距離模型,將矩陣vij映射為D×K的功耗值矩陣H。
(5)對(duì)假設(shè)功耗值和模擬出的能量值進(jìn)行相關(guān)系數(shù)分析。相關(guān)系數(shù)是表征向量之間線性關(guān)系緊密程度的量,其計(jì)算公式如公式(1)。計(jì)算H矩陣的每一列hi和矩陣T的每一列tj的相關(guān)系數(shù)ri,j,得到一個(gè)K×T的矩陣R。
最大的相關(guān)系數(shù)表征了實(shí)際功耗和功耗模型的最相關(guān),這樣,矩陣R中的最大值的索引即為所選擇的中間值進(jìn)行處理的位置和設(shè)備所使用的密鑰。
高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)作為傳統(tǒng)對(duì)稱加密算法DES 加密標(biāo)準(zhǔn)的替代者,由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)于2001 年12 月發(fā)布。AES 的最后一輪運(yùn)算過(guò)程如圖4 所示,明文經(jīng)前9 輪的運(yùn)算,得到128 位的中間結(jié)果,該結(jié)果經(jīng)由SubBytes、ShiftRows、AddRoundKey 運(yùn)算過(guò)程后得到最終的密文結(jié)果cipher。
圖4 AES 最后輪抽象框圖
選用密文攻擊的方式,對(duì)AES 算法最后輪的輪密鑰roundKey10 的每個(gè)字節(jié)逐個(gè)實(shí)施攻擊,通過(guò)已知的密文按式(2)計(jì)算出plain_dummy,S-1 代表SubByte 的逆運(yùn)算,SR表示ShiftRows 運(yùn)算;利用漢明距離模型,按式(3)刻畫(huà)假設(shè)功耗,并與PrimeTime PX 產(chǎn)生的功耗數(shù)據(jù)進(jìn)行相關(guān)系數(shù)的計(jì)算,完成攻擊。圖5 為MATLAB 程序攻擊AES 的流程圖。
圖5 MATLAB 攻擊AES 的流程圖
攻擊過(guò)程中采用700 條功耗曲線,針對(duì)第10 輪的輪密鑰roundKey10 中的每8 位,找出0 到255 每個(gè)密鑰猜測(cè)值的最大相關(guān)系數(shù),如圖6 所示。限于篇幅,圖6 中只包含4個(gè)子圖,每個(gè)子圖表示對(duì)roundKey10 其中8 位的攻擊結(jié)果,橫軸為密鑰猜測(cè)值(0~255),縱軸為相關(guān)系數(shù)。以第3個(gè)子圖為例,相關(guān)系數(shù)在猜測(cè)值為167 時(shí)出現(xiàn)最高尖峰,故roundKey10 的第81 到88 位推測(cè)應(yīng)為10100111。圖7 給出了功耗曲線數(shù)量對(duì)roundKey10[81:88]相關(guān)系數(shù)的影響,其中處于上方的曲線為真實(shí)密鑰時(shí)的情況??梢钥闯?,隨著樣本數(shù)量的增加,正確密鑰猜測(cè)值與錯(cuò)誤密鑰猜測(cè)值相關(guān)系數(shù)的區(qū)別不斷加大。
圖6 相關(guān)系數(shù)與密鑰猜測(cè)值之間的關(guān)系
圖7 相關(guān)系數(shù)與樣本數(shù)量的關(guān)系
Threshold 技術(shù)是一種秘密分享(Secret Sharing)思想,它的基本思想是將原先的單數(shù)據(jù)通路拆分成N條數(shù)據(jù)通路(為了達(dá)到面積和復(fù)雜度的折衷,N一般取3),任何一條數(shù)據(jù)通路只攜帶1/N 的有用信息,這就給功耗分析攻擊增加了難度[9]。目前已有采用這種技術(shù)的有效ASIC 芯片報(bào)道,文獻(xiàn)[10]采用了串行化實(shí)現(xiàn)方式成功將Threshold 思想應(yīng)用于PRESENT 密碼算法,并取得了滿意的結(jié)果。為了評(píng)估Threshold 思想在AES 中的應(yīng)用效果,基于Nikova 提出的Threshold 的思想重新設(shè)計(jì)了AES 算法。像其他掩碼技術(shù)一樣,Threshold 實(shí)現(xiàn)的難點(diǎn)在于非線性S 盒的實(shí)現(xiàn)。圖8 是本文完成的基于Threshold 思想的AES 的S 盒實(shí)現(xiàn)方式(N=3),假設(shè)AES 算法原始S 盒輸入輸出分別為Sbox_in 和Sbox_out,Threshold 型S 盒滿足等式(4)。由于Threshold 型S 盒包含了3 個(gè)平行的數(shù)據(jù)通路,與之相對(duì)應(yīng),AES 的其他運(yùn)算和存儲(chǔ)單元也需要3 條平行通路,如圖9所示。
圖8 Threshold 型S 盒 結(jié)構(gòu)
對(duì)完成的Threshold 型AES 設(shè)計(jì)采用與3.1 節(jié)中相同的明文產(chǎn)生的功耗曲線進(jìn)行密鑰破解。攻擊過(guò)程中采用10 000條功耗曲線,攻擊結(jié)果如圖10 所示。限于篇幅,圖10 中只包含4 個(gè)子圖,每個(gè)子圖表示對(duì)roundKey10 其中8 位的攻擊結(jié)果。橫軸為密鑰猜測(cè)值(0~255),縱軸為相關(guān)系數(shù)。子圖的標(biāo)題中包含了本段子密鑰攻擊密鑰值和實(shí)際密鑰值。以第3 個(gè)子圖為例,本段子密鑰的攻擊值為174,而實(shí)際的密鑰值為167,說(shuō)明10 000 條明文并沒(méi)有成功攻擊本段子密鑰。從圖中還可以看出,相關(guān)系數(shù)的值都非常小,正確的密鑰值并沒(méi)有明顯的尖峰存在,所有的密鑰都未被破解。
圖9 Threshold 型AES 算法明文數(shù)據(jù)通路
圖10 Threshold 型相關(guān)系數(shù)與密鑰猜測(cè)值之間的關(guān)系
圖11給出了功耗曲線數(shù)量不同時(shí),對(duì)第一個(gè)字節(jié)的各個(gè)猜測(cè)密鑰相關(guān)系數(shù)的變化(其中黑色為真實(shí)密鑰),可以看出當(dāng)功耗曲線的數(shù)量達(dá)到10 000 條時(shí)真實(shí)密鑰未能從其余密鑰猜測(cè)中分離開(kāi)來(lái),密鑰破解仍然沒(méi)有成功。由此可以看出,基于Threshold 的AES 算法實(shí)現(xiàn)可以很好地抵御所使用的一階針對(duì)觸發(fā)器的差分功耗分析攻擊。
圖11 Threshold 型AES 實(shí)現(xiàn)的相關(guān)系數(shù)與樣本數(shù)量的關(guān)系
搭建功耗分析攻擊平臺(tái)是研究抗攻耗分析攻擊理論首當(dāng)其沖的問(wèn)題,本文針對(duì)現(xiàn)有的功耗分析攻擊平臺(tái)的一些不足,設(shè)計(jì)出一種面向ASIC 設(shè)計(jì)實(shí)現(xiàn)的CPA 研究平臺(tái)。該平臺(tái)可以摒棄示波器等設(shè)備的昂貴價(jià)格和測(cè)試帶來(lái)的不便,能夠在芯片設(shè)計(jì)周期早期快速模擬出芯片的功耗信息并實(shí)施CPA 攻擊,這為開(kāi)拓及評(píng)估抗功耗分析的新方法提供了便利,也為抗攻耗分析攻擊理論研究提供了重要支持。作為應(yīng)用,利用本文平臺(tái)分別對(duì)AES 算法和帶有Threshold 防御措施的AES 算法進(jìn)行了功耗分析攻擊實(shí)驗(yàn),展示了該平臺(tái)的有效性和便捷性。下一步,準(zhǔn)備對(duì)AES 的上述兩種實(shí)現(xiàn)方式進(jìn)行版圖后的功耗分析攻擊實(shí)驗(yàn),以進(jìn)一步印證該輔助平臺(tái)的有效性。
[1] Kochet P,Jaffe J,Jun B.Differential power analysis[C]//Advances in Cryptology(CRYPTO’99).Berlin:Springer-Verlag,1999,1666:388-397.
[2] Liu P C,Chang H C,Lee C Y.A low overhead DPA countermeasure circuit based on ring oscillators[J].IEEE Transactions on Circuits and Systems-II,2010,57(7):547-550.
[3] Akkar M,Giraud C.An implementation of DES and AES,secure against some attacks[C]//Proceedings of Cryptographic Hardware and Embedded Systems,Paris,F(xiàn)rance,May 14-16.Berlin:Springer-Verlag,2001,2162:309-318.
[4] Rivain M,Prouff E.Provably secure higher-order masking of AES[C]//Proceedings of Cryptographic Hardware and Embedded Systems,Santa Barbara,USA,August 17-20.Berlin:Springer-Verlag,2010,6225:413-427.
[5] Mangard S,Oswald E,Popp T.Power analysis attacks:revealing the secrets of smart cards[M].Berlin:Springer-Verlag,2007:173-175.
[6] Krieg A,Bachmann B,Grinschgl J,et al.Accelerating early design phase differential power analysis using power emulation techniques[C]//Proceedings of the IEEE International Symposium on Hardware-Oriented Security and Trust,San Francisco,California,USA,June 5-6,2011:81-86.
[7] 褚杰,趙強(qiáng),丁國(guó)良.基于虛擬儀器的差分功耗分析攻擊平臺(tái)[J].電子測(cè)量與儀器學(xué)報(bào),2008,22(5):123-126.
[8] 劉鳴,陳弘毅,白國(guó)強(qiáng).功耗分析研究平臺(tái)及其應(yīng)用[J].微電子學(xué)與計(jì)算機(jī),2005,22(7):134-138.
[9] Nikova S,Rijmen V,Schl?ffer M,Secure hardware implementations of non-linear functions in the presence of glitches[C]//Proceedings of International Conference on Information Security and Cryptology,Seoul,Korea,December 3-5.Berlin:Springer-Verlag,2008,5461:218-234.
[10] Poschmann A,Moradi A,Khoo K.Side-channel resistant crypto for less than 2300 GE[J].Journal of Cryptology,2011,24(2):322-345.