蔡爵嵩,嚴(yán)迎建,朱春生,郭朋飛
(戰(zhàn)略支援部隊(duì)信息工程大學(xué),河南 鄭州450002)
側(cè)信道分析(Side-channel Analysis,SCA)是一種不僅利用算法本身,更依賴于密碼算法物理實(shí)現(xiàn)中的側(cè)信道泄漏的分析方法,嚴(yán)重威脅到密碼芯片的安全性。 能量分析是一種最流行的側(cè)信道分析方式,包括簡單能量分析(Simple Power Analysis,SPA)[1]、差分能量分析(Differential Power Analysis,DPA)[2]、模板攻擊(Template Attacks,TA)[3]、相關(guān)能量分析(Correlation Power Analysis,CPA)[4]等?,F(xiàn)有文獻(xiàn)主要是針對密碼芯片的能量消耗在時(shí)域上進(jìn)行分析。 但時(shí)域分析有一定的局限性,如能量跡的對齊問題。通常采集設(shè)備的不穩(wěn)定或者芯片加入時(shí)鐘隨機(jī)化防護(hù)措施,都會(huì)導(dǎo)致能量跡需要進(jìn)行對齊處理。因此,能量跡的對齊成為影響側(cè)信道分析成功率的關(guān)鍵因素之一。
密碼芯片有效信號(hào)的頻率由時(shí)鐘頻率決定,不會(huì)受到采集設(shè)備和手段的影響,所以使用有效信號(hào)的頻率能量大小代替能量跡采樣點(diǎn)的功耗大小作為密鑰的特征是可行的。 2000 年,AIGNER M 等人表示在對密碼芯片側(cè)信道分析中,時(shí)域內(nèi)的能量消耗差異在頻域內(nèi)同樣會(huì)體 現(xiàn) 出 來[5]。 2005 年,GEBOTYS C H 等 人 在CHES 會(huì) 議上通過對電磁信號(hào)的頻域進(jìn)行分析首次驗(yàn)證了頻域側(cè)信道分析的可行性[6]。 近年來,將能量跡轉(zhuǎn)換到頻域進(jìn)行側(cè)信道分析已經(jīng)被證明是一種解決能量跡對齊問題的有效途徑[7-9]。 雖然頻域側(cè)信道分析能夠解決時(shí)域側(cè)信道分析的對齊問題,但由于噪聲頻率可能與有效信號(hào)頻率相同或相近,因此頻域側(cè)信道分析通常需要更多的能量跡,如文獻(xiàn)[7]采集了70 000 條能量跡,文獻(xiàn)[8]采集了10 000 條能量跡。
文獻(xiàn)[10]~[14]表明將機(jī)器學(xué)習(xí)引入側(cè)信道分析,能夠有效找到能量跡上的特征點(diǎn),提高側(cè)信道分析的成功率。2017 年,ZHANG R N 等人[14]直接使用機(jī)器學(xué)習(xí)中的無監(jiān)督學(xué)習(xí)算法k-means 對時(shí)域內(nèi)的能量跡進(jìn)行了分析,并成功獲得其密鑰。 本文將機(jī)器學(xué)習(xí)中的聚類算法引入頻域側(cè)信道分析中,尋找信號(hào)頻率內(nèi)在的分布,對有效信號(hào)頻率進(jìn)行分離,從而減少頻域側(cè)信道分析所用能量跡條數(shù)。
2004 年,BRIER E 等人提出了相關(guān)能量分析(Correlation Power Analysis,CPA)[4],工作原理是基于芯片能量消耗W 與中間值模型H 之間具有線性相關(guān)性。 通過計(jì)算W 與H 之間的皮爾遜相關(guān)系數(shù)ρ(W,H)來評估中間值模型與實(shí)際能量消耗的匹配程度。
一般地,分析者采用的中間值模型為漢明重量模型(Hamming Weight,HW)或漢明距離模型(Hamming Distance,HD)。 分析者通過計(jì)算猜測密鑰對應(yīng)的中間值與芯片實(shí)際能量消耗之間的相關(guān)系數(shù)來進(jìn)行分析,相關(guān)系數(shù)最大的對應(yīng)密鑰值即被認(rèn)為是正確密鑰。
密碼芯片的頻域側(cè)信道分析就是對傅里葉變換后的能量跡進(jìn)行分析。由于能量跡是由采集設(shè)備采樣得到的數(shù)字信號(hào),在時(shí)域內(nèi)是離散的有限時(shí)間序列,因此本文采用的是離散傅里葉變換(Discrete Fourier Transform,DFT)。
一般地,信號(hào)的時(shí)域波形表示信號(hào)隨時(shí)間的變化,而其頻域圖則顯示了在一個(gè)頻率范圍內(nèi)每個(gè)給定頻帶內(nèi)的信號(hào)量,所以頻域內(nèi)的信息更集中。 這也是頻域側(cè)信道分析一般需要比時(shí)域側(cè)信道分析更多的能量跡條數(shù)的原因。
機(jī)器學(xué)習(xí)中的無監(jiān)督聚類算法可以利用樣本數(shù)據(jù)內(nèi)在的相似性對樣本數(shù)據(jù)進(jìn)行自動(dòng)分類。將每一類稱為一個(gè)簇,則有簇內(nèi)相似性高、簇間相似性低的特點(diǎn)。本文選取應(yīng)用最廣、算法實(shí)現(xiàn)最簡單的k-means 算法進(jìn)行聚類分析。
給定樣本集D={x1,x2,…,xm},k-means 算法從中選擇k 個(gè)樣本作為初始聚類中心{μ1,μ2,…,μk},計(jì)算樣本xj(1≤j≤m)與各初始聚類中心μi(1≤i≤k)之間的距離:根據(jù)距離最近的聚類中心確定樣本xj的簇標(biāo)記λj(1≤j≤m):
1986 年,ROUSSEEUW J 等人提出了輪廓系數(shù)(Silhouette Coefficient)[15],用來衡量一個(gè)點(diǎn)與它所屬聚類類別的相似程度,可以用來在相同數(shù)據(jù)的基礎(chǔ)上來評價(jià)不同算法或者算法不同參數(shù)對聚類結(jié)果產(chǎn)生的影響。
(1)計(jì)算樣本xj(1≤j≤m)到同一簇Cλj內(nèi)其他樣本的平均距離aj。 aj越小,表明樣本xj越應(yīng)該被聚類到該簇。aj被稱為樣本xj的簇內(nèi)不相似度。
(2)計(jì)算樣本xj到其他簇Ci(i=1,2,…,k;i≠j)內(nèi)所有樣本的平均距離bij,稱之為樣本xj與簇Ci(i=1,2,…,k;i≠j)的不相似度,即樣本xj的簇間不相似度。
bj為 樣 本xj到 其 他 簇Ci(i=1,2,…,k;i ≠j)內(nèi) 所 有樣本的最小平均距離。可以知道,bj越大,說明樣本xj越不屬于其他簇Ci(i=1,2,…,k;i≠j)。
(3)根據(jù)樣本xj的簇內(nèi)不相似度aj和簇間不相似度bj,就可以定義樣本xj的輪廓系數(shù)Sj:
容易知道,-1≤Sj≤1,當(dāng)Sj越接近于1 時(shí),簇內(nèi)越緊湊,簇間越稀疏,聚類效果越優(yōu)。所有樣本的輪廓系數(shù)Sj的均值為聚類結(jié)果的輪廓系數(shù),是評價(jià)該聚類是否合理、有效的指標(biāo)之一。
現(xiàn)在來分析能量跡中的有效信號(hào)與噪聲信號(hào)相似度是否較低,即能否在能量跡中有效分離出有效信號(hào)。 設(shè)能量跡中某一點(diǎn)的信噪比(Signal to Noise Ratio,SNR)為:
其中,Pexp為側(cè)信道分析所利用的有效信號(hào)能量,Psw.noise為轉(zhuǎn)換噪聲,Pel.noise為電子噪聲。 顯而易見,SNR 越高,從全部信號(hào)分離出Pexp越容易。一般地,在采集密碼芯片能量消耗時(shí)通過低通濾波技術(shù)來提高能量跡的SNR,確保側(cè)信道分析能夠成功。 因此,對于一個(gè)能夠成功進(jìn)行頻域側(cè)信道分析的能量跡來說,Pexp是能夠從全部信號(hào)中分離出來的。
本文的研究是在能夠成功實(shí)施頻域側(cè)信道分析的前提下進(jìn)行的,所以有效信號(hào)Pexp是能夠從全部信號(hào)中分離出來的。 由于噪聲頻率和有效信號(hào)頻率均為基頻的倍數(shù),因此,將能量跡進(jìn)行傅里葉變換后,有效信號(hào)的頻率與大部分噪聲信號(hào)的頻率的相似度低,只有很小一部分噪聲與有效信號(hào)同頻或頻率接近,但這并不妨礙進(jìn)行側(cè)信道分析。 因此,使用聚類算法能夠有效分離出有效信號(hào)的頻率。
結(jié)合頻域側(cè)信道分析方法和聚類算法,本文提出基于聚類的頻域側(cè)信道分析方法,流程圖如圖1 所示。 現(xiàn)給出該方法的具體實(shí)施步驟:
(1)使用采集設(shè)備對密碼芯片能量消耗進(jìn)行采集,得到n 條能量跡ti(i=1,2,…,n),組成能量跡集T={t1,t2,t3,…,tn}。
(2)對能量跡集T={t1,t2,t3,…,tn}中的每一條能量跡ti(i=1,2,…,n)進(jìn)行離散傅里葉變換(DFT),得到:
(3)對T′使用k-means 算法進(jìn)行聚類。 k-means 算法非常簡單且使用廣泛,運(yùn)行速度快,可用于處理大型的數(shù)據(jù)集。 但該算法存在對初始參數(shù)比較敏感,需要找到相似程度低的類別才能進(jìn)行較好的聚類。
由于只存在有效信號(hào)頻率和噪聲頻率,因此聚類類別數(shù)設(shè)置為2。
(4)由于能量跡中噪聲頻率分布更廣,有效信號(hào)頻率占比較少,因此選擇其中簇內(nèi)數(shù)量較少的一類進(jìn)行側(cè)信道分析, 一般采用1.1 節(jié)所描述的相關(guān)能量分析(CPA)方法進(jìn)行側(cè)信道分析。
(5)如果失敗,則回到步驟(3)。 因?yàn)榫垲愃惴ㄊ歉鶕?jù)數(shù)據(jù)內(nèi)在特征進(jìn)行自動(dòng)分類,所以有可能會(huì)出現(xiàn)無法得到預(yù)期結(jié)果的情況。因此,在失敗時(shí),應(yīng)該重新進(jìn)行聚類分析,或者在對聚類算法進(jìn)行優(yōu)化改進(jìn)[16]。
圖1 基于聚類的頻域側(cè)信道分析方法流程圖
本文使用ChipWhisperer 系列側(cè)信道分析開發(fā)板[17]進(jìn)行實(shí)驗(yàn),驗(yàn)證基于聚類的密碼芯片頻域側(cè)信道分析方法的可行性。
本節(jié)使用CW1173 ChipWhisperer-Lite 開發(fā)板[18]進(jìn)行能量跡采集,目標(biāo)設(shè)備為ATMEGA XMEGA128,密碼算法為128 位AES 算法, 共采集60 000 條能量跡用作分析。 實(shí)驗(yàn)平臺(tái)為MATLAB R2018b,傅里葉變換使用的是MATLAB 自帶的fft 和fftshift 函數(shù)。
圖2 為AES 算法第一輪的能量跡曲線,圖3 為經(jīng)過傅里葉變換后的頻域幅值譜。
圖2 AES 算法第1 輪能量跡曲線
圖3 AES 第1 輪能量跡經(jīng)過傅里葉變換后的頻域幅值譜
對AES 算法前4 輪分別進(jìn)行傅里葉變換后,利用1.1節(jié)描述的相關(guān)能量分析(CPA)方法進(jìn)行分析,中間值模型選擇為S 盒輸出的漢明重量(HW)值,然后計(jì)算中間值模型與傅里葉變換后的能量跡之間的相關(guān)系數(shù)。當(dāng)連續(xù)使用多條能量跡進(jìn)行分析得到的最大相關(guān)系數(shù)對應(yīng)的猜測密鑰值key_guess 不變時(shí),即認(rèn)為是正確密鑰。
采取對比實(shí)驗(yàn),設(shè)定3 組實(shí)驗(yàn),第1 組為全部能量跡,第2 組為聚類后數(shù)量較多的能量跡,第3 組為聚類后數(shù)量較少的能量跡,分別記為I、II、III。 在實(shí)驗(yàn)中,將第I 組作為基準(zhǔn),第II 組和第III 組都與第I 組進(jìn)行比較,看本文方法是否會(huì)減少能量跡條數(shù),同時(shí)第II 組與第III 組進(jìn)行比較,看本文方法是否能夠準(zhǔn)確分離出有效信號(hào)頻率,結(jié)果如表1 所示。 其中,表內(nèi)失敗是指使用60 000 條能量跡無法分析得到正確密鑰;表1 結(jié)果為最少所需能量跡條數(shù);由于聚類算法是根據(jù)數(shù)據(jù)內(nèi)在特征進(jìn)行自動(dòng)分類,因此會(huì)出現(xiàn)結(jié)果與表1 結(jié)果不一致的情況。
表1 3 組實(shí)驗(yàn)分析成功所需能量跡條數(shù)
本文引入1.4 節(jié)介紹的輪廓系數(shù)(Silhouette Coefficient)對聚類算法參數(shù)設(shè)置和聚類后的結(jié)果進(jìn)行評價(jià)。圖4~圖7 分別對應(yīng)AES 算法第一輪的第1 個(gè)S 盒、第2個(gè)S 盒、第3 個(gè)S 盒、第4 個(gè)S 盒聚類后的輪廓系數(shù)圖。
圖4 AES 算法第一輪第1 個(gè)S 盒聚類后輪廓系數(shù)示意圖
圖5 AES 算法第一輪第2 個(gè)S 盒聚類后輪廓系數(shù)示意圖
從圖4~圖7 可以看出,4 次聚類后的輪廓系數(shù)均接近1,說明文中聚類參數(shù)設(shè)置合理、有效,聚類效果較好,進(jìn)一步說明本文所提方法的步驟(3)將聚類類別設(shè)為2 是正確的,同時(shí)表明通過聚類算法能夠從全部信號(hào)中分離出有效信號(hào)。
圖6 AES 算法第一輪第3 個(gè)S 盒聚類后輪廓系數(shù)示意圖
圖7 AES 算法第一輪第4 個(gè)S 盒聚類后輪廓系數(shù)示意圖
通過對表1 的分析可知,第III 組分析成功所需能量跡條數(shù)明顯少于第I 組和第II 組,并且第II 組還存在不能成功分析的情況,說明能量跡中的有效信號(hào)頻率確實(shí)在第III 組當(dāng)中,即能準(zhǔn)確分離出有效信號(hào)頻率,從而進(jìn)行有效側(cè)信道分析,減少頻域側(cè)信道分析所需能量跡條數(shù)。
將密碼芯片的能量消耗轉(zhuǎn)換到頻域進(jìn)行側(cè)信道分析,能夠有效解決能量跡對齊問題,但由于頻域內(nèi)的一個(gè)點(diǎn)對應(yīng)時(shí)域內(nèi)的多個(gè)點(diǎn),因此頻域側(cè)信道分析往往需要更多的能量跡條數(shù)。 本文針對這個(gè)問題,提出使用機(jī)器學(xué)習(xí)中的聚類算法找出有效信號(hào)的頻率后進(jìn)行分析。實(shí)驗(yàn)結(jié)果表明,本文方法能夠減少密碼芯片頻域側(cè)信道分析所需的能量跡條數(shù)。將本文方法應(yīng)用于密碼芯片頻域側(cè)信道分析中,能夠提高分析性能,使頻域側(cè)信道分析更加實(shí)用。