馬 鵬,王澤宇,鐘衛(wèi)東,王緒安
(武警工程大學(xué) 網(wǎng)絡(luò)與信息安全武警部隊(duì)重點(diǎn)實(shí)驗(yàn)室,西安 710086)
密碼設(shè)備在數(shù)據(jù)加密過(guò)程中通常會(huì)有功耗[1]、時(shí)間[2]和電磁輻射[3]等側(cè)信道信息泄漏。側(cè)信道攻擊(Side Channel Attack,SCA)即利用泄漏的側(cè)信道信息攻擊密碼設(shè)備,采用數(shù)學(xué)統(tǒng)計(jì)分析方法計(jì)算泄漏信息與加密數(shù)據(jù)(或者解密數(shù)據(jù))之間的關(guān)系以破解密鑰。功耗攻擊是側(cè)信道攻擊的一種,其中,BRIER等人在2004年提出的相關(guān)功耗攻擊(Correlation Power Attack,CPA)[4]因具有較強(qiáng)攻擊性和密鑰破解高效性被廣泛應(yīng)用。
在實(shí)施側(cè)信道攻擊前,通常要對(duì)密碼設(shè)備泄漏信息進(jìn)行采樣,采樣數(shù)據(jù)的純凈度與攻擊效率和密鑰破解正確率密切相關(guān)。在實(shí)際功耗攻擊中,采集功耗信息會(huì)受到環(huán)境噪聲、熱噪聲和算法噪聲等干擾,而噪聲在一定程度上會(huì)降低功耗攻擊效率與密鑰破解正確率,甚至導(dǎo)致攻擊失敗。為消除噪聲影響,提高采樣信號(hào)質(zhì)量,研究人員采用多種方法對(duì)數(shù)據(jù)降噪。文獻(xiàn)[5]用估計(jì)的4階累積量代替原始信號(hào)來(lái)執(zhí)行傳統(tǒng)CPA和差分功耗攻擊(Differential Power Attack,DPA)以提高攻擊性能。文獻(xiàn)[6]利用小波變換對(duì)功耗曲線進(jìn)行對(duì)準(zhǔn),增強(qiáng)功耗的信噪比信息,提高了DPA的攻擊效率。文獻(xiàn)[7]提出一種基于信息論的特殊降噪閾值,但其在功耗數(shù)據(jù)降噪方面不具備普遍性。文獻(xiàn)[8]通過(guò)仿真驗(yàn)證了小波變換的降噪效率要優(yōu)于高階累積量?;谛〔ㄗ儞Q的去噪過(guò)程能較好地表征以低頻信息為主的信號(hào),但其忽略高頻信息,不能很好地分解包含大量細(xì)節(jié)信息的信號(hào),在表征數(shù)據(jù)細(xì)節(jié)信息方面存在一定缺陷[9]。針對(duì)小波變換無(wú)法處理高頻信號(hào)的問(wèn)題,文獻(xiàn)[10]在進(jìn)行數(shù)據(jù)預(yù)處理時(shí)使用小波包閾值法對(duì)數(shù)據(jù)降噪,從而提高功耗攻擊效率。在實(shí)際采用小波包閾值對(duì)不同功耗數(shù)據(jù)降噪時(shí),閾值選取通常隨功耗數(shù)據(jù)特征而變化,并會(huì)影響到小波包降噪性能。此外,小波包閾值只對(duì)低頻信息降噪,忽略了高頻信息中仍存在噪聲含量,從而降低功耗數(shù)據(jù)質(zhì)量。
針對(duì)上述問(wèn)題,本文提出一種改進(jìn)的小波包分解降噪方法。采用奇異譜分析(Singular Spectrum Analysis,SSA)[11]通過(guò)奇異值分解將復(fù)雜信號(hào)分為不同的子序列。奇異譜分析與主成分分析[12]不同,可基于特殊的矩陣結(jié)構(gòu)處理單次功耗數(shù)據(jù),因此將奇異譜分析用于處理小波包分解的低頻部分和高頻部分,并依據(jù)奇異熵的波動(dòng)趨勢(shì)[13]自適應(yīng)地從各部分提取功耗信息,以提高功耗數(shù)據(jù)的質(zhì)量與純凈度。在此基礎(chǔ)上,使用原始功耗數(shù)據(jù)以及改進(jìn)前后的小波包降噪功耗數(shù)據(jù)對(duì)硬件實(shí)現(xiàn)的SM4算法進(jìn)行選擇明文攻擊,對(duì)所得相關(guān)功耗攻擊的攻擊效率和密鑰破解準(zhǔn)確率進(jìn)行對(duì)比分析。
側(cè)信道攻擊中相關(guān)功耗攻擊方法是利用真實(shí)功耗數(shù)據(jù)與模擬功耗數(shù)據(jù)之間線性關(guān)系來(lái)破解密鑰,該方法包括以下4個(gè)步驟:
1)選取N組不同明文(或者密文)通過(guò)密碼設(shè)備進(jìn)行加密(或者解密)操作,采集密碼設(shè)備的功耗曲線,記為P。
2)選取中間值函數(shù)f(d,k),中間值函數(shù)的選取與部分密鑰和部分明文(或者密文)有關(guān),然后猜測(cè)密鑰,通過(guò)中間值函數(shù)計(jì)算對(duì)應(yīng)中間值,根據(jù)中間值的漢明重量模型或者漢明距離模型,計(jì)算模擬功耗數(shù)據(jù),記為H。
3)根據(jù)式(1)將真實(shí)功耗P與模擬功耗H按列求出相關(guān)系數(shù)ρ,最后得到相關(guān)系數(shù)矩陣R。
(1)
4)觀察矩陣R中各值,其中最大值對(duì)應(yīng)的猜測(cè)密鑰即為破解的正確密鑰[14]。
小波變換(Wavelet Transform,WT)方法是基于傅里葉變換、泛函數(shù)分析、數(shù)值分析等數(shù)學(xué)分析方法提出的一種信號(hào)分析與處理方法,廣泛應(yīng)用于信號(hào)處理、圖像分析、語(yǔ)音處理等領(lǐng)域[15]。小波變換方法根據(jù)頻率不同,通過(guò)對(duì)小波基采取伸縮和平移等操作對(duì)信號(hào)進(jìn)行多尺度精細(xì)化分析,從而實(shí)現(xiàn)對(duì)信號(hào)時(shí)域和頻域的局部變換,提取信號(hào)中有效信息。信號(hào)S的兩層小波分解流程如圖1所示。其中:A為信號(hào)低頻數(shù)據(jù)(即近似部分),為信號(hào)的主要信息;D為信號(hào)高頻數(shù)據(jù)(即細(xì)節(jié)部分),為信號(hào)的次要信息,通常被視為噪聲。由圖1可知,小波變換方法只是針對(duì)信號(hào)低頻數(shù)據(jù),而忽略信號(hào)高頻數(shù)據(jù)[16],這導(dǎo)致小波變換無(wú)法充分表征包含高頻數(shù)據(jù)的信號(hào),因此小波變換方法去噪存在一定缺陷。
圖1 信號(hào)S的兩層小波分解流程
小波包變換(Wavelet Packet Transform,WPT)方法是對(duì)小波變換方法的提升與改進(jìn)[17],其基本思想是讓信息能量集中,在細(xì)節(jié)中尋找有序性并篩選出其中規(guī)律,從而對(duì)信號(hào)進(jìn)行精細(xì)分析。與小波變換方法僅對(duì)信號(hào)低頻數(shù)據(jù)分解不同,小波包變換方法對(duì)信號(hào)高頻數(shù)據(jù)也進(jìn)行分解,并根據(jù)被分析信號(hào)的特征自適應(yīng)地選擇相應(yīng)頻帶,使之與信號(hào)頻譜相匹配,從而提高時(shí)頻分辨率。小波包變換在小波變換基礎(chǔ)上提供更多可使用的正交基,信號(hào)S的兩層小波包分解流程如圖2所示。
圖2 信號(hào)S的兩層小波包分解流程
小波包分解的函數(shù)方程如式(2)[18]所示:
(2)
其中,j為尺度指標(biāo)(頻域參數(shù)),k為位置指標(biāo)(時(shí)間參數(shù)),2j為分辨率,n=0,1,…,N為振蕩次數(shù)。
在使用小波包分析信號(hào)時(shí),通常選擇n=0時(shí)函數(shù)φ(t)和ψ(t)作為正交尺度函數(shù)和小波函數(shù)進(jìn)行分解和變換,表達(dá)式如下:
(3)
(4)
其中,h0,k和h1,k為濾波器系數(shù)。
當(dāng)n=1,2,…,N時(shí),對(duì)應(yīng)的小波包函數(shù)為:
(5)
(6)
(7)
(8)
(9)
兩層小波包分解的重構(gòu)算法為:
(10)
其中,j=J-1,…,1,0;i=2j,…,2,1;J=lbN;h和g為小波重構(gòu)濾波器。
奇異譜分析方法是一種分析數(shù)據(jù)不同成分分布的方法,主要應(yīng)用于非線性數(shù)據(jù)。該方法先將數(shù)據(jù)在軌跡矩陣重構(gòu)變換,經(jīng)奇異值分解(Singular Value Decomposition,SVD)[19]后將數(shù)據(jù)分組重構(gòu),最終使用不同成分?jǐn)?shù)據(jù)取代原始數(shù)據(jù)。與主成分分析(Principal Component Analysis,PCA)[12]不同的是,由于奇異譜分析可以基于特殊的矩陣結(jié)構(gòu)處理單次功耗數(shù)據(jù),因此其用于處理小波包分解低頻部分和高頻部分。
奇異譜分析包括分解和重構(gòu)兩部分[20]:
1)分解。
假設(shè)待分析數(shù)據(jù)是長(zhǎng)度為T(mén)的1維離散時(shí)間序列,選擇適當(dāng)窗口寬度L(2≤L≤T),將待分析數(shù)據(jù)YT=(y1,y2,…,yT)轉(zhuǎn)化為多維軌跡矩陣X:
(11)
其中,K=T-L+1,窗口寬度L按照式(12)[21]選取最優(yōu)值。
L=?lg(T)c」,c∈[1.5,3]
(12)
計(jì)算XXT得到L個(gè)特征值λ1≥λ2≥…≥λL≥0,U1,U2,…,UL為相應(yīng)的特征向量,另外選取d=max(i,λi>0)=R(A),將多維軌跡矩陣X分解如下:
X=X1+X2+…+Xd
(13)
2)重構(gòu)。
對(duì)式(13)中Xi進(jìn)行變換生成相應(yīng)時(shí)間序列,得到的每組數(shù)據(jù)均表征原始數(shù)據(jù)某方面的特征。處理后的數(shù)據(jù)通常存于幾個(gè)主要奇異值對(duì)應(yīng)的時(shí)間序列中,例如M?{1,2,…,d}。選擇合適的主成分并根據(jù)式(14)重構(gòu)新的時(shí)間序列數(shù)據(jù)H,表達(dá)式為:
(14)
根據(jù)式(15)對(duì)XL矩陣求對(duì)角平均可計(jì)算得到H。
(15)
其中,x*為矩陣XL中的元素,且:
L*=min{L,K}
(16)
K*=max{L,K}
(17)
在使用小波包變換方法降噪的過(guò)程中,閾值選擇和閾值量化方法與數(shù)據(jù)降噪效果緊密相關(guān)[22]。在實(shí)際應(yīng)用中,可選擇默認(rèn)閾值或者不斷測(cè)試調(diào)整參數(shù)兩種方式進(jìn)行降噪。其中,默認(rèn)閾值的方式缺乏針對(duì)性,無(wú)法根據(jù)功耗數(shù)據(jù)特點(diǎn)進(jìn)行準(zhǔn)確降噪。而在不斷測(cè)試調(diào)整參數(shù)的方式中,參數(shù)只適用于當(dāng)前功耗數(shù)據(jù)降噪,不具有普遍性。此外,小波包變換方法只針對(duì)每層高頻系數(shù)閾值進(jìn)行降噪,忽略低頻系數(shù)中大量噪聲[23],從而降低功耗攻擊效率與密鑰破解準(zhǔn)確率。
針對(duì)上述問(wèn)題,本文將奇異譜分析添加到小波包分解降噪過(guò)程中,對(duì)功耗數(shù)據(jù)進(jìn)行預(yù)處理以提高功耗攻擊效率和密鑰破解準(zhǔn)確率。針對(duì)從實(shí)驗(yàn)室采集到的功耗數(shù)據(jù),使用小波包對(duì)每條功耗高頻信息與低頻信息逐層分解形成小波包分解樹(shù)(本文選擇使用sym6小波,分解6層),選擇一個(gè)合適熵標(biāo)準(zhǔn),使用Matlab自帶的小波包相關(guān)函數(shù)(besttree()函數(shù)計(jì)算小波包最佳樹(shù),由leaves()函數(shù)獲得小波包樹(shù)所有節(jié)點(diǎn),wpcoef()函數(shù)計(jì)算節(jié)點(diǎn)系數(shù)值)求解小波包分解的最佳小波包樹(shù),如圖3所示。
圖3 最佳小波包分解樹(shù)
使用奇異譜分析計(jì)算小波包樹(shù)各節(jié)點(diǎn)最佳奇異譜值。某節(jié)點(diǎn)分解后低頻系數(shù)和高頻系數(shù)的奇異譜值分布如圖4所示。而根據(jù)奇異熵定義:
(18)
其中,λ為對(duì)應(yīng)的奇異值,k為奇異熵階次,ΔEi為奇異熵在階次i處的增量,Ek為k階對(duì)應(yīng)的奇異熵。由式(18)計(jì)算得到各奇異值對(duì)應(yīng)的奇異熵,獲得節(jié)點(diǎn)奇異熵分布,如圖5所示。
圖4 節(jié)點(diǎn)低頻系數(shù)和高頻系數(shù)奇異譜值分布
圖5 節(jié)點(diǎn)低頻系數(shù)和高頻系數(shù)奇異熵分布
由圖5可以看出,節(jié)點(diǎn)低頻系數(shù)和高頻系數(shù)奇異熵均隨奇異值的增大而減小,最終趨于平緩,可認(rèn)為處于平緩位置的奇異熵值所代表的節(jié)點(diǎn)信息為噪聲含量。根據(jù)奇異熵分布趨勢(shì)去除其中的噪聲,通過(guò)奇異譜分析重構(gòu)去除噪聲節(jié)點(diǎn)系數(shù),對(duì)處理后各節(jié)點(diǎn)進(jìn)行小波包重構(gòu),可得到預(yù)處理后的功耗數(shù)據(jù)。
圖6為改進(jìn)后的小波包降噪流程,具體步驟為:
1)利用小波包分解功耗數(shù)據(jù)。先挑選一個(gè)對(duì)稱(chēng)性、緊支撐性和正交性較好的小波作為小波包分解的小波基,再確定小波包分解層數(shù)。
2)獲得最佳小波包樹(shù)。
3)使用奇異譜分析奇異熵分布趨勢(shì),對(duì)小波包分解系數(shù)進(jìn)行降噪處理。
4)小波包重構(gòu)。將上述步驟中處理的節(jié)點(diǎn)系數(shù)重新寫(xiě)入小波包樹(shù)節(jié)點(diǎn),通過(guò)小波包重構(gòu)得到降噪后的功耗數(shù)據(jù)。
圖6 改進(jìn)后小波包降噪流程
為評(píng)估本文方法對(duì)相關(guān)功耗攻擊效率和密鑰破解準(zhǔn)確率的提升效果,選擇基于硬件的SM4算法進(jìn)行選擇明文攻擊。通過(guò)SM4對(duì)特定明文進(jìn)行加密,選擇第1輪4個(gè)S盒作為泄漏點(diǎn)采集功耗數(shù)據(jù),其中采集的1條功耗數(shù)據(jù)如圖7所示,采樣速率為5 Gp/s。使用原始功耗數(shù)據(jù)、改進(jìn)前小波包降噪功耗數(shù)據(jù)和改進(jìn)后小波包降噪功耗數(shù)據(jù)進(jìn)行相關(guān)功耗攻擊,分析不同功耗數(shù)據(jù)對(duì)應(yīng)的攻擊效率和密鑰破解準(zhǔn)確率。
圖7 功耗數(shù)據(jù)
在相關(guān)功耗攻擊中,相關(guān)系數(shù)是衡量去噪方法性能的重要指標(biāo)。使用原始功耗數(shù)據(jù)與經(jīng)過(guò)預(yù)處理的功耗數(shù)據(jù)進(jìn)行相關(guān)功耗攻擊,通過(guò)比較正確密鑰攻擊結(jié)果的相關(guān)系數(shù)大小可確定去噪性能高低。圖8為使用原始功耗數(shù)據(jù)、改進(jìn)前小波包降噪功耗數(shù)據(jù)和改進(jìn)后小波包降噪功耗數(shù)據(jù)的相關(guān)功耗攻擊對(duì)比結(jié)果,可見(jiàn)正確密鑰(242)對(duì)應(yīng)的相關(guān)系數(shù)均最大,表示3種功耗數(shù)據(jù)都能確保相關(guān)功耗攻擊成功破解密鑰。在原始功耗數(shù)據(jù)與改進(jìn)前小波包降噪功耗數(shù)據(jù)下相關(guān)功耗攻擊中,出現(xiàn)與正確密鑰相關(guān)系數(shù)0.192 9、0.191 2對(duì)應(yīng)峰形較接近的尖峰,通常被稱(chēng)為“鬼峰”。鬼峰會(huì)對(duì)相關(guān)功耗攻擊結(jié)果造成干擾,導(dǎo)致功耗曲線條數(shù)增加。而使用改進(jìn)后小波包降噪功耗數(shù)據(jù)在相關(guān)功耗攻擊下,其鬼峰與正確密鑰相關(guān)系數(shù)對(duì)應(yīng)峰形距離較大,對(duì)相關(guān)功耗攻擊結(jié)果干擾較小,相關(guān)功耗攻擊結(jié)果可靠性得到提高。此外,原始功耗曲線、改進(jìn)前小波包降噪功耗曲線和改進(jìn)后小波包降噪功耗曲線對(duì)應(yīng)的最大相關(guān)系數(shù)分別為0.194 5、0.242 1和0.412 7。由相關(guān)功耗攻擊原理可知,最大相關(guān)系數(shù)值越大則越易區(qū)分出正確密鑰對(duì)應(yīng)的功耗,因此,使用改進(jìn)后小波包降噪功耗數(shù)據(jù)的相關(guān)功耗攻擊性能較原始功耗數(shù)據(jù)和小波包降噪功耗數(shù)據(jù)分別提升了53%與41%。
圖8 3種數(shù)據(jù)相關(guān)功耗攻擊結(jié)果對(duì)比
圖9~圖12分別為使用原始功耗數(shù)據(jù)、改進(jìn)前小波包降噪功耗數(shù)據(jù)和改進(jìn)后小波包降噪功耗數(shù)據(jù)對(duì)4個(gè)S盒進(jìn)行相關(guān)功耗攻擊,得到相關(guān)系數(shù)與功耗曲線數(shù)量之間的關(guān)系。可以看出:當(dāng)原始功耗曲線數(shù)量分別為190條、120條、200條和130條時(shí)成功破解密鑰(此時(shí)正確密鑰與錯(cuò)誤密鑰的`相關(guān)系數(shù)開(kāi)始分離且后續(xù)不再重合);使用改進(jìn)前小波包降噪對(duì)數(shù)據(jù)處理后,在破解密鑰上會(huì)導(dǎo)致功耗曲線數(shù)量增長(zhǎng),無(wú)法正確破解第3個(gè)S盒的密鑰;使用改進(jìn)后小波包降噪對(duì)數(shù)據(jù)處理后,在破解密鑰上功耗曲線數(shù)量會(huì)出現(xiàn)不同程度地減少,破解4個(gè)S盒密鑰分別需要120條、100條、130條和120條功耗曲線,其攻擊效率較使用原始功耗數(shù)據(jù)分別提高37%、17%、35%和8%。
圖9 第1個(gè)S盒功耗曲線數(shù)量與相關(guān)系數(shù)的關(guān)系
圖10 第2個(gè)S盒功耗曲線數(shù)量與相關(guān)系數(shù)的關(guān)系
圖11 第3個(gè)S盒功耗曲線數(shù)量與相關(guān)系數(shù)的關(guān)系
圖12 第4個(gè)S盒功耗曲線數(shù)量與相關(guān)系數(shù)的關(guān)系
本文將奇異譜分析與小波包降噪相結(jié)合,提出一種基于改進(jìn)小波包分解的相關(guān)功耗攻擊降噪方法。使用小波包分解求出最優(yōu)小波包樹(shù),提取各節(jié)點(diǎn)中功耗數(shù)據(jù)的低頻系數(shù)及高頻系數(shù),運(yùn)用奇異譜分析并根據(jù)各奇異熵分布趨勢(shì)去除節(jié)點(diǎn)系數(shù)的噪聲信息,并將處理后的節(jié)點(diǎn)系數(shù)寫(xiě)入小波包樹(shù),通過(guò)數(shù)據(jù)重構(gòu)獲得降噪后的功耗數(shù)據(jù)。對(duì)SM4算法進(jìn)行選擇明文的相關(guān)功耗攻擊實(shí)驗(yàn)表明,該方法能有效解決小波包分解中功耗數(shù)據(jù)預(yù)處理缺乏針對(duì)性的問(wèn)題,保留高頻功耗數(shù)據(jù)信息并提高功耗質(zhì)量,較改進(jìn)前小波包降噪方法的攻擊效率更高。雖然本文方法在攻擊性能和效率上有所提升,但其本質(zhì)是將功耗數(shù)據(jù)作為信號(hào)數(shù)據(jù)來(lái)進(jìn)行預(yù)處理降噪,并未考慮功耗數(shù)據(jù)本身特征,導(dǎo)致降噪效果和攻擊效率不穩(wěn)定。后續(xù)將分析功耗數(shù)據(jù)特征并提出更具針對(duì)性的功耗數(shù)據(jù)預(yù)處理方法,以進(jìn)一步提升相關(guān)功耗攻擊性能和效率。