楊昌盛,嚴迎建
(解放軍信息工程大學,河南 鄭州450004)
能量分析(power analysis,PA)攻擊自Paul C.Kocher于1998年提出以來,被廣泛地應用于分組密碼和公鑰密碼的分析,但針對流密碼的研究相對較少[1-3]。文獻[4]基于LFSR(linear feedback shift register)相鄰時刻能量消耗差異建立方程組,通過代數(shù)方法求解內(nèi)部狀態(tài)。文獻 [5]通過選擇初始向量IV 來消除算法噪聲,用較少的能量跡恢復密鑰。文獻[6]利用C 語言模擬能量消耗過程,對MICKEY流密碼進行了仿真攻擊。文獻[7]對K2流密碼進行了包括PA 攻擊在內(nèi)的多種側信道攻擊。
盡管國內(nèi)外在流密碼的能量分析攻擊方面已有一定的研究,但大多停留在理論層面,或僅基于簡單的仿真模型進行分析,且部分文獻提出的方法沒有考慮實際的可操作性。本文根據(jù)流密碼算法的共性特征,提出了面向同步流密碼PA 攻擊點選取策略,并以eSTREAM[8]項目中獲勝的MICKEY 和Trivium 算法為例進行了攻擊演示,最后在ASIC(application specific integrated circuit)開發(fā)環(huán)境下進行了仿真實驗,驗證了上述策略的合理性。
與分組密碼中通過加/解密大量明/密文來獲取密碼算法能量跡進行PA 攻擊的原理類似,同步流密碼的PA 攻擊利用了同步流密碼需要反復初始化并更換IV 這一特性,使得獲取大量已知IV 對應的能量跡成為可能[5],其主要包括3個關鍵點:①攻擊點的選??;②能量消耗模型;③假設能量消耗與實測能量跡的匹配。其中攻擊點的選取最為關鍵,而能量消耗模型的研究已經(jīng)很充分,采用漢明距離作為CMOS器件的能量消耗模型被證明是有效的[9]。
在分組密碼的PA 攻擊中,攻擊點必須是一個與局部密鑰Kpartial和IV 有關的中間值f(IV,Kpartial)。在密碼芯片中函數(shù)f 對應于局部電路,局部電路狀態(tài)的變化將反映到局部功耗上。PA 攻擊正是通過猜測局部密鑰并根據(jù)能量消耗模型計算局部電路假設能量消耗,最后與采樣到的密碼算法總功耗進行匹配,匹配效果最好的猜測密鑰被認為是正確的局部密鑰。
同步流密碼的PA 攻擊點選取原則與分組密碼中的類似,但僅滿足上述條件并不足以保證攻擊的可行性。記密碼算法總功耗為Ptotal,攻擊點對應的局部電路功耗為Pattack,與密碼算法有關的其它功耗為Pnoise.algorithm,密碼設備運行時引入的隨機噪聲為Pnoise.electronic,密碼設備功耗中的常量成分為Pconstant,則密碼算法總功耗可表示如下
其中,Pnoise.electronic與Pattack相互獨立,而Pconstant對于功耗匹配沒有影響,則PA 攻擊最終轉(zhuǎn)換為分析攻擊點假設能量消耗與Pattack+Pnoise.algorithm的匹配情況。在針對分組密碼PA攻擊的文獻 [10]中,作者假設Pnoise.algorithm與Pattack相互獨立,并取得了理想的攻擊結果。分析發(fā)現(xiàn),由于分組密碼中普遍使用了混亂和擴散部件,使得Kpartial在參與密碼算法中的其它運算時,經(jīng)過混亂和擴散的作用,其在Pnoise.algorithm中的功耗分量表現(xiàn)出很強的隨機性。而流密碼的構造相對簡單,且存在大量線性部件,Pattack與Pnoise.algorithm相互獨立的假設不再適用,而Pattack與Pnoise.algorithm的相關性可能導致PA 攻擊無法實現(xiàn)。
據(jù)此,本文提出在選取同步流密碼的PA 攻擊點時,必須嚴格保證所攻擊的Kpartial在Pnoise.algorithm中引起的分量與Pattack不相關或弱相關。
根據(jù)以上分析,本文就同步流密碼PA 攻擊點的選取提出以下策略。
(1)適用于逐比特攻擊的情形
對于密鑰逐比特注入的密碼算法(如MICKEY、A5/1),以與密鑰注入端直接相關的中間狀態(tài)為攻擊點進行逐比特攻擊是最為有效的方法;如果密鑰與IV 并行注入,但密碼算法中存在密鑰與IV 單比特結合的部件(如Trivium),如圖1所示,則該部件也可能成為有效的攻擊點,由于這種攻擊點僅以1比特寄存器的能量消耗差異值為區(qū)分函數(shù),因此在選取IV時應特別考慮,以免Pattack被Pnoise.algorithm掩蓋。
(2)適用于多比特攻擊的情形
圖1 密鑰與IV 單比特結合
流密碼算法的前饋模型中普遍采用濾波函數(shù),一般是將FSR 的抽頭代入布爾函數(shù)進行運算,如圖2所示。如果布爾函數(shù)f2是非線性的(如Grain、DECIM),則其可能成為有效的攻擊點。但若f2是線性的,則抽頭位置所對應的局部密鑰可能存在多種組合,例如f2為4輸入異或邏輯,當通過PA 攻擊猜測出某一時刻h 的值為0 時,則該時刻t1t2t3t4可能取值0000、1111、1100、0011等情況,對于抽頭數(shù)量較多的部件,這種組合的數(shù)量是非??捎^的,這種情況下的f2不適合作為攻擊點。
圖2 前饋模型中的濾波函數(shù)
密鑰K =(k1,…,k80),長度為80比特,初始向量IV=(iv1,…,ivL),長度L 可變,0≤L≤80,由寄存器R和S組成,每個寄存器100級,其中R 為線性,S為非線性。其密鑰加載和初始化過程包括4 個階段:①寄存器R和S置0;②IV 逐比特注入;③密鑰逐比特注入;④空轉(zhuǎn)(preclock)。圖3給出了MICKEY 算法的硬件原理圖,IV和密鑰從input_bit端口逐比特注入,經(jīng)過組合邏輯后分別由input_bit_r和input_bit_s注入寄存器R 和寄存器S。其中,寄存器R 中有50個狀態(tài)位與input_bit_r有關,寄存器S中所有狀態(tài)位均與input_bit_s相關,具體參見文獻[11]。
圖3 MICKEY 算法硬件原理
(1)攻擊點選取
根據(jù)1.3中的分析,MICKEY 算法與 “適用于逐比特攻擊”中的前一種情形相符,故采取逐比特攻擊方案。選取IV 加載完畢后,密鑰加載階段寄存器R 和寄存器S中所有與密鑰注入端相關的狀態(tài)位為攻擊點,即ft(IV,K)=(Rt‖St)IV,K,t=0,…,80,其中,t表示已經(jīng)加載的密鑰比特數(shù);“‖”表示拼接操作,ft表示第t個密鑰比特注入后,寄存器R 和S所有狀態(tài)位,共150比特。
(2)獲取密碼算法能量消耗
準備N 組隨機初始向量IV1,IV2,…,IVN和待攻擊密鑰K’=(k’1,…k’80),測量MICKEY 算法在加載上述IV和密鑰時的能量消耗,記為P=(P1,P2,…,PN)T,其中Pi=(Pi,1,Pi,2,…,Pi,M)對應于IVi參與運算時的能量跡,M 為能量跡中采樣點個數(shù),即P的規(guī)模為N×M。
(3)計算攻擊點假設能量消耗值
(4)假設能量消耗值與能量跡匹配
最后比較P 中各列P*,i(1≤i≤M)與Hk(1≤K≤80,對應于第k比特密鑰)中各列(1≤j≤2)的匹配程度。本文使用相關系數(shù)反映Hk中各列與P 中各列的匹配程度,計算公式如下
上述攻擊方案與攻擊平臺無關,在實測環(huán)境和仿真環(huán)境中均適用,兩者僅在IV 的樣本數(shù)量和獲取密碼算法能量消耗的方式上有所區(qū)別。為了初步驗證攻擊方案的有效性,本文采用芯片設計流程中的EDA 工具獲取密碼算法能量消耗,其流程如圖4所示。
圖4 基于ASIC開發(fā)環(huán)境的功耗仿真流程
采用SMIC 0.18μm 工藝庫,用Design Compiler 對Verilog HDL實現(xiàn)的MICKEY 算法進行綜合,得到門級網(wǎng)表,并以 “攻擊方案第2步”中準備的IV 和密鑰為測試激勵在VCS下進行仿真,得到包含網(wǎng)表中所有門的翻轉(zhuǎn)信息的VCD 文件,最后利用PrimeTimePX 獲取密碼算法的能量消耗信息,具體可參考文獻[12]。
實驗采用隨機初始向量2000 組,待攻擊密鑰K’ =0x5a5b5c5d5e5fa5a6a7a8(k1在最左端)。按照上述攻擊方案,逐比特恢復出了完整的80比特密鑰。圖5給出了攻擊第1、2和80比特時,假設能量消耗與算法總功耗(仿真功耗)的匹配情況,圖中縱軸為相關系數(shù),橫軸為功耗采樣點。
圖5 仿真攻擊第1、2和80比特時的相關系數(shù)
表1列出了攻擊第1、2、3、79和80比特時,ρk兩列中的最大值。
表1 擊第1、2、3、79和80比特時ρk 峰值
密鑰K=(k1,…,k80),初始向量IV=(iv1,…,iv80),長度均為80比特,由3 個NFSR(nonlinear feedback shift register)組成,級數(shù)分別為93,84和111,共288比特。其密鑰安裝與初始化過程包括2個階段:
(1)密鑰和IV 安裝,過程如下:
(s1,s2,…,s93)←(k1,…,k80,0,…,0)
(s94,s95,…,s177)←(iv1,…,iv80,0,…,0)
(s178,s179,…,s288)←(0,…,0,1,1,1)
(2)空轉(zhuǎn)4×288個時鐘周期,過程如下:
for i=1 to 4·288 do
t1←s66+s91·s92+s93+s171
t2←s162+s175·s176+s177+s264
t3←s243+s286·s287+s288+s69
(s1,s2,…,s93)←(t3,s1,…,s92)
(s94,s95,…,s177)←(t1,s94,…,s176)
(s178,s179,…,s288)←(t2,s178,…,s287)
end
(1)攻擊點選取
Trivium 算法符合 “適用于逐比特攻擊”中的后一種情形。記Trivium 空轉(zhuǎn)t 個時鐘周期后第i 個狀態(tài)比特為(1≤i≤288)=,則中間值t1可記為=+·++。由于,,…,全為0,因此當0≤t≤10時,,,為0,=+,而=k66-t,=iv78-t,根據(jù)前文分析,以t1為攻擊點可以逐比特恢復k66,k65,…,k56。由于=ki(1≤i≤80),故當完成前述11比特密鑰的攻擊后,,,…,即為已知,進而當27≤t≤35時,,,已知,以t1為攻擊點可以逐比特恢復出k39,k38,…,k31。依此類推,反復地以前面攻擊出的密鑰比特為后續(xù)攻擊的條件,最終可恢復出絕大部分密鑰,其中當t≥66時用到式(1)
1)IV 選擇方案1
表2 第1種IV 選擇方案下的漢明距離情況
在具體攻擊時,P_HD 是基于猜測密鑰比特計算出來的假設值,而T_HD 是實際情況下的固有值。當密鑰猜測正確時,P_HD 與T_HD 的相關系數(shù)為1。但當密鑰猜測錯誤時,如猜測密鑰比特為0,而實際密鑰比特為1時,P_HD= (0,3),T_HD=(1,2),兩者的相關系數(shù)仍為1,故該IV 選擇方案是不可行的。
2)IV 選擇方案2
方案1的主要問題在于IV 空間過小,但是IV 空間過大又會造成寄存器s94的漢明距離被其它寄存器掩蓋的問題。本文最初采用大量隨機IV 進行攻擊試驗,其攻擊結果與方案1類似。因此,方案2在方案1的基礎上僅增加了iv77-t)1個可變IV 比特,即iv77-t‖iv78-t取00、01、10或11,IV 其它比特全為0。類似的,表3給出了不同密鑰比特下,4個IV 參與運算時所有寄存器的漢明距離(T_HD)和s94‖s170‖s171‖s172的漢明距離(P_HD)。
表3 第2種IV 選擇方案下的漢明距離情況
方案2中,當密鑰猜測正確時,P_HD 與T_HD 的相關系數(shù)為1。當密鑰猜測錯誤時,如猜測密鑰比特為0,而實際密鑰比特為1時,P_HD=(0,3,2,3),T_HD=(1,2,3,2),兩者的相關系數(shù)為0.5,即密鑰猜測正確與否是可區(qū)分的,故該IV 選擇方案具備可行性。據(jù)此,攻擊點確定為ft(IV,K)=(‖‖‖)IV,K(0≤t≤10)。
(2)測量密碼算法能量消耗
根據(jù)上述方案準備IV,攻擊每1個密鑰比特需要4個IV,測量Trivium 算法在加載上述IV 和待攻擊密鑰時的能量消耗,記為P =(P1,P2,…,P4)T,其中Pi=(Pi,1,Pi,2,…,Pi,Y)對應于IVi參與運算時的能量跡,Y 為能量跡中采樣點個數(shù),即P 的規(guī)模為4×Y。
(3)計算攻擊點假設能量消耗值
當攻擊k66-t(0≤t≤10)時,對于每一種猜測值,分別計算t+1時刻的攻擊點狀態(tài)ft+1(IV,K),由于是逐比特攻擊,根據(jù)前面攻擊出的密鑰比特可以確定=0),故t時刻的攻擊點狀態(tài)ft(IV,K)已知,采用漢明距離模型計算攻擊點處的假設能量消耗值,記為=HW(ft⊕ft+1),1≤i≤4,0≤t≤10,其中=(,),分別對應猜測密鑰比特為0和1,即Ht的規(guī)模為4×2。
(4)假設能量消耗值與能量跡匹配
與MICKEY 類似,針對Trivium 的能量攻擊也采用相關系數(shù)來確定假設能量消耗值與算法總體功耗的匹配程度。所不同的是,MICKEY 的能量攻擊中是根據(jù)整個相關系數(shù)矩陣中最大值確定猜測密鑰比特。在Trivium 的能量攻擊中,由于假設能量消耗矩陣H 每列僅含4個量,而密碼算法能量跡采樣點數(shù)(即P 列數(shù))遠大于24,故從整條能量跡來看,無論密鑰猜測正確與否,Trivium 的相關系數(shù)矩陣ρ中都可能出現(xiàn)相關系數(shù)值很高的采樣點,因此在分析不同猜測密鑰比特與能量跡的匹配情況時,必須在該密鑰比特參與攻擊點運算的時刻進行。具體來說就是,在攻擊k66-t(0≤t≤10)時,比較t+1時刻能量跡采樣點與假設能量消耗值的相關系數(shù),下文將這一時刻稱為攻擊時刻。
與MICKEY 的仿真實驗類似,在SMIC 0.18μm工藝庫下利用PTPX 獲取Trivium 算法運算時的功耗,待攻擊密鑰K’=0x5a5b5c5d5e5fa5a6a7a8。圖6給出了攻擊k66,k65,k64和k63時,攻擊點的假設能量消耗與算法總功耗的匹配情況,圖中縱軸為相關系數(shù),橫軸為功耗采樣點,虛線框?qū)诠魰r刻。
圖6 仿真攻擊k66,k65,k64和k63時的相關系數(shù)
表4列出了攻擊k66,k65,k64,k63和k62時,不同猜測密鑰比特在攻擊時刻的假設能量消耗值與能量跡的相關系數(shù)??梢钥吹?,當密鑰猜測正確時,假設能量消耗值與能量跡的相關系數(shù)幾乎為1,而當猜測錯誤時,相關系數(shù)近似為0.5,與前文的分析高度吻合,驗證了攻擊方案的有效性。
表4 攻擊k66,k65,k64,k63和k62時在攻擊時刻的相關系數(shù)
本文提出了同步流密碼PA 攻擊點選取策略,并以面向硬件的同步流密碼算法MICKEY 和Trivium 為例進行了攻擊演示,給出了具體的攻擊方案及基于PrimeTimePX 等EDA 工具的仿真攻擊結果,證明了攻擊的有效性,進而驗證了攻擊點選取策略的合理性,為同步流密碼PA 攻擊的后續(xù)研究奠定了基礎。
最后,結合攻擊點選取策略,從抗能量攻擊的角度,對流密碼設計人員提出兩點安全性建議:①密鑰盡量并行加載,避免逐比特注入;②前饋函數(shù)中與密鑰有關抽頭數(shù)量盡可能多,避免一到一映射。
[1]ZANG Yuliang,HAN Wenbao.Differential power attack on linear feedback shift register[J].Journal of Electronic &Information Technology,2009,31 (10):2406-2410 (in Chinese).[臧玉亮,韓文報.線性反饋移位寄存器的差分能量攻擊 [J].電子與信息學報,2009,31 (10):2406-2410.]
[2]JIA Yanyan,HU Yupu,ZHAO Yongbin,et al.Correlation power analysis of DECIM v2 [J].The Journal of China Universities of Posts and Telecommunications,2011,18 (5):118-123.
[3]TANG Ming,CHENG Pingpan,QIU Zhenlong.Differential power analysis on ZUC algorithm[EB/OL].http://eprint.iacr.org/,Report 2012/299,2012.
[4]Sanjay Burman,Debdeep Mukhopadhyay,Kamakoti Veezhinathan.LFSR based stream cipher are vulnerable to power attacks[G].LNCS 4859:Berlin Heiderberg:Springer-Verlag,2007:384-392.
[5]Fischer W,Gammel BM,Kniffler O.Differential power analysis of stream ciphers [G].LNCS 4377:Berlin Heider-berg:Springer-Verlag,2007:257-270.
[6]ZANG Yuliang,ZENG Guang,HAN Wenbao,et al.Power attack on stream cipher MICKEY 2.0[J].Journal of PLA University of Science and Technology (Natural Science Edition),2009,10 (4):334-338 (in Chinese). [臧玉亮,曾光,韓文報,等.MICKEY 流密碼算法的能量攻擊 [J].解放軍理工大學學報 (自然科學版),2009,10 (4):334-338.]
[7]Matt Henricksen,Wun She Yap,Chee Hoo Yian,et al.Sidechannel analysis of the K2stream cipheR [G].LNCS 6168:Berlin Heiderberg:Springer-Verlag,2010:53-73.
[8]ECRYPT.ECRYPT stream cipher project[EB/OL].http://www.ecrypt.eu.org/stream/,2008.
[9]Tim Guneysu,Amir Moradi.Generic side-channel countermeasures for reconfigurable devices [G].LNCS 6917:Berlin Heidelberg:Springer-Verlag,2011:33-48.
[10]Stefan Mangard,Elisabeth Oswald,Thomas Popp.Power analysis attack [M].FENG Dengguo,ZHOU Yongbin,LIU Jiye,et al transl.Beijing:Science Press,2010:56-58 (in Chinese). [Stefan Mangard,Elisabeth Oswald,Thomas Popp.能量分析攻擊 [M].馮登國,周永斌,劉繼業(yè),等譯.北京:科學出版社,2010:56-58.]
[11]Steve Babbage,Matthew Dodd.The stream cipher MICKEY 2.0[EB/OL].http://www.ecrypt.eu.org/stream/p3ciphers/mikcey-p3.pdf,2008.
[12]FAN Haifeng,YAN Yingjian,XU Jinfu,et al.Simulation of correlation power analysis against AES cryptographic chip[J].Computer Engineering and Design,2010,31 (2):260-262 (in Chinese). [樊海鋒,嚴迎建,徐金甫,等.AES密碼芯片的相關性功耗分析仿真 [J].計算機工程與設計,2010,31 (2):260-262.]