王燚,吳震,藺冰
(成都信息工程大學網(wǎng)絡空間安全學院,四川 成都 610225)
能量分析是利用加密設備在加密過程中泄露能量與敏感信息的相關性來攻擊其密鑰的一種方法。能量分析攻擊有各種各樣的實現(xiàn)方法[1-4],但大體可分為無學習和有學習這兩類。無學習的能量攻
擊包括簡單能量分析(SPA, simple power analysis)[5]和差分能量分析(DPA, differential power analysis)[6]。DPA根據(jù)某種泄露模型,利用統(tǒng)計方式來識別猜測密鑰的正確性,主要的泄露模型有漢明重量模型和漢明距離模型[7]。DPA采用的統(tǒng)計識別方法主要有分組能耗均值差[8]、Pearson相關系數(shù)[9]和互信息[10]。有學習的能量分析利用一臺可控制的、與目標設備相似或相同的設備(稱為實驗設備[11]),精確地建立泄露信息的能耗模型(稱為模板),以此對同類設備進行攻擊。有學習的能量分析包括模板攻擊(TA, template attack)[11]、隨機攻擊(SA,stochastic attack)[12]等。無學習的能量分析的優(yōu)勢是攻擊者不需要擁有實驗設備便直接對目標設備進行攻擊,缺點是在能跡較少時攻擊成功率比較低。有學習的能量分析由于建立了關于泄露信息的精確能耗模型,攻擊時僅需較少的能跡(甚至只需要一條能跡)就能攻擊成功,但缺點也很明顯,即攻擊者必須擁有一臺可控制的實驗設備。模板攻擊是有學習能量分析中最成功、研究得最深入的一種方法,其中模板最基本的形式是多元高斯分布,其分布參數(shù)在模板訓練階段統(tǒng)計計算。為提高模板的攻擊效果,部分研究著眼于改進多元高斯分布協(xié)方差矩陣,分別采用單位協(xié)方差、共享協(xié)方差、池化協(xié)方差等方法,在一定程度上降低計算成本、提高攻擊效果[13-15]。也有一些研究著眼于充分利用多種類型泄露信息的聯(lián)合能量攻擊,以提高模板攻擊的效率[16]。其他提高模板攻擊效率的方法包括:利用相位相關性消除構架模板中的數(shù)據(jù)干擾,以構建高質(zhì)量的模板[17];采用主成分分析(PCA, principal component analysis)對能耗數(shù)據(jù)進行降維處理,有效降低協(xié)方差矩陣的計算復雜度并在一定程度上提高攻擊效率[18-19]。模板攻擊的另一種研究思路是采用機器學習中的分類算法替代傳統(tǒng)的多元高斯分布模板,例如,將貝葉斯分類的算法應用在模板攻擊中[20],利用多類支持向量機作為模板實施模板攻擊[21-22],采用神經(jīng)網(wǎng)絡作為模板進行模板攻擊[23-24]等。
為應對能量分析對加密設備造成的顯著威脅,研究人員發(fā)展出很多對抗措施,如抖動防護、加掩防護[25]等。加掩防護的原理是使用一個或多個隨機掩碼與可能發(fā)生泄露的中間值進行異或,從而使其泄露的能耗隨機化,達到防御DPA攻擊的目的。而研究人員又發(fā)展出高階 DPA攻擊[26-27]的方法來攻擊具有加掩防護的加密設備。高階DPA攻擊利用多個中間值的組合值與它們對應泄露能耗的組合值具有一定的相關性這一事實實施攻擊。高階DPA比一階DPA攻擊需要更多的能跡,并且非常耗時。這是因為攻擊者無法通過統(tǒng)計手段發(fā)現(xiàn)多個中間值的能耗泄露的準確位置,只能在猜測的泄露范圍內(nèi)對能耗進行交叉組合。這種方式極大地增加了攻擊的計算量,降低了攻擊的效率。雖然文獻[28]中提出采用 FFT(fast Fourier transform)加速能耗組合計算的方法,但仍不能從根本上解決高階DPA攻擊效率低的問題。
模板攻擊也被應用于攻擊具有加掩防護的加密設備(后文中簡稱為加掩設備)。一種途徑是利用模板輔助對加掩設備實施DPA攻擊[29],包括幾種具體方法。1) 在訓練階段根據(jù)已知掩碼和明文,建立關于帶掩中間值的模板,用于識別和計算攻擊能跡的帶掩中間組合值,攻擊時以此代替能耗組合值實施高階 DPA攻擊。2) 在訓練階段根據(jù)已知掩碼建立關于掩碼的模板,攻擊時識別攻擊能跡的掩碼并過濾特定的掩碼以造成掩碼不平衡,從而可以實施一階 DPA攻擊。3) 在訓練時根據(jù)已知的明文和掩碼,發(fā)現(xiàn)多個中間值的準確泄露位置,并計算其能耗組合值,建立無掩中間組合值關于能耗組合值的模板,用于在攻擊時識別攻擊能跡的無掩中間組合值,進而通過計算與猜測密鑰對應的猜測中間組合值的相關系數(shù)實施DPA攻擊。在不采用DPA而完全基于模板攻擊的方法中,一種方法是采用<密鑰,掩碼>對的模板實施攻擊[30],這種方法需要建立大量的模板,并同時攻擊掩碼和密鑰;另一種方法是使用支持向量機(SVM, support vector machine)和神經(jīng)網(wǎng)絡(NN, neural network)建立攻擊掩碼的模板以及攻擊帶掩中間值的模板,采用先攻擊得到掩碼,去掩后攻擊帶掩中間值的方式獲取設備密鑰[31-32]。根據(jù)了解,所有對加掩設備的模板攻擊均需要攻擊者在訓練階段(profiling phase)了解使用的掩碼。這樣,在訓練階段使用的加密代碼中必須包含對掩碼的輸入或輸出,這與真實加密設備的代碼必然有所不同。這種差異可能導致習得的能耗模型與真實設備的能耗模板存在一定差異,進而可能導致對真實設備的攻擊成功率不高。此外,對硬實現(xiàn)的加密算法,攻擊者無法改變加密的實現(xiàn),無法獲取設備加密時采用的隨機掩碼,因而以上方法均無法實施。
本研究的目標是攻擊者使用一個僅知道密鑰的加掩設備作為實驗設備,不需要了解掩碼,直接學習關于無掩中間組合值的模板,從而可以采用模板攻擊的方法獲取同類設備的密鑰。這種方法稱為盲掩碼模板攻擊。本文的主要貢獻包括以下3個方面。
1) 提出了對加掩加密算法的盲掩碼模板攻擊方法,并從實驗上證實了該方法的可行性。盲掩碼模板攻擊極大地降低了對加掩防護加密設備實施模板攻擊條件和門檻。
2) 提出采用人工神經(jīng)網(wǎng)絡作為優(yōu)化的盲掩碼模板。通過大量的訓練和攻擊的實驗,指出了在使用信噪比極低的能耗特征數(shù)據(jù)的神經(jīng)網(wǎng)絡訓練中,必須采用全批而不能采用 mini-batch的訓練策略。
3) 針對實驗中神經(jīng)網(wǎng)絡訓練極易出現(xiàn)過擬合的問題,分析并指出了導致這種過擬合的原因,并提出了有針對性的部分特征 PCA的數(shù)據(jù)預處理方法。該方法與L2權重正則化配合,可以有效地防止神經(jīng)網(wǎng)絡的訓練發(fā)生過擬合,且不易出現(xiàn)欠擬合的現(xiàn)象。實驗結果表明,基于神經(jīng)網(wǎng)絡的盲掩碼模板攻擊的成功率接近對無加掩防護設備的模板攻擊。在對實驗數(shù)據(jù)的攻擊中,僅需8條攻擊能跡就能夠達到100%的成功率,最少攻擊能跡數(shù)僅為一條(成功率為12%)。
Oswald等[29]提出了幾種對加掩設備的模板攻擊方法。第一種稱為預處理前的模板,該方法要求攻擊者了解訓練能跡所使用的掩碼r,從而可以計算出帶掩的Sbox(substitution-box)的輸入ur和輸出vr。訓練時建立ur和vr的能耗模型Pr(e|ur)和Pr(e|vr)。攻擊時使用這些能耗模型識別攻擊能跡的ur和vr,并計算帶掩中間組合值pre(ur,vr)與根據(jù)猜測密鑰k計算的猜測無掩中間組合值pre(u,v)的相關系數(shù),從而實施 CPA(correlation power analysis)攻擊。其中能跡預處理函數(shù)pre(·)和中間值組合函數(shù)comb(·)采用三角多項式實現(xiàn)組合,以提高兩者的理論相關系數(shù)。第二種方法稱為預處理中的模板,該方法同樣要求攻擊者了解訓練能跡所使用的掩碼。攻擊者建立關于掩碼的能耗模型Pr(e|r),用于識別攻擊能跡的掩碼r。攻擊時通過拋棄使用部分特定掩碼的能跡,使攻擊能跡中的掩碼分布不平衡,導致中間值不能完全被掩碼所掩蓋,從而可以使用一階DPA攻擊設備密鑰。第三種方法稱為預處理后的模板,該方法利用已知的密鑰、明文和掩碼,在訓練能跡中發(fā)現(xiàn) Sbox輸入和輸出的準確泄露位置,據(jù)此計算能耗組合值pre,然后建立無掩中間組合值comb與pre的能耗模型Pr(pre|comb)。攻擊時利用該模型識別攻擊能跡的無掩中間組合值comb,并據(jù)此實施高階DPA攻擊。文獻[29]中指出,由于計算能耗組合值pre時丟失了大量信息,這種攻擊方法需要大量攻擊能跡,不能體現(xiàn)模板攻擊的優(yōu)勢。Lemke-Rust和Paar[30]提出建立<中間值c,掩碼r>對的能耗模型Pr(e|c,r),攻擊時需要同時攻擊密鑰和掩碼對 <k?,r?> 。由于<k,r>的組合數(shù)非常多,只能實施按位的攻擊。而按位攻擊的弱點是,當攻擊第i位時,其余位的數(shù)據(jù)產(chǎn)生的能耗對第i位而言就是噪聲,這使得攻擊時數(shù)據(jù)的信噪比更低,需要更多的能跡才能攻擊成功。Lerman等[31]提出使用概率型支持向量機建立掩碼的能耗模型SVM(e|r),用于攻擊時識別攻擊能跡的掩碼r?,一旦攻擊能跡的掩碼被獲知,加掩防護也就失去了作用。Gilmore等[32]采用的思路與上文基本相同,但使用神經(jīng)網(wǎng)絡建立掩碼的能耗模型NN(e|r),獲得了更高的掩碼識別準確率。
上述對加掩設備的模板攻擊均需要在學習階段了解訓練能跡所使用的隨機掩碼。因此攻擊者必須能夠完全控制加密設備的代碼,以便輸出每次使用的掩碼,或從外部輸入每次使用的掩碼。這一要求不僅不易達到,而且其實驗設備使用的代碼由于需要輸入或輸出隨機掩碼,與真實加密設備的代碼必然有所不同,對真實設備進行實際攻擊時往往成功率比較低。
盲掩碼模板攻擊的思路來源于高階DPA攻擊。高階 DPA是對加掩設備的無學習攻擊方法。高階DPA攻擊不需要了解設備的隨機掩碼,利用多個無掩中間值的組合值對能跡進行分組,各分組的組合能耗的均值呈現(xiàn)出差異[26],從而可以采用組間差實施攻擊。高階CPA是高階DPA的一種特殊方式。Coron等[33]證明了盡管由于隨機掩碼的作用,無掩中間值ci與其對應操作oi的泄露能耗ei不再具有相關性,但特定的多個無掩中間值的組合值comb(c1,…,cd)與相應的能耗組合值 pre(e1,… ,ed)之間卻存在一定程度的線性相關性,即它們的Pearson相關系數(shù)ρ(comb,pre)≠ 0,從而可以實施高階CPA攻擊。
無掩中間組合值comb與能耗組合值pre有一定程度的相關性,意味著能夠根據(jù)pre的值以一定的概率識別出正確的comb值,即存在概率分布Pr(comb|pre)。在統(tǒng)計或訓練該概率分布時,由于無掩中間組合值comb與掩碼無關,因此可以消除訓練時對掩碼的依賴。如果能夠在訓練階段得到該概率分布,就可以采用模板攻擊的方法識別正確的猜測密鑰,如式(1)所示。
其中,comb(xi,k)表示根據(jù)明文xi和猜測密鑰k計算得到的無掩中間組合值。由于訓練概率分布Pr(comb|pre)時并不使用掩碼,攻擊時也不需要掩碼,因此本文把這種模板攻擊方式稱為盲掩碼模板攻擊。
盲掩碼模板攻擊的關鍵在于找到能耗有一定程度泄露的無掩中間組合值。不同加密算法或同一加密算法的不同實現(xiàn),無掩中間組合值comb的組合形式可能不同。由于訓練設備的密鑰已知,可以計算得到各種無掩中間組合值與能耗組合值的相關系數(shù),并選擇相關系數(shù)較大的無掩中間組合值的組合形式。
盲掩碼模板攻擊的首要目標是降低對加掩防護加密算法實施的模板攻擊的門檻。根據(jù)上述的論述,通過對無掩中間值建模,可以消除創(chuàng)建模板時對掩碼的依賴,從而實現(xiàn)了該目標。但之所以要對加掩防護加密算法實施模板攻擊,就是希望在攻擊階段可以使用少量攻擊能跡獲取設備密鑰,提高攻擊的效率,要實現(xiàn)該目標,就需要高質(zhì)量的模板。但由于掩碼的存在,無掩中間組合值對應的能耗組合值中包含了大量掩碼帶來的噪聲,且這類噪聲的高斯性不強,可能導致傳統(tǒng)的基于高斯分布的模板在攻擊中需要大量能跡,而無法體現(xiàn)出模板攻擊的優(yōu)勢。而神經(jīng)網(wǎng)絡不需要假設噪聲的分布,并具有強大的非線性轉換能力,可以用于創(chuàng)建質(zhì)量更高的模板。
如果能夠找到泄露無掩中間組合值 comb(c1,… ,cd)信息的能耗組 合 形 式 pre(e1,… ,ed),其中e1,… ,ed對應的樣本位置為t={t1,…,td},則模板攻擊中各訓練能跡和攻擊能跡可以被轉換為一個標量的能耗組合值pre。設無掩中間組合值comb有n個取值,其中combi對應的能跡分組為Si,i∈ [1,n],如果Si分組內(nèi)各能跡的能耗組合值pre呈高斯分布,則模型Pr(pre|comb)可以用一元高斯分布來描述,如式(2)所示。
其中,
基于一元高斯分布的盲掩碼模板攻擊實際上是首先對能跡進行預處理,將各能跡轉換為一個組合能耗值pre。在實際情況中,無掩中間組合值可能在多種能耗組合形式下發(fā)生泄露,而一元高斯分布的模板僅采用其中一種泄露,將丟失大量的泄露信息,對模板的質(zhì)量和攻擊效率不利。
假設泄露無掩中間組合值 comb(c1,…,cd)信息的能耗組合形式 pre(e1,… ,ed)有多種,它們包含的能耗樣本位置的并集為t={t1,… ,tn}, n>d。提取能跡p上位置集t的能耗作為能跡特征向量e=p[t],則 Pr(e|comb)可以用多元高斯分布來描述。
若攻擊時使用m條攻擊能跡,則最可能的密鑰為
其中,
若攻擊時使用m條攻擊能跡,則最可能的密鑰為
對加掩防護加密算法實施模板攻擊的目的是以少量能跡獲取設備密鑰,提高攻擊效率。實現(xiàn)該目標的前提是建立高質(zhì)量的模板。而由于隨機掩碼的存在,能耗中包含了大量的數(shù)字噪聲,且其噪聲可能并不符合高斯分布。這將導致前兩種基于高斯分布的模板質(zhì)量低下,其攻擊效率并不能體現(xiàn)出模板攻擊的優(yōu)勢。因此,需要探索一種弱假設或無假設的創(chuàng)建模板的方法。
模板攻擊的基本操作是根據(jù)能耗判斷某個中間值(或中間組合值)的概率,其本質(zhì)是機器學習的概率化分類識別。因此,可以用各種機器學習模型來代替高斯分布。目前,已有很多這方面的研究,例如使用支持向量機(SVM, support vector machine)[21-34]、隨機森林(RF, random forest)[35-36]、人工神經(jīng)網(wǎng)絡(ANN, artificial neural network)[23-24]等作為概率型的分類模型。能耗的概率分布可能不符合或不完全符合高斯分布,這會導致基于高斯分布的模板攻擊成功率不高。這些機器學習模型沒有預先假設的概率分布,可以通過訓練習得任何類型的概率分布,因此攻擊成功率可以高于基于高斯分布的模板攻擊。從已發(fā)表的實驗結果看,當訓練能跡足夠時,隨機森林樹的攻擊效果不如SVM和ANN。這是因為樹的構造中必須將能耗離散化處理,而導致了信息的丟失。SVM與ANN的結果接近,但由于SVM本質(zhì)上是二類分類器,多類SVM是一對一SVM或一對其余SVM的集合,訓練多類 SVM 需要訓練大量的二分類SVM,因此訓練過程非常漫長。同時,根據(jù)實驗,對于信噪比很低的數(shù)據(jù),SVM的支持向量中包含了大部分訓練向量,這意味著訓練出現(xiàn)了嚴重的過擬合。因此,本研究采用神經(jīng)網(wǎng)絡代替高斯分布作為模板。
設訓練階段習得的分類器的概率模型為NN(e|comb),則攻擊密鑰的操作為
基于神經(jīng)網(wǎng)絡的盲掩碼模板攻擊中,神經(jīng)網(wǎng)絡的訓練效果至關重要。由于是對無掩中間組合值建模,相應的能耗組合值中包含了大量掩碼帶來的數(shù)字噪聲,其信噪比極低。在訓練中容易出現(xiàn)3種現(xiàn)象:1) 神經(jīng)網(wǎng)絡在訓練中無法收斂;2) 在訓練精度很低時就出現(xiàn)過擬合;3) 同時出現(xiàn)這2種情況。關于極低信噪比數(shù)據(jù)的神經(jīng)網(wǎng)絡的訓練方法還未見有專門的研究。通過大量實驗,本文提出了一種數(shù)據(jù)預處理的方法——分段PCA處理,并探索出綜合現(xiàn)有的防過擬合的措施的神經(jīng)網(wǎng)絡訓練方法。
盲掩碼模板攻擊的實驗采用公開的 DPA Contest V4能跡集。DPA Contest[37]公開了一組標準的能跡集,供研究人員測試和比較各種側信道攻擊方法,其第4版(DPA Contest V4)提供了在Atmel ATMega-163 智能卡上實現(xiàn) AES-256(advanced encryption standard-256)加密算法,使用電磁探測獲取的能跡集,共包括10萬條能跡。DPA Contest V4中采用了 RSM (rotating S-boxes making)[38]加掩防護措施。本文的實驗中使用其中5萬條能跡,其中3萬條用于模板訓練,1萬條用于訓練的驗證,1萬條用于攻擊實驗。
根據(jù)第3節(jié)的介紹,盲掩碼模板攻擊的目標中間組合值來源于高階 CPA攻擊的目標中間組合值。因此,本文首先對DPA Contest V4實施了二階 CPA攻擊。二階 CPA攻擊的目標中間組合值comb是 Sbox無掩輸入和輸出的漢明距離。以第一輪 Sbox0為例,其對應的子密鑰為k=108。設Sbox0的無掩輸入為u=x⊕k,Sbox0的無掩輸出為v=Sbox (x⊕k);漢明距離為comb = hw(u⊕v);對應的能耗組合值為 pre=e1×e2,其中e1、e2分別代表 Sbox0輸入、輸出操作的泄露能耗;位置在攻擊前是未知的。通過對3萬條訓練能跡的平均能跡的可視化觀察,確定了 Sbox0輸入和輸出的 2個大致的樣本范圍。pre是這2個范圍中任意一對位置上能耗的乘積(能跡進行了中心化預處理[39])。攻擊方法為
二階CPA攻擊結果如圖1所示。
圖1 二階CPA攻擊部分結果
圖1中,t1與t2表示攻擊時組合能耗的位置,corr表示中間組合值與能耗組合值的Pearson相關系數(shù),key為最可能的密鑰。圖中所示的猜測密鑰108與正確的密鑰完全相同,說明攻擊是成功的。
二階DPA攻擊成功,說明使用正確位置上的能耗組合值 pre=e1×e2,能夠以一定的概率識別出正確的中間組合值comb = hw(u⊕v),即存在概率分布Pr(hw(u⊕v) |e1×e2)。這樣,可以使用comb=hw(u⊕v)作為盲掩碼模板攻擊的目標。
此外,還可以選擇以comb=u⊕v作為盲掩碼模板攻擊的目標,這是因為按照u⊕v值分組時,分組中的所有能跡的hw(u⊕v)是相同的,即有Pr(u⊕v|e1×e2)= Pr(hw(u⊕v) |e1×e2)。也就是說,以u⊕v為攻擊目標,理論上并不影響概率分布。更重要的是,如果使用 Pr(u⊕v|e1×e2)識別出正確的u⊕v值,就可以根據(jù)已知明文x推導出唯一的k值 ; 而 使 用 Pr(hw(u⊕v) |e1×e2)識 別 出 正 確 的hw(u⊕v)值,可能的k值不是唯一的。此外,u⊕v的值實際上表達了所有的位組合形式。而物理電路上,不同的位的能耗不完全相同,以u⊕v為目標建模能夠更精確地表達能耗模型,因此,以u⊕v為目標的攻擊效率可能高于以hw(u⊕v)為目標。在后面的實驗中,本文對這2種目標的模板攻擊進行了比較,證實了這一推測。
特征選擇是模板攻擊的重要步驟,準確選擇信息泄露程度高的樣本位置,對模板攻擊能否成功以及成功率的高低有決定性的作用。最簡單的特征選擇是觀察平均能跡的能耗變化規(guī)律,可視化地判斷攻擊目標操作的樣本范圍。但這種方法選擇的特征區(qū)域包含大量與攻擊目標信息無關的能耗,會對模板攻擊造成非常不利的影響。目前基于統(tǒng)計的特征選擇方法有平均能耗差(DOM,difference of means)[11]、能耗方差和(SOSD,sum of squared difference)[40]、能耗學生測試和(SOST,sum of student test)[40]、正則化類間差(NICV,normalized inter-class variance)[41]、基于子空間的方法[18,42]等。這些方法都必須有足夠的信息(如明文或密文、密鑰、掩碼等)來計算要攻擊的目標值,并據(jù)此對訓練能跡分組,然后統(tǒng)計各分組的平均能跡之間的差異,從而得到揭示目標值信息泄露的指標。
本研究的目標是在未知掩碼的情況下實施模板攻擊,這意味著在訓練階段并不知道各能跡的掩碼,無法計算加掩的攻擊目標值。因此上述方法均不適用。但4.2節(jié)中進行的二階CPA攻擊結果提供了Sbox輸入和輸出的泄露位置。從圖1可以看出,二階CPA在多個位置組合上都能夠攻擊成功。事實上,使用3萬條能跡的二階CPA在2 302個位置對上攻擊成功,雖然其中包含了大量重復的位置,去重后,仍有193個泄露位置。這些泄露位置上信息泄露的程度并不相同,可以認為,二階DPA攻擊中相關系數(shù)較高的位置上,能耗的信息泄露更加明顯。因此,僅選擇部分泄露位置提取能耗特征,本文根據(jù)這些位置對所對應的相關系數(shù),從高到低選擇,并計算這些位置對中各位置的并集。
基于高斯分布的模板攻擊要求泄露能耗呈高斯分布。根據(jù)3.2節(jié)與4.2節(jié)所述,一元高斯分布盲掩碼模板攻擊中采用能耗組合值pre,其中e1與e2分別是Sbox0輸入和輸出的能耗。首先檢查pre是否符合高斯分布。設攻擊的目標為hw(u⊕v),在hw(u⊕v)=4 的分組能跡上,取二階CPA攻擊中相關系數(shù)最高的一對位置的能耗作為e1和e2。能耗組合值pre的正則化直方圖與其理想高斯分布的對比如圖2所示。
圖2 能耗組合值的高斯性定性分析
從圖2中可以看出,p re=e1×e2的分布具有一定的高斯性,應該可以支持一元高斯分布的模板攻擊。
據(jù)此,分別以comb = hw(u⊕v)和comb=u⊕v為目標,訓練一元高斯模板。comb = hw(u⊕v)時共有9個模板,comb=u⊕v時共有163個模板。使用測試能跡集進行不同攻擊能跡數(shù)的攻擊實驗。圖3中比較了這2種模板攻擊以及二階CPA攻擊的成功率與攻擊能跡數(shù)的關系。
圖3 一元盲掩碼模板攻擊與二階DPA攻擊比較
圖3中HOCPA表示二階CPA攻擊,TA_HW表示以comb = hw(u⊕v)目標的盲掩碼模板攻擊,TA表示以comb=u⊕v為目標的盲掩碼模板攻擊。達到100%攻擊成功率時,HOCPA需要的能跡數(shù)為1 500條,TA_HW需要700條,TA只需要100條。TA_HW和TA這2種模板攻擊成功率達到100%所需的能跡數(shù)都比HOCPA所需的能跡數(shù)少,證明了盲掩碼模板攻擊的有效性,其中TA需要的能跡數(shù)比 TA_HW 少,說明以comb=u⊕v為目標是更好的選擇。因此在以后的實驗中,均以comb=u⊕v為攻擊目標。
為了提高模板攻擊的成功率,應該盡可能利用能跡上的全部泄露信息。根據(jù)4.3節(jié)所述,二階CPA攻擊共得到193個泄露位置。這些位置都不同程度地泄露了Sbox0輸入或輸出的信息。要充分利用這些信息泄露,就需要采用多元高斯分布。實驗比較了不同能耗特征數(shù)量與攻擊成功率的關系,采用50條攻擊能跡,實驗結果如圖4所示。圖4中橫坐標中的1*表示一元高斯分布的盲掩碼模板攻擊,作為比較基準。
從圖4可以看出,采用2個能耗特征的二元高斯盲掩碼模板攻擊與基準攻擊成功率相同。當能耗特征達到5個時,成功率略有上升,但繼續(xù)增加能耗特征數(shù)量,成功率反而出現(xiàn)大幅下降。產(chǎn)生該現(xiàn)象的一個原因是,單一的能耗特征的分布并不符合高斯分布。圖 5是u⊕v=4的分組中,一個泄露位置的能耗分布的直方圖與高斯分布的比較。從圖 5可以看出,單個位置的能耗分布明顯與高斯分布不同。而在多元高斯分布中,各邊際概率都應該符合高斯分布,因此多元高斯分布不能準確地反映能耗的實際分布情況,這是造成能耗特征增加、攻擊效果不佳的原因之一。
圖4 多元高斯分布盲掩碼模板攻擊中特征數(shù)與成功率的關系
圖5 單個泄露位置能耗的分布情況
此外,還存在另一個造成能耗特征增加、攻擊成功率下降的因素,即由于特征數(shù)過多而造成病態(tài)協(xié)方差矩陣,這個因素在本實驗中表現(xiàn)得特別明顯。為了盡可能地丟棄泄露信息,本文在選擇特征時并未遵循文獻[43]中提出的時間間隔原則。因此,有很多特征的樣本位置是相鄰的,這些特征之間相關性很高,更容易形成病態(tài)協(xié)方差矩陣。
對此,一個解決方案是采用 PCA對能跡的特征向量進行預處理。PCA在模板攻擊中主要用于降維處理[42],這里采用 PCA的主要目的是防止產(chǎn)生病態(tài)協(xié)方差矩陣。圖6是采用PCA預處理后的多元高斯分布的盲掩碼模板攻擊,其中,PCA0.4、PCA0.6、PCA0.8表示對能耗特征進行PCA處理,分別保留前40%、60%、80%方差的PCA維作為特征向量。ref(npois)表示不使用PCA預處理時,采用n個特征的攻擊結果。從圖6可以看出,全部能耗特征經(jīng) PCA預處理后的攻擊成功率均超過未經(jīng)PCA預處理且采用 100個特征的攻擊成功率(ref(100 pois)),這證明了PCA防止產(chǎn)生病態(tài)協(xié)方差矩陣的能力。然而,所有采用PCA預處理的攻擊成功率均未能超過未經(jīng)PAC預處理且僅使用5個特征的攻擊成功率(ref(5 pois))。有以下2個原因:1) PCA在降維的同時會造成信息丟失;2) PCA維是各元素能耗特征的加權和,其概率分布將會產(chǎn)生很大變異。由于本實驗中各能耗特征本身就不符合高斯分布,因此PCA維的高斯性更差。
由上述分析可知,對加掩設備的多元高斯分布的盲掩碼模板攻擊中,不宜采用PCA處理,而只能選擇有限的特征數(shù)量。這一限制造成了很大的信息損失。
圖6 特征PCA處理的多元高斯模板攻擊
4.6.1 神經(jīng)網(wǎng)絡結構與訓練
在神經(jīng)網(wǎng)絡的結構選擇上,已有實驗證明,單個隱層的前向神經(jīng)網(wǎng)絡最符合模板攻擊的需要。這是由于特征能耗中不存在像圖像識別等擁有的高階抽象特征,因而并不需要采用深度神經(jīng)網(wǎng)絡來提取高階特征。神經(jīng)網(wǎng)絡在本研究中的作用是自動學習能耗的組合方式,并計算組合能耗相對于中間組合值的概率。在神經(jīng)元的激活函數(shù)的選擇方面,目前深度學習采用的 RELU(rectified linear unit)、SELU(sealed exponential linear unit)等激活函數(shù)也并不適用。這是由于RELU的非線性轉換能力不如tanh函數(shù)或sigmoid函數(shù)。RELU主要應用在多層卷積網(wǎng)絡中,其主要作用是防止梯度消失,而梯度消失的問題在單個隱層的前向神經(jīng)網(wǎng)絡中并不嚴重。經(jīng)反復實驗,本文采用的網(wǎng)絡結構為[輸入層=特征數(shù),隱層=100個神經(jīng)元,輸出層=分類數(shù)],輸入層的能耗特征進行了正則化處理(即將輸入能耗特征數(shù)據(jù)映射到平均能耗為 0,標準差為 1的范圍內(nèi));隱層采用tanh函數(shù);輸出層每個神經(jīng)元代表一個類別的得分,采用softmax轉換為各類的概率。需要特別說明的是,由于AES Sbox轉換的特點,無掩中間組合值u⊕v的取值范圍并不是0~255,而只是其中 163個值,因此,輸出層的神經(jīng)元數(shù)量為 163。訓練和預測前,需要將實際的u⊕v值映射到連續(xù)的[0,162]之間的值域。實驗中使用的神經(jīng)網(wǎng)絡結構如圖7所示。實驗中神經(jīng)網(wǎng)絡在tensorflow中實現(xiàn),使用一塊NVIDIA GTX980Ti顯卡(6 GB內(nèi)存)進行訓練。
圖7 神經(jīng)網(wǎng)絡結構示意
神經(jīng)網(wǎng)絡采用交叉熵損失函數(shù)(cross-entropy),采用Adam優(yōu)化器訓練。經(jīng)反復測試,學習率采用0.01。每次訓練迭代1萬次,每次迭代都輸入訓練集的全部能耗特征向量,計算訓練集的損失和精度,并由 Adam優(yōu)化器調(diào)整網(wǎng)絡權重。每迭代 10次輸入驗證集能耗特征向量,計算驗證集的損失和精度,并保存驗證集精度最高時的網(wǎng)絡參數(shù),作為后期攻擊時的模型。
每次迭代采用訓練集的全部能耗特征向量(以下簡稱為“全批訓練”),這與目前神經(jīng)網(wǎng)絡訓練通常建議采用mini-batch的方法不同。為了防止過擬合,也因為學習數(shù)據(jù)量可能太大,不能一次性加載到內(nèi)存,訓練神經(jīng)網(wǎng)絡時往往采用mini-batch的方式學習,即每次學習迭代時僅采用部分數(shù)據(jù)。但實驗證明這種策略不適用對無掩中間組合值的能耗特征模型的學習。其原因是掩碼產(chǎn)生了大量數(shù)字噪聲,實驗中能耗的信噪比太低,采用mini-batch難以發(fā)現(xiàn)梯度調(diào)整的正確方向。使用mini-batch的實驗中,學習損失和精度一直呈現(xiàn)大幅振蕩,難以收斂,而且mini-batch越小,振蕩越大,收斂越困難。只有當每次迭代輸入全部能耗特征數(shù)據(jù)時,模型的收斂最好。在本文的實驗中,由于顯卡內(nèi)存足夠大,能耗特征值采用32 bit浮點數(shù)表示,全部數(shù)據(jù)可以一次性加載到GPU中運算。
4.6.2 初步的神經(jīng)網(wǎng)絡盲掩碼模板攻擊
首先測試能耗特征數(shù)量與神經(jīng)網(wǎng)絡盲掩碼模板攻擊成功率的關系,其結果如圖8所示。
圖8中,NN20表示采用20條攻擊能跡時基于神經(jīng)網(wǎng)絡的盲掩碼攻擊的成功率,TA20表示采用20條攻擊能跡時基于多元高斯分布的盲掩碼模板攻擊的成功率,在這里作為對比的基準。從圖8中可以看出,當特征數(shù)小于或等于5時,多元高斯模板的成功率高于神經(jīng)網(wǎng)絡;但特征數(shù)超過5個之后,神經(jīng)網(wǎng)絡的成功率迅速上升,而高斯模板的則開始下降。這是因為神經(jīng)網(wǎng)絡不存在病態(tài)協(xié)方差的問題,而其強大的非線性轉換能力,使其可以有效利用更多能耗特征中包含的信息。當特征數(shù)達到 40個時,20條能跡的神經(jīng)網(wǎng)絡攻擊成功率達到100%;但當特征數(shù)超過 60個之后,神經(jīng)網(wǎng)絡的攻擊成功率開始急速下跌。這是因為在神經(jīng)網(wǎng)絡的訓練中產(chǎn)生了嚴重的過擬合。神經(jīng)網(wǎng)絡的學習曲線如圖9所示,可以清楚地看到過擬合現(xiàn)象的發(fā)生。
圖8 神經(jīng)網(wǎng)絡盲掩碼模板攻擊中特征數(shù)量與成功率的關系
圖9 神經(jīng)網(wǎng)絡訓練過程中的過擬合與特征數(shù)量的關系
在圖9中,當僅使用40個能耗特征時(pois=40),驗證集損失持續(xù)下降,沒有出現(xiàn)過擬合。當使用 50個能耗特征時(pois=50),驗證集損失在1 200步之后開始上升,出現(xiàn)輕微的過擬合,但驗證精度超過pois=40的精度。當使用60個能耗特征時(pois=60),過擬合變得比較嚴重,驗證集精度也低于pois=50的精度。由于比例關系,圖9中沒有表示出使用更多特征時的訓練情況。事實是,當特征更多時,過擬合更嚴重,精度下降更大。當使用全部193個特征時,驗證集精度下降到只有0.018 2。
此外,從圖9可以看出,訓練集的最小損失(即出現(xiàn)過擬合時的損失)隨能耗特征的增加而減少,驗證集中pois=40和pois=50也符合這一規(guī)律。這是因為隨著特征數(shù)量的增加,網(wǎng)絡能夠更好地擬合到目標值。然而驗證集中當pois=60時出現(xiàn)例外,其最小損失大于pois=40或pois=50的最小損失值。這一現(xiàn)象說明,導致過擬合的原因是增加能耗特征數(shù)量后,數(shù)據(jù)中的噪聲大量增加,訓練中利用了訓練集中的噪聲特征擬合目標值,導致模型泛化能力大幅下降,從而出現(xiàn)過擬合。
4.6.3 神經(jīng)網(wǎng)絡訓練過擬合的處理
過擬合是機器學習中經(jīng)常出現(xiàn)的現(xiàn)象。常見的防止過擬合的方法有dropout、采用更簡單的模型、使用更多的學習數(shù)據(jù)、權重正則化、在輸入或權重或網(wǎng)絡響應上增加噪聲等。在對能耗數(shù)據(jù)的訓練中,dropout并不適用。根據(jù)4.6.1節(jié)的實驗,能耗特征訓練時必須使用全批訓練才能收斂。dropout丟棄部分數(shù)據(jù),其效果等效于使用mini-batch,會導致學習不收斂。使用更多的數(shù)據(jù)以防止過擬合的本質(zhì)是增加訓練數(shù)據(jù)的覆蓋范圍,避免訓練時僅能訪問部分特征。而能耗數(shù)據(jù)的訓練中出現(xiàn)過擬合的原因是訓練數(shù)據(jù)的噪聲過大,因此使用更多的能跡并不能防止此類過擬合。最后,增加噪聲的方法在這里顯然更不可取,因為能耗數(shù)據(jù)本身信噪比就已經(jīng)非常低了。因此,本文在防止過擬合的實驗中采用L2規(guī)范化。
1) L2規(guī)范化防止過擬合的實驗分析
L2規(guī)范化是在原損失函數(shù)(本文中為交叉熵損失函數(shù))的基礎上,增加連接權重的L2懲罰因子,從而防止權重的方差過大。一般而言,更小的權重方差意味著更簡單的擬合模型,而簡單的擬合模型不易出現(xiàn)過擬合現(xiàn)象。帶有 L2規(guī)范的訓練損失函數(shù)形式為λ= 、 、 、 、 、 進行了防止過擬合的實驗。圖 10顯示了各種λ取值下神經(jīng)網(wǎng)絡的訓練精度(用驗證集精度表示)的對比情況。本文使用全部 193個能耗特征,分別采用0.01 0.02 0.05 0.1 0.2 0.3
圖10 L2規(guī)范化神經(jīng)網(wǎng)絡的訓練結果對比
圖10中NN(50)表示采用50個特征的未經(jīng)L2規(guī)范化的神經(jīng)網(wǎng)絡訓練。NN(50)是 4.6.2節(jié)特征數(shù)量與神經(jīng)網(wǎng)絡攻擊實驗中訓練精度最高、攻擊成功率最好的,在這里作為對比的基準。L2規(guī)范化訓練中,λ= 0.01、 0. 02、 0. 05時網(wǎng)絡訓練均出現(xiàn)大幅過擬合,即未能阻止過擬合,在圖 10中對應的精度也很差;λ= 0.1、 0. 2、 0. 3時網(wǎng)絡訓練均未出現(xiàn)過擬合,但網(wǎng)絡訓練精度仍然不如NN(50)。這是因為在網(wǎng)絡訓練中通過L2規(guī)范化在減小權重變化方差的同時,也弱化了神經(jīng)網(wǎng)絡的擬合能力。由此看出,單純采用 L2規(guī)范化雖然可以防止過擬合,但并不能提高網(wǎng)絡訓練精度。
2) 能耗特征PCA預處理防止過擬合的實驗分析
經(jīng)分析認為,本實驗中出現(xiàn)過擬合的原因在于大量的能耗特征中信息泄露并不明顯。如4.3節(jié)所述,實驗中采用的特征位置來源于二階CPA攻擊成功的樣本位置對。這些樣本位置對按相關系數(shù)降序排序,越靠后的特征,其包含的泄露信息越少,與泄露信息無關的噪聲特征越多。在訓練過程中,當采用更多能耗特征時,訓練數(shù)據(jù)中包含了更多的噪聲更大、信息泄露更不明顯的能耗特征。這些無關的特征被用于訓練集的擬合,雖然提高了訓練集的擬合精度,卻弱化了模型的泛化能力,從而導致過擬合。
對此,可以對數(shù)據(jù)進行PCA預處理,通過提取能耗特征中的主成分,消除部分噪聲,從而達到防止過擬合的目的。但PCA處理不可避免會同時帶來信息的丟失,為了避免出現(xiàn)嚴重的信息丟失,本文提出一種分段PCA處理的方法。分段PCA是指根據(jù)泄露位置對應的Pearson相關系數(shù)(參見4.3節(jié)),將能耗特征分為高泄露和低泄露2個部分,分別采用不同的降維幅度進行PCA處理。高泄露部分降維幅度小,保留大部分特征;低泄露部分降維幅度大,以過濾更多的噪聲。本文對采用全部特征進行PCA預處理(整體PCA預處理)和分段PCA預處理2種方案進行了實驗對比,實驗結果如圖11所示。
圖11 PCA預處理的神經(jīng)網(wǎng)絡訓練結果對比
圖11中,NN(50)表示采用50個特征的無PCA預處理的神經(jīng)網(wǎng)絡攻擊結果,在這里作為對比的基準;PCA(x)表示對全部能耗特征進行PCA預處理,x表示保留方差比例為x的主成分作為特征向量;CCy_(a_b)表示對能耗特征進行分段PCA預處理,y表示劃分高、低泄露特征的相關系數(shù)(以下稱為閾值相關系數(shù));分別采用了0.07、0.08和0.09 3種相關系數(shù)。a和b分別表示高、低泄露特征的PCA處理中的保留方差比例。
從圖11中可以看出,整體PCA處理中,除保留方差比例為0.95外,訓練精度均超過基準。保留方差比例為0.9時,訓練出現(xiàn)輕微過擬合。保留方差比例為 0.95的訓練精度與采用全部特征而不做PCA相近,仍然出現(xiàn)了大幅過擬合,原因是其中包含的噪聲仍然過多。分段 PCA預處理中,閾值相關系數(shù)為 0.09時,訓練達到了最高驗證精度20.79%。閾值相關系數(shù)為0.07和0.08時,訓練均出現(xiàn)了不同程度的較弱的過擬合。
3) 結合PCA預處理和L2規(guī)范化防止過擬合實驗
鑒于 PCA處理中仍然存在一定的過擬合,因此使用L2規(guī)范化進一步優(yōu)化網(wǎng)絡訓練。以下實驗對圖11中的幾種PCA預處理方案均采用L2規(guī)范化重新訓練網(wǎng)絡,其中,L2規(guī)范化的系數(shù)λ根據(jù)幾種方案中出現(xiàn)的過擬合程度來取值,過擬合嚴重的取 0.1,比較嚴重的取 0.01,非常微弱的取0.001,然后根據(jù)訓練情況調(diào)整λ。圖12顯示了各PCA預處理方案的最佳λ的L2規(guī)范化訓練精度與未采用L2規(guī)范化的訓練精度對比。
圖12 結合PCA預處理和L2規(guī)范化防過擬合的神經(jīng)網(wǎng)絡訓練
從圖 12的實驗結果可以看出,選擇恰當?shù)摩藭r,L2規(guī)范化訓練均可以提高訓練精度。且過擬合越嚴重,訓練精度提高越大。即使對于沒有出現(xiàn)明顯過擬合的情況,如CC0.09_(0.95_0.85),L2規(guī)范化訓練仍然能夠提高精度。
4.6.4 基于神經(jīng)網(wǎng)絡的盲掩碼攻擊實驗
本實驗采用最佳神經(jīng)網(wǎng)絡訓練結果作為模板,進行了盲掩碼模板攻擊,其結果與使用已知掩碼的模板攻擊的比對如圖 13所示。已知掩碼的模板攻擊是指在訓練階段和攻擊階段,能跡使用的掩碼均是已知的。這對加掩防護的加密設備不是一種現(xiàn)實可行的攻擊方法,但它模擬了對無掩碼防護的加密設備的模板攻擊,由于掩碼在此并未起到防護作用,因此其攻擊成功率應當相當高。本文選擇這種攻擊模式是為了驗證基于神經(jīng)網(wǎng)絡的盲掩碼攻擊的真實效果。圖13中,TA_WITH_MASK表示使用已知掩碼的模板攻擊,NN_NOMASK表示基于神經(jīng)網(wǎng)絡的盲掩碼模板攻擊。
從圖 13可以看出,正確訓練的神經(jīng)網(wǎng)絡盲掩碼攻擊的成功率已接近對無掩碼防護的模板攻擊成功率。4條攻擊能跡時,攻擊成功率已達到90%以上;8條攻擊能跡已達到100%的成功率;3條能跡的猜測熵[44](多次攻擊中正確密鑰的平均排名,最小為1)為2.12,已在實際可攻擊的范圍內(nèi);最少一條能跡就能攻擊成功,成功率為18.4%。
圖13 神經(jīng)網(wǎng)絡盲掩碼攻擊的成功率與攻擊能跡數(shù)的關系
相比現(xiàn)有的針對加掩防護加密算法的模板攻擊,盲掩碼模板攻擊可以有效地降低對加掩防護加密算法的模板攻擊的條件和難度?,F(xiàn)有的技術均要求攻擊者能夠了解設備在每次加密時使用的隨機掩碼。這意味著攻擊者必須能夠完全控制訓練設備,可以修改設備上加密算法的實現(xiàn)代碼,從而在每次加密時輸出使用的隨機掩碼,而且,為了保證模板的對真實設備攻擊時的有效性,修改代碼時還要盡可能避免或者減小對能耗的影響。但由于訓練設備與被攻擊設備的加密實現(xiàn)不可能完全相同,其模板在攻擊時往往無效或攻擊效率低下。因此現(xiàn)有對加掩防護加密算法的模板攻擊技術實施的條件高、難度大、攻擊效果不穩(wěn)定。而且當加密算法采用硬件實現(xiàn)時,由于無法獲得訓練設備的掩碼,因而無法使用現(xiàn)有的技術實施模板攻擊。而本文提出的盲掩碼模板攻擊可以在攻擊者完全不了解掩碼的情況下,僅使用一臺已知密鑰的設備作為訓練設備,訓練或統(tǒng)計出模板,以此實施模板攻擊。這一方法顯著降低了訓練和攻擊所需的條件。同時,由于訓練設備與被攻擊設備的實現(xiàn)完全相同,可以有效保證該方法得到的模板在攻擊時的有效性。
本文的實驗分析證明了盲掩碼模板攻擊具有較高的攻擊效率。與同樣不需要了解掩碼的二階CPA攻擊相比,盲掩碼模板攻擊需要的能跡數(shù)小2個數(shù)量級,達到100%攻擊成功率時,二階CPA需要1 500條攻擊能跡,基于神經(jīng)網(wǎng)絡的盲掩碼攻擊僅需8條能跡,而所需的代價很小,僅需要一臺已知密鑰的設備。
此外,實驗結果表明,基于神經(jīng)網(wǎng)絡的盲掩碼攻擊比基于統(tǒng)計的一元或多元高斯模型的盲掩碼攻擊更為有效,前者達到 100%攻擊成功率所需的能跡數(shù)為8條,而后者需要100條。但對低信噪比數(shù)據(jù)的神經(jīng)網(wǎng)絡訓練極易出現(xiàn)無法收斂或過擬合,需要采用一系列措施保證神經(jīng)網(wǎng)絡得到有效訓練。實驗表明,對于信噪比很低的能耗數(shù)據(jù),神經(jīng)網(wǎng)絡訓練時必須采用全批數(shù)據(jù)訓練才能收斂。本研究認為,這一結論并不局限于對能耗數(shù)據(jù)的神經(jīng)網(wǎng)絡訓練,而是適用于各類極低信噪比數(shù)據(jù)的神經(jīng)網(wǎng)絡訓練。此外,為防止神經(jīng)網(wǎng)絡訓練出現(xiàn)過擬合,本文提出了對能耗特征進行分段PCA預處理和L2規(guī)范化的訓練方案。該方案能夠最大限度地利用低信噪比數(shù)據(jù)中非常有限的信息特征,同時防止噪聲產(chǎn)生的過擬合。
需要說明的是,盲掩碼模板攻擊,特別是基于神經(jīng)網(wǎng)絡的盲掩碼模板攻擊,其訓練階段需要較長時間。因為盲掩碼模板攻擊實施的前提是可以對加掩防護的加密設備成功實施高階CPA攻擊。高階CPA攻擊在這里起到2個作用,一是驗證盲掩碼攻擊所攻擊的目標中間組合值是否存在信息泄露,二是提供了盲掩碼模板攻擊所需要的信息泄露位置。高階CPA非常耗時,此外,神經(jīng)網(wǎng)絡的超參數(shù),如網(wǎng)絡隱層大小、學習率,PCA處理中的保留方差比例、L2規(guī)范化因子λ等,也需要通過多次實驗才能找到最佳的設置,這些都導致模板學習需要較長的時間。但現(xiàn)有的對加掩防護的模板攻擊技術也都需要較長的準備和訓練時間,因為訓練前需要修改訓練設備的代碼以便輸出加密時使用的隨機掩碼,而且還要防止修改的代碼對加密過程的能耗造成過大的影響,這一準備工作需要耗費大量時間。同時,現(xiàn)有技術中最佳的模板模型也是基于神經(jīng)網(wǎng)絡的,其訓練同樣需要較長時間。雖然由于其數(shù)據(jù)不含掩碼產(chǎn)生的數(shù)字噪聲,能耗數(shù)據(jù)信噪比較高,訓練相對容易,但需要創(chuàng)建更多的模板(需要分別對掩碼和中間值創(chuàng)建模板),這意味著需要較長的訓練時間。由于修改設備代碼的時間是不確定的,因此無法對本文的盲掩碼模板攻擊與現(xiàn)有技術的訓練時間進行定量比較,但定性上看,盲掩碼模板攻擊相對于已知掩碼的模板攻擊,其效率至少是可比的,如果不是更高的話。在盲掩碼模板攻擊中,由于密鑰已知因而不需要猜測,二階CPA可以在幾十分鐘到數(shù)小時內(nèi)完成,而已知掩碼模版攻擊則需要花費數(shù)小時甚至數(shù)天來改寫設備代碼。
綜上所述,盲掩碼模板攻擊可以有效地降低對加掩防護加密算法的模板攻擊的條件和難度,其中基于神經(jīng)網(wǎng)絡網(wǎng)的盲掩碼模板攻擊具有很高的攻擊成功率。相對于現(xiàn)有技術,本文方案付出的訓練時間上的代價并不顯著。