国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

針對密碼芯片電磁輻射泄漏的特征選擇方法

2022-12-10 12:51:02郭劍虹
信息安全研究 2022年12期
關鍵詞:漢明電磁輻射特征選擇

文 毅 郭 澍 孔 昊 郭劍虹

(國家應用軟件產(chǎn)品質量檢驗檢測中心(北京軟件產(chǎn)品質量檢測檢驗中心) 北京 100193) (wenyi.tc@kw.beijing.gov.cn)

芯片在執(zhí)行密碼運算過程中,通常會泄漏功耗、電磁輻射和執(zhí)行時間等側信道信息,攻擊者通過采集和分析側信道信息往往能夠獲取芯片內(nèi)部的敏感數(shù)據(jù),嚴重威脅到密碼芯片的安全.1996年,Kocher[1]提出時間攻擊,利用泄漏的執(zhí)行時間成功獲取了RSA算法的密鑰.1999年,Kocher等人[2]提出簡單功耗分析和差分功耗分析,利用泄漏的功耗實現(xiàn)了對DES算法的攻擊.隨后,相關研究人員相繼提出電磁分析[3-5]、模板攻擊[6]、相關功耗分析[7]和互信息分析[8]等側信道攻擊.隨著新型攻擊方法的不斷出現(xiàn),密碼芯片的安全性也遭遇了前所未有的巨大挑戰(zhàn).在上述方法中,電磁分析和功耗分析一般需要減小或消除電磁泄漏跡或功耗跡中的噪聲,通過提高信噪比減少分析所需的電磁泄漏跡或功耗跡數(shù)量.而模板攻擊則是對噪聲進行精確建模,以獲取電磁泄漏跡或功耗跡上更多的可利用泄漏信息.因此,到目前為止,模板攻擊被認為是最有效的側信道攻擊方法.

模板攻擊包含模板構建和模板匹配2個階段.實際上,在對芯片的電磁泄漏跡或功耗跡構建模板時,為了獲取更多的泄漏信息頻率分量,通常會使用很高的采樣率對電磁泄漏跡或功耗跡的振幅進行采樣,以至于每條電磁泄漏跡或功耗跡中包含大量的采樣點,進而占用分析設備過多的計算資源和使用內(nèi)存.所以,在構建模板前,一般需要對采集的電磁泄漏跡或功耗跡進行降維處理,選出包含所執(zhí)行特定指令序列最多信息的點作為特征點,然后再以特征點構建模板,從而提高模板構建精度和攻擊效率.目前,基于機器學習和深度學習的模板攻擊成為側信道攻擊的研究熱點,關于模板攻擊的特征選擇方法研究早已成熟,最新相關研究[9]成果較少.

2002年,Chari等人[6]建議對每個子密鑰對應的功耗跡計算平均值,從平均功耗跡上選擇差異最大的點作為特征點;2004年,Rechberger等人[10]建議計算平均功耗跡的成對差異之和,將差異最大的點選為特征點;2005年,Agrawal等人[11]建議采用差分功耗分析方法,將差分功耗曲線上尖峰最明顯的點作為特征點;2006年,Gierlichs等人[12]建議采用平均功耗跡的成對差異平方和進行特征選擇,并提出基于T-檢驗的特征選擇方法;同年,Archambeau等人[13]建議采用主成分分析方法進行特征選擇,通過對功耗跡提取主成分、拋棄次要成分實現(xiàn)功耗跡降維;2008年,Standaert等人[14]提出基于Fisher線性判別分析的特征選擇方法,實現(xiàn)了對功耗跡的降維處理;2010年,Elaabid等人[15]建議采用相關系數(shù)方法,將功耗跡中與子密鑰具有較大相關性的點選為特征點,后來該方法在模板攻擊中得到了廣泛應用[16-17].

雖然上述方法都能夠從功耗跡上有效選出特征點,但通常需要消耗大量的功耗跡數(shù)量和計算資源,導致模板構建成本較高.為此,本文提出基于漢明重量模型的特征選擇方法,通過對比相關系數(shù)特征選擇方法,本文方法能夠同時減少電磁泄漏跡或功耗跡數(shù)量以及計算資源消耗,極大降低了模板構建成本.

1 電磁泄漏跡的統(tǒng)計方法

芯片的電磁分析或功耗分析[18]利用了一個事實,即電磁輻射或功耗依賴于芯片執(zhí)行的操作和處理的數(shù)據(jù).電磁輻射跡通常由近場探頭對芯片表面的電磁輻射信號進行測量,再經(jīng)數(shù)字示波器采樣后得到電壓值向量,其電壓值正比于電磁輻射能量.電磁泄漏跡或功耗跡的統(tǒng)計特征可分為單點特征和多點特征.單點特征主要關注某個固定時刻的電磁輻射泄漏,而多點特征則關注電磁泄漏跡中2個點或多個點之間的相互關系.對于多條電磁泄漏跡或功耗跡之間的相似性與差異性,可使用統(tǒng)計分析進行度量.

1.1 電磁泄漏跡的統(tǒng)計特征

當芯片對恒定數(shù)據(jù)執(zhí)行相同的指令序列時,電磁泄漏跡上單個點的泄漏值近似服從高斯分布,其概率密度函數(shù)可由均值和標準差2個參數(shù)進行定義:

(1)

(2)

(3)

單點特征不能刻畫多個點之間的相關性,為考慮2個點或多個點之間的相關性,需采用多元高斯分布對電磁泄漏跡建模,其概率密度函數(shù)為

(4)

多元高斯分布可由均值向量m和協(xié)方差矩陣C定義,其中m包含了電磁泄漏跡中所有點的均值,即mi=E(xi),C包含了電磁泄漏跡中點i和點j之間的協(xié)方差,即cij=Cov(Xi,Xj).

在模板攻擊中,將(m,C)定義為模板.但為了避免C求逆時遇到數(shù)值問題,一般使用單位矩陣取代C,即忽略各點之間的協(xié)方差,最終只由均值向量m構建簡化模板.

1.2 電磁泄漏跡的統(tǒng)計分析

在多元統(tǒng)計分析[19]中,可使用距離對聚類分析和判別分析進行推導,距離反映了差異性.

假設有n條電磁泄漏跡,每條跡上有p個采樣點,記ta=[ta1,ta2,…,tap]T與tb=[tb1,tb2,…,tbp]T分別為第a條與第b條跡,其中a,b=1,2,…,n.則第a條與第b條電磁泄漏跡之間的明氏距離為

(5)

假設存在2個類別G1和G2,分別從G1,G2中抽取n1,n2條電磁泄漏跡,且每條跡上有p個采樣點.對于未知類別的跡t=[t1,t2,…,tp]T,可使用歐氏距離對t進行判別分類.

首先,計算t與G1,G2之間的歐氏距離:

(6)

(7)

然后,按距離最近原則對t進行判別分類:

當D(t,G1)<D(t,G2)時,t∈G1;

當D(t,G1)>D(t,G2)時,t∈G2;

當D(t,G1)=D(t,G2)時,t待判別.

當推廣至多個類別時,首先計算t與每個類別的歐氏距離,然后將歐氏距離進行比較,最后將t判別到歐氏距離最小的類別中.

2 模板攻擊

模板攻擊通常假設攻擊者擁有一個能夠完全控制的樣本芯片或設備,并且樣本芯片與被攻擊芯片的類型完全相同.攻擊者首先采用多元高斯分布對樣本芯片執(zhí)行特定指令序列時的電磁泄漏跡進行模板構建;然后利用樣本芯片的電磁泄漏模板與被攻擊芯片的電磁泄漏跡進行匹配,匹配程度最高的模板將揭示出被攻擊芯片的密鑰.

為了提高模板構建精度以及模板匹配效率,攻擊者通常需要在模板(m,C)構建前對電磁泄漏跡進行降維處理,即采用特征點構建模板,特征點反映了芯片執(zhí)行特定指令序列時電磁輻射泄漏最相關的點.為了避免協(xié)方差矩陣C求逆時遇到數(shù)值問題,可采用僅由均值向量m構成的簡化模板.為了驗證本文提出的基于漢明重量模型特征選擇方法,有必要對每個特征點單獨構建簡化模板.

2.1 模板構建

對于SM4分組密碼算法[20]的側信道攻擊,攻擊者可選擇S盒輸出作為中間值,每個S盒對應了8比特輸入和8比特輸出.假設樣本芯片與被攻擊芯片分別執(zhí)行SM4加密運算的密鑰(十六進制)為keyA=FEDCBA98765432100123456789ABCDEF,keyB=0123456789ABCDEFFEDCBA9876543210.對于攻擊者而言,樣本芯片的密鑰keyA是已知的,被攻擊芯片的密鑰keyB是未知的.

(8)

2.1.1 基于漢明重量模型的特征選擇方法

基于漢明重量模型進行特征選擇的假設:在芯片執(zhí)行相同的密碼運算指令過程中,其電磁輻射泄漏依賴于內(nèi)部所處理數(shù)據(jù)的漢明重量,并且漢明重量取值相同的數(shù)據(jù)會產(chǎn)生幾乎相同的電磁輻射泄漏,漢明重量取值不同的數(shù)據(jù)會產(chǎn)生明顯差異的電磁輻射泄漏.

基于上述假設,當芯片輸入9組明文分別執(zhí)行S盒相關指令進行數(shù)據(jù)運算時,被處理的9種漢明重量數(shù)據(jù)必將導致電磁泄漏跡上所對應運算時刻產(chǎn)生明顯差異,其9個類別對應的平均電磁泄漏跡也必然存在明顯差異,表現(xiàn)為9個類別中任意2個類別的平均電磁泄漏跡之差不為0.

對于漢明重量取值為q的類別,其平均電磁泄漏跡如式(8)所示,計算漢明重量取值分別為q1,q2的類別所對應的平均電磁泄漏跡之差,得到1組差值向量為

(9)

其中q1,q2=0,1,…,8且q1<q2,將差值向量表示為差值矩陣:

(10)

由9個不同類別得到36組差值向量,每組差值向量有p個點,使用差值矩陣T表示為36行p列,每行對應1組差值向量,每列對應電磁泄漏跡上1個采樣點.

基于漢明重量模型的特征選擇方法:需定義3個變量vthreshold,npositive,nnegative.變量vthreshold表示電壓閾值,單位為mV,且vthreshold≥0;變量npositive表示在矩陣T的1個列向量中,元素值大于+vthreshold設定值的元素個數(shù);變量nnegative表示在矩陣T的1個列向量中,元素值小于-vthreshold設定值的元素個數(shù).由定義可知,npositive=0,1,…,36,nnegative=0,1,…,36.

由變量npositive和vthreshold進行特征選擇,具體操作步驟為:

第1步.變量初始化.設定變量npositive的初始值為36、變量vthreshold的初始值為0 mV.

第2步.特征點初選.對于矩陣T的每個列向量,統(tǒng)計該列向量中元素值大于+vthreshold值的元素個數(shù),如果某一列向量經(jīng)統(tǒng)計后得到的元素個數(shù)等于npositive值,則將該列向量的列索引號作為特征點的索引.

第3步.特征點復選.情形1.如果第2步操作得到的特征點數(shù)量過多,則返回第1步,保持變量npositive值不變,適當增大變量vthreshold值,重新執(zhí)行第2步操作,將平均電磁輻射泄漏跡差異更大的點選為特征點.情形2.如果第2步操作沒有得到任何一個特征點,則返回第1步,將變量npositive值減1,保持變量vthreshold值不變,重新執(zhí)行第2步操作,以得到特征點.情形3.如果第2步操作已經(jīng)得到數(shù)量適合的特征點,則執(zhí)行第4步.

第4步.重復執(zhí)行第2,3步,直至獲得一定數(shù)量的特征點.

類似地,由變量nnegative和vthreshold進行特征選擇,操作步驟完全相同,只需將變量npositive替換為變量nnegative,并將第2步操作修改為:對于矩陣T的每個列向量,統(tǒng)計該列向量中元素值小于-vthreshold值的元素個數(shù),如果某一列向量經(jīng)統(tǒng)計后得到的元素個數(shù)等于nnegative值,則將該列向量的列索引號作為特征點的索引.

將上述基于漢明重量模型選出的特征點用于模板構建,為了驗證特征點的有效性,模板中只包含1個特征點j,依據(jù)式(8),對于漢明重量為q的類別,其簡化模板為

(11)

綜上所述,基于漢明重量模型進行特征選擇和模板構建,僅需9e條電磁泄漏跡,即樣本芯片只需進行9e次SM4加密運算,其中9表示9個漢明重量類別對應的9個簡化模板,e表示每個簡化模板需要e條電磁泄漏跡.基于漢明重量模型的特征選擇方法不存在復雜運算,計算資源需求較小.

2.1.2 基于相關系數(shù)的特征選擇方法

首先對樣本芯片執(zhí)行e0次隨機明文SM4加密運算,保存對應的明文和電磁泄漏跡,假設電磁泄漏跡上有p個點,記tj=(t1,j,t2,j,…,te0,j)T為e0條電磁泄漏跡在第j點處的值.然后根據(jù)8比特密鑰空間k=(k0,k1,…,k255)T計算S盒輸出的假設值,再將假設值使用漢明重量模型映射為假設電磁泄漏值,記hi=(h1,i,h2,i,…,he0,i)T為猜測密鑰ki與e0組明文計算S盒輸出時所映射的假設電磁泄漏值.最后,計算hi與tj之間的皮爾遜相關系數(shù),并將相關系數(shù)值較大的點j選為特征點:

(12)

與2.1.1節(jié)類似,將上述基于相關系數(shù)選出的特征點用于模板構建,如式(11)所示.

綜上所述,基于相關系數(shù)進行特征選擇和模板構建,需要e0+9e條電磁泄漏跡,即樣本芯片需要進行e0+9e次SM4加密運算,其中e0條電磁泄漏跡用于特征點選擇,9e條電磁泄漏跡用于構建9個簡化模板.基于相關系數(shù)的特征選擇方法存在復雜運算,計算資源需求較大.

對比2.1.1節(jié)和2.1.2節(jié)可知,基于漢明重量模型進行模板構建時,樣本芯片能夠減少e0次隨機明文SM4加密運算,即減少e0條電磁泄漏跡,且所需計算資源需求更小.

2.2 模板匹配

模板匹配時采用了放大模板攻擊方法[17],利用S盒輸出的9種漢明重量對被攻擊芯片的電磁泄漏跡進行分類和匹配:

第1步.對被攻擊芯片執(zhí)行f次隨機明文SM4加密運算,保存對應的明文、密文和電磁泄漏跡.

(13)

第4步.計算被攻擊芯片在classq內(nèi)所有fq條電磁泄漏跡的歐氏距離之和:

(14)

第5步.計算被攻擊芯片所有9個類別歐氏距離之和:

(15)

第6步.對第1步中的其余255個密鑰猜測值,分別執(zhí)行第2~5步操作,得到對應的255個歐氏距離D.

綜上所述,由于8比特密鑰有256個猜測值,最終得到256個歐氏距離D.依據(jù)1.2節(jié)中的距離最近原則,將最小歐氏距離D對應的密鑰猜測值作為被攻擊芯片的真實密鑰值.

3 實 驗

為簡化實驗,選用同一顆芯片(STM32F103)作為樣本芯片和被攻擊芯片,僅以密鑰keyA與keyB進行區(qū)分.在芯片執(zhí)行SM4加密運算過程中,使用近場探頭對芯片表面電磁輻射泄漏最明顯的區(qū)域進行信號采集,然后通過數(shù)字示波器(LECROY Waverunner 8054)采樣后發(fā)送至PC端保存,最后使用軟件(GNU Octave)編程實現(xiàn)模板攻擊.

實驗首先對基于漢明重量模型的特征選擇方法進行有效性驗證,然后通過相關系數(shù)特征選擇方法進行對比分析.

如圖1所示,C4通道(綠色曲線)為數(shù)字示波器采集的電磁輻射信號,其中橫軸對應時間,單位為μs,縱軸對應電壓,單位為mV,采樣率為1 GS/s,采樣深度為5 kS,即變量p=5 000,時間偏移為-2 μs.C3通道(藍色曲線)高電平區(qū)間對應SM4加密時第1輪迭代運算,大約為0~3.7 μs之間,大致對應了采樣點區(qū)間(500,4 200).

圖1 示波器采集的電磁輻射信號

依據(jù)2.1節(jié),首先對密鑰為keyA的樣本芯片使用9組選擇明文分別執(zhí)行e次SM4加密運算,同時保存對應的電磁泄漏跡, 然后使用式(8)計算9個類別的平均電磁泄漏跡.在模板構建時,通常計算e條電磁泄漏跡的均值降低噪聲,實驗中e=50.

3.1 基于漢明重量模型的特征點驗證

3.1.1 模板構建

首先使用式(9)計算任意2個類別間的平均電磁泄漏跡之差,得到36個差值向量,通過式(10)表示為差值矩陣T,實驗中T為36行5 000列.

然后依據(jù)2.1.1節(jié)操作步驟,對變量vthreshold,npositive,nnegative取值,得到基于漢明重量模型選出特征點:

當npositive=36且vthreshold=0時,得到特征點1857;當npositive=35且vthreshold=0時,未得到特征點;當npositive=34且vthreshold=0時,得到特征點1871和2220.上述操作步驟也可采用不等式進行表達,當npositive≥34且vthreshold=0時,得到特征點1857,1871,2220.

類似地,當nnegative≥35且vthreshold=0時,得到特征點217,1460,1859,1860,1869.由于點217不在有效區(qū)間內(nèi),可首先排除該點.

上述基于漢明重量模型進行特征選擇,得到特征點1460,1857,1859,1860,1869,1871,2220.如果繼續(xù)減小變量npositive或nnegative的值,可能會得到數(shù)量更多的特征點,也可能增加更多的無效特征點.如果增大變量vthreshold的值,將會保留平均電磁泄漏跡上差異更大的特征點,可能導致特征點數(shù)量減少.

最后使用式(11)分別為特征點1460,1857,1859,1860,1869,1871,2220構建9個簡化模板.

綜上可知,基于漢明重量模型進行特征選擇和模板構建,樣本芯片僅需9e(即450)條電磁泄漏跡.

3.1.2 模板匹配

依據(jù)2.2節(jié),首先對密鑰為keyB的被攻擊芯片執(zhí)行1萬次隨機明文SM4加密運算,同時保存對應的電磁泄漏跡.然后從1萬條電磁泄漏跡中隨機選擇f條用于模板匹配,計算keyB第1個密鑰rk0的第1個字節(jié)(256個猜測值)所對應的256個歐氏距離D.最后按照距離最近原則,找出最小D值所對應的猜測密鑰,將猜測密鑰與真實密鑰進行比對,以判定模板匹配是否成功.重復200次隨機選擇f條電磁泄漏跡用于模板匹配操作,統(tǒng)計200次模板匹配成功率.

實驗結果顯示,當f=50時,特征點1460,1857,1859,1860,1869,1871,2220分別進行200次模板匹配,成功率分別為0%,63%,44%,42%,62%,85%,2%,其中特征點1871的成功率達到85%,特征點1460和2220的成功率很低.

當f=70時,特征點1871的成功率超過95%,由此可知,即便使用1個特征點構建簡化模板,模板匹配也能夠擁有很高的成功率.圖2為f=50時,特征點1871的模板匹配成功率.

圖2 特征點1871的模板匹配成功率

圖3 特征點1871的模板攻擊結果

圖4 特征點1871的漢明重量模板

圖3為f=50時,特征點1871的模板匹配結果.如圖3所示,最小的歐氏距離(數(shù)值102)對應了正確的猜測密鑰(數(shù)值241),其中241(0xF1)正是子密鑰rk0的第1個字節(jié).

圖4分別為特征點1869和1871的9個漢明重量簡化模板.由圖4可知:當漢明重量為0時,平均電磁輻射泄漏并不都是最高的;當漢明重量為8時,平均電磁輻射泄漏并不都是最低的.圖4實驗結果表明:芯片的電磁輻射泄漏并不是嚴格服從遞增或遞減關系.

綜上實驗可知,本文提出的基于漢明重量模型特征選擇方法的確能夠有效地選出特征點.對于模板匹配成功率較低的特征點(點1460和2220),可通過樣本芯片進行有效性驗證后剔除,只保留成功率較高的特征點用于模板攻擊實驗.

3.2 與相關系數(shù)方法的對比分析

3.2.1 模板構建

依據(jù)2.1.2節(jié),首先對密鑰為keyA的樣本芯片執(zhí)行e0=500次隨機明文SM4加密運算,同時采集對應的電磁泄漏跡,再使用相關系數(shù)方法進行特征選擇.

圖5所示為假設電磁輻射泄漏與實測電磁泄漏跡之間的相關系數(shù)計算結果.當密鑰猜測正確時,圖5中曲線將出現(xiàn)明顯的尖峰特性;當密鑰猜測錯誤時,圖5中曲線將表現(xiàn)為隨機噪聲,即曲線不會出現(xiàn)明顯尖峰.基于相關系數(shù)的特征選擇方法通常選取明顯尖峰所在采樣點作為特征點,尖峰處的點對應了較大的相關系數(shù)值.由圖5選出的特征點分別為1857,1859,1860,1869,1871,1872.

圖5 基于相關系數(shù)方法的特征點選擇

通過觀察發(fā)現(xiàn),由圖5基于相關系數(shù)選出的前5個特征點與3.1.1節(jié)基于漢明重量模型選出的特征點相同,進一步驗證了本文方法的有效性.在3.1.1節(jié)中,當變量npositive=32時,可得到特征點1872.

與3.1.1節(jié)類似,使用式(11)為每個特征點分別構建9個簡化模板.

綜上可知,基于相關系數(shù)進行特征選擇和模板構建,樣本芯片需要e0+9e(即950)條電磁泄漏跡,其中500條電磁泄漏跡用于特征點選擇,450條電磁泄漏跡用于構建簡化模板,比本文提出的基于漢明重量模型進行特征選擇和模板構建多消耗e0=500條電磁泄漏跡.

3.2.2 模板匹配

依據(jù)3.1.2節(jié),當f=50時,特征點1872的模板匹配成功率為42%,其余各特征點的模板匹配成功率與3.1.2節(jié)相同.

4 結 論

針對芯片執(zhí)行密碼算法過程中的電磁輻射泄漏,本文提出基于漢明重量模型的特征選擇方法,通過實際攻擊實驗驗證了方法的有效性,對比相關系數(shù)特征選擇方法進行模板構建,本文方法需要的電磁泄漏跡數(shù)量更少,計算資源需求更低.通過實驗,同時得出以下結論:

1) 即使使用1個特征點構建電磁輻射泄漏的簡化模板,同樣能夠以很高的成功率恢復密鑰.

2) 在有效特征點處,芯片的電磁輻射泄漏與中間值的漢明重量并不嚴格服從遞增或遞減關系,表現(xiàn)為漢明重量為0時電磁輻射泄漏并不都是最高的,漢明重量為8時電磁輻射泄漏并不都是最低的.

猜你喜歡
漢明電磁輻射特征選擇
4.微波爐的電磁輻射大嗎?
論電磁輻射對環(huán)境的污染及防護措施
活力(2019年15期)2019-09-25 07:21:58
Kmeans 應用與特征選擇
電子制作(2017年23期)2017-02-02 07:17:06
媳婦管錢
聯(lián)合互信息水下目標特征選擇算法
中年研究
漢明距離矩陣的研究
基于特征選擇和RRVPMCD的滾動軸承故障診斷方法
基于二元搭配詞的微博情感特征選擇
計算機工程(2014年6期)2014-02-28 01:26:36
電磁輻射儀在確定上覆煤柱及采空區(qū)探測中的應用
临邑县| 吉林省| 从江县| 尼玛县| 东安县| 即墨市| 乌恰县| 永泰县| 萨嘎县| 永济市| 团风县| 彭阳县| 满洲里市| 修武县| 来凤县| 临朐县| 日照市| 宁海县| 亳州市| 宁波市| 二连浩特市| 工布江达县| 清水县| 肃南| 达州市| 武陟县| 丰宁| 许昌市| 福州市| 克拉玛依市| 千阳县| 凤凰县| 宁武县| 嘉鱼县| 岳普湖县| 南召县| 西宁市| 屏东市| 澄江县| 巴东县| 许昌市|