宋世杰,陳開顏,張 陽
陸軍工程大學(xué)石家莊校區(qū) 裝備模擬訓(xùn)練中心,石家莊050000
旁路分析(旁路分析與旁路攻擊在本文意義等同,不做區(qū)分)由Kocher等人[1]提出,是一類利用加密設(shè)備的物理泄露進(jìn)行破密或評估的密碼分析方法,分為建模類旁路分析與非建模旁路分析。其中建模類旁路分析由Chari等人[2]提出,核心是旁路敵手獲取與目標(biāo)加密設(shè)備完全一致的副本及其所有加密信息,實施兩階段的分析:(1)建模階段——敵手在副本上實施遍歷密鑰空間的所有加密過程并采集對應(yīng)功耗,根據(jù)統(tǒng)計分析方法提出功耗特征,建立“模板”;(2)攻擊階段——敵手對目標(biāo)設(shè)備再次采集功耗,利用已有“模板”進(jìn)行匹配,獲得密鑰。由于敵手獲知目標(biāo)副本的全部信息,所以建模類旁路分析被信息熵證實為最強大的旁路分析方法。
建模類旁路分析包括:模板攻擊[2](Template Attacks,TA)、機器學(xué)習(xí)旁路分析(Machine Learning Side Channel Attack,MLSCA)[3-4]以及深度學(xué)習(xí)旁路分析(DLSCA)。前兩種方法均需要復(fù)雜的人為特征工程建模,且處理的旁路信號維度容易受限,因此特征提取自主化、數(shù)據(jù)維度兼容能力強的DLSCA流行起來。現(xiàn)有研究中,以多層感知機(Multiple Layer Perceptron,MLP)[5]和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[6]為主的DLSCA對帶掩碼[7]、信號偏移[8]以及加噪聲[9]的旁路信號表現(xiàn)出優(yōu)秀的建模攻擊能力。
DLSCA研究通常采用機器學(xué)習(xí)性能指標(biāo)中的準(zhǔn)確率評估DNN模型的訓(xùn)練程度,并采用Standaert等人[10]旁路安全評估框架中的成功率與猜測熵評估測試階段的破密效果。Cagli等人[11]通過實驗對采用準(zhǔn)確率衡量DLSCA訓(xùn)練階段的評估方法提出質(zhì)疑。Picek等人[12]通過剖析準(zhǔn)確率與成功率的概念證實DNN模型在訓(xùn)練階段的準(zhǔn)確率與測試階段的成功率無法對應(yīng),DLSCA訓(xùn)練與測試階段的評估無法對接。
但是DLSCA在安全評估方面仍有很多問題需要研究完善:(1)文獻(xiàn)[12]僅通過準(zhǔn)確率與成功率的定義對比得出前者無法衡量DNN模型訓(xùn)練程度的結(jié)論,并未從旁路安全評估角度入手討論其根本原因;(2)對DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估之間的聯(lián)系缺乏理論研究。
針對上述問題,本文從信息論中信息熵的角度入手:(1)將DLSCA整個過程馬爾可夫化,分析準(zhǔn)確率等傳統(tǒng)機器學(xué)習(xí)性能指標(biāo)無法評估DLSCA中DNN模型訓(xùn)練程度的原因,得出DNN與SCA的安全評估核心在于密鑰信息量提取的結(jié)論;(2)通過密鑰信息量構(gòu)建DLSCA測試安全評估與訓(xùn)練性能評估的聯(lián)系,并提出以密鑰信息量為核心的DLSCA安全評估框架。
根據(jù)能量分析原理[13],可構(gòu)造基于功耗泄露的旁路攻擊模型如圖1所示。定義變量:形如X為集合,X={x1,x2,…,xn}是X中的N維隨機變量,X∈?N×D為X中的N×D向量,X={x1,x2,…,xn},xi∈?D。敵手所要獲取的正確密鑰記為k?∈K,n比特長(本文n=8),密鑰空間K={k0,k1,…,kK-1},K服從均勻分布。假設(shè)敵手對加密設(shè)備輸入N條明文P={p1,p2,…,pn},p服從均勻分布,通過式(1)泄露模型得到功耗軌跡X={x1,x2,…,xq}:
圖1 旁路分析模型Fig.1 SCA model
N={n1,n2,…,nq}為高斯噪聲,與X分布相互獨立。C(?)為已知加密函數(shù),本文選擇AES[14]加密的第一輪第一個S盒之前的輪密鑰加做加密函數(shù)。通常敵手選取合適的統(tǒng)計模型如漢明重量/距離和加密中間值度量泄露變化,本文選擇中間值泄露模型[13]。故定義泄露模型Z=S[C(P,K)],Z={s1,s2,…,sZ},S為S盒的字節(jié)替換操作Z代表泄露對應(yīng)的加密中間值。
在假設(shè)空間H中,定義DNN的超參數(shù)集合函數(shù)為fθ:θ=(W,b),θ∈Θ??q,映射fθ代表DNN算法模型,為DNN輸出的預(yù)測概率。
基于深度學(xué)習(xí)的建模類旁路攻擊也分為兩個階段:建模(訓(xùn)練)與攻擊(測試)階段。根據(jù)1.1節(jié)的旁路分析模型,DLSCA步驟為:
(1)建模準(zhǔn)備。在目標(biāo)加密設(shè)備的副本上采集Np規(guī)模的建模用數(shù)據(jù)集Sp,其服從概率分布,數(shù)據(jù)集中功耗軌跡為X,泄露模型中間值類別為Z。
(2)建模階段。對應(yīng)DL訓(xùn)練階段基于數(shù)據(jù)集Sp,選取合適的DNN算法fθ,X為輸入,Z為標(biāo)簽,通過監(jiān)督學(xué)習(xí)訓(xùn)練輸出對應(yīng)類別的概率:fθ=Pr[Z|X]。
(3)攻擊準(zhǔn)備。對應(yīng)DL測試階段,在目標(biāo)設(shè)備上獲取Na規(guī)模的攻擊用數(shù)據(jù)集Sa,其概率分布為Sa={k?,(x1,p1),…,(xNa,pNa)}~Pr[X,Z]Na。對于i∈[1,Na],pi~Pr[P]Na為已知明文概率分布,功耗概率分布為xi~Pr{X|Z=S[C(pi,k?)]}Na。
(4)預(yù)測估計。將Sa中每條功耗輸入最終優(yōu)化模型fθ生成預(yù)測概率向量yi=fθ(xi),對應(yīng)每個標(biāo)簽Z的概率值。將所有攻擊軌跡輸出的預(yù)測概率值累積,獲取每個標(biāo)簽對應(yīng)密鑰值的可能性,預(yù)測概率最高的候選值即對應(yīng)正確密鑰k?。通常使用極大似然估計法定義區(qū)分器D:
其中zi=S[C(pi,k)]。
評估問題的量化離不開評估指標(biāo)。研究DLSCA安全評估問題之前,首先對機器學(xué)習(xí)領(lǐng)域與旁路分析領(lǐng)域中現(xiàn)有的評估指標(biāo)做以介紹。
1.3.1 機器學(xué)習(xí)評估指標(biāo)
在機器學(xué)習(xí)中,為準(zhǔn)確地評估DNN模型fθ的訓(xùn)練程度,通常分為學(xué)習(xí)指標(biāo)與性能指標(biāo):
(1)學(xué)習(xí)指標(biāo)
學(xué)習(xí)指標(biāo)通過計算給定訓(xùn)練數(shù)據(jù)集Sp~Pr[X,Z]Np平均分類誤差,以此來優(yōu)化DNN模型的網(wǎng)絡(luò)參數(shù){fθ:θ∈Θ}。機器學(xué)習(xí)領(lǐng)域中常用對數(shù)損失函數(shù),如式(3)衡量分類誤差。令對于給定訓(xùn)練數(shù)據(jù)集Sp~Pr[X,Z]Np,參數(shù)空間H中DNN模型的參數(shù)集合函數(shù)為{fθ:θ∈Θ},fθ輸出的預(yù)測類別為,則有對數(shù)損失函數(shù)[15]:
通過隨機梯度下降SGD[16]算法優(yōu)化損失函數(shù)L(θ),將Np分成大小為batch(數(shù)據(jù)批量,一般遠(yuǎn)小于Np)的小數(shù)據(jù)批次,每個迭代周期epoch從batch中隨機挑選一個維度的數(shù)據(jù)對L(θ)進(jìn)行參數(shù)集合θ∈Θ上的偏導(dǎo)計算:
其中,已知常數(shù)η為學(xué)習(xí)率,即每次梯度下降的步長。訓(xùn)練階段采取SGD優(yōu)化整個參數(shù)集θ使得L(θ)達(dá)到全局最小值,得到最優(yōu)模型f?θ:
(2)性能指標(biāo)
性能指標(biāo)用于衡量DNN模型的分類性能,是DNN訓(xùn)練程度的體現(xiàn)。通常采用準(zhǔn)確率,記作Acc來度量模型fθ正確分類的概率:
通過性能指標(biāo)與學(xué)習(xí)指標(biāo)可以評估DNN模型訓(xùn)練的程度。訓(xùn)練程度分為:欠擬合、過擬合[17]與最佳擬合。
欠擬合指DNN模型在訓(xùn)練階段并未提取到關(guān)于功耗軌跡X相關(guān)特征的狀態(tài),可歸因于數(shù)據(jù)量不足與網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度不夠。過擬合狀態(tài)指當(dāng)DNN模型提取與功耗數(shù)據(jù)X無關(guān)特征時的狀態(tài)。fθ處于過擬合狀態(tài)時,其評估指標(biāo)在訓(xùn)練階段會表現(xiàn)極好但在測試階段指標(biāo)表現(xiàn)極差。DNN模型的過擬合與欠擬合都會導(dǎo)致很差的泛化結(jié)果,而只有處在兩者中的最佳擬合狀態(tài)時,才具備良好的泛化能力。
1.3.2 旁路分析評估指標(biāo)
現(xiàn)有旁路分析技術(shù)均采用文獻(xiàn)[10]中的安全評估框架,其中用于量化評估的指標(biāo)分為兩大類:信息指標(biāo)和安全指標(biāo)。
(1)信息指標(biāo)
采用香農(nóng)信息熵[18]中的條件熵與互信息來衡量旁路泄露與采集的信息量。根據(jù)1.2節(jié),已知功耗X估計加密中間泄露值Z的條件熵為:
由功耗X推知Z獲得的有效信息衡量——互信息為:
(2)安全指標(biāo)
安全指標(biāo)對敵手的攻擊結(jié)果以及密鑰破解程度的衡量,包含成功率與猜測熵。成功率反應(yīng)了一定數(shù)量軌跡的密鑰最大獲取能力,而猜測熵則對應(yīng)其平均能力。式(2)中敵手采用最大似然估計獲得評分DSa[k]后,估計的密鑰候選值會按分?jǐn)?shù)進(jìn)行排序,隨著軌跡數(shù)的增加,正確密鑰的分?jǐn)?shù)會增大,排序會逐漸上升至首位即:
當(dāng)g(k?)=1代表攻擊成功,敵手獲知正確密鑰。猜測熵與成功率都圍繞g(k?)進(jìn)行定義:
猜測熵:
成功率:
其中,E為攻擊次數(shù)。
現(xiàn)有DLSCA研究中,評估通常在訓(xùn)練(建模)階段使用機器學(xué)習(xí)評估指標(biāo),測試(攻擊)階段使用旁路分析評估指標(biāo)。而文獻(xiàn)[12]通過概念對比證實機器學(xué)習(xí)常用的性能指標(biāo)——準(zhǔn)確率無法評估DLSCA訓(xùn)練階段,這導(dǎo)致其訓(xùn)練與測試兩階段評估脫節(jié),旁路分析指標(biāo)與機器學(xué)習(xí)指標(biāo)無法對接。
本章從信息熵視角,把DNN作為旁路區(qū)分器,將DLSCA整個過程視為一條馬爾可夫鏈,以此研究并得出準(zhǔn)確率等機器學(xué)習(xí)性能指標(biāo)無法評估DLSCA訓(xùn)練階段的根本原因在于無法評估該過程中的密鑰信息量。圍繞密鑰信息量,分別研究其與SCA以及DNN安全評估方面的關(guān)系,提出以密鑰信息量為核心的DLSCA評估框架,從而建立DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估之間的聯(lián)系。
準(zhǔn)確率無法評估DLSCA訓(xùn)練階段的根本原因是什么?本節(jié)將SCA視作馬爾可夫過程,通過引入密鑰信息量的概念解釋旁路安全評估的核心,并研究密鑰信息量與安全評估指標(biāo)的關(guān)系。
2.1.1 密鑰信息量與旁路安全評估
DLSCA雖是深度學(xué)習(xí)與旁路分析的結(jié)合,但仍是旁路分析問題,解決DLSCA評估問題,需從旁路安全分析角度入手。根據(jù)1.1節(jié)中的旁路分析模型,SCA整個過程中,每一時刻的概率分布僅與其前一時刻的概率分布有關(guān),因此該過程可視作一個馬爾可夫過程:
引理1(馬爾可夫過程[19])SCA過程可定義為馬爾可夫過程:
即:
其中,D(?)為旁路區(qū)分器,K為DNN模型預(yù)測類別對應(yīng)的密鑰值。
根據(jù)SCA馬爾可夫過程,結(jié)合1.2節(jié)中DLSCA實施步驟,DLSCA安全評估要解決以下問題:
問題1(評估問題[20])給定訓(xùn)練數(shù)據(jù)集Sp,其概率分布為為固定閾值)條件下,求一最優(yōu)DNN模型,使X→過程攻擊用軌跡數(shù)Na最小。
問題1是基于預(yù)設(shè)測試結(jié)果條件的DLSCA安全評估問題,包含訓(xùn)練與測試兩階段的評估,求最優(yōu)模型屬于DNN模型在訓(xùn)練階段的性能評估任務(wù),基于閾值α最小化Na屬于測試階段的旁路安全評估任務(wù)。由于訓(xùn)練階段屬于深度學(xué)習(xí)分類問題,因而性能評估要解決的就是衡量模型在學(xué)習(xí)過程中的輸出預(yù)測概率與真實概率Pr[Z|X]間貝葉斯誤差優(yōu)化問題。因此將問題1的訓(xùn)練階段評估問題可轉(zhuǎn)化為:
命題1(性能評估)DLSCA訓(xùn)練階段安全評估問題為衡量DNN模型實際輸出值與真實值間的貝葉斯誤差優(yōu)化問題:
根據(jù)準(zhǔn)確率Acc定義,其為計算預(yù)測類別與真實類別Z相等時的概率。因此首先考慮使用準(zhǔn)確率Acc來解決命題1。當(dāng)Acc趨于1時,所有預(yù)測類別與真實類別Z相等。但實際操作中,準(zhǔn)確率Acc無法與測試階段的安全評估任務(wù)聯(lián)系起來,結(jié)合準(zhǔn)確率的定義式(6)以旁路安全評估角度分析如下:
(1)從旁路安全評估的指標(biāo)角度看,安全指標(biāo)中成功率SR的定義為對Na條軌跡整體破密正確概率的平均值,反映的是樣本整體最大密鑰提取能力,須在功耗總樣本X維度累加后再取E次攻擊平均。而Acc反映的是單個樣本x∈X的分類預(yù)測概率,評估的維度不等價。至于猜測熵GE,其反映的是正確密鑰在假設(shè)空間K中的排序水平,通過每條軌跡疊加預(yù)測信息減少估計錯誤,從而改變正確密鑰排序,是規(guī)模為Na軌跡的平均密鑰提取能力。顯然Acc無法顯示多條軌跡的累積變化。
(2)從旁路安全評估的實質(zhì)看,由引理1,SCA可視作是馬爾可夫過程,故SCA整個過程中只要功耗總樣本中的密鑰信息傳遞與利用充足,密鑰就能破解。因此將命題1中的貝葉斯誤差優(yōu)化轉(zhuǎn)換成信息熵中信息量的表達(dá)形式,引入密鑰信息量定義為:
定義1(密鑰信息量)對于給定訓(xùn)練數(shù)據(jù)集Sp~Pr[X,Z]Np,Sp攜帶的密鑰信息量為X→Z過程中每個樣本x∈X包含對應(yīng)標(biāo)簽值Z的比特數(shù):
當(dāng)Np規(guī)模的功耗樣本所包含的密鑰信息量時,對應(yīng)的貝葉斯誤差優(yōu)化問題為這也恰與式(2)的對數(shù)極大似然區(qū)分照應(yīng),本質(zhì)在于累積每條軌跡的密鑰信息量當(dāng)密鑰信息量累加到一定量時,區(qū)分器D的極大似然值對應(yīng)g(k)中估計密鑰排序至首位,即解得正確密鑰,密鑰信息量為KI(Z|X)。而單個樣本Acc獲得的最大輸出概率值很大,其總樣本輸出概率值可能很小,對應(yīng)得到的密鑰信息量也會少,就會出現(xiàn)Acc的值很高趨近于1,而成功率很小的現(xiàn)象。因此,使用準(zhǔn)確率Acc衡量訓(xùn)練階段的DNN模型性能無法滿足旁路安全評估需求,旁路安全評估的本質(zhì)在于密鑰信息量KI[Z|X]的提取。
2.1.2 密鑰信息量與安全指標(biāo)的關(guān)系
旁路安全評估的本質(zhì)在于密鑰信息量的提取,與命題1性能評估照應(yīng)。既然密鑰信息量為旁路安全評估的關(guān)鍵,那么其如何與旁路分析的安全評估指標(biāo)關(guān)聯(lián)起來呢?解決這一問題,問題1中的測試階段的安全評估任務(wù)也將得解。重新觀察問題1,其中后半段涉及到了成功率與破密最小軌跡數(shù)Na兩個指標(biāo)。成功率對應(yīng)旁路安全指標(biāo)中的SR。對于最小軌跡數(shù)Na,旁路安全指標(biāo)中猜測熵GE是衡量破解出密鑰與否的指標(biāo):當(dāng)GE減小并收斂于一定值時,正確密鑰升至g(k)首位,密鑰獲解,此時對應(yīng)的功耗軌跡數(shù)即為Na值。因此,須研究密鑰信息量與旁路安全指標(biāo)成功率SR與猜測熵GE的關(guān)系。
(1)密鑰信息量與猜測熵
在實際計算中,為了將GE與極大似然統(tǒng)一起來,對GE中的概率值取對數(shù)操作。又由命題1是對條件概率進(jìn)行優(yōu)化,本文引入條件猜測熵的定義:
定義2(條件猜測熵)令測試集Sa~Pr[X,Z]Na,Na∈? ,Z∈S(k,p)為標(biāo)簽,X∈?Na×D為功耗軌跡,條件概率熵為:
為對密鑰預(yù)測概率的降次排序函數(shù),運算實質(zhì)等同于式(9)中的gs(?)密鑰排序函數(shù)。觀察式(15)條件猜測熵Gm定義,式(14)密鑰信息量就在其中體現(xiàn),再次證實旁路安全評估就是對旁路功耗密鑰信息量的定量計算。區(qū)分器D積累每條測試集的密鑰信息量并改變δx(z)中預(yù)測概率的位置。當(dāng)Na增至D對密鑰區(qū)分所需密鑰信息量時,δx(z)將預(yù)測概率排至首位,預(yù)測概率值等于真實概率值,i=1。則當(dāng)α→1時,條件猜測熵Gm趨于定值H(Z|X),此時所需軌跡數(shù)即為最小Na。因此猜測熵GE是基于密鑰信息量排序計算的指標(biāo)。
(2)密鑰信息量與成功率
根據(jù)引理1中SCA過程可視作馬爾可夫過程,因此根據(jù)費諾不等式有:
引理2(費諾不等式[18])對于SCA中的馬爾可夫過程令安全指標(biāo)成功率為SR=,則有:
其中,h2(SR)=-SRlbSR-(1-SR)lb(1-SR),K為密鑰空間,不等式左邊代表SCA破密最多需要傳輸?shù)谋忍財?shù)。
由引理2可知,成功率SR同樣與條件熵相關(guān)。而根據(jù)其定義式(7),是由密鑰信息量組成而計算的。因此成功率SR與密鑰信息量可通過信息熵的運算建立聯(lián)系。
對于成功率SR與猜測熵GE二者與密鑰信息量的關(guān)系,其本質(zhì)都是由條件猜測熵Gm的優(yōu)化進(jìn)而實施安全評估的。于是對于問題1的測試階段任務(wù)本質(zhì)為:
命題2(安全評估)給定測試數(shù)據(jù)集Sa~Pr[X,Z]Na,等價,所需的軌跡數(shù)即為Na最小值,其中i是預(yù)測概率中排序的位置。
上節(jié)以信息熵視角探討了DLSCA的安全評估實質(zhì),即基于功耗數(shù)據(jù)集中密鑰信息量的提取,這也是解決命題1性能評估與命題2安全評估二者對接問題的關(guān)鍵。如果知道密鑰信息量在DNN訓(xùn)練學(xué)習(xí)過程中的運算與計量方法,則DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估之間的對接難題得解。本節(jié)將通過信息瓶頸理論探究DNN模型訓(xùn)練過程與密鑰信息量的關(guān)系,證實交叉熵可基于測試階段的安全評估任務(wù)對DNN模型訓(xùn)練階段的性能定量評估。
DNN因其學(xué)習(xí)過程的復(fù)雜性向來被認(rèn)作一個黑盒模型處理。上節(jié)指出機器學(xué)習(xí)性能指標(biāo)不可用,因此需要尋找另外的衡量指標(biāo)關(guān)聯(lián)起密鑰信息量。根據(jù)信息瓶頸理論[21]可將DNN層與層之間的關(guān)聯(lián)視作馬爾可夫過程,該過程中傳遞的互信息可衡量其學(xué)習(xí)程度:
引理3(信息瓶頸理論[21])在假設(shè)空間H中,DNN模型fθ(θ∈Θ??q)結(jié)構(gòu)可解釋為一個貝葉斯分層結(jié)構(gòu)。
因DNN中隱藏層Ti的輸入是上一層的輸出Ti-1,則DNN={X;T1;T2;…;Ti;}可等價于馬爾可夫鏈:
對應(yīng)的概率分布為:
由引理3的信息瓶頸理論,DNN的實質(zhì)與SCA過程相同,也可視為一個馬爾可夫過程,如圖2。其中,加密階段對應(yīng)DNN的特征選取過程X→T,隱藏層Ti中的每個神經(jīng)元根據(jù)概率計算互信息I[Ti;X],來衡量特征提取算法對輸入數(shù)據(jù)信息的特征信息量。該過程實則對輸入數(shù)據(jù)降維,故稱作信息壓縮;解密階段對應(yīng)DNN的分類過程,通常在隱藏層中的全連接層展開。分類網(wǎng)絡(luò)層中的神經(jīng)元根據(jù)的分布變化計算互信息I[Z;Ti],并將DNN提取的特征維度攤平至分類維度,實現(xiàn)數(shù)據(jù)特征的再編碼以衡量泛化信息量,該過程稱作信息擴(kuò)展。整個信息壓縮與擴(kuò)展過程,DNN模型通過最小化I[Ti;X]與最大化I[Z;Ti]來實現(xiàn)優(yōu)化。
命題3(信息熵優(yōu)化)DNN模型fθ(θ∈Θ??q)為馬爾可夫信道,存在以下互信息變化不等式:
根據(jù)上述互信息不等式,命題1訓(xùn)練任務(wù)存在以下等價關(guān)系:
整個DNN性能優(yōu)化過程中,I[Ti;X]取決于DNN選取的結(jié)構(gòu)。本文假設(shè)DNN模型結(jié)構(gòu)固定,則其性能優(yōu)化過程為增大訓(xùn)練階段互信息I[Z;X]的過程,從而實現(xiàn)Pr[Z|X]→Pr[Z|X]的優(yōu)化。而由互信息定義,I[Z;X]為H(Z)與H(Z|X)之差,由于H(Z)是定值,因此命題1在信息熵視角下的本質(zhì)自然等價于優(yōu)化條件熵H(Z|X)。而根據(jù)條件熵式(7)的定義,密鑰信息量KI[|X]作為H(Z|X)計算的一部分,可與DNN優(yōu)化I[Z;X]的過程實現(xiàn)對接。
命題3可以將密鑰信息量KI(Z|X)→KI(Z|X)與X→Z過程的互信息優(yōu)化I[Z|X]→I[Z|X]建立聯(lián)系,也是命題1性能評估的進(jìn)一步推導(dǎo)。而對于I[Z;X]與I[Z;X]之間誤差的衡量,信息論中通常采用交叉熵(Cross Entropy)作為指標(biāo),與深度學(xué)習(xí)中交叉熵?fù)p失函數(shù)對應(yīng)。
定義3(交叉熵)給定訓(xùn)練數(shù)據(jù)集Sp~Pr[X,Z]Np,誤差分布為Pr[|X],正確分布為Pr[Z|X],θ∈Θ為DNN參數(shù)集合定義交叉熵為:
證明根據(jù)條件熵定義有:
由定義3,交叉熵?fù)p失CX,Z(θ)實質(zhì)為衡量預(yù)測分布Pr[Z|X]與真實分布Pr[Z|X]對應(yīng)密鑰信息量KI(Z|X)與KI(Z|X)的差距。DNN模型通過SGD算法優(yōu)化[16]CX,Z(θ),從而使DNN從輸入功耗數(shù)據(jù)得到的密鑰信息量逐漸接近其理想值KI(Z|X)。當(dāng)預(yù)測分布Pr[Z|X]與真實分布Pr[Z|X]之間的貝葉斯誤差隨著DNN的訓(xùn)練逐漸趨于0時,交叉熵?fù)p失CX,Z(θ)最終趨于條件熵H[Z|X],與命題3照應(yīng)。所以,雖然作為分類評估指標(biāo)的Acc無法評估DNN模型在訓(xùn)練階段的性能,但是DLSCA仍是一個監(jiān)督學(xué)習(xí)的分類過程,依舊可以使用交叉熵?fù)p失CX,Z(θ)度量預(yù)測標(biāo)簽Z與真實標(biāo)簽Z之間的誤差,從而判斷DNN模型性能。因此,DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估之間可由交叉熵與條件猜測熵對密鑰信息量KI(Z|X)的評估建立聯(lián)系:
定理1(DLSCA過程評估)給定訓(xùn)練數(shù)據(jù)集Sp~Pr[X,Z]Np,Np∈? ,Z∈S(k,p)為標(biāo)簽,X∈?Np×D為功耗軌跡,H假設(shè)空間中θ∈Θ為DNN參數(shù)集合,CX,Z(θ)為DNN模型fθ的交叉熵?fù)p失,Gm為SCA計算密鑰K的條件猜測熵。由引理1與引理2可將整個DLSCA過程馬爾可夫化,DNN算法模型為區(qū)分器:
證明式(21)左邊根據(jù)定義3成立,右邊由定義3成立。
2.1節(jié)中論述Gm是通過極大似然定律計算的,那么推導(dǎo)交叉熵?fù)p失CX,Z(θ)與極大似然的關(guān)系才能證明定理1中的等價性,而實際兩者是統(tǒng)一的。令DNN的參數(shù)空間θ∈H,對于訓(xùn)練數(shù)據(jù)集Sp~Pr[X,Z]Np,根據(jù)極大似然定律有:
因為θ與Pr[X]無關(guān),即:
又X,Z是從Sp采樣而來,則:
因而極大似然與優(yōu)化交叉熵是一致的,即得出DNN的性能優(yōu)化本質(zhì)為極大似然定律,這與SCA的區(qū)分器原理一致,證實定理1中在DLSCA馬爾可夫信道里,DNN實際等價于旁路區(qū)分器模塊。在根據(jù)交叉熵?fù)p失CX,Z(θ)與Gm的定義,其兩者存在以下關(guān)系:
綜上,根據(jù)大數(shù)定律,交叉熵?fù)p失CX,Z(θ)與條件猜測熵Gm在數(shù)據(jù)空間趨于無窮大時,且密鑰信息量有KI(Z|X)→KI(Z|X),兩者的優(yōu)化過程根據(jù)極大似然定律是一致的,定理1得證。這也說明,DLSCA中DNN模型性能評估的實質(zhì)在于優(yōu)化交叉熵CX,Z(θ),該任務(wù)在信息熵視角下,圍繞極大似然定律,可通過密鑰信息量與測試階段的旁路安全評估實現(xiàn)對接。由此可提出以密鑰信息量為核心的DLSCA安全評估框架,如圖3所示,圍繞密鑰信息量,可以將DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估關(guān)聯(lián)起來:根據(jù)命題1性能評估與密鑰信息量的定義,命題1的問題可以轉(zhuǎn)化為密鑰信息量的提取優(yōu)化問題。定義2中SCA極大似然旁路區(qū)分器原理為提取最大密鑰信息量KI(Z|X),并揭示SCA提取密鑰信息量的過程即為條件猜測熵Gm優(yōu)化過程,可與猜測熵GE建立聯(lián)系;再通過引理2推導(dǎo)出密鑰信息量與成功率SR的關(guān)系,且成功率也基于條件猜測熵的優(yōu)化進(jìn)行評估;最后通過命題2的安全評估將猜測熵與成功率與破密最小軌跡數(shù)Na關(guān)聯(lián)起來。根據(jù)定理1(或定義3)可將密鑰信息量與交叉熵關(guān)聯(lián),并可由深度學(xué)習(xí)中交叉熵?fù)p失函數(shù)計算。綜上由此以密鑰信息量為核心的DLSCA安全評估框架建立,DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估得以關(guān)聯(lián)。
圖3 密鑰信息量為核心的DLSCA安全評估框架Fig.3 DLSCA security evaluation framework with kernel of key information
本章通過實驗驗證訓(xùn)練階段DNN模型的交叉熵CX,Z(θ)可通過上文提出的DLSCA安全評估框架與測試階段的安全指標(biāo):猜測熵GE與成功率SR建立聯(lián)系。實驗數(shù)據(jù)采用DPAcontest-v4[22]、AES-RD[23]和ASCAD[8]三個公共數(shù)據(jù)集,ASCAD選取AES第一輪加密的第三個S盒,DPAcontest-v4與AES-RD選取AES第一輪加密中一個S盒的密鑰攻擊。泄漏模型Z選擇中間值模型,對應(yīng)分類256種。成功率閾值皆設(shè)置為α=0.9。DNN模型均采取文獻(xiàn)[24]中對應(yīng)結(jié)構(gòu),且統(tǒng)一設(shè)置Adam優(yōu)化器[25]用于反向傳播算法,初始權(quán)重隨機初始化,損失函數(shù)為Keras庫[26]提供的交叉熵?fù)p失函數(shù)(Keras中提供的交叉熵函數(shù)為常數(shù)底,根據(jù)本章內(nèi)容需要做換底變換),所有實驗均在配備GPU Nvidia RTX 2080的服務(wù)器上進(jìn)行,訓(xùn)練與測試次數(shù)均取E=100并做平均。
DPAcontest-v4是基于AES軟件實現(xiàn)的帶有一階掩碼的數(shù)據(jù)集,令掩碼已知,如式(22)本驗證實驗將其視為無防護(hù)數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集選定Np為4 500,測試集Na設(shè)置為500。采取已知明文與固定密鑰值,均選取第一字節(jié)。DNN模型結(jié)構(gòu)超參數(shù)選用文獻(xiàn)[24]中用于訓(xùn)練DPAcontest-v4數(shù)據(jù)集的DNN結(jié)構(gòu)。學(xué)習(xí)率設(shè)置為10?3,數(shù)據(jù)批次batch為50,迭代周期為20,測試階段攻擊次數(shù)E=100并取平均。實驗依據(jù)DLSCA安全評估框架中密鑰信息量對DNN模型訓(xùn)練階段的交叉熵CX,Z(θ)與旁路安全指標(biāo)建立的理論聯(lián)系,采用交叉熵CX,Z(θ)分別預(yù)測猜測熵GE、成功率SR。
如圖4(a)所示,交叉熵CX,Z(θ)通過定理1、引理2與密鑰信息量和條件猜測熵的關(guān)系,可以對成功率進(jìn)行預(yù)測,圖中黑色虛線為CX,Z(θ)預(yù)測值,紅色實線為真實值??梢杂^測出,二者在經(jīng)過5個迭代周期后,均穩(wěn)定收斂并趨于1;前5個迭代周期中,由于密鑰信息量KI(Z|X)不為0,所以CX,Z(θ)預(yù)測值并未從原點開始增長,而成功率SR根據(jù)成功軌跡數(shù)計算,因此從0增長,二者增長趨勢一致。
如圖4(b)所示,交叉熵CX,Z(θ)通過定理1、定義2與密鑰信息量和條件猜測熵的關(guān)系,可以對猜測熵進(jìn)行預(yù)測??梢杂^察出,二者在經(jīng)過5個迭代周期后,均穩(wěn)定收斂并趨于一定值。由于猜測熵GE在python計算時數(shù)組首位為0,因此第5周期后其值穩(wěn)定為0,實際其與CX,Z(θ)預(yù)測值均趨于同一定值H(Z|X);在前4個迭代周期中,CX,Z(θ)預(yù)測值從上限8比特開始減少,而猜測熵GE從密鑰空間上限值K=256開始減少,二者降低的趨勢一致。綜上,可驗證以密鑰信息量為核心的DLSCA安全評估框架適用于無防護(hù)的旁路分析場景,且根據(jù)安全評估框架中圍繞密鑰信息量的關(guān)系,通過訓(xùn)練階段DNN模型的交叉熵CX,Z(θ)可對測試階段的安全指標(biāo):猜測熵GE與成功率SR建立聯(lián)系。
圖4 DPAcontest-v4數(shù)據(jù)集實驗結(jié)果Fig.4 Result of DPAcontest-v4
本實驗僅采用ASCAD偏移量為0的數(shù)據(jù)集,將其作為帶一階掩碼防護(hù)的數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集Np為45 000,測試集Na均設(shè)置為5 000。采取已知明文與固定密鑰值,均選取第3字節(jié)。DNN模型結(jié)構(gòu)超參數(shù)選用文獻(xiàn)[24]中用于訓(xùn)練ASCAD數(shù)據(jù)集的DNN結(jié)構(gòu)。學(xué)習(xí)率初值設(shè)置為5×10?3,根據(jù)優(yōu)化器而擇優(yōu)變化。訓(xùn)練數(shù)據(jù)批次batch為50,迭代周期為100,測試階段攻擊次數(shù)為E=100并取平均。
如圖5(a)所示,交叉熵CX,Z(θ)通過定理1、引理2與密鑰信息量和條件猜測熵的關(guān)系,可以對成功率進(jìn)行預(yù)測,圖中黑色虛線為CX,Z(θ)預(yù)測值,紅色實線為真實值??梢杂^測出,二者在經(jīng)過11個迭代周期后,均穩(wěn)定收斂并趨于1;前11個迭代周期中,同樣由于密鑰信息量KI(Z|X)不為0,所以CX,Z(θ)預(yù)測值并未從原點開始增長,而成功率SR根據(jù)成功軌跡數(shù)計算,因此從0增長,二者增長趨勢一致。
圖5 ASCAD數(shù)據(jù)集實驗結(jié)果Fig.5 Result of ASCAD
如圖5(b)所示,交叉熵CX,Z(θ)通過定理1、定義2與密鑰信息量和條件猜測熵的關(guān)系,可以對猜測熵進(jìn)行預(yù)測。可以觀察出,二者在經(jīng)過11個迭代周期后,均穩(wěn)定收斂并趨于一定值。在前11個迭代周期中,CX,Z(θ)預(yù)測值從上限8比特開始減少,而猜測熵GE從密鑰空間上限值K=256開始減少,二者降低的趨勢一致。綜上,可驗證以密鑰信息量為核心的DLSCA安全評估框架適用于帶一階掩碼防護(hù)的旁路分析場景,且根據(jù)安全評估框架中圍繞密鑰信息量的關(guān)系,通過訓(xùn)練階段DNN模型的交叉熵CX,Z(θ)可對測試階段的安全指標(biāo):猜測熵GE與成功率SR建立聯(lián)系。
AES-RD數(shù)據(jù)集采用的隨機時延作為加密防護(hù)對策。訓(xùn)練數(shù)據(jù)集選定Np為25 000,測試集Na設(shè)置為2 000。采取已知明文與固定密鑰值,均選取第0字節(jié)。DNN模型結(jié)構(gòu)超參數(shù)選用文獻(xiàn)[24]中用于訓(xùn)練AES-RD數(shù)據(jù)集的DNN結(jié)構(gòu)。學(xué)習(xí)率設(shè)置為10?2,數(shù)據(jù)批次batch為50,迭代周期為20,測試階段攻擊次數(shù)為E=100并取平均。
如圖6(a)所示,交叉熵CX,Z(θ)通過定理1、引理2與密鑰信息量和條件猜測熵的關(guān)系,可以對成功率進(jìn)行預(yù)測,圖中黑色虛線為CX,Z(θ)預(yù)測值,紅色實線為真實值??梢杂^測出,二者在經(jīng)過11個迭代周期后,均穩(wěn)定收斂并趨于1;前5個迭代周期中,CX,Z(θ)預(yù)測值與成功率SR都保持初值不變,而后二者以相同趨勢增長,在第11周期開始穩(wěn)定收斂于1。
圖6 AES-RD數(shù)據(jù)集實驗結(jié)果Fig.6 Result of AES-RD
如圖6(b)所示,交叉熵CX,Z(θ)通過定理1、定義2與密鑰信息量和條件猜測熵的關(guān)系,可以對猜測熵進(jìn)行預(yù)測??梢杂^察出,二者在經(jīng)過11個迭代周期后,均穩(wěn)定收斂并趨于一定值。在前11個迭代周期中,CX,Z(θ)預(yù)測值從上限8比特開始減少,而猜測熵GE從密鑰空間上限值K=256開始減少,二者降低的趨勢一致。綜上,可驗證以密鑰信息量為核心的DLSCA安全評估框架適用于帶隨機時延的旁路分析場景,且根據(jù)安全評估框架中圍繞密鑰信息量的關(guān)系,通過訓(xùn)練階段DNN模型的交叉熵CX,Z(θ)可對測試階段的安全指標(biāo):猜測熵GE與成功率SR建立聯(lián)系。
本文通過信息熵角度:(1)把DNN作為旁路區(qū)分器,將DLSCA整個過程視為一條馬爾可夫鏈,指出準(zhǔn)確率等機器學(xué)習(xí)性能指標(biāo)無法評估DLSCA訓(xùn)練階段的根本原因在于無法評估該過程中的密鑰信息量;(2)圍繞密鑰信息量,分別將其與旁路安全指標(biāo)以及DNN的交叉熵關(guān)聯(lián)起來,并提出以密鑰信息量為核心的DLSCA評估框架,建立DNN模型訓(xùn)練階段的性能評估與測試階段旁路安全評估之間的聯(lián)系。通過選取無防護(hù)、帶一階掩碼與隨機時延的AES加密數(shù)據(jù)集進(jìn)行實驗,驗證了以密鑰信息量為核心的DLSCA安全評估框架適用于上述旁路分析場景,且根據(jù)安全評估框架中圍繞密鑰信息量的關(guān)系,通過訓(xùn)練階段DNN模型的交叉熵CX,Z(θ)可對測試階段的安全指標(biāo)建立聯(lián)系。