劉林云,陳開顏,李雄偉,張 陽,劉俊延
(陸軍工程大學(xué)石家莊校區(qū) 裝備模擬訓(xùn)練中心,河北 石家莊 050003)
信息時(shí)代,信息安全日益成為人們關(guān)注的焦點(diǎn),嵌入加密算法的密碼芯片成為信息安全的有效保障。雖然加密算法在數(shù)學(xué)理論上安全,但破密者仍可以通過旁路密碼分析手段獲取密鑰和加密信息,對(duì)信息安全造成重大威脅。旁路分析(Side Channel Analysis,SCA)[1]在密碼學(xué)中是指繞過對(duì)加密算法的繁瑣分析,利用密碼算法的硬件實(shí)現(xiàn)在運(yùn)算中泄露的信息,如執(zhí)行時(shí)間、功耗、電磁輻射等,結(jié)合統(tǒng)計(jì)理論快速地破解密碼系統(tǒng)。這類新發(fā)現(xiàn)的物理泄漏信息被研究學(xué)者稱為旁路信息(Side-channel Leakage),與之對(duì)應(yīng)的攻擊方法稱為旁路攻擊(Side-channel Attack)。
旁路密碼分析方法分為建模方法和非建模方法。非建模類方法包括差分能量攻擊[2](Differential Power Attack,DPA)、相關(guān)系數(shù)攻擊[3](Correlation Power Attack,CPA)以及互信息攻擊[4](Mutual Information Attack,MIA);建模類方法包含模板攻擊[5](Template Attack,TA)、基于多層感知器的旁路密碼攻擊(MLPSCA)以及基于卷積神經(jīng)網(wǎng)絡(luò)的旁路密碼攻擊(CNNSCA)。雖然非建模方法攻擊方式簡單直接,但旁路信號(hào)微弱或環(huán)境噪聲過大會(huì)造成攻擊失效,而建模方法能有效分析旁路信號(hào)特征,預(yù)先獲得攻擊設(shè)備的加密知識(shí),更易破獲密鑰。
早期,從信息論角度看,如果有大量的旁路泄露信號(hào)(簡稱能量跡),那么傳統(tǒng)建模方法中破密效果最好的是TA[5-9]。但研究人員隨后發(fā)現(xiàn),TA處理高維度旁路信號(hào)時(shí)存在統(tǒng)計(jì)困難,也無法攻擊帶防護(hù)加密實(shí)現(xiàn)。中期,隨著計(jì)算機(jī)硬件性能的提升和人工智能領(lǐng)域機(jī)器學(xué)習(xí)的興起,受監(jiān)督機(jī)器學(xué)習(xí)算法在其他領(lǐng)域中能有效分析類似能量跡的一維數(shù)據(jù),一些研究人員開始提出基于機(jī)器學(xué)習(xí)的旁路密碼分析(MLSCA)[10-12],這些方法主要針對(duì)帶加密算法AES的設(shè)備,自此傳統(tǒng)建模方法向結(jié)合機(jī)器學(xué)習(xí)算法的新型建模方法轉(zhuǎn)變。新型建模方法MLPSCA在攻擊性能上超越了傳統(tǒng)建模方法[8,13],克服了TA不能處理高維度旁路信號(hào)的缺陷,但攻擊帶防護(hù)的加密實(shí)現(xiàn)時(shí)也失去效力。如今,隨著機(jī)器學(xué)習(xí)的發(fā)展,在圖像分類、目標(biāo)識(shí)別上性能表現(xiàn)優(yōu)異的深度學(xué)習(xí)技術(shù)開始盛行,已有研究表明深度學(xué)習(xí)下的卷積神經(jīng)網(wǎng)絡(luò)算法應(yīng)用在旁路分析上能產(chǎn)生較好的破密性能[14-15],而且CNNSCA能有效攻擊帶防護(hù)的加密實(shí)現(xiàn)。
目前在SCA領(lǐng)域,對(duì)傳統(tǒng)和新型建模方法的匯總分析較少,或者不夠完善,本文將展開旁路建模方法的研究綜述,研究不同時(shí)期建模類SCA分析方法的性能特點(diǎn),這對(duì)如何提升信息安全防護(hù)有重要的啟發(fā)作用。
本文使用SCA領(lǐng)域已公開的數(shù)據(jù)集做研究分析,采用ASCAD[15]數(shù)據(jù)庫,并使用統(tǒng)一的符號(hào)來表示能量跡、密鑰、明文以及能量跡模型。
最新公布的ASCAD數(shù)據(jù)庫采集的目標(biāo)是帶一階掩碼防護(hù)的AES-128實(shí)現(xiàn),即8 bit AVR微控制器(ATmega8515),其中能量跡是由采集的電磁輻射轉(zhuǎn)換的數(shù)據(jù)信號(hào)。敵手針對(duì)AES第一輪加密的第3個(gè)S盒輸出采集信號(hào),并針對(duì)第一個(gè)AES密鑰字節(jié)發(fā)起攻擊,該數(shù)據(jù)庫遵循MNIST數(shù)據(jù)庫規(guī)則,共提供4個(gè)數(shù)據(jù)集,每個(gè)數(shù)據(jù)集有60 000條能量跡,其中50 000條能量跡用于分析/訓(xùn)練,10 000條能量跡用于測(cè)試/攻擊。前3個(gè)ASCAD數(shù)據(jù)集分別代表設(shè)置3種不同隨機(jī)時(shí)延防護(hù)對(duì)策的加密實(shí)現(xiàn)泄露,分別用信號(hào)偏移desync=0,50,100來表示這3個(gè)帶掩碼和時(shí)延2種策略的數(shù)據(jù)集。在前3類數(shù)據(jù)集中所有能量跡都包含700個(gè)特征點(diǎn),這些特征點(diǎn)是在包含100 000個(gè)特征點(diǎn)的原始能量跡里選取,選取依據(jù)是信號(hào)尖峰最大的位置。在掩碼已知的情況下,數(shù)據(jù)集的信噪比最大值可達(dá)0.8,而在掩碼未知的情況下幾乎為0。最后一個(gè)ASCAD數(shù)據(jù)集存放的是原始能量跡。
能量跡是一維向量。用字母χ表示能量跡的集合,大寫字母X表示集合中帶有值的隨機(jī)能量跡變量,小寫字母x表示單個(gè)變量的隨機(jī)分量,則能量跡表示為X={x1,x2,…,xD},X∈RN×D,其中D是每條能量跡時(shí)間樣本數(shù)或興趣點(diǎn)數(shù)(在機(jī)器學(xué)習(xí)中稱為特征點(diǎn)),N表示能量跡采樣總數(shù)。令k*表示真實(shí)密鑰,k表示任一可能的假設(shè)密鑰,k∈K,K={k0,k1,…,k255},k服從均勻分布,大小為一個(gè)字節(jié)。令隨機(jī)變量P表示輸入的明文,P={p1,p2,…,pN},p服從均勻分布。敵手攻擊密鑰時(shí),將能量跡建模為M:{X|(P,K)}(在機(jī)器學(xué)習(xí)中稱為標(biāo)簽),該模型代表假設(shè)密鑰k和已知明文p在執(zhí)行加密算法后產(chǎn)生的能量跡X,該模型與執(zhí)行的加密操作密切相關(guān),從而與加密操作中的密鑰密切相關(guān)。 后文中將用M代替M:{X|(P,K)}。
建模類旁路分析原理主要是指攻擊方法的攻擊原理,為了量化評(píng)估攻擊方法的性能好壞,通常使用破密性能評(píng)估方法來對(duì)攻擊方法進(jìn)行評(píng)估,以此促進(jìn)攻擊方法的改進(jìn)和優(yōu)化。
2.1.1 攻擊原理
(1) 旁路泄露采集
旁路攻擊者在掌握加密算法知識(shí)的前提下,在密碼設(shè)備副本上采集N條表征泄漏的能量跡χ={X1,X2,…,XN}作為建模集。能量跡Xi由2部分組成:對(duì)密碼設(shè)備電路中一個(gè)特定操作進(jìn)行仿真形成的能量跡和服從高斯分布的電子噪聲(即高斯噪聲),電子噪聲是指在同等采樣條件下多次采集的能量跡中產(chǎn)生的波動(dòng)。能量跡可表示為:
Xi=C(pi⊕k*)+oi,i∈N。
(1)
O={o1,o2,…,oN}表示高斯噪聲,C()表示輪密鑰加操作(AES-128算法第一輪S盒之前的輪密鑰加操作)。攻擊者在目標(biāo)設(shè)備副本上測(cè)量額外的Q條能量跡χ={X1,X2,…,XQ}作為攻擊集。
(2) 能量跡建模
敵手攻擊AES-128實(shí)現(xiàn)時(shí),按密鑰的每個(gè)字節(jié)依次展開攻擊,每個(gè)字節(jié)對(duì)應(yīng)漢明重量(Hamming Weight,HW)模型分為9類模板。對(duì)于分類性能強(qiáng)大的卷積神經(jīng)網(wǎng)絡(luò),256個(gè)分類任務(wù)很小,因此CNNSCA中直接使用256類標(biāo)簽(類似傳統(tǒng)建模方法的模板)。重新定義能量跡模型為M:{X|(P,K)},S={s1,s2,…,sN},S表示AES-128算法的S盒。式(1)可轉(zhuǎn)化為:
Xi=S[C(pi⊕k*)]+oi,i∈N。
(2)
傳統(tǒng)建模方法中,敵手通常選擇敏感中間值的HW模型,通過減少模板數(shù)量來避免統(tǒng)計(jì)和計(jì)算復(fù)雜性。由于HW模型對(duì)能量跡的合并建模在本質(zhì)上不平衡,嚴(yán)重妨礙機(jī)器學(xué)習(xí)/深度學(xué)習(xí)的性能[16],因此新型建模方法直接使用敏感中間值模型[17],該能量跡模型需要較大的分析集,可避免建模不平衡問題。
(3) 猜測(cè)密鑰
gk:(X,P)PDF[Xi|(P,K)=(p,k)],i∈N,
(3)
式中,PDF表示概率分布函數(shù)(Probability Distribution Function),當(dāng)采用中間值能量跡模型時(shí),M:{X|(P,K)},式(3)可改寫為:
gk:(X,P)PDF[Xi|S[C(P,K)]=si],i∈N。
(4)
綜合上述3個(gè)步驟,可定義建模類旁路密碼分析模型,如圖1所示。
圖1 建模類旁路密碼分析模型
2.1.2 破密性能評(píng)估
Standaert等人[18]首次提出了旁路密碼分析的評(píng)估方法,將評(píng)估指標(biāo)分為2類:第1類是安全指標(biāo),包含成功率、猜測(cè)熵(Guess Entropy,GE)以及計(jì)算時(shí)間[19];第2類是信息指標(biāo),包含互信息、條件熵與混淆矩陣[20-21]。通常安全員在評(píng)估CNNSCA破密性能時(shí)考慮兩方面指標(biāo):一是建模時(shí)神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練準(zhǔn)確率Acc指標(biāo)[22];另一個(gè)是攻擊階段采用旁路密碼分析中的安全指標(biāo)GE[18-19]。
安全指標(biāo)中,成功率用來衡量敵手的攻擊結(jié)果,通過對(duì)一定數(shù)量能量跡的分析,來反應(yīng)成功獲取密鑰的能力;而GE用來衡量密鑰破解效率,通過敵手在攻擊階段僅需少能量跡就能破密,來反應(yīng)破密方法的效率。在旁路分析領(lǐng)域,評(píng)估SCA破密性能普遍使用GE指標(biāo),GE是通過一個(gè)自定義的秩函數(shù)R(·)得到,定義為:
(5)
敵手使用建模數(shù)據(jù)集Dtrain,建立旁路分析模型g,在攻擊階段使用攻擊數(shù)據(jù)集Dtest中n個(gè)能量跡樣本進(jìn)行n次攻擊,每次攻擊后得到256類假設(shè)密鑰的分布概率對(duì)數(shù)值,組成向量di=[di[1],di[2],…,di[k]],其索引按假設(shè)密鑰鍵空間正序排列(索引從零開始計(jì)數(shù)),其中i∈n,k∈K,K是假設(shè)密鑰的鍵空間。每次攻擊結(jié)果進(jìn)行累加。然后,秩函數(shù)R(·)將向量di的所有元素按值的大小逆序排序,并保持向量中每個(gè)元素對(duì)應(yīng)索引在排序前后的位置與元素的位置一致,得到新的排名向量Di=[Di[1],Di[2],…,Di[k]],其中每個(gè)元素Di[k]包含2個(gè)值k和d[k],最后輸出已知密鑰k*概率對(duì)數(shù)元素在Di中的索引,即猜測(cè)熵GE(d[k*])。根據(jù)本文2.1.1節(jié)的詳細(xì)敘述,在第i次攻擊時(shí),真實(shí)密鑰的能量跡模型匹配率應(yīng)該最高,其GE(d[k*])的排名就靠前。猜測(cè)熵就是每次攻擊輸出的GE(d[k*])排名,在n次攻擊中,破密方法性能越好,效率越高,GE(d[k*])的排名越快收斂于零。說明在第i次攻擊時(shí),猜測(cè)熵收斂于零并在后續(xù)攻擊中持續(xù)收斂,敵手破解密鑰就只需要進(jìn)行i次攻擊,即只需要i條能量跡就能破密。式(5)可改寫為:
(6)
模板攻擊又稱為多元高斯模板攻擊,最早由Chari等人[5]提出,遵循建模類旁路攻擊原理,已在本文2.1.1節(jié)詳細(xì)說明。敵手在被攻擊的加密設(shè)備副本上,分別對(duì)不同的明文Pi,i∈N和密鑰kj,j∈K(K=256)執(zhí)行特定的指令序列,并記錄對(duì)應(yīng)的能量跡,能量跡按時(shí)序切割為多維度的特征點(diǎn)。然后把與(Pi,kj)對(duì)應(yīng)的能量跡按256類密鑰k分組,計(jì)算每組能量跡均值向量E和協(xié)方差矩陣C。每一組明文和密鑰(Pi,kj)都可以得到一個(gè)模板H:(E,C)。最后利用所建模板來破獲密鑰。高斯模板攻擊的詳細(xì)步驟如下:
(1) 泄露采集及特征提取
① 在實(shí)驗(yàn)裝置上對(duì)每個(gè)密鑰k(k∈K)與Q個(gè)隨機(jī)明文執(zhí)行加密操作,分別采集大量能量跡,得到256個(gè)密鑰的各自樣本集X。
② 計(jì)算每個(gè)k操作下能量跡樣本的平均值E1,E2,…,EK(K=256)。
③ 計(jì)算E1~Ek之間兩兩差值之和,選擇差值中差異大的特征點(diǎn)記為P1,P2,…,PN,用這N個(gè)點(diǎn)建立高斯模板。通過對(duì)高維度的能量跡進(jìn)行特征提取來降低數(shù)據(jù)維度的方法,雖然造成極小的精度損失,但極大地減少了計(jì)算開銷。
(2) 構(gòu)建能量跡特征模板
① 對(duì)于每個(gè)密鑰,樣本集X的N維噪聲向量為:
Ni(X)=(X[P1]-Ei[P1],...,X[PN]-Ei[PN])。
(7)
② 計(jì)算每個(gè)樣本集X的噪聲向量協(xié)方差矩陣:
∑Ni(u,v)=cov(Ni(Pu),Ni(Pv)),u,v∈N。
(8)
由上得到每個(gè)密鑰k的能量跡模板,記為(Ei,∑N)。
(3) 利用模板實(shí)施攻擊
用一條能量跡T與模板的均值向量Ei做差,得到噪聲向量x,該噪聲屬于高斯噪聲,文獻(xiàn)[1]中已論證。然后使用模板的協(xié)方差矩陣ΣNi,結(jié)合N維多元高斯概率分布函數(shù)pNi(x)計(jì)算噪聲向量x的概率,函數(shù)定義如下:
(9)
式中,|ΣNi|表示ΣNi的行列式;Σ-1Ni表示ΣNi的逆。對(duì)能量跡T和每一個(gè)模板進(jìn)行計(jì)算,得到概率序列P(T|P,kj).概率值的大小反映了T與模板的匹配程度。根據(jù)極大似然判定準(zhǔn)則,匹配概率最大的模板,其相關(guān)的密鑰就是正確密鑰。
早期Chari等人通過標(biāo)準(zhǔn)模板攻擊成功破獲RC4流密碼,并且在理論上提出模板攻擊為當(dāng)時(shí)最強(qiáng)的旁路攻擊。文獻(xiàn)[9]建議僅用一個(gè)模板的協(xié)方差矩陣應(yīng)對(duì)統(tǒng)計(jì)困難,但破密效果一般。在文獻(xiàn)[1]中提出一種折中的辦法,基于漢明重量/距離的模板攻擊,將加密中間值轉(zhuǎn)換為漢明重量,建立對(duì)應(yīng)9類模板,減少了統(tǒng)計(jì)困難,也提高了計(jì)算效率和破密性能。然而在具體實(shí)施時(shí),模板攻擊存在3類缺陷:① 計(jì)算復(fù)雜性。如計(jì)算過程中出現(xiàn)奇異矩陣,選擇高維特征點(diǎn)建模時(shí)計(jì)算和存儲(chǔ)壓力過大,獲取能量跡有限時(shí)無法使用較多特征點(diǎn)構(gòu)建模板等。② 模板攻擊的實(shí)現(xiàn)依賴多元高斯分布概率密度函數(shù),但目前沒有嚴(yán)格的證明,此方法能最好地刻畫捕獲數(shù)據(jù)。③ 在攻擊帶防護(hù)策略的加密實(shí)現(xiàn)時(shí),模板攻擊表現(xiàn)一般。
多層神經(jīng)網(wǎng)絡(luò),也稱多層感知器(Multi-Layer Perceptrons,MLP),這種通過增加網(wǎng)絡(luò)層數(shù)來提高學(xué)習(xí)性能的策略稱為深度學(xué)習(xí)。基于多層感知器的旁路分析(MLPSCA),是利用BP算法[23],在幾個(gè)堆疊的全連接層上對(duì)訓(xùn)練/建模數(shù)據(jù)集進(jìn)行訓(xùn)練,得到特征信號(hào)的權(quán)值模板。然后用分析/攻擊數(shù)據(jù)集上的樣本,與權(quán)值模板進(jìn)行非線性計(jì)算,并輸出特征向量。最后對(duì)特征向量分類回歸,得到每個(gè)標(biāo)簽的匹配概率,該匹配概率在機(jī)器學(xué)習(xí)中稱為預(yù)測(cè)值,根據(jù)極大似然準(zhǔn)則,將預(yù)測(cè)值最高的標(biāo)簽密鑰判定為正確密鑰,到此MLPSCA攻擊完成。Benadjila等人[15]提出MLPSCA的MLP模型結(jié)構(gòu)如圖2所示。
圖2 MLPSCA的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
該網(wǎng)絡(luò)結(jié)構(gòu)由6個(gè)全連接層堆疊構(gòu)成,對(duì)原始輸入信號(hào)做一定的降維預(yù)處理,在最后一個(gè)FC層使用softmax函數(shù)(該層也稱SOFT層),得到依賴整個(gè)輸入的各個(gè)標(biāo)簽分類概率值,選擇最大值作為全局分類結(jié)果。
目前MLP已成功應(yīng)用于旁路密碼分析。Gilmore[24]使用神經(jīng)網(wǎng)絡(luò)破解了DPA-V4[25]功耗數(shù)據(jù)集(帶掩碼防護(hù))。賽峰集團(tuán)Maghrebi[26]分別使用TA、MLSCA、MLPSCA對(duì)DPAContest數(shù)據(jù)集進(jìn)行攻擊,結(jié)果顯示MLPSCA攻擊效果優(yōu)于MLSCA與TA,且成功率更高。Martinasek及其同事[27-29]在AES-128加密設(shè)備上實(shí)驗(yàn),將MLPSCA與TA、隨機(jī)攻擊、MLSCA等旁路攻擊方法進(jìn)行比較,結(jié)果發(fā)現(xiàn)MLPSCA破密性能優(yōu)于TA等傳統(tǒng)旁路攻擊方法,并且也發(fā)現(xiàn)MLPSCA破密性能比基于機(jī)器學(xué)習(xí)算法(SVM和隨機(jī)森林等)的旁路攻擊效果更好。但MLPSCA的MLP網(wǎng)絡(luò)模型參數(shù)化程度高,也沒有形成網(wǎng)絡(luò)模型超參數(shù)的泛化標(biāo)準(zhǔn),導(dǎo)致現(xiàn)實(shí)中該方法的攻擊效果并不穩(wěn)定。
卷積神經(jīng)網(wǎng)絡(luò)[30]是人工智能領(lǐng)域比較成功的算法之一,是一種新型結(jié)構(gòu)的多層神經(jīng)網(wǎng)絡(luò)。其設(shè)計(jì)受到視神經(jīng)感受野研究[31-32]的啟發(fā),CNN的核心部件卷積核是局部感受野的結(jié)構(gòu)體現(xiàn)。它屬于反向傳播訓(xùn)練的深度網(wǎng)絡(luò),利用數(shù)據(jù)二維空間關(guān)系減少需要學(xué)習(xí)的參數(shù)數(shù)目,在一定程度上提高了BP算法的訓(xùn)練性能。CNN區(qū)別于MLP的地方主要是增加了卷積塊結(jié)構(gòu)。
在卷積塊中,輸入數(shù)據(jù)的一小部分作為網(wǎng)絡(luò)結(jié)構(gòu)的原始輸入,數(shù)據(jù)信息在網(wǎng)絡(luò)中逐層向前傳遞,每層通過若干卷積核對(duì)輸入的數(shù)據(jù)進(jìn)行特征提取[33-34]。
CNN的卷積塊由卷積層CONV、批量歸一化層BN、激活層ACT構(gòu)成,在該塊之后通常會(huì)添加一個(gè)池化層POOL以減少特征維度,組成的新卷積塊在網(wǎng)絡(luò)模型中重復(fù)n次,直到獲得合理大小的輸出為止。然后,引入n個(gè)全連接層FC,在最后一個(gè)FC層使用分類函數(shù)softmax,最后輸出分類預(yù)測(cè)結(jié)果。旁路密碼攻擊的卷積網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 旁路攻擊場景下的卷積網(wǎng)絡(luò)結(jié)構(gòu)
基于卷積神經(jīng)網(wǎng)絡(luò)的旁路密碼分析CNNSCA涉及的算法原理有以下幾點(diǎn):
① 卷積計(jì)算
將卷積核在一維向量上滑動(dòng),每次移動(dòng)的步數(shù)稱為步長,每次滑動(dòng)進(jìn)行卷積計(jì)算得到一個(gè)數(shù)值,一輪計(jì)算完成后得到一個(gè)表示向量特征的特征向量。數(shù)值運(yùn)算規(guī)則是將一個(gè)一維卷積核與一個(gè)一維向量對(duì)應(yīng)位置的數(shù)值相乘然后再求和。
② 池化計(jì)算
池化有最大池化(Max-Pooling)、平均池化(Mean-Pooling)和隨機(jī)池化(Stochastic Pooling)3種方式。最大池化是提取池化窗口內(nèi)數(shù)值的最大值,平均池化是提取池化窗口內(nèi)數(shù)值的平均值,隨機(jī)池化是隨機(jī)提取池化窗口內(nèi)的數(shù)值。
③softmax函數(shù)
該函數(shù)對(duì)輸出值進(jìn)行歸一化操作,把所有輸出值都轉(zhuǎn)化為概率,概率之和為1,softmax的公式為:
(10)
式中,xi為softmax層第i個(gè)神經(jīng)元的輸入;xj為softmax層所有神經(jīng)元的輸入;Σj是對(duì)xj的計(jì)算求和。函數(shù)結(jié)果作為第i個(gè)神經(jīng)元標(biāo)簽的擬合概率。
④ 權(quán)值調(diào)整原理
使用代價(jià)函數(shù)與梯度下降算法[23],網(wǎng)絡(luò)模型每訓(xùn)練一次,權(quán)值往誤差減少的方向自動(dòng)調(diào)整一次,這樣重復(fù)訓(xùn)練調(diào)參,直到所有迭代結(jié)束,權(quán)值調(diào)整完成。
本文實(shí)驗(yàn)涉及算法均使用Python語言編程,并使用深度學(xué)習(xí)架構(gòu)Keras庫[35](版本2.4.3)或直接使用GPU版Tensorflow庫[36](版本2.2.0)。實(shí)驗(yàn)在配備16 GB RAM和8GB GPU(Nvidia GF RTX 2060)的普通計(jì)算機(jī)上進(jìn)行。
基于本文2.2節(jié)TA存在的問題,2.3節(jié)MLPSCA存在的缺陷,為驗(yàn)證新型旁路分析方法的性能優(yōu)勢(shì),實(shí)驗(yàn)將采用傳統(tǒng)建模方法中表現(xiàn)最好的基于HW的TA[1],與Benadjila等人[15]提出的MLPSCA和CNNSCA方法進(jìn)行破密性能比較。以下3個(gè)實(shí)驗(yàn)使用本文1.1節(jié)的ASCAD公共數(shù)據(jù)集,并使用本文2.1.2節(jié)的猜測(cè)熵評(píng)估方法,進(jìn)行破密性能評(píng)估。
實(shí)驗(yàn)1對(duì)已知掩碼的ASCAD數(shù)據(jù)集進(jìn)行攻擊,代表攻擊無防護(hù)狀態(tài)的加密實(shí)現(xiàn),目的是檢測(cè)旁路分析方法有效性。實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 TA、MLPSCA、CNNSCA攻擊無防護(hù)設(shè)備的猜測(cè)熵
由圖4可以看出,新型旁路分析方法MLPSCA、CNNSCA的猜測(cè)熵收斂情況明顯優(yōu)于傳統(tǒng)旁路分析方法TA。
實(shí)驗(yàn)2在實(shí)驗(yàn)1的基礎(chǔ)上對(duì)已知掩碼的ASCAD數(shù)據(jù)集添加高斯噪聲,代表攻擊有環(huán)境噪聲干擾的加密實(shí)現(xiàn)。添加高斯噪聲的方法是在實(shí)驗(yàn)1使用的原數(shù)據(jù)集基礎(chǔ)上任選1/3的能量跡,然后在這1/3的能量跡上逐條添加高斯分量,用它模擬采集信號(hào)時(shí)的高斯噪聲[1]。在一維旁路信號(hào)中添加高斯噪聲的措施,類似于二維圖像數(shù)據(jù)在進(jìn)行模型訓(xùn)練之前的數(shù)據(jù)增強(qiáng)手段[32],數(shù)據(jù)增強(qiáng)有助于避免CNN模型學(xué)習(xí)不相關(guān)的特征,提升CNN模型的整體性能。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 TA、MLPSCA、CNNSCA攻擊加高斯噪聲數(shù)據(jù)集的猜測(cè)熵
由圖5可以看出,CNNSCA的猜測(cè)熵明顯收斂最快,在未加高斯噪聲前其猜測(cè)熵完全收斂至零的攻擊次數(shù)是650左右(如圖4所示),添加之后是270左右(如圖5所示)。說明對(duì)旁路信號(hào)使用數(shù)據(jù)增強(qiáng)手段,能提高原CNNSCA模型的性能。而TA的猜測(cè)熵收斂情況變差,向下收斂后,總是在排名零附近波動(dòng)。MLPSCA的猜測(cè)熵收斂情況與實(shí)驗(yàn)1相比也變差。
實(shí)驗(yàn)3在實(shí)驗(yàn)1的基礎(chǔ)上,改換信號(hào)偏移desync=100的ASCAD數(shù)據(jù)集攻擊,代表攻擊有時(shí)延防護(hù)對(duì)策的加密設(shè)備。實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 TA、MLPSCA、CNNSCA攻擊帶防護(hù)設(shè)備的猜測(cè)熵
由圖6可以看出,只有CNNSCA的猜測(cè)熵依然往真實(shí)密鑰的排名方向收斂,TA、MLPSCA的猜測(cè)熵沒有收斂趨勢(shì),攻擊已經(jīng)失效。
本文介紹了不同時(shí)期破密性能較好的3個(gè)建模方法(TA、MLPSCA、CNNSCA),并通過同一數(shù)據(jù)庫的不同數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)攻擊理想低噪的旁路信號(hào)時(shí),新型建模方法MLPSCA、CNNSCA破密性能明顯優(yōu)于傳統(tǒng)模板攻擊TA。在新型建模方法中,比較MLPSCA與CNNSCA依賴的網(wǎng)絡(luò)模型,發(fā)現(xiàn)MLP模型僅關(guān)注輸入數(shù)量級(jí)不考慮數(shù)據(jù)拓?fù)浣Y(jié)構(gòu),而CNN具有更為魯棒的結(jié)構(gòu)特性,對(duì)失真功耗數(shù)據(jù)依舊具有良好的識(shí)別性能。因此,CNNSCA能有效攻擊因噪聲和防護(hù)對(duì)策而產(chǎn)生畸變的旁路信號(hào)。深度學(xué)習(xí)的CNN算法是當(dāng)今人工智能領(lǐng)域比較成熟和熱門的算法,CNNSCA雖然成功攻擊了無防護(hù)的加密設(shè)備,但攻擊有防護(hù)的加密設(shè)備時(shí),其破密性能仍有很大提升空間。今后可以利用CNN的優(yōu)異特性,繼續(xù)探索更適合攻擊帶防護(hù)設(shè)備的CNN結(jié)構(gòu),這對(duì)高效攻擊帶防護(hù)設(shè)備有重要意義。