嚴(yán)迎建,劉 凱,任 方,朱巍巍
(解放軍信息工程大學(xué)電子技術(shù)學(xué)院,鄭州 450004)
時間和功耗雙隨機(jī)化的 AES抗差分能量攻擊設(shè)計
嚴(yán)迎建,劉 凱,任 方,朱巍巍
(解放軍信息工程大學(xué)電子技術(shù)學(xué)院,鄭州 450004)
分析了時間隨機(jī)化技術(shù)的不足以及掩碼技術(shù)(功耗隨機(jī)化)的缺點(diǎn),在完全防御差分能量攻擊的基礎(chǔ)上進(jìn)行基于抗差分能量攻擊的設(shè)計,提出一種時間和功耗雙隨機(jī)化的電路結(jié)構(gòu),將其應(yīng)用在AES算法中,并在FPGA密碼芯片、示波器和PC機(jī)組成的功耗采集分析平臺中進(jìn)行了驗(yàn)證.結(jié)果表明,該電路具備較強(qiáng)的抗差分能量攻擊能力.
差分能量攻擊;時間隨機(jī)化;功耗隨機(jī)化;AES算法
能量攻擊技術(shù)最早由 Kocher等[1]提出,已成為攻擊智能卡等密碼芯片的一種有效手段.相對于其他的旁道攻擊技術(shù)而言,由于功耗信息采集的設(shè)備相對比較簡單,能量攻擊成為最易實(shí)施的(針對密碼實(shí)現(xiàn)的)攻擊技術(shù)之一,其危害遠(yuǎn)大于傳統(tǒng)的攻擊手段,對密碼芯片自身的安全構(gòu)成巨大威脅.
能量攻擊主要分為簡單能量攻擊(simple power analysis,SPA)和差分能量攻擊(differential power analysis,DPA)2大類,由于差分能量攻擊采用統(tǒng)計手段進(jìn)行功耗分析,能消除噪聲干擾,對密碼芯片帶來很大威脅.針對差分能量攻擊帶來的威脅,各種防御措施得到了廣泛的研究.相比其他防護(hù)技術(shù)而言,隨機(jī)化技術(shù)容易實(shí)現(xiàn)且可以應(yīng)用在各種算法中,對故障攻擊、時間攻擊和高階差分能量攻擊等也有一定的防護(hù)作用.隨機(jī)化技術(shù)應(yīng)用于抗差分能量攻擊時通常分為時間隨機(jī)化和功耗隨機(jī)化.
時間隨機(jī)化將每次密碼芯片運(yùn)算中的操作隨機(jī)地分布在時間域上,使得功耗信號的統(tǒng)計分析變得十分困難,但時間隨機(jī)化只能增加差分能量攻擊的難度,不能完全抗差分能量攻擊.功耗隨機(jī)化使得每次密碼芯片運(yùn)算中操作的功耗都不依賴于輸入(密鑰),它通常采用掩碼技術(shù)來實(shí)現(xiàn),但掩碼技術(shù)需要針對不同的密碼算法設(shè)計不同的掩碼算法,掩碼算法的開發(fā)周期長且實(shí)現(xiàn)時要占用大量的資源.針對 2種隨機(jī)化技術(shù)存在的問題,本文提出了一種時間和功耗雙隨機(jī)化的密碼芯片抗功耗分析電路.
差分能量攻擊需要重復(fù)采集大量的功耗數(shù)據(jù)并對其統(tǒng)計分析得出密鑰.利用某個狀態(tài)字節(jié)的值作為區(qū)分函數(shù),借鑒基于漢明重量的功耗模型[2-4]中提到的功耗與狀態(tài)字節(jié)中 1的個數(shù)成正比,本文假設(shè)狀態(tài)字節(jié)為 1的時候功耗為 P+a,狀態(tài)字節(jié)為 0的時候功耗為 P.差分能量攻擊如圖 1所示.
圖1(a)中每行表示一組明文加密得到的一組功耗數(shù)據(jù),猜測值即表示攻擊者利用猜測密鑰得到的算法的中間值,攻擊者利用猜測值將功耗數(shù)據(jù)分為 2組,在分組后的數(shù)據(jù)分析階段,攻擊者首先求出各組的功耗均值,再由 2個功耗均值求差.
當(dāng)攻擊者猜測到錯誤密鑰時的差分能量攻擊如圖 1(b)所示,攻擊者利用錯誤密鑰得到的猜測值不符合芯片運(yùn)算值,在他用猜測值對功耗數(shù)據(jù)進(jìn)行分組的時候,相應(yīng)地將 2組有差異的功耗數(shù)據(jù)打亂,攻擊者最后得到的差分功耗不為 a.由于功耗數(shù)據(jù)是基于猜測密鑰運(yùn)算的中間值進(jìn)行分組,每個猜測密鑰對應(yīng)一個分組,而只有正確密鑰可以將2組具有差異的功耗數(shù)據(jù)區(qū)分開,因此,密鑰猜測正確時的差分功耗值最大.
圖1 差分能量攻擊Fig.1 Differential power attack
能量攻擊之所以能成功,是因?yàn)樵诿艽a芯片運(yùn)行時相應(yīng)的運(yùn)算操作都出現(xiàn)在固定的時間點(diǎn)上.如果能隨機(jī)地移動這些運(yùn)算操作在時間域里的位置(即時間隨機(jī)化),那么,功耗信號的統(tǒng)計分析將變得十分困難[5].
采用能量攻擊方法對時間隨機(jī)化的電路功耗進(jìn)行分析,結(jié)果如圖 2所示.假設(shè)插入隨機(jī)延遲后區(qū)分函數(shù)對應(yīng)位置處的運(yùn)算可能出現(xiàn)在 A點(diǎn)或 B點(diǎn),A點(diǎn)在時間軸上位于 B點(diǎn)的前面,為密鑰猜測正確的情況,第 1行所示運(yùn)算出現(xiàn)在時間 B點(diǎn),A點(diǎn)的值還保持上一次的運(yùn)算結(jié)果不變,用 X(未知數(shù)據(jù))表示.由于 A點(diǎn)沒有運(yùn)算功耗為0,B點(diǎn)的功耗與攻擊者猜測的值相同,第2行與第1行類似.第 3行運(yùn)算出現(xiàn)在時間A點(diǎn),那么,到達(dá)時間點(diǎn) B的時候,運(yùn)算已經(jīng)完成,芯片中運(yùn)算的中間值不變,由于B點(diǎn)沒有運(yùn)算功耗為 0.
時間隨機(jī)化只是將原來的差分尖峰分散在不同的時間點(diǎn)上,如果將每條功耗曲線在各個時間點(diǎn)上的差分尖峰加起來,攻擊者可以分析得出正確密鑰.但這只是理想環(huán)境下的測量,實(shí)際測量中要受到測量環(huán)境中各個因素(噪聲)的影響,為了使實(shí)驗(yàn)結(jié)果與理論分析相符合,通常采取增加功耗樣本數(shù)量的方法來消除噪聲的影響.因此,可以看到時間隨機(jī)化技術(shù)增加了差分能量攻擊的難度.
能量攻擊成功的另一個原因是攻擊者可以根據(jù)密碼芯片基本邏輯單元的特征(各種功耗模型)預(yù)測某個密鑰相關(guān)操作的功耗.如果使得操作的功耗隨機(jī)產(chǎn)生,那么攻擊者根據(jù)自己的猜測將得到錯誤的密鑰,從而有效地保證了密碼芯片的安全.利用差分能量攻擊分析功耗隨機(jī)化[6]的密碼芯片如圖 3所示.
功耗隨機(jī)化后實(shí)際值變成了隨機(jī)數(shù),攻擊者在密鑰猜測正確時不可能將密碼芯片的功耗分為 2個有最大差異的集合,相反在猜測到某個錯誤密鑰時可能將密碼芯片的功耗信息分為 2個有最大差異的集合,并且可能是幾個錯誤密鑰都將密碼芯片的功耗信息分為 2個有最大差異的集合,因此,攻擊者無法獲得正確密鑰.
實(shí)現(xiàn)功耗隨機(jī)化的常用技術(shù)—掩碼技術(shù)[6]就能獲得防御效果,由于掩碼技術(shù)需要針對特定的密碼算法設(shè)計相應(yīng)的掩碼算法,掩碼算法設(shè)計難度高并且不能通用,掩碼技術(shù)在硬件實(shí)現(xiàn)時耗費(fèi)資源多,并且掩碼技術(shù)不能抗高階差分能量攻擊[7].功耗隨機(jī)化的另一種實(shí)現(xiàn)方式—并行冗余操作[8]相當(dāng)于功耗掩蓋,無法抵御大數(shù)據(jù)量的攻擊.因此,迫切需要一種通用、簡單并且防護(hù)全面的實(shí)現(xiàn)方式.
結(jié)合時間隨機(jī)化和功耗隨機(jī)化的思想設(shè)計了一種時間和功耗雙隨機(jī)化的電路,它彌補(bǔ)了時間隨機(jī)化的不足,可以應(yīng)用在各種密碼算法的硬件實(shí)現(xiàn)中,電路結(jié)構(gòu)如圖 4所示.
圖4 時間和功耗雙隨機(jī)化的電路結(jié)構(gòu)Fig.4 The circuit of time randomization and power randomization
sel信號控制數(shù)據(jù)選擇器,0輸入端輸入真實(shí)的運(yùn)算數(shù)據(jù),1輸入端輸入隨機(jī)操作的隨機(jī)數(shù).在每輪運(yùn)算的開始,由 sel選擇隨機(jī)數(shù)輸入到被攻擊模塊中,即在每輪運(yùn)算的開始部分隨機(jī)數(shù)輸入被攻擊模塊進(jìn)行操作,在每輪運(yùn)算的最后 1個周期中 sel固定為 0,此時被攻擊模塊對數(shù)據(jù)路徑中運(yùn)算的正確數(shù)據(jù)進(jìn)行操作.在 1輪運(yùn)算中,除第 1個和最后 1個 clock周期外,其他部分為隨機(jī)運(yùn)算部分,隨機(jī)運(yùn)算部分根據(jù)隨機(jī)控制端 sel的值隨機(jī)選取真實(shí)數(shù)據(jù)或隨機(jī)數(shù)據(jù)執(zhí)行運(yùn)算.下面以圖 4中第 1輪運(yùn)算為例,第 1個 clock周期執(zhí)行隨機(jī)數(shù)據(jù),第 2個clock周期執(zhí)行真實(shí)數(shù)據(jù),第3個 clock周期執(zhí)行隨機(jī)數(shù)據(jù),第 4個clock執(zhí)行真實(shí)數(shù)據(jù),第 5、6個 clock周期密碼操作電路單元為空閑狀態(tài).
時間和功耗雙隨機(jī)化的電路不僅使得真實(shí)操作在時間上隨機(jī)執(zhí)行,并且每次加/解密運(yùn)算在同一時間點(diǎn)處的功耗無法預(yù)測,從而使差分能量攻擊失去效果.
將時間和功耗雙隨機(jī)化的電路應(yīng)用于 AES密碼芯片中,把 AES算法中字節(jié)代替、行移位、列混合和密鑰異或操作都嵌入圖 4所示的保護(hù)模塊中,不論攻擊者選擇哪個操作的輸出作為區(qū)分函數(shù)都將失去攻擊效果.將上述設(shè)計用 Verilog語言描述后在 ModelSim仿真工具中得到如圖 5所示的仿真結(jié)果,橢圓標(biāo)記為芯片輸出的加密結(jié)果.
圖5 時間和功耗隨機(jī)化的AES加密仿真結(jié)果Fig.5 The encryption simulation of AES on time randomization and power randomization
AES算法 1輪運(yùn)算包括 7個 clock周期,每輪運(yùn)算中除了第 1個 clock周期和第 7個 clock周期中的sel信號分別固定為 1和 0之外,其他 5個 clock周期中的 sel信號都由隨機(jī)函數(shù)產(chǎn)生.可以肯定每輪開始的第 1個 clock周期先對隨機(jī)數(shù)進(jìn)行運(yùn)算,但由于 SEL信號可能在第 6個 clock周期或者前幾個周期已經(jīng)被置低,正確數(shù)據(jù)的運(yùn)算不一定在每一輪最后的第 7個 clock周期才開始.
為了觀察時間和功耗雙隨機(jī)化的 AES抗 DPA的效果,選擇 AES第 1輪運(yùn)算中的 S盒作為攻擊點(diǎn),利用改進(jìn)的基于漢明距離功耗模型的區(qū)分函數(shù)對未加任何防御措施的AES做差分能量攻擊.分析結(jié)果如圖6(a)所示.截取 AES第 1輪運(yùn)算的差分功耗曲線,1 bit錯誤密鑰表示和正確密鑰相差 1位的錯誤密鑰,可以看出,1 bit錯誤密鑰和 8 bit錯誤密鑰差分后的結(jié)果幾乎為 0,2 bit錯誤密鑰的差分功耗還有一定的尖峰,但正確密鑰差分后的尖峰最高.
圖6 AES的差分能量攻擊結(jié)果Fig.6 Differential power attack on AES
接下來采用和圖 6(a)所示結(jié)果相同的明文、密鑰以及區(qū)分函數(shù)對時間和功耗雙隨機(jī)化的 AES進(jìn)行差分能量攻擊.分析結(jié)果如圖 6(b)所示.
進(jìn)行差分后在其他位置沒有高于噪聲的尖峰出現(xiàn),圖中只列出第 1輪運(yùn)算中第7個 clock對應(yīng)位置處的差分功耗曲線,相對于圖 6(a)所示的差分功耗,圖 6(b)中的差分功耗尖峰縮小了 1個數(shù)量級,并且分辨不出正確密鑰的差分尖峰,攻擊者無法分辨出正確密鑰.對于實(shí)驗(yàn)中其他位置沒有明顯尖峰出現(xiàn)是因?yàn)閷?shí)際測量中要受到噪聲的影響,一個信號是否可以表現(xiàn)出自身的特性通?;谛盘柡驮肼暤谋壤齺砗饬?所以實(shí)際測量和理論分析會有一定的差距,實(shí)際測量中分散在時間域上的某些個點(diǎn)的功耗在差分后不容易被觀察到.
設(shè)計的時間和功耗雙隨機(jī)化的電路結(jié)構(gòu)簡單、資源代價小,且擴(kuò)展性(時間隨機(jī)化的范圍)強(qiáng),方便應(yīng)用于各種密碼算法.同時,該電路不僅可以應(yīng)用于密碼芯片抗能量攻擊中,還可應(yīng)用于密碼芯片的抗故障攻擊、時間攻擊和高階差分能量攻擊中.
[1]KOCHER P,JAFFE J,JUN B.Differential power analysis[C]∥Proc.Advances in Cryptology(CRYPTO'99),Germany:Berlin Springer,1999:388-397.
[2]MESSERGES T S,DABBISH E A,SLOAN R H.Investigations of power analysis attacks on smartcards[C]∥Usenix Workshop on Smartcard Technology,Chicago:Illinois,1999:151-162.
[3]AKIH IKO S,KOKI A.Algorithm-level evaluation of DPA resistance to cryptosystems[J].Electrical Engineering in Japan,2008,165(3):1221-1228.
[4]CLAVIER C,CORON JS,DABBOUSN.Differential Power Analysis in the Presence of Hardware Countermeasures[C]∥CHES 2000,Berlin:New York Springer,2000:252-263.
[5]韓軍,曾曉洋,湯庭鰲.基于時間隨機(jī)化的密碼芯片防攻擊方法[J].計算機(jī)工程,2007,33(2):2-8.HAN Jun,ZENG Xiao-yang,TANG Ting-ao.Modeling timing random ization in cryptographic chip against power analysis attack[J].Computer Engineering,2007,33(2):2-8.(in Chinese)
[6]GOLIC JD,TYMEN C.Multip licativemasking and power analysis of AES[C]∥Workshop on Cryp tographic Hardware and Embedded Systems-CHES 2002,Berlin:New York Springer,2002:198-212.
[7]MESSERGES T.Using Second-Order Power Analysis to Attack DPA Resistant Software[C]∥Workshop on Cryptographic Hardware and Embedded Systems-CHES 2000,Berlin:Berlin Springer,2000:238-251.
[8]GOUBIN L,PATARIN J.DES and differential power analysis-the duplication method[C]∥Workshop on Cryptographic Hardware and Embedded System s-CHES 1999,Berlin:Berlin Springer,1999:158-172.
(責(zé)任編輯 張士瑛)
Design of AESon Time Randomization and Power Randomization Based Differential Power Analysis Resist Countermeasure
YAN Ying-jian,LIU Kai,REN Fang,ZHU Wei-wei
(Institute of Electronic Technology,the PLA Information Engineering University,Zheng Zhou 450004,China)
The problem which time random ization can't defend differential power analysis completely and the defect of the MASK technique which is usually implemented for the power randomization is analyzed.Based on the absolutely resist differential power analysis,the design should focus on the resource and commonness,the paper propose a time and power randomization circuit,AES algorithm containing this circuit is implemented and is testified in the power collection and analysis system.The result of differential power analysis p rove the design to be practical to resist DPA.
differential power analysis;time randomization;power randomization;AES cryptography
TP 309
A
0254-0037(2010)05-0659-05
2009-12-10.
國家“八六三”計劃基金項(xiàng)目資助(2008AA 01Z0103).
嚴(yán)迎建(1973—),男,河南扶溝人,副教授.