(北京信息職業(yè)技術(shù)學(xué)院 北京 100081)
目前針對(duì)現(xiàn)代密碼算法研究?jī)?nèi)容較多,形式多樣的密碼算法滿足了不同場(chǎng)景需求。在實(shí)際應(yīng)用中針對(duì)多種密碼算法需求,如果進(jìn)行每一個(gè)密碼算法的單獨(dú)設(shè)計(jì)則需要消耗大量的資源,因?yàn)楦鞣N類型的密碼算法本質(zhì)上是存在著一定的相同點(diǎn)的,所以為滿足多密碼算法需求,可以通過(guò)采用重構(gòu)的思維,來(lái)設(shè)計(jì)出一種高性價(jià)比的密碼算法。根據(jù)密碼算法中密鑰具有的不同特征,通??梢詫⒚艽a算法細(xì)分為對(duì)稱密碼算法與分組密碼算法,其中分組密碼算法是指通過(guò)對(duì)加密信息按照一定的順序,基于函數(shù)進(jìn)行相應(yīng)的邏輯運(yùn)算,進(jìn)而達(dá)到信息加密效果。分組加密算法在進(jìn)行數(shù)據(jù)加密的過(guò)程中,能夠有效地確保經(jīng)過(guò)加密處理后形成的密文和原來(lái)初始明文間數(shù)據(jù)量保持不變。
在進(jìn)行模板型能量分析前,首先需要進(jìn)行以下假設(shè):對(duì)手擁有兩個(gè)密碼設(shè)置一致的終端設(shè)備,分別為建模設(shè)備與目標(biāo)設(shè)備。對(duì)于建模設(shè)備而言,分析者可以對(duì)其輸入、輸出進(jìn)行控制,且可以采用一定的方式來(lái)準(zhǔn)確地獲取建模設(shè)備運(yùn)行時(shí)所具有的能量信息;對(duì)于目標(biāo)設(shè)備而言,在工作的過(guò)程中采用的是分析者不知曉的某種加密算法。因此模板型的側(cè)信道分析包含了建模階段與分析階段。其中在建模階段主要是基于建模曲線,來(lái)獲取建模設(shè)備和密鑰的關(guān)聯(lián)性,并根據(jù)采集到的信息數(shù)據(jù)建立一個(gè)泄露模型。分析階段是指,分析者基于能量曲線,結(jié)合信息分類對(duì)所采集到的泄露按照一定的特征進(jìn)行劃分,并通過(guò)測(cè)試集來(lái)將目標(biāo)設(shè)備的密鑰進(jìn)行預(yù)測(cè)與恢復(fù)。由此可以看出,分析者在建立分析模型時(shí),需要精確地將概率分布函數(shù)值進(jìn)行預(yù)估,進(jìn)而實(shí)現(xiàn)對(duì)每一個(gè)可能密鑰的似然估計(jì)。非模板型能量分析是指通過(guò)采用特定的統(tǒng)計(jì)分析方法對(duì)獲取到的泄露信息與敏感變量所具有的關(guān)聯(lián)性進(jìn)行表征。主要包括簡(jiǎn)單能量分析法、相關(guān)能量分析法以及差分能量分析法等。上述類型的分析方法僅僅可以實(shí)現(xiàn)對(duì)目標(biāo)設(shè)備物理參數(shù)等信息的泄露進(jìn)行獲取,用來(lái)進(jìn)行密鑰的恢復(fù)。
MLP 是由多個(gè)感知器構(gòu)建而成的神經(jīng)網(wǎng)絡(luò)。如圖1 所示為具有3 個(gè)隱藏層的MLP 神經(jīng)網(wǎng)絡(luò)。從圖1 中我們可以看出,多層感知器中的每一層感知器和下一層的感知器是互相連接的。MLP 主要由三部分組成,分別為輸入、輸出層以及隱藏層,多層感知器的每一層中至少存在一個(gè)感知器單元。在實(shí)際應(yīng)用中,MLP 權(quán)重值與偏差值是按照梯度的變化而更新的。MLP 神經(jīng)網(wǎng)絡(luò)是由多個(gè)非線性以及線性激活函數(shù)組成的混合函數(shù)相聯(lián)系。函數(shù)的求解速度快,且由于其存在邊界,因此求導(dǎo)過(guò)程較為簡(jiǎn)單。MLP 可以用式(1)表示。
式中:λn——全連接層;
σi——激活函數(shù);
S——Softmax函數(shù)。
因?yàn)镸LP 神經(jīng)網(wǎng)絡(luò)是一個(gè)網(wǎng)狀形式,被分成一個(gè)個(gè)相互連接的層狀,神經(jīng)元值可以用式(2)表示。
式中:w——相鄰層之間神經(jīng)元連接權(quán)重值;
b——該神經(jīng)元的偏置值;
f——激活函數(shù)。
式中:w——相鄰層之間神經(jīng)元連接權(quán)重值;
f——激活函數(shù)。
b——該神經(jīng)元的偏置值;
將向前傳播計(jì)算求解的誤差反向傳播,完成對(duì)權(quán)重值的優(yōu)化與修正,得出最優(yōu)化的模型是MLP 網(wǎng)絡(luò)模型算法的核心思想。在進(jìn)行誤差反向傳播時(shí),我們一般采用的是隨機(jī)梯度下降法來(lái)實(shí)現(xiàn)對(duì)w 值的修正與優(yōu)化。內(nèi)部變量值一般作為權(quán)重值,并基于損失函數(shù)跨越曲面斜率最大的方向進(jìn)行修正。
圖1 具有3 個(gè)隱藏層的MLP 神經(jīng)網(wǎng)絡(luò)
如圖2 所示為基于MLP 神經(jīng)網(wǎng)絡(luò)模型能量分析流程圖。
數(shù)據(jù)的采集與預(yù)處理狹義上來(lái)說(shuō)實(shí)質(zhì)是一種降維處理過(guò)程,采集獲取到的原始數(shù)據(jù)存在著噪聲影響大、緯度高的特征,而數(shù)據(jù)的采集與預(yù)處理正是將采集到的原始數(shù)據(jù)進(jìn)行降噪處理,降低原始數(shù)據(jù)的復(fù)雜程度。采用深度學(xué)習(xí)SCA 時(shí)可以不再對(duì)原始數(shù)據(jù)進(jìn)行降維處理,而直接對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理即可。一般來(lái)說(shuō)可以將獲取的能量曲線劃分為兩部分:訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù),其中訓(xùn)練數(shù)據(jù)主要是為了用來(lái)對(duì)模型進(jìn)行訓(xùn)練,以此確保構(gòu)建模型的精確性,測(cè)試數(shù)據(jù)則主要用來(lái)對(duì)模型的效果進(jìn)行評(píng)價(jià),同時(shí)用來(lái)恢復(fù)密鑰。在模型的訓(xùn)練過(guò)程,一般使用交叉驗(yàn)證,能夠最大限度地提升模型訓(xùn)練效果,提升模型的準(zhǔn)確度。文章中主要使用的是SVM 對(duì)比法。模型的評(píng)價(jià)主要是指,通過(guò)各種形式的參數(shù)優(yōu)化、不同的評(píng)價(jià)策略對(duì)模型的精度、訓(xùn)練時(shí)間、密鑰猜測(cè)熵等性能進(jìn)行評(píng)估。文章中主要采用的是分而治之的策略進(jìn)行密鑰的恢復(fù)。通過(guò)對(duì)重量的預(yù)測(cè),求解出潛在的密鑰值,并基于多條曲線所對(duì)應(yīng)的明文數(shù)據(jù),以交集的形式進(jìn)一步縮窄密鑰的預(yù)估區(qū)間,最終達(dá)到求解子密鑰的目的。
圖2 基于MLP 神經(jīng)網(wǎng)絡(luò)分析流程示意圖
和傳統(tǒng)形式中常用的DPA、CPA 一樣,基于深度學(xué)習(xí)能量分析同樣也對(duì)泄露模型進(jìn)行定義。因?yàn)榛贛LP 神經(jīng)網(wǎng)絡(luò)模型的分析是在相關(guān)的監(jiān)督環(huán)境下開(kāi)展的,所以在進(jìn)行模型訓(xùn)練與測(cè)試時(shí)同樣要基于泄露模型所確定的指標(biāo)進(jìn)行,不同指標(biāo)值下,最終所形成的分類數(shù)量是存在差異的。在進(jìn)行分組密碼算法分析時(shí),一般是將S 盒的輸出點(diǎn)作為分析點(diǎn),如圖3 所示為采用S 盒輸出值構(gòu)建的分析模型。
圖3 采用S 盒輸出值結(jié)構(gòu)分析模型
文章中所使用的模型是基于MLP 神經(jīng)網(wǎng)絡(luò)建立的。為便于分析簡(jiǎn)稱為ID-MLP 模型。因?yàn)楂@取到的單條能量曲線是以時(shí)間序列表示的,所以輸出層節(jié)點(diǎn)的數(shù)量就是能量曲線的采樣點(diǎn)個(gè)數(shù),即輸出層共有256 個(gè)節(jié)點(diǎn)。輸出層所使用的是Softmax 激活函數(shù),為確保模型測(cè)試精度,采用tanh 函數(shù)。模型訓(xùn)練時(shí),標(biāo)簽值就是S 盒的輸出值。
基于ChipWhispererLite 平臺(tái)進(jìn)行實(shí)驗(yàn)分析。使用ID-MLP 模型恢復(fù)密鑰字節(jié),如圖4 所示為實(shí)驗(yàn)結(jié)果對(duì)比。
圖4 ID-MLP 模型與Benadjila-MLP 模型訓(xùn)練結(jié)果對(duì)比
從圖4 中可以看出,當(dāng)字節(jié)為0 時(shí),ID-MLP 模型的最終訓(xùn)練精度接近98%,模型的平均訓(xùn)練精度為98.93%,明顯高于Benadjila-MLP 模型訓(xùn)練結(jié)果。對(duì)恢復(fù)完整的密鑰再進(jìn)行1000 次實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明1496 條曲線就能夠?qū)崿F(xiàn)對(duì)密鑰的恢復(fù),且其中的491 次實(shí)驗(yàn)只需1 條曲線就可以恢復(fù)密鑰。實(shí)驗(yàn)結(jié)果表明,該模型具有較強(qiáng)的預(yù)測(cè)性,具有訓(xùn)練次數(shù)少、時(shí)間短的優(yōu)點(diǎn),且迭代次數(shù)增加時(shí),模型的預(yù)測(cè)精度顯著提升。
基于MLP 神經(jīng)網(wǎng)絡(luò)的分組密碼算法,充分發(fā)揮了MLP 神經(jīng)網(wǎng)絡(luò)對(duì)特征信息數(shù)據(jù)提取的能力,能夠深入地挖掘出泄漏信息與將要處理的敏感信息之間的關(guān)聯(lián)性,為能量分析提供了新思路。實(shí)驗(yàn)表明,本文所提出的ID-MLP 模型與Benadjila-MLP 模型相比降減少了近85%的訓(xùn)練參數(shù)與30%的訓(xùn)練時(shí)間,與Benadjila-MLP 模型相比測(cè)試精度得到明顯提升。此外,經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化,有效地降低了密鑰恢復(fù)所需的能量曲線條數(shù),具有訓(xùn)練次數(shù)少、時(shí)間短的優(yōu)點(diǎn),且迭代次數(shù)增加時(shí),模型的預(yù)測(cè)精度顯著提升。同時(shí),該模型同樣也能用來(lái)對(duì)DES、SM4 等側(cè)信道能量分析。