文 毅 郭 澍 孔 昊 郭劍虹
(國(guó)家應(yīng)用軟件產(chǎn)品質(zhì)量檢驗(yàn)檢測(cè)中心(北京軟件產(chǎn)品質(zhì)量檢測(cè)檢驗(yàn)中心) 北京 100193) (wenyi.tc@kw.beijing.gov.cn)
芯片在執(zhí)行密碼運(yùn)算過(guò)程中,通常會(huì)泄漏功耗、電磁輻射和執(zhí)行時(shí)間等側(cè)信道信息,攻擊者通過(guò)采集和分析側(cè)信道信息往往能夠獲取芯片內(nèi)部的敏感數(shù)據(jù),嚴(yán)重威脅到密碼芯片的安全.1996年,Kocher[1]提出時(shí)間攻擊,利用泄漏的執(zhí)行時(shí)間成功獲取了RSA算法的密鑰.1999年,Kocher等人[2]提出簡(jiǎn)單功耗分析和差分功耗分析,利用泄漏的功耗實(shí)現(xiàn)了對(duì)DES算法的攻擊.隨后,相關(guān)研究人員相繼提出電磁分析[3-5]、模板攻擊[6]、相關(guān)功耗分析[7]和互信息分析[8]等側(cè)信道攻擊.隨著新型攻擊方法的不斷出現(xiàn),密碼芯片的安全性也遭遇了前所未有的巨大挑戰(zhàn).在上述方法中,電磁分析和功耗分析一般需要減小或消除電磁泄漏跡或功耗跡中的噪聲,通過(guò)提高信噪比減少分析所需的電磁泄漏跡或功耗跡數(shù)量.而模板攻擊則是對(duì)噪聲進(jìn)行精確建模,以獲取電磁泄漏跡或功耗跡上更多的可利用泄漏信息.因此,到目前為止,模板攻擊被認(rèn)為是最有效的側(cè)信道攻擊方法.
模板攻擊包含模板構(gòu)建和模板匹配2個(gè)階段.實(shí)際上,在對(duì)芯片的電磁泄漏跡或功耗跡構(gòu)建模板時(shí),為了獲取更多的泄漏信息頻率分量,通常會(huì)使用很高的采樣率對(duì)電磁泄漏跡或功耗跡的振幅進(jìn)行采樣,以至于每條電磁泄漏跡或功耗跡中包含大量的采樣點(diǎn),進(jìn)而占用分析設(shè)備過(guò)多的計(jì)算資源和使用內(nèi)存.所以,在構(gòu)建模板前,一般需要對(duì)采集的電磁泄漏跡或功耗跡進(jìn)行降維處理,選出包含所執(zhí)行特定指令序列最多信息的點(diǎn)作為特征點(diǎn),然后再以特征點(diǎn)構(gòu)建模板,從而提高模板構(gòu)建精度和攻擊效率.目前,基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的模板攻擊成為側(cè)信道攻擊的研究熱點(diǎn),關(guān)于模板攻擊的特征選擇方法研究早已成熟,最新相關(guān)研究[9]成果較少.
2002年,Chari等人[6]建議對(duì)每個(gè)子密鑰對(duì)應(yīng)的功耗跡計(jì)算平均值,從平均功耗跡上選擇差異最大的點(diǎn)作為特征點(diǎn);2004年,Rechberger等人[10]建議計(jì)算平均功耗跡的成對(duì)差異之和,將差異最大的點(diǎn)選為特征點(diǎn);2005年,Agrawal等人[11]建議采用差分功耗分析方法,將差分功耗曲線上尖峰最明顯的點(diǎn)作為特征點(diǎn);2006年,Gierlichs等人[12]建議采用平均功耗跡的成對(duì)差異平方和進(jìn)行特征選擇,并提出基于T-檢驗(yàn)的特征選擇方法;同年,Archambeau等人[13]建議采用主成分分析方法進(jìn)行特征選擇,通過(guò)對(duì)功耗跡提取主成分、拋棄次要成分實(shí)現(xiàn)功耗跡降維;2008年,Standaert等人[14]提出基于Fisher線性判別分析的特征選擇方法,實(shí)現(xiàn)了對(duì)功耗跡的降維處理;2010年,Elaabid等人[15]建議采用相關(guān)系數(shù)方法,將功耗跡中與子密鑰具有較大相關(guān)性的點(diǎn)選為特征點(diǎn),后來(lái)該方法在模板攻擊中得到了廣泛應(yīng)用[16-17].
雖然上述方法都能夠從功耗跡上有效選出特征點(diǎn),但通常需要消耗大量的功耗跡數(shù)量和計(jì)算資源,導(dǎo)致模板構(gòu)建成本較高.為此,本文提出基于漢明重量模型的特征選擇方法,通過(guò)對(duì)比相關(guān)系數(shù)特征選擇方法,本文方法能夠同時(shí)減少電磁泄漏跡或功耗跡數(shù)量以及計(jì)算資源消耗,極大降低了模板構(gòu)建成本.
芯片的電磁分析或功耗分析[18]利用了一個(gè)事實(shí),即電磁輻射或功耗依賴(lài)于芯片執(zhí)行的操作和處理的數(shù)據(jù).電磁輻射跡通常由近場(chǎng)探頭對(duì)芯片表面的電磁輻射信號(hào)進(jìn)行測(cè)量,再經(jīng)數(shù)字示波器采樣后得到電壓值向量,其電壓值正比于電磁輻射能量.電磁泄漏跡或功耗跡的統(tǒng)計(jì)特征可分為單點(diǎn)特征和多點(diǎn)特征.單點(diǎn)特征主要關(guān)注某個(gè)固定時(shí)刻的電磁輻射泄漏,而多點(diǎn)特征則關(guān)注電磁泄漏跡中2個(gè)點(diǎn)或多個(gè)點(diǎn)之間的相互關(guān)系.對(duì)于多條電磁泄漏跡或功耗跡之間的相似性與差異性,可使用統(tǒng)計(jì)分析進(jìn)行度量.
當(dāng)芯片對(duì)恒定數(shù)據(jù)執(zhí)行相同的指令序列時(shí),電磁泄漏跡上單個(gè)點(diǎn)的泄漏值近似服從高斯分布,其概率密度函數(shù)可由均值和標(biāo)準(zhǔn)差2個(gè)參數(shù)進(jìn)行定義:
(1)
(2)
(3)
單點(diǎn)特征不能刻畫(huà)多個(gè)點(diǎn)之間的相關(guān)性,為考慮2個(gè)點(diǎn)或多個(gè)點(diǎn)之間的相關(guān)性,需采用多元高斯分布對(duì)電磁泄漏跡建模,其概率密度函數(shù)為
(4)
多元高斯分布可由均值向量m和協(xié)方差矩陣C定義,其中m包含了電磁泄漏跡中所有點(diǎn)的均值,即mi=E(xi),C包含了電磁泄漏跡中點(diǎn)i和點(diǎn)j之間的協(xié)方差,即cij=Cov(Xi,Xj).
在模板攻擊中,將(m,C)定義為模板.但為了避免C求逆時(shí)遇到數(shù)值問(wèn)題,一般使用單位矩陣取代C,即忽略各點(diǎn)之間的協(xié)方差,最終只由均值向量m構(gòu)建簡(jiǎn)化模板.
在多元統(tǒng)計(jì)分析[19]中,可使用距離對(duì)聚類(lèi)分析和判別分析進(jìn)行推導(dǎo),距離反映了差異性.
假設(shè)有n條電磁泄漏跡,每條跡上有p個(gè)采樣點(diǎn),記ta=[ta1,ta2,…,tap]T與tb=[tb1,tb2,…,tbp]T分別為第a條與第b條跡,其中a,b=1,2,…,n.則第a條與第b條電磁泄漏跡之間的明氏距離為
(5)
假設(shè)存在2個(gè)類(lèi)別G1和G2,分別從G1,G2中抽取n1,n2條電磁泄漏跡,且每條跡上有p個(gè)采樣點(diǎn).對(duì)于未知類(lèi)別的跡t=[t1,t2,…,tp]T,可使用歐氏距離對(duì)t進(jìn)行判別分類(lèi).
首先,計(jì)算t與G1,G2之間的歐氏距離:
(6)
(7)
然后,按距離最近原則對(duì)t進(jìn)行判別分類(lèi):
當(dāng)D(t,G1)<D(t,G2)時(shí),t∈G1;
當(dāng)D(t,G1)>D(t,G2)時(shí),t∈G2;
當(dāng)D(t,G1)=D(t,G2)時(shí),t待判別.
當(dāng)推廣至多個(gè)類(lèi)別時(shí),首先計(jì)算t與每個(gè)類(lèi)別的歐氏距離,然后將歐氏距離進(jìn)行比較,最后將t判別到歐氏距離最小的類(lèi)別中.
模板攻擊通常假設(shè)攻擊者擁有一個(gè)能夠完全控制的樣本芯片或設(shè)備,并且樣本芯片與被攻擊芯片的類(lèi)型完全相同.攻擊者首先采用多元高斯分布對(duì)樣本芯片執(zhí)行特定指令序列時(shí)的電磁泄漏跡進(jìn)行模板構(gòu)建;然后利用樣本芯片的電磁泄漏模板與被攻擊芯片的電磁泄漏跡進(jìn)行匹配,匹配程度最高的模板將揭示出被攻擊芯片的密鑰.
為了提高模板構(gòu)建精度以及模板匹配效率,攻擊者通常需要在模板(m,C)構(gòu)建前對(duì)電磁泄漏跡進(jìn)行降維處理,即采用特征點(diǎn)構(gòu)建模板,特征點(diǎn)反映了芯片執(zhí)行特定指令序列時(shí)電磁輻射泄漏最相關(guān)的點(diǎn).為了避免協(xié)方差矩陣C求逆時(shí)遇到數(shù)值問(wèn)題,可采用僅由均值向量m構(gòu)成的簡(jiǎn)化模板.為了驗(yàn)證本文提出的基于漢明重量模型特征選擇方法,有必要對(duì)每個(gè)特征點(diǎn)單獨(dú)構(gòu)建簡(jiǎn)化模板.
對(duì)于SM4分組密碼算法[20]的側(cè)信道攻擊,攻擊者可選擇S盒輸出作為中間值,每個(gè)S盒對(duì)應(yīng)了8比特輸入和8比特輸出.假設(shè)樣本芯片與被攻擊芯片分別執(zhí)行SM4加密運(yùn)算的密鑰(十六進(jìn)制)為keyA=FEDCBA98765432100123456789ABCDEF,keyB=0123456789ABCDEFFEDCBA9876543210.對(duì)于攻擊者而言,樣本芯片的密鑰keyA是已知的,被攻擊芯片的密鑰keyB是未知的.
(8)
2.1.1 基于漢明重量模型的特征選擇方法
基于漢明重量模型進(jìn)行特征選擇的假設(shè):在芯片執(zhí)行相同的密碼運(yùn)算指令過(guò)程中,其電磁輻射泄漏依賴(lài)于內(nèi)部所處理數(shù)據(jù)的漢明重量,并且漢明重量取值相同的數(shù)據(jù)會(huì)產(chǎn)生幾乎相同的電磁輻射泄漏,漢明重量取值不同的數(shù)據(jù)會(huì)產(chǎn)生明顯差異的電磁輻射泄漏.
基于上述假設(shè),當(dāng)芯片輸入9組明文分別執(zhí)行S盒相關(guān)指令進(jìn)行數(shù)據(jù)運(yùn)算時(shí),被處理的9種漢明重量數(shù)據(jù)必將導(dǎo)致電磁泄漏跡上所對(duì)應(yīng)運(yùn)算時(shí)刻產(chǎn)生明顯差異,其9個(gè)類(lèi)別對(duì)應(yīng)的平均電磁泄漏跡也必然存在明顯差異,表現(xiàn)為9個(gè)類(lèi)別中任意2個(gè)類(lèi)別的平均電磁泄漏跡之差不為0.
對(duì)于漢明重量取值為q的類(lèi)別,其平均電磁泄漏跡如式(8)所示,計(jì)算漢明重量取值分別為q1,q2的類(lèi)別所對(duì)應(yīng)的平均電磁泄漏跡之差,得到1組差值向量為
(9)
其中q1,q2=0,1,…,8且q1<q2,將差值向量表示為差值矩陣:
(10)
由9個(gè)不同類(lèi)別得到36組差值向量,每組差值向量有p個(gè)點(diǎn),使用差值矩陣T表示為36行p列,每行對(duì)應(yīng)1組差值向量,每列對(duì)應(yīng)電磁泄漏跡上1個(gè)采樣點(diǎn).
基于漢明重量模型的特征選擇方法:需定義3個(gè)變量vthreshold,npositive,nnegative.變量vthreshold表示電壓閾值,單位為mV,且vthreshold≥0;變量npositive表示在矩陣T的1個(gè)列向量中,元素值大于+vthreshold設(shè)定值的元素個(gè)數(shù);變量nnegative表示在矩陣T的1個(gè)列向量中,元素值小于-vthreshold設(shè)定值的元素個(gè)數(shù).由定義可知,npositive=0,1,…,36,nnegative=0,1,…,36.
由變量npositive和vthreshold進(jìn)行特征選擇,具體操作步驟為:
第1步.變量初始化.設(shè)定變量npositive的初始值為36、變量vthreshold的初始值為0 mV.
第2步.特征點(diǎn)初選.對(duì)于矩陣T的每個(gè)列向量,統(tǒng)計(jì)該列向量中元素值大于+vthreshold值的元素個(gè)數(shù),如果某一列向量經(jīng)統(tǒng)計(jì)后得到的元素個(gè)數(shù)等于npositive值,則將該列向量的列索引號(hào)作為特征點(diǎn)的索引.
第3步.特征點(diǎn)復(fù)選.情形1.如果第2步操作得到的特征點(diǎn)數(shù)量過(guò)多,則返回第1步,保持變量npositive值不變,適當(dāng)增大變量vthreshold值,重新執(zhí)行第2步操作,將平均電磁輻射泄漏跡差異更大的點(diǎn)選為特征點(diǎn).情形2.如果第2步操作沒(méi)有得到任何一個(gè)特征點(diǎn),則返回第1步,將變量npositive值減1,保持變量vthreshold值不變,重新執(zhí)行第2步操作,以得到特征點(diǎn).情形3.如果第2步操作已經(jīng)得到數(shù)量適合的特征點(diǎn),則執(zhí)行第4步.
第4步.重復(fù)執(zhí)行第2,3步,直至獲得一定數(shù)量的特征點(diǎn).
類(lèi)似地,由變量nnegative和vthreshold進(jìn)行特征選擇,操作步驟完全相同,只需將變量npositive替換為變量nnegative,并將第2步操作修改為:對(duì)于矩陣T的每個(gè)列向量,統(tǒng)計(jì)該列向量中元素值小于-vthreshold值的元素個(gè)數(shù),如果某一列向量經(jīng)統(tǒng)計(jì)后得到的元素個(gè)數(shù)等于nnegative值,則將該列向量的列索引號(hào)作為特征點(diǎn)的索引.
將上述基于漢明重量模型選出的特征點(diǎn)用于模板構(gòu)建,為了驗(yàn)證特征點(diǎn)的有效性,模板中只包含1個(gè)特征點(diǎn)j,依據(jù)式(8),對(duì)于漢明重量為q的類(lèi)別,其簡(jiǎn)化模板為
(11)
綜上所述,基于漢明重量模型進(jìn)行特征選擇和模板構(gòu)建,僅需9e條電磁泄漏跡,即樣本芯片只需進(jìn)行9e次SM4加密運(yùn)算,其中9表示9個(gè)漢明重量類(lèi)別對(duì)應(yīng)的9個(gè)簡(jiǎn)化模板,e表示每個(gè)簡(jiǎn)化模板需要e條電磁泄漏跡.基于漢明重量模型的特征選擇方法不存在復(fù)雜運(yùn)算,計(jì)算資源需求較小.
2.1.2 基于相關(guān)系數(shù)的特征選擇方法
首先對(duì)樣本芯片執(zhí)行e0次隨機(jī)明文SM4加密運(yùn)算,保存對(duì)應(yīng)的明文和電磁泄漏跡,假設(shè)電磁泄漏跡上有p個(gè)點(diǎn),記tj=(t1,j,t2,j,…,te0,j)T為e0條電磁泄漏跡在第j點(diǎn)處的值.然后根據(jù)8比特密鑰空間k=(k0,k1,…,k255)T計(jì)算S盒輸出的假設(shè)值,再將假設(shè)值使用漢明重量模型映射為假設(shè)電磁泄漏值,記hi=(h1,i,h2,i,…,he0,i)T為猜測(cè)密鑰ki與e0組明文計(jì)算S盒輸出時(shí)所映射的假設(shè)電磁泄漏值.最后,計(jì)算hi與tj之間的皮爾遜相關(guān)系數(shù),并將相關(guān)系數(shù)值較大的點(diǎn)j選為特征點(diǎn):
(12)
與2.1.1節(jié)類(lèi)似,將上述基于相關(guān)系數(shù)選出的特征點(diǎn)用于模板構(gòu)建,如式(11)所示.
綜上所述,基于相關(guān)系數(shù)進(jìn)行特征選擇和模板構(gòu)建,需要e0+9e條電磁泄漏跡,即樣本芯片需要進(jìn)行e0+9e次SM4加密運(yùn)算,其中e0條電磁泄漏跡用于特征點(diǎn)選擇,9e條電磁泄漏跡用于構(gòu)建9個(gè)簡(jiǎn)化模板.基于相關(guān)系數(shù)的特征選擇方法存在復(fù)雜運(yùn)算,計(jì)算資源需求較大.
對(duì)比2.1.1節(jié)和2.1.2節(jié)可知,基于漢明重量模型進(jìn)行模板構(gòu)建時(shí),樣本芯片能夠減少e0次隨機(jī)明文SM4加密運(yùn)算,即減少e0條電磁泄漏跡,且所需計(jì)算資源需求更小.
模板匹配時(shí)采用了放大模板攻擊方法[17],利用S盒輸出的9種漢明重量對(duì)被攻擊芯片的電磁泄漏跡進(jìn)行分類(lèi)和匹配:
第1步.對(duì)被攻擊芯片執(zhí)行f次隨機(jī)明文SM4加密運(yùn)算,保存對(duì)應(yīng)的明文、密文和電磁泄漏跡.
(13)
第4步.計(jì)算被攻擊芯片在classq內(nèi)所有fq條電磁泄漏跡的歐氏距離之和:
(14)
第5步.計(jì)算被攻擊芯片所有9個(gè)類(lèi)別歐氏距離之和:
(15)
第6步.對(duì)第1步中的其余255個(gè)密鑰猜測(cè)值,分別執(zhí)行第2~5步操作,得到對(duì)應(yīng)的255個(gè)歐氏距離D.
綜上所述,由于8比特密鑰有256個(gè)猜測(cè)值,最終得到256個(gè)歐氏距離D.依據(jù)1.2節(jié)中的距離最近原則,將最小歐氏距離D對(duì)應(yīng)的密鑰猜測(cè)值作為被攻擊芯片的真實(shí)密鑰值.
為簡(jiǎn)化實(shí)驗(yàn),選用同一顆芯片(STM32F103)作為樣本芯片和被攻擊芯片,僅以密鑰keyA與keyB進(jìn)行區(qū)分.在芯片執(zhí)行SM4加密運(yùn)算過(guò)程中,使用近場(chǎng)探頭對(duì)芯片表面電磁輻射泄漏最明顯的區(qū)域進(jìn)行信號(hào)采集,然后通過(guò)數(shù)字示波器(LECROY Waverunner 8054)采樣后發(fā)送至PC端保存,最后使用軟件(GNU Octave)編程實(shí)現(xiàn)模板攻擊.
實(shí)驗(yàn)首先對(duì)基于漢明重量模型的特征選擇方法進(jìn)行有效性驗(yàn)證,然后通過(guò)相關(guān)系數(shù)特征選擇方法進(jìn)行對(duì)比分析.
如圖1所示,C4通道(綠色曲線)為數(shù)字示波器采集的電磁輻射信號(hào),其中橫軸對(duì)應(yīng)時(shí)間,單位為μs,縱軸對(duì)應(yīng)電壓,單位為mV,采樣率為1 GS/s,采樣深度為5 kS,即變量p=5 000,時(shí)間偏移為-2 μs.C3通道(藍(lán)色曲線)高電平區(qū)間對(duì)應(yīng)SM4加密時(shí)第1輪迭代運(yùn)算,大約為0~3.7 μs之間,大致對(duì)應(yīng)了采樣點(diǎn)區(qū)間(500,4 200).
圖1 示波器采集的電磁輻射信號(hào)
依據(jù)2.1節(jié),首先對(duì)密鑰為keyA的樣本芯片使用9組選擇明文分別執(zhí)行e次SM4加密運(yùn)算,同時(shí)保存對(duì)應(yīng)的電磁泄漏跡, 然后使用式(8)計(jì)算9個(gè)類(lèi)別的平均電磁泄漏跡.在模板構(gòu)建時(shí),通常計(jì)算e條電磁泄漏跡的均值降低噪聲,實(shí)驗(yàn)中e=50.
3.1.1 模板構(gòu)建
首先使用式(9)計(jì)算任意2個(gè)類(lèi)別間的平均電磁泄漏跡之差,得到36個(gè)差值向量,通過(guò)式(10)表示為差值矩陣T,實(shí)驗(yàn)中T為36行5 000列.
然后依據(jù)2.1.1節(jié)操作步驟,對(duì)變量vthreshold,npositive,nnegative取值,得到基于漢明重量模型選出特征點(diǎn):
當(dāng)npositive=36且vthreshold=0時(shí),得到特征點(diǎn)1857;當(dāng)npositive=35且vthreshold=0時(shí),未得到特征點(diǎn);當(dāng)npositive=34且vthreshold=0時(shí),得到特征點(diǎn)1871和2220.上述操作步驟也可采用不等式進(jìn)行表達(dá),當(dāng)npositive≥34且vthreshold=0時(shí),得到特征點(diǎn)1857,1871,2220.
類(lèi)似地,當(dāng)nnegative≥35且vthreshold=0時(shí),得到特征點(diǎn)217,1460,1859,1860,1869.由于點(diǎn)217不在有效區(qū)間內(nèi),可首先排除該點(diǎn).
上述基于漢明重量模型進(jìn)行特征選擇,得到特征點(diǎn)1460,1857,1859,1860,1869,1871,2220.如果繼續(xù)減小變量npositive或nnegative的值,可能會(huì)得到數(shù)量更多的特征點(diǎn),也可能增加更多的無(wú)效特征點(diǎn).如果增大變量vthreshold的值,將會(huì)保留平均電磁泄漏跡上差異更大的特征點(diǎn),可能導(dǎo)致特征點(diǎn)數(shù)量減少.
最后使用式(11)分別為特征點(diǎn)1460,1857,1859,1860,1869,1871,2220構(gòu)建9個(gè)簡(jiǎn)化模板.
綜上可知,基于漢明重量模型進(jìn)行特征選擇和模板構(gòu)建,樣本芯片僅需9e(即450)條電磁泄漏跡.
3.1.2 模板匹配
依據(jù)2.2節(jié),首先對(duì)密鑰為keyB的被攻擊芯片執(zhí)行1萬(wàn)次隨機(jī)明文SM4加密運(yùn)算,同時(shí)保存對(duì)應(yīng)的電磁泄漏跡.然后從1萬(wàn)條電磁泄漏跡中隨機(jī)選擇f條用于模板匹配,計(jì)算keyB第1個(gè)密鑰rk0的第1個(gè)字節(jié)(256個(gè)猜測(cè)值)所對(duì)應(yīng)的256個(gè)歐氏距離D.最后按照距離最近原則,找出最小D值所對(duì)應(yīng)的猜測(cè)密鑰,將猜測(cè)密鑰與真實(shí)密鑰進(jìn)行比對(duì),以判定模板匹配是否成功.重復(fù)200次隨機(jī)選擇f條電磁泄漏跡用于模板匹配操作,統(tǒng)計(jì)200次模板匹配成功率.
實(shí)驗(yàn)結(jié)果顯示,當(dāng)f=50時(shí),特征點(diǎn)1460,1857,1859,1860,1869,1871,2220分別進(jìn)行200次模板匹配,成功率分別為0%,63%,44%,42%,62%,85%,2%,其中特征點(diǎn)1871的成功率達(dá)到85%,特征點(diǎn)1460和2220的成功率很低.
當(dāng)f=70時(shí),特征點(diǎn)1871的成功率超過(guò)95%,由此可知,即便使用1個(gè)特征點(diǎn)構(gòu)建簡(jiǎn)化模板,模板匹配也能夠擁有很高的成功率.圖2為f=50時(shí),特征點(diǎn)1871的模板匹配成功率.
圖2 特征點(diǎn)1871的模板匹配成功率
圖3 特征點(diǎn)1871的模板攻擊結(jié)果
圖4 特征點(diǎn)1871的漢明重量模板
圖3為f=50時(shí),特征點(diǎn)1871的模板匹配結(jié)果.如圖3所示,最小的歐氏距離(數(shù)值102)對(duì)應(yīng)了正確的猜測(cè)密鑰(數(shù)值241),其中241(0xF1)正是子密鑰rk0的第1個(gè)字節(jié).
圖4分別為特征點(diǎn)1869和1871的9個(gè)漢明重量簡(jiǎn)化模板.由圖4可知:當(dāng)漢明重量為0時(shí),平均電磁輻射泄漏并不都是最高的;當(dāng)漢明重量為8時(shí),平均電磁輻射泄漏并不都是最低的.圖4實(shí)驗(yàn)結(jié)果表明:芯片的電磁輻射泄漏并不是嚴(yán)格服從遞增或遞減關(guān)系.
綜上實(shí)驗(yàn)可知,本文提出的基于漢明重量模型特征選擇方法的確能夠有效地選出特征點(diǎn).對(duì)于模板匹配成功率較低的特征點(diǎn)(點(diǎn)1460和2220),可通過(guò)樣本芯片進(jìn)行有效性驗(yàn)證后剔除,只保留成功率較高的特征點(diǎn)用于模板攻擊實(shí)驗(yàn).
3.2.1 模板構(gòu)建
依據(jù)2.1.2節(jié),首先對(duì)密鑰為keyA的樣本芯片執(zhí)行e0=500次隨機(jī)明文SM4加密運(yùn)算,同時(shí)采集對(duì)應(yīng)的電磁泄漏跡,再使用相關(guān)系數(shù)方法進(jìn)行特征選擇.
圖5所示為假設(shè)電磁輻射泄漏與實(shí)測(cè)電磁泄漏跡之間的相關(guān)系數(shù)計(jì)算結(jié)果.當(dāng)密鑰猜測(cè)正確時(shí),圖5中曲線將出現(xiàn)明顯的尖峰特性;當(dāng)密鑰猜測(cè)錯(cuò)誤時(shí),圖5中曲線將表現(xiàn)為隨機(jī)噪聲,即曲線不會(huì)出現(xiàn)明顯尖峰.基于相關(guān)系數(shù)的特征選擇方法通常選取明顯尖峰所在采樣點(diǎn)作為特征點(diǎn),尖峰處的點(diǎn)對(duì)應(yīng)了較大的相關(guān)系數(shù)值.由圖5選出的特征點(diǎn)分別為1857,1859,1860,1869,1871,1872.
圖5 基于相關(guān)系數(shù)方法的特征點(diǎn)選擇
通過(guò)觀察發(fā)現(xiàn),由圖5基于相關(guān)系數(shù)選出的前5個(gè)特征點(diǎn)與3.1.1節(jié)基于漢明重量模型選出的特征點(diǎn)相同,進(jìn)一步驗(yàn)證了本文方法的有效性.在3.1.1節(jié)中,當(dāng)變量npositive=32時(shí),可得到特征點(diǎn)1872.
與3.1.1節(jié)類(lèi)似,使用式(11)為每個(gè)特征點(diǎn)分別構(gòu)建9個(gè)簡(jiǎn)化模板.
綜上可知,基于相關(guān)系數(shù)進(jìn)行特征選擇和模板構(gòu)建,樣本芯片需要e0+9e(即950)條電磁泄漏跡,其中500條電磁泄漏跡用于特征點(diǎn)選擇,450條電磁泄漏跡用于構(gòu)建簡(jiǎn)化模板,比本文提出的基于漢明重量模型進(jìn)行特征選擇和模板構(gòu)建多消耗e0=500條電磁泄漏跡.
3.2.2 模板匹配
依據(jù)3.1.2節(jié),當(dāng)f=50時(shí),特征點(diǎn)1872的模板匹配成功率為42%,其余各特征點(diǎn)的模板匹配成功率與3.1.2節(jié)相同.
針對(duì)芯片執(zhí)行密碼算法過(guò)程中的電磁輻射泄漏,本文提出基于漢明重量模型的特征選擇方法,通過(guò)實(shí)際攻擊實(shí)驗(yàn)驗(yàn)證了方法的有效性,對(duì)比相關(guān)系數(shù)特征選擇方法進(jìn)行模板構(gòu)建,本文方法需要的電磁泄漏跡數(shù)量更少,計(jì)算資源需求更低.通過(guò)實(shí)驗(yàn),同時(shí)得出以下結(jié)論:
1) 即使使用1個(gè)特征點(diǎn)構(gòu)建電磁輻射泄漏的簡(jiǎn)化模板,同樣能夠以很高的成功率恢復(fù)密鑰.
2) 在有效特征點(diǎn)處,芯片的電磁輻射泄漏與中間值的漢明重量并不嚴(yán)格服從遞增或遞減關(guān)系,表現(xiàn)為漢明重量為0時(shí)電磁輻射泄漏并不都是最高的,漢明重量為8時(shí)電磁輻射泄漏并不都是最低的.