楊 歡 吳 震* 王 燚 杜之波 王 敏 習(xí) 偉 顏 偉
1(成都信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 四川 成都 610225) 2(南方電網(wǎng)科學(xué)研究院有限公司 廣東 廣州 510080) 3(振芯科技有限公司 四川 成都 640041)
在密碼學(xué)中,側(cè)信道攻擊常用于提取(尋找)加密設(shè)備的密鑰。在密碼算法實(shí)際運(yùn)行時(shí),硬件電路會(huì)泄漏出相關(guān)的電磁輻射、功耗等側(cè)信道信息。側(cè)信道攻擊就是指利用這些泄露出來(lái)的側(cè)信道信息,以及密碼學(xué)、統(tǒng)計(jì)學(xué)原理相關(guān)知識(shí),來(lái)分析和破譯密鑰信息[1-4]。通常側(cè)信道攻擊分為有學(xué)習(xí)攻擊和無(wú)學(xué)習(xí)攻擊兩類,由于有學(xué)習(xí)攻擊與機(jī)器學(xué)習(xí)技術(shù)原理類似,也包括訓(xùn)練與測(cè)試兩個(gè)階段,所以有學(xué)習(xí)攻擊又被稱為基于機(jī)器學(xué)習(xí)的攻擊。有學(xué)習(xí)攻擊是指利用一臺(tái)可以被攻擊人員所控制的、與攻擊目標(biāo)設(shè)備相似或相同的設(shè)備(稱為實(shí)驗(yàn)設(shè)備[5]),來(lái)建立泄露信息的能耗模型(稱為模板),這樣就能對(duì)這一類型設(shè)備進(jìn)行攻擊。正是由于有學(xué)習(xí)攻擊與機(jī)器學(xué)習(xí)原理類似,使得采用機(jī)器學(xué)習(xí)方法實(shí)現(xiàn)有學(xué)習(xí)攻擊成為可能[6]。Backes等[5]使用機(jī)器學(xué)習(xí)技術(shù)對(duì)打印機(jī)成功進(jìn)行了聲學(xué)側(cè)通道攻擊;Maghrebi等[4]分別使用隨機(jī)森林、支持向量機(jī)、深度網(wǎng)絡(luò)等機(jī)器算法在DPAContest比賽數(shù)據(jù)中進(jìn)行了側(cè)信道模板分析,實(shí)驗(yàn)結(jié)果表明基于深度網(wǎng)絡(luò)的模板攻擊在匹配成功率方面要優(yōu)于其他方法。
有學(xué)習(xí)攻擊中的模板攻擊[5]是目前眾多攻擊方法中研究得最深入也是最成功的一種,常用多元高斯分布表示模板。為提高模板攻擊效率,目前的部分研究著眼于改進(jìn)多元高斯分布中的協(xié)方差矩陣。這些研究分別嘗試了單位協(xié)方差、共享協(xié)方差、池化協(xié)方差等方法,這些改進(jìn)能在一定程度上降低計(jì)算成本、提高攻擊效果[6-10]。其他提高模板攻擊效率方法包括:利用相位相關(guān)性消除構(gòu)架模板中的數(shù)據(jù)干擾,以構(gòu)建高質(zhì)量的模板;采用主成分分析(Principal Component Analysis,PCA)方法對(duì)能耗數(shù)據(jù)進(jìn)行降維處理,該方法能有效降低協(xié)方差矩陣的計(jì)算復(fù)雜度并在一定程度上提高攻擊效率[11-12]。
模板攻擊另一種研究思路是采用機(jī)器學(xué)習(xí)中分類算法代替?zhèn)鹘y(tǒng)多元高斯分布模板,例如,利用多類支持向量機(jī)作為模板實(shí)施模板攻擊[13-14],采用神經(jīng)網(wǎng)絡(luò)作為模板進(jìn)行模板攻擊等[15-16]。在傳統(tǒng)模板攻擊中,首先使用多元高斯分布對(duì)旁路信號(hào)軌跡特征進(jìn)行刻畫(huà);然后用極大似然方法對(duì)功率跟蹤進(jìn)行分類。
眾多研究表明,基于神經(jīng)網(wǎng)絡(luò)的模板攻擊是機(jī)器學(xué)習(xí)算法與側(cè)信道攻擊結(jié)合中的最優(yōu)方案,而對(duì)于神經(jīng)網(wǎng)絡(luò)而言超參數(shù)是至關(guān)重要的因素,它往往決定了該神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)性能與效率。對(duì)于某一個(gè)神經(jīng)網(wǎng)絡(luò)至少必須指定控制學(xué)習(xí)速度或底層模型容量等參數(shù),比如學(xué)習(xí)率、神經(jīng)網(wǎng)絡(luò)層數(shù)等。因?yàn)椴煌P驮诓煌瑘?chǎng)景下需要不同的超參數(shù),而且每個(gè)超參數(shù)的意義又各不相同,這就需要技術(shù)人員擁有豐富的調(diào)參經(jīng)驗(yàn)以及投入大量工作時(shí)間?;诖耍绻麤](méi)有一個(gè)成熟的自動(dòng)化的調(diào)參方案,算法開(kāi)發(fā)人員也很難在有限時(shí)間和計(jì)算量情況下解決這一問(wèn)題。在不同實(shí)際場(chǎng)景中對(duì)于眾多訓(xùn)練數(shù)據(jù)集,很難事先知道什么方案是合適的,盡管是擁有豐富機(jī)器學(xué)習(xí)算法開(kāi)發(fā)經(jīng)驗(yàn)的人員也只有通過(guò)不斷地嘗試和更新迭代來(lái)找到合適的解決辦法。因此,實(shí)現(xiàn)自動(dòng)調(diào)參功能是十分必要的。時(shí)至今日,非參數(shù)學(xué)習(xí)研究正在幫助深度學(xué)習(xí)更加自動(dòng)的優(yōu)化模型中所需的超參數(shù)選擇[17],比如常用的幾種尋優(yōu)方法:網(wǎng)格尋優(yōu)、隨機(jī)尋優(yōu)[18]以及貝葉斯尋優(yōu)[19]。其中貝葉斯尋優(yōu)已經(jīng)被證明在許多具有挑戰(zhàn)性的優(yōu)化基準(zhǔn)函數(shù)上優(yōu)于其他全局優(yōu)化算法。對(duì)于連續(xù)函數(shù),貝葉斯優(yōu)化的工作原理通常是假設(shè)未知函數(shù)是從高斯過(guò)程中采樣的,并在進(jìn)行觀察時(shí)保持該函數(shù)的后驗(yàn)分布[20]。目前尚未有將貝葉斯優(yōu)化方法運(yùn)用于側(cè)信道攻擊中的研究。為了使得基于神經(jīng)網(wǎng)絡(luò)的模板攻擊效果更佳,本文嘗試將基于貝葉斯的超參數(shù)自動(dòng)優(yōu)化方法應(yīng)用在側(cè)信道攻擊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)尋優(yōu)中,幫助我們更好地借助神經(jīng)網(wǎng)絡(luò)方法實(shí)現(xiàn)側(cè)信道攻擊。
基于前人的研究成果,本文借鑒了基于神經(jīng)網(wǎng)絡(luò)側(cè)信道攻擊的模型,實(shí)現(xiàn)了將多層感知器用于模板攻擊,而且首次將貝葉斯優(yōu)化方法運(yùn)用在基于多層感知器的模板攻擊中,為多層感知器尋找合適的超參數(shù)使其用于模板攻擊時(shí)攻擊效果最佳;其次,在原有的貝葉斯更新先驗(yàn)分布理論基礎(chǔ)上發(fā)展出對(duì)離散值超參數(shù)的特殊處理方法,將超參數(shù)設(shè)置的經(jīng)驗(yàn)結(jié)合到尋優(yōu)算法中,更進(jìn)一步地提高尋優(yōu)效率。為與貝葉斯尋優(yōu)算法作對(duì)比,本文還實(shí)現(xiàn)了人工尋優(yōu)算法,分析了兩種算法的優(yōu)劣。
1996年,Kocher[20]提出了側(cè)信道攻擊概念,它是利用設(shè)備功耗等側(cè)信道泄露的相關(guān)信息來(lái)提取密鑰。側(cè)信道攻擊可以分為以下兩類:
(1) 有學(xué)習(xí)攻擊,比如模板攻擊、隨機(jī)攻擊[21]或被稱為基于機(jī)器學(xué)習(xí)的攻擊。
(2) 無(wú)學(xué)習(xí)攻擊,比如差分能量分析攻擊[22]、相關(guān)性能量分析[23]或被稱為相互信息分析。
想要實(shí)現(xiàn)有學(xué)習(xí)側(cè)信道攻擊,首先需要擁有兩臺(tái)幾乎相同的設(shè)備。其中一臺(tái)接近于目標(biāo)設(shè)備,而且技術(shù)人員應(yīng)該對(duì)其具有一定的控制權(quán),然后在上面運(yùn)行一個(gè)具有固定密鑰值k∈K的加密操作,K是所有可能的密鑰值的集合。對(duì)于一個(gè)有學(xué)習(xí)能力的設(shè)備,應(yīng)該對(duì)其輸入和密鑰具有充分的認(rèn)識(shí)和控制權(quán)。在這種情況下,有學(xué)習(xí)的攻擊分為以下兩步執(zhí)行:
(1) 分析階段,同時(shí)使用從有學(xué)習(xí)能力的設(shè)備收集到的側(cè)信道能跡與目標(biāo)設(shè)備執(zhí)行加密操作的能量泄露來(lái)分析所有可能的密鑰值k∈K。
(2) 攻擊階段,對(duì)從目標(biāo)設(shè)備泄露收集到的能跡進(jìn)行分析與分類,以恢復(fù)密鑰值k。
在分析階段,為每個(gè)可能的鍵值k∈K收集一組側(cè)信道能跡。通常情況下,應(yīng)該采用分而治之的策略。例如,K=0,1,…,255意味著收集256組能跡來(lái)執(zhí)行分析。在攻擊階段,選擇從目標(biāo)設(shè)備收集最合適的側(cè)信道能跡模型來(lái)揭示正確鍵值k。有學(xué)習(xí)攻擊被認(rèn)為是最強(qiáng)大的側(cè)信道攻擊形式,因?yàn)楣粽吣軌蛟诠羟懊枋鲈O(shè)備的側(cè)信道泄露信息[24]。
(1)
由于模板實(shí)際上就是一個(gè)分類器,自然可以將其應(yīng)用于分類神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)攻擊。同時(shí)神經(jīng)網(wǎng)絡(luò)是研究深度學(xué)習(xí)的基礎(chǔ),其中的深度神經(jīng)網(wǎng)絡(luò)技術(shù)已被應(yīng)用于多個(gè)領(lǐng)域,如圖像分類、語(yǔ)音識(shí)別等[24]。而多層感知器可以稱得上是神經(jīng)網(wǎng)絡(luò)中一個(gè)里程碑的發(fā)展,它克服了單層感知器不能解決非線性可分的問(wèn)題,為整個(gè)神經(jīng)網(wǎng)絡(luò)后續(xù)發(fā)展提供了可能。
圖1 多層感知器
將f記為激活函數(shù),網(wǎng)絡(luò)中任意一層輸出可以表示為:
(2)
可以發(fā)現(xiàn),隱含層每個(gè)神經(jīng)元均是由輸入特征X的線性組合構(gòu)成。然而僅僅是線性組合,那么無(wú)論這個(gè)神經(jīng)網(wǎng)絡(luò)有多少層,結(jié)果都將與特征線性相關(guān)。于是在每個(gè)神經(jīng)元計(jì)算結(jié)果之后,添加一個(gè)激活函數(shù)(Activation Function),從而改變線性規(guī)則。常用的激活函數(shù)有修正線性函數(shù)(ReLU)、雙曲正切函數(shù)(tanh)、Sigmod函數(shù)等。
超參數(shù)是指模型定義和訓(xùn)練中事先需要設(shè)置的參數(shù)。如神經(jīng)網(wǎng)絡(luò)層數(shù)、類型、層寬、激活函數(shù)、學(xué)習(xí)率、學(xué)習(xí)的批大小、L2正則化項(xiàng)大小等。又例如機(jī)器學(xué)習(xí)算法中的支持向量機(jī)(Support Vector Machine,SVM)就有g(shù)amma、kernel、ceof等超參數(shù)需要調(diào)整。對(duì)于機(jī)器學(xué)習(xí)而言幾乎所有算法都需要設(shè)置超參數(shù)。這些超參數(shù)直接決定了模型性能訓(xùn)練是否能夠成功或達(dá)到最優(yōu)。然而針對(duì)不同模型找到最合適該模型的超參數(shù)組合(即超參數(shù)優(yōu)化)確實(shí)是一項(xiàng)復(fù)雜的工作,如今越來(lái)越多調(diào)參工作使用了自動(dòng)優(yōu)化方法,這些方法旨在使用帶有策略的啟發(fā)式搜索在更短時(shí)間內(nèi)找到最優(yōu)超參數(shù),除了少量初始設(shè)置之外,并不需要額外人工干預(yù)[16-17]。目前為止,已有多種較為成熟的自動(dòng)調(diào)參算法,其中貝葉斯優(yōu)化算法已被證明是目前最佳自動(dòng)調(diào)參算法[15],本文正是通過(guò)運(yùn)用這一算法對(duì)自動(dòng)尋優(yōu)進(jìn)行研究。
網(wǎng)格搜索和隨機(jī)搜索在計(jì)算資源有限情況下推薦的結(jié)果不一定比建模工程師個(gè)人經(jīng)驗(yàn)表現(xiàn)要好,而貝葉斯優(yōu)化就是“很可能”比普通開(kāi)發(fā)者或建模工程師調(diào)參能力更好的算法。
貝葉斯優(yōu)化是貝葉斯回歸的一種應(yīng)用。貝葉斯回歸是一種無(wú)參數(shù)函數(shù)回歸方法。它利用高斯隨機(jī)過(guò)程,根據(jù)觀察到的函數(shù)輸入和輸出,使用貝葉斯定義,將假設(shè)的先驗(yàn)概率分布轉(zhuǎn)換為后驗(yàn)分布。隨著觀察數(shù)據(jù)增加,函數(shù)的后驗(yàn)概率越來(lái)越準(zhǔn)確。貝葉斯優(yōu)化是根據(jù)擬合出的后驗(yàn)概率分布和一定策略,發(fā)現(xiàn)下一個(gè)尋優(yōu)的位置。該策略稱為acquisition[19]。我們的目標(biāo)是選擇下一個(gè)觀察位置,以便盡快發(fā)現(xiàn)該數(shù)據(jù)范圍內(nèi)的最大函數(shù)值。其策略需要考慮兩個(gè)可能:一是開(kāi)發(fā)(exploit),即在當(dāng)前觀察的最大值附近尋找,這是一種保守策略;二是探索(explore),即在方差最大的位置尋找,這是一種激進(jìn)策略,方差最大地方可能帶來(lái)意外的驚喜,而方差小的地方已經(jīng)沒(méi)有探索的價(jià)值了。根據(jù)這兩種策略可以得到多種選擇函數(shù)。典型的有PI(Probability of Improvement)、EI(Expected Improvement)、GP-UCB(GP Upper Confidence Bound)等。
模板攻擊是有學(xué)習(xí)攻擊中研究得最深入也是有效率的一種攻擊方式,而其中模板最基本形式是多元高斯分布。為進(jìn)一步提高模板攻擊效率,研究人員提出了多種改進(jìn)方法。一種研究思路是采用機(jī)器學(xué)習(xí)中的部分算法代替?zhèn)鹘y(tǒng)多元高斯分布模板。例如,采用支持向量機(jī)作為模板進(jìn)行模板攻擊,采用神經(jīng)網(wǎng)絡(luò)作為模板進(jìn)行攻擊,將隨機(jī)森林算法運(yùn)用到模板攻擊中等。本文就采用了結(jié)合多層感知器模板攻擊方法。若攻擊時(shí)使用m條攻擊能跡,則密鑰為:
(3)
式中:K*代表正確密鑰;ej代表能量曲線;comb(x,k)代表無(wú)掩碼中間組合值;MLP(ej|comb(xj,k))表示訓(xùn)練過(guò)程中學(xué)習(xí)到的分類器概率模型。在該攻擊方式中,多層感知器訓(xùn)練結(jié)果起著關(guān)鍵作用。若通過(guò)學(xué)習(xí)得到模型本身分類效果就不好,那么攻擊效果肯定也會(huì)不理想。
為成功實(shí)現(xiàn)基于多層感知器的模板攻擊,本次實(shí)驗(yàn)使用的是無(wú)抖動(dòng)防御的公開(kāi)能跡集ACAD。該能跡集是基于AES加掩碼算法實(shí)現(xiàn)的一種電磁信號(hào)泄露數(shù)據(jù),包含60 000條能跡數(shù)據(jù),其中:50 000條作為訓(xùn)練數(shù)據(jù),10 000條作為攻擊數(shù)據(jù)[24]。采用模型訓(xùn)練的驗(yàn)證精度作為模型好壞的衡量指標(biāo)。其中驗(yàn)證精度是機(jī)器學(xué)習(xí)中常用指標(biāo),反映了模型對(duì)數(shù)據(jù)的分類能力。模型訓(xùn)練驗(yàn)證精度定義為:
(4)
式中:Dtest表示驗(yàn)證集能跡;ei表示能跡;K*表示正確密鑰;Pr(K|ei)表示猜測(cè)密鑰。簡(jiǎn)而言之,驗(yàn)證精度就是當(dāng)猜測(cè)密鑰與正確密鑰相等時(shí)的能跡數(shù)與驗(yàn)證集能跡數(shù)之比。
有了數(shù)據(jù)集以及衡量指標(biāo)作為前提,基于多層感知器的模板攻擊具體實(shí)現(xiàn)步驟分為訓(xùn)練與攻擊兩個(gè)階段,其中訓(xùn)練階段主要步驟如下。
(1) 采用PCA對(duì)加掩AES算法能跡數(shù)據(jù)集進(jìn)行降維處理。
(2) 針對(duì)降維后的能跡數(shù)據(jù),建立相應(yīng)多層感知器(MLP)模板。
(3) 利用數(shù)據(jù)集中的50 000條能跡數(shù)據(jù)對(duì)預(yù)測(cè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
攻擊階段的主要步驟如下:
(1) 利用訓(xùn)練的多層感知器模板,對(duì)驗(yàn)證集能跡Dtest進(jìn)行分類。
(2) 根據(jù)分類結(jié)果計(jì)算正確密鑰對(duì)應(yīng)的能跡數(shù)與驗(yàn)證集能跡數(shù)之比也就是最大驗(yàn)證精度。
貝葉斯優(yōu)化與其他優(yōu)化方法的不同之處在于,它首先為f(x)構(gòu)造一個(gè)概率模型(即先驗(yàn)分布),然后利用這個(gè)模型來(lái)決定下一步x取什么數(shù)值來(lái)計(jì)算函數(shù)值(更新先驗(yàn)分布)。其基本思想是利用以前對(duì)f(x)評(píng)估所獲得的所有信息,而不是簡(jiǎn)單地依賴于局部梯度和海森近似。
在使用貝葉斯優(yōu)化時(shí),首先通過(guò)樣本點(diǎn)對(duì)高斯過(guò)程進(jìn)行估計(jì)與更新,然后通過(guò)選擇函數(shù)來(lái)確定新的采樣點(diǎn)。自然對(duì)貝葉斯尋優(yōu)的研究重點(diǎn)就放在了高斯過(guò)程與選擇函數(shù)上。
3.2.1高斯過(guò)程
貝葉斯優(yōu)化過(guò)程中使用高斯過(guò)程作為先驗(yàn)函數(shù),它是一種強(qiáng)大、方便的先驗(yàn)分布函數(shù),能有效擬合現(xiàn)實(shí)中的分布[20]。一個(gè)完整的高斯過(guò)程由且僅由均值函數(shù)m(x)與協(xié)方差函數(shù)k(x,x′)確定,其中均值函數(shù)為一個(gè)向量,而協(xié)方差函數(shù)為矩陣。如此一來(lái)高斯過(guò)程gp就可以表示為:
f~gp(m,k)
(5)
現(xiàn)假設(shè)有一組樣本點(diǎn)D={(x1:t,y1:t)},其協(xié)方差矩陣為:
(6)
一個(gè)新樣本xt+1加入會(huì)更新上述協(xié)方差矩陣K,假設(shè)有k=[k(xt+1,x1),k(xt+1,x2),…,k(xt+1,xt)]那么更新后的協(xié)方差可表示為:
(7)
有了更新后協(xié)方差矩陣就可以通過(guò)前t個(gè)樣本估計(jì)出ft+1的后驗(yàn)概率分布:
P(ft+1|D1:t,xt+1)}~N(u,σ2)
(8)
u=kTK-1f1:t
(9)
σ2=k(xt+1,xt+1)-kTK-1k
(10)
上述公式的詳細(xì)推導(dǎo)過(guò)程以及核函數(shù)與均值函數(shù)的選擇詳見(jiàn)文獻(xiàn)[18]。
可以根據(jù)新加入的樣本點(diǎn)對(duì)先驗(yàn)中高斯過(guò)程進(jìn)行更新,使其能更好擬合現(xiàn)實(shí)情況。
3.2.2選擇函數(shù)
有了先驗(yàn)概率分布,接下來(lái)就需要通過(guò)選擇函數(shù)確定用于更新先驗(yàn)的采樣點(diǎn)。它是決定貝葉斯優(yōu)化能否成功的另一重要因素。通過(guò)該采樣點(diǎn)獲得后驗(yàn)分布,使該分布更貼切模擬現(xiàn)實(shí)情況。雖然目前已有多種選擇函數(shù)可供使用但它們主要思想都是平衡上面提到的兩種策略即explore與exploit。本文使用EI準(zhǔn)則作為選擇函數(shù),經(jīng)驗(yàn)證EI準(zhǔn)則比PI表現(xiàn)得更好[19],而且與GP_UCB不同的是它自己不再需要確定額外參數(shù)。EI準(zhǔn)則a(·)如下:
a(x|D)=Ey~f(x|D)[max(0,y-fbest)]=
(11)
為驗(yàn)證提出的基于多層感知器的攻擊方法,本文對(duì)AES加掩數(shù)據(jù)集進(jìn)行了攻擊實(shí)驗(yàn);同時(shí)為了驗(yàn)證貝葉斯尋優(yōu)算法,在攻擊模型基礎(chǔ)上使用了兩種不同尋優(yōu)方法:人工尋優(yōu)與貝葉斯尋優(yōu),并對(duì)這兩種尋優(yōu)方式進(jìn)行了比較。為了進(jìn)一步提高貝葉斯尋優(yōu)算法效率,根據(jù)貝葉斯尋優(yōu)理論知識(shí)分析了離散值超參數(shù)與連續(xù)值超參數(shù)的處理方式,并進(jìn)行了改進(jìn)。
本文實(shí)驗(yàn)使用了ASCAD公開(kāi)數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),采用最大精度衡量?jī)?yōu)化算法好壞的指標(biāo)。本文針對(duì)MLP神經(jīng)網(wǎng)絡(luò)所需超參數(shù)的搜索空間如表1所示。
表1 多層感知器的超參數(shù)及其范圍
4.2.1離散值與連續(xù)值
(1) 離散超參數(shù)尋優(yōu)。根據(jù)3.2節(jié)中描述的高斯過(guò)程中計(jì)算后驗(yàn)概率步驟,將離散型超參數(shù)看作枚舉型(enum)處理。如需要推薦超參數(shù)中的Layer_size與L2,它們的可能取值分別為[16,32,48,64]與[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0],而后在處理這些數(shù)據(jù)時(shí)將每一個(gè)可能取值都當(dāng)作單獨(dú)一維,根據(jù)sobol序列函數(shù)產(chǎn)生的隨機(jī)矩陣中最大的某一位置的原矩陣(存儲(chǔ)的是需要優(yōu)化超參數(shù)所有可能取值)值為本次推薦超參數(shù)。這樣推薦參數(shù)的隨機(jī)性較大,每個(gè)超參數(shù)成為推薦值概率都一樣;但由于新采樣點(diǎn)是由EI準(zhǔn)則所確定,若下一個(gè)采樣點(diǎn)不存在該離散超參數(shù)取值范圍內(nèi),就只能取最靠近計(jì)算出來(lái)采樣點(diǎn)存在于取值范圍內(nèi)的值作為新的采樣點(diǎn),這樣就不能使更新后的后驗(yàn)分布更好模擬真實(shí)情況。
(2) 連續(xù)超參數(shù)尋優(yōu)。連續(xù)超參數(shù)尋優(yōu)與離散超參數(shù)處理類似,唯一不同是將連續(xù)超參數(shù)看作整型(int)處理。在配置文件中存的是它的取值范圍,而不是具體值;在后面處理該類型數(shù)據(jù)時(shí)將每一種連續(xù)超參數(shù)視為一維,同樣根據(jù)sobol序列函數(shù)產(chǎn)生的隨機(jī)矩陣中最大的某一位置對(duì)應(yīng)原矩陣中的值為本次推薦超參數(shù)。連續(xù)值超參數(shù)尋優(yōu)較離散值超參數(shù)尋優(yōu)的優(yōu)點(diǎn)為:根據(jù)EI準(zhǔn)則得到下一個(gè)采樣點(diǎn)可以精確用于更新先驗(yàn)分布,能最大程度模擬真實(shí)情況中的分布。
由于離散型超參數(shù)不能取到兩個(gè)數(shù)之間的值,本文借鑒了對(duì)連續(xù)超參數(shù)的處理方式對(duì)離散超參數(shù)進(jìn)行優(yōu)化:將一個(gè)離散超參數(shù)當(dāng)且僅當(dāng)作一維,通過(guò)一系列的處理,將應(yīng)推薦超參數(shù)對(duì)應(yīng)位置的值置為最大,從而得到推薦值。根據(jù)以上所述的兩種處理方式,本文做了一個(gè)針對(duì)離散超參數(shù)尋優(yōu)不同處理方式的對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 離散超參數(shù)尋優(yōu)不同處理方式對(duì)結(jié)果的影響
由對(duì)比實(shí)驗(yàn)可知對(duì)離散值采取類似連續(xù)值處理方式要優(yōu)于離散值原本處理方式。為進(jìn)一步提高貝葉斯尋優(yōu)效率,在后面實(shí)驗(yàn)過(guò)程中對(duì)離散值均采取了類似連續(xù)值的處理方式。
4.2.2貝葉斯尋優(yōu)與人工尋優(yōu)
對(duì)比了采用貝葉斯優(yōu)化算法進(jìn)行自動(dòng)尋優(yōu)與人工尋優(yōu)得到超參數(shù)所構(gòu)建的多層感知器(MLP)網(wǎng)絡(luò)結(jié)構(gòu)運(yùn)用于模板攻擊中的兩種結(jié)果。
(1) 貝葉斯自動(dòng)尋優(yōu)算法。針對(duì)上面需要尋優(yōu)的5種超參數(shù)共進(jìn)行了5輪貝葉斯自動(dòng)尋優(yōu),將每輪尋優(yōu)結(jié)果用于構(gòu)建MLP,將該MLP用于模板攻擊,最終得到了每一輪攻擊結(jié)果的最大精度,如圖3所示。
圖3 貝葉斯尋優(yōu)算法在不同推薦次數(shù)下實(shí)驗(yàn)對(duì)比
在5輪推薦中,第4輪18次推薦次數(shù)使得攻擊結(jié)果最大精度達(dá)到0.025 8。其次,可以看出推薦次數(shù)與最大精度并不嚴(yán)格形成正比關(guān)系,但若是推薦次數(shù)過(guò)小,想要得到較好的結(jié)果則不太可能。
由圖3和表2可知第四輪推薦結(jié)果最佳。當(dāng)隱含層、神經(jīng)元大小、PCA、L2分別取1、64、94、0.0時(shí),激活函數(shù)為Sigmoid構(gòu)成的MLP用于模板攻擊結(jié)果最佳。
(2) 人工尋優(yōu)。在該部分中,實(shí)驗(yàn)對(duì)MLP需要的超參數(shù)進(jìn)行了人工調(diào)整,得到了一個(gè)相對(duì)較好的結(jié)果。在此過(guò)程中針對(duì)5個(gè)超參數(shù)共進(jìn)行了40次實(shí)驗(yàn)。實(shí)驗(yàn)采用了排列組合方式,即針對(duì)每個(gè)超參數(shù)可能取值都進(jìn)行了測(cè)試。出于時(shí)間與人工成本考慮,實(shí)驗(yàn)過(guò)程中首先固定其他4個(gè)超參數(shù)取值再對(duì)剩下超參數(shù)所有可能取值進(jìn)行測(cè)試,找到該超參數(shù)使得實(shí)驗(yàn)結(jié)果表現(xiàn)最佳的值。在接下來(lái)的實(shí)驗(yàn)中固定該超參數(shù)值,依次改變其他超參數(shù),最終得到一個(gè)在所有實(shí)驗(yàn)中使得模板攻擊在最大準(zhǔn)確度與最小損失衡量下均表現(xiàn)為最佳的組合。對(duì)于上面的實(shí)驗(yàn)描述,得到實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 人工調(diào)參實(shí)驗(yàn)結(jié)果
在40次實(shí)驗(yàn)中表現(xiàn)最好為第37次實(shí)驗(yàn),它最大精準(zhǔn)度與最小損失分別為0.016 9與5.369 38;而表現(xiàn)最差為第2次實(shí)驗(yàn),最大精度僅有0.004 5,如表3所示。
表3 人工調(diào)參中實(shí)驗(yàn)結(jié)果表現(xiàn)最好與最差超參數(shù)
經(jīng)過(guò)上面兩種不同尋優(yōu)算法實(shí)驗(yàn),得到了兩種算法各自對(duì)應(yīng)的最佳結(jié)果,現(xiàn)就兩種算法得到結(jié)果進(jìn)行對(duì)比并分析它們各自優(yōu)缺點(diǎn)。將上面進(jìn)行的5輪貝葉斯超參數(shù)優(yōu)化實(shí)驗(yàn)中使得攻擊結(jié)果表現(xiàn)得最好與最差的第1輪和第4輪分別從最大精度與最小損失以及所耗費(fèi)的時(shí)間三個(gè)方面與使用人工尋優(yōu)算法的攻擊結(jié)果進(jìn)行了對(duì)比,結(jié)果如圖5所示。具體分析兩種算法每次訓(xùn)練結(jié)果對(duì)實(shí)驗(yàn)的影響,結(jié)果如圖6所示。
圖5 貝葉斯尋優(yōu)算法與人工尋優(yōu)的結(jié)果對(duì)比
圖6 貝葉斯尋優(yōu)與人工尋優(yōu)每次尋優(yōu)結(jié)果對(duì)比
可以看到,使用貝葉斯尋優(yōu)算法時(shí)若推薦(訓(xùn)練)次數(shù)過(guò)小會(huì)使得實(shí)驗(yàn)結(jié)果表現(xiàn)遠(yuǎn)不如訓(xùn)練次數(shù)多的人工尋優(yōu)算法??僧?dāng)貝葉斯尋優(yōu)算法訓(xùn)練次數(shù)達(dá)到一定值時(shí),不管是最大精度還是最小損失均優(yōu)于人工尋優(yōu),且此時(shí)貝葉斯尋優(yōu)算法推薦次數(shù)還不到人工尋優(yōu)的一半,與之對(duì)應(yīng)時(shí)間是使用人工尋優(yōu)算法的二分之一。
貝葉斯自動(dòng)尋優(yōu)算法與人工尋優(yōu)算法各自的優(yōu)缺點(diǎn)如下:貝葉斯自動(dòng)尋優(yōu)算法不用人為干預(yù),只要確定需要訓(xùn)練的超參數(shù)就可以得到該輪訓(xùn)練最佳結(jié)果;達(dá)到相同實(shí)驗(yàn)結(jié)果貝葉斯自動(dòng)調(diào)參算法效率更高。但貝葉斯算法存在偶然性,若是本輪訓(xùn)練次數(shù)少那么它的結(jié)果大概率會(huì)表現(xiàn)得很糟糕。由圖6可以看到貝葉斯尋優(yōu)明顯存在冷啟動(dòng)問(wèn)題,而人工尋優(yōu)算法尋找組合更為全面,但是效率低下,需要大量重復(fù)勞動(dòng)力。
本文基于現(xiàn)有的側(cè)信道攻擊神經(jīng)網(wǎng)絡(luò)調(diào)參技術(shù),提出貝葉斯自動(dòng)尋優(yōu)算法,該方法利用高斯過(guò)程建立先驗(yàn)分布模型,通過(guò)選擇函數(shù)確定采樣點(diǎn)得到后驗(yàn)分布,繼而根據(jù)后驗(yàn)更新先驗(yàn)分布。實(shí)驗(yàn)結(jié)果表明,貝葉斯尋優(yōu)算法相對(duì)人工尋優(yōu)具有高效性以及獨(dú)立性,它能提供比其他尋優(yōu)算法更好的學(xué)習(xí)效率,有利于減少訓(xùn)練次數(shù),攻擊質(zhì)量取得了明顯提高。在今后研究中,我們將致力于探索如何消除貝葉斯自動(dòng)尋優(yōu)算法冷啟動(dòng)的問(wèn)題,以便于進(jìn)一步提高貝葉斯尋優(yōu)算法效率。