亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于改進(jìn)殘差網(wǎng)絡(luò)和數(shù)據(jù)增強(qiáng)技術(shù)的能量分析攻擊研究*

        2020-09-12 10:08:40嚴(yán)迎建郭朋飛朱春生蔡爵嵩
        密碼學(xué)報(bào) 2020年4期
        關(guān)鍵詞:密鑰卷積噪聲

        王 愷, 嚴(yán)迎建, 郭朋飛, 朱春生, 蔡爵嵩

        戰(zhàn)略支援部隊(duì)信息工程大學(xué), 鄭州450001

        1 引言

        隨著嵌入式密碼設(shè)備的廣泛應(yīng)用, 側(cè)信道攻擊(Side Channel Analysis/Attack, SCA) 成為其主要安全威脅之一, 攻擊者通過(guò)對(duì)密碼算法物理實(shí)現(xiàn)過(guò)程中的泄漏信息進(jìn)行分析, 進(jìn)而恢復(fù)密鑰信息. Kocher 于1996 年首次提出側(cè)信道攻擊[1], 通過(guò)對(duì)時(shí)間序列分析進(jìn)而恢復(fù)密鑰, 隨后于1999 年提出了更強(qiáng)大和更通用的攻擊形式, 稱為差分能量分析(DPA)[2], de Mulder 等人于2006 年提出了差分電磁攻擊(DEMA)技術(shù)[3]. 除了簡(jiǎn)單和差分分析攻擊外, 模板攻擊[4]被認(rèn)為是最有效的攻擊方式, 它假設(shè)攻擊者在分析階段可以獲得一個(gè)相同的目標(biāo)設(shè)備, 并對(duì)目標(biāo)設(shè)備完全可控, 利用泄漏信號(hào)對(duì)隨機(jī)變量統(tǒng)計(jì)特性進(jìn)行建模, 在攻擊階段用判別分析的方法獲取目標(biāo)設(shè)備泄漏信息中所隱藏的秘密信息, 因此, 相應(yīng)的抗能量攻擊技術(shù)也成為當(dāng)前的研究熱點(diǎn)[5].

        近年來(lái), 密碼學(xué)界探索了基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的能量分析攻擊新方法, 這對(duì)加密算法實(shí)現(xiàn)的安全性造成了威脅. 深度學(xué)習(xí)使用深度神經(jīng)網(wǎng)絡(luò)從復(fù)雜數(shù)據(jù)中學(xué)習(xí)特征, 并對(duì)另一組數(shù)據(jù)分析做出決策, 具有良好的特征提取和分類功能, 深度神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別、自然語(yǔ)言處理等方面取得了很好的效果[6]. 基于深度學(xué)習(xí)的能量分析攻擊方法主要應(yīng)用于模板型的攻擊場(chǎng)景, 劉飚等人[7,8]使用支持向量機(jī)(SVM) 方法對(duì)電磁泄漏信息進(jìn)行分析, 從而實(shí)現(xiàn)密鑰的恢復(fù). Lerman 等人[9]通過(guò)實(shí)驗(yàn)驗(yàn)證了SVM 算法可以對(duì)加掩碼防護(hù)的AES 算法實(shí)現(xiàn)攻擊. Maghrebi 等人[10]最早研究了深度學(xué)習(xí)在密碼算法實(shí)現(xiàn)中的應(yīng)用, 將多層感知器(MLP) 和卷積神經(jīng)網(wǎng)絡(luò)(CNN) 等深度學(xué)習(xí)模型應(yīng)用于SCA. Benadjila 等人[11]通過(guò)實(shí)驗(yàn)給出了MLP 模型和CNN 模型的超參數(shù)選擇的方案, 進(jìn)一步證明了深度學(xué)習(xí)在模板型SCA 中的強(qiáng)大功能, 他們的另一成果是發(fā)布了ASCAD 公開(kāi)數(shù)據(jù)庫(kù), 該數(shù)據(jù)庫(kù)可以對(duì)基于機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的SCA 進(jìn)行效率和準(zhǔn)確性評(píng)估.

        深度學(xué)習(xí)技術(shù)也可以用于非模板型攻擊和非對(duì)稱密碼體制的攻擊. Timon 等人[12]提出了的利用深度學(xué)習(xí)進(jìn)行側(cè)信道信息泄漏檢測(cè), 針對(duì)非模板型攻擊的場(chǎng)景, 使用MLP 和CNN 進(jìn)行敏感性分析實(shí)現(xiàn)泄漏檢測(cè), 并將其作為神經(jīng)網(wǎng)絡(luò)是否學(xué)習(xí)的新指標(biāo). Carbone 等人[13]提出了一種基于CNN 的模板型SCA, 通過(guò)深度學(xué)習(xí)技術(shù)對(duì)安全實(shí)現(xiàn)的RSA 算法實(shí)施攻擊, 使用CNN 模型對(duì)寄存器的地址或值進(jìn)行分類, 實(shí)驗(yàn)結(jié)果表明CNN 也可以攻擊非對(duì)稱密碼體制.

        在典型的能量分析攻擊方法和上述基于深度學(xué)習(xí)的能量分析攻擊方法中, 都是假設(shè)在攻擊階段已知明文、密文或中間值信息, 但是在實(shí)際攻擊場(chǎng)景中, 很難滿足這個(gè)假設(shè), 為此, 羅漫[14]等人提出了使用“分而治之” 的方法, 直接以密鑰的最后2 個(gè)比特為攻擊目標(biāo), 在完全未知密文、明文及泄漏中間值的情況下,對(duì)電磁泄漏進(jìn)行了攻擊, 該模型使用典型的殘差網(wǎng)絡(luò)[15]進(jìn)行訓(xùn)練和測(cè)試, 但是該模型的不足是將一維電磁信號(hào)擴(kuò)展到二維后, 可能損失有效信息, 同時(shí)存在模型參數(shù)過(guò)多、恢復(fù)完整密鑰需要模型數(shù)量較多、建模過(guò)程需要的能量跡較多的缺點(diǎn). 宋治[16]使用Inception ResNet V2 對(duì)電磁泄漏信號(hào)進(jìn)行分類, 對(duì)AES密鑰進(jìn)行4 分類、8 分類、16 分類等一系列實(shí)驗(yàn).

        本文的主要工作: 基于羅漫[14]等人的研究成果, 繼續(xù)對(duì)直接恢復(fù)密鑰的能量分析攻擊方法進(jìn)行深入研究, 針對(duì)FPGA 實(shí)現(xiàn)的AES 分組密碼算法進(jìn)行攻擊, 在建模和攻擊階段中, 采用“分而治之” 的策略,將分塊大小設(shè)置為8 比特, 分別對(duì)每個(gè)字節(jié)進(jìn)行建模和恢復(fù), 只需要16 個(gè)模型即可完成128 比特密鑰的恢復(fù), 有效減少了恢復(fù)完整密鑰所需的模型數(shù)量. 本文的創(chuàng)新點(diǎn)是使用數(shù)據(jù)增強(qiáng)技術(shù)對(duì)改進(jìn)的深度殘差網(wǎng)絡(luò)進(jìn)行訓(xùn)練, 對(duì)原始能量跡增加高斯噪聲和隨機(jī)相位抖動(dòng), 減少了訓(xùn)練階段過(guò)擬合現(xiàn)象的發(fā)生, 可以在較小的原始數(shù)據(jù)集條件下取得良好的訓(xùn)練和測(cè)試效果; 同時(shí)針對(duì)能量分析攻擊中的泄漏信息為一維時(shí)間序列的特點(diǎn), 使用一維卷積核代替二維卷積核進(jìn)行計(jì)算, 并且減少了全連接層節(jié)點(diǎn)的數(shù)量, 設(shè)計(jì)了1D-ResNet模型, 有效減少了模型的參數(shù)和訓(xùn)練時(shí)間, 節(jié)約了計(jì)算資源. 該模型在明文和密文完全未知的情況下對(duì)密鑰的1 個(gè)字節(jié)進(jìn)行恢復(fù), 平均測(cè)試精度達(dá)到65.48%, 相比于CNN 神經(jīng)網(wǎng)絡(luò)和MLP 神經(jīng)網(wǎng)絡(luò)模型分別提高了16.63% 和54.27%, 達(dá)到同樣的訓(xùn)練精度該模型的訓(xùn)練時(shí)間約為CNN 模型的一半. 通過(guò)在ASCAD公開(kāi)數(shù)據(jù)庫(kù)上進(jìn)行測(cè)試和評(píng)估, 該模型要優(yōu)于文獻(xiàn)[11] 提出的MLP_best 和CNN_best 神經(jīng)網(wǎng)絡(luò)模型.

        本文結(jié)構(gòu)安排如下: 第2 節(jié)簡(jiǎn)要介紹殘差網(wǎng)絡(luò)的原理; 第3 節(jié)介紹了改進(jìn)殘差網(wǎng)絡(luò)的模型設(shè)計(jì)和攻擊流程; 第4 節(jié)介紹實(shí)驗(yàn)流程并分析實(shí)驗(yàn)結(jié)果, 驗(yàn)證了本文提出的1D-ResNet 模型的有效性; 第5 節(jié)對(duì)全文進(jìn)行總結(jié).

        2 殘差網(wǎng)絡(luò)

        殘差網(wǎng)絡(luò)(Residual Network, ResNet) 是由何愷明博士于2015 年提出的[15], 在圖像識(shí)別與分類領(lǐng)域有廣泛應(yīng)用[17], 在ImageNet 比賽Classification 任務(wù)上獲得第一名. 當(dāng)前, 隨著高性能GPU 的發(fā)展,計(jì)算能力極大提高, 神經(jīng)網(wǎng)絡(luò)的層數(shù)可以非常深, 具有相當(dāng)大的潛在學(xué)習(xí)能力. 從理論上來(lái)說(shuō), 越深的神經(jīng)網(wǎng)絡(luò)越能提取出復(fù)雜的特征, 越能取得良好的分類效果, 但是深層神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)需要訓(xùn)練的參數(shù)非常多,導(dǎo)致需要大量的計(jì)算資源, 并且在實(shí)際計(jì)算中, 隨著網(wǎng)絡(luò)層數(shù)的加深, 梯度大小會(huì)急劇下降, 存在梯度消失的現(xiàn)象, 這會(huì)導(dǎo)致學(xué)習(xí)速率非常緩慢. 在極少數(shù)情況下也會(huì)出現(xiàn)梯度急劇上升, 即梯度爆炸現(xiàn)象, 具體表現(xiàn)為在訓(xùn)練階段的精度比淺層網(wǎng)絡(luò)有所下降. 深度殘差網(wǎng)絡(luò)模型由于引入了殘差結(jié)構(gòu), 很好的解決了深層次網(wǎng)絡(luò)下梯度消失以及網(wǎng)絡(luò)難以訓(xùn)練的問(wèn)題. 殘差結(jié)構(gòu)如圖1所示.

        殘差塊通過(guò)引入x 的恒等映射連接,在網(wǎng)絡(luò)層數(shù)過(guò)深時(shí),通過(guò)將Y =F(x)+x 中F(x)擬合為0 來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)恒等映射, 解決了網(wǎng)絡(luò)退化問(wèn)題, 并且由于x 的引入使得反向傳播過(guò)程中導(dǎo)數(shù)值總是大于1, 防止了梯度消失. 文獻(xiàn)[15] 提出的殘差網(wǎng)絡(luò)包含了恒等塊(Identity Block) 和卷積塊(Convolutional Block)兩種結(jié)構(gòu), 如圖2 所示, 恒等塊的輸入與卷積層的輸出相連, 共同作為激活函數(shù)的輸入, 卷積塊將輸入經(jīng)過(guò)多層卷積和單層卷積結(jié)果相連后作為激活函數(shù)的輸入, 在每個(gè)卷積層后都使用批量歸一化層(Batch Normalization), 其作用是使輸出規(guī)范化為均值為0、方差為1 的正態(tài)分布, 保證所有訓(xùn)練數(shù)據(jù)為相同數(shù)量級(jí), 使用以上這兩種模塊為基本單位, 搭建的ResNet-18 結(jié)構(gòu)如圖3 所示.

        圖3 ResNet-18 結(jié)構(gòu)圖Figure 3 ResNet-18 structure

        3 模型設(shè)計(jì)和攻擊流程

        3.1 用于能量分析攻擊的模型設(shè)計(jì)

        ResNet-18 由于面向上千種圖像分類任務(wù), 輸入數(shù)據(jù)為圖像, 輸出為上千種分類結(jié)果, 使用二維的卷積核進(jìn)行運(yùn)算, 模型參數(shù)量較大, 降低了訓(xùn)練與識(shí)別速度, 考慮到用于能量分析攻擊的輸入數(shù)據(jù)為一維時(shí)間序列, 并且分類結(jié)果是由所選擇密鑰的位數(shù)決定的, 當(dāng)選擇N 位密鑰時(shí), 分類結(jié)果最多為2N 種, 因此本文設(shè)計(jì)并提出了一維卷積殘差網(wǎng)絡(luò)(one-Dimensional Convolution Residual Network, 1D-ResNet) 模型, 有效減少了模型參數(shù)和訓(xùn)練時(shí)間, 具體結(jié)構(gòu)如圖4 所示.

        圖4(a) 是殘差塊結(jié)構(gòu), 由恒等塊和卷積塊組成, 層間使用ReLu 作為激活函數(shù), 輸入經(jīng)過(guò)短路連接后通過(guò)最大值池化層輸出, 使用一維卷積核, 卷積核大小為N; 圖4(b) 是1D-ResNet 主體結(jié)構(gòu), 各殘差塊的卷積核個(gè)數(shù)分別為64、128、256、512, 全連接層的單元個(gè)數(shù)為512, 選擇8 比特密鑰為攻擊目標(biāo)時(shí), 模型輸出維度為28=256, 分別對(duì)應(yīng)256 種可能的密鑰(0x00、0x01、0x02、···、0xFE、0xFF).

        表1 列出了1D-ResNet 與原始ResNet-18 的主要結(jié)構(gòu)及其參數(shù)量, 從對(duì)比結(jié)果可以看出, 當(dāng)卷積核大小N =3 時(shí), 1D-ResNet 的參數(shù)量約為ResNet-18 參數(shù)量的60%, 可以有效減少訓(xùn)練時(shí)間和計(jì)算資源.

        3.2 數(shù)據(jù)增強(qiáng)

        數(shù)據(jù)增強(qiáng)(Data Augmentation) 是通過(guò)合成或者轉(zhuǎn)換的方式, 從有限的數(shù)據(jù)中生成新的數(shù)據(jù)的技術(shù),數(shù)據(jù)增強(qiáng)技術(shù)是一種克服數(shù)據(jù)不足和提高模型泛化能力的有效手段[18]. 在深度學(xué)習(xí)中, 一般要求樣本的數(shù)量要充足. 樣本數(shù)量越多, 訓(xùn)練出來(lái)的模型效果越好, 模型的泛化能力越強(qiáng). 通常在圖像分類任務(wù)中, 對(duì)于輸入的圖像進(jìn)行一些簡(jiǎn)單的平移、縮放、顏色變換、對(duì)比度變換、增加噪聲等, 不會(huì)影響圖像的類別. 在小規(guī)模數(shù)據(jù)集上訓(xùn)練的神經(jīng)網(wǎng)絡(luò)很容易出現(xiàn)過(guò)擬合的問(wèn)題, 因此針對(duì)這一難題, 在能量分析攻擊中, 為了訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)模型具有更強(qiáng)的范化能力, 確保在較小的數(shù)據(jù)集條件下可以取得較好的訓(xùn)練效果, 本文使用了3 種數(shù)據(jù)增強(qiáng)技術(shù), 對(duì)采集到的原始能量跡增加高斯噪聲和進(jìn)行隨機(jī)相位抖動(dòng), 有效解決了訓(xùn)練數(shù)據(jù)集不足、深度神經(jīng)網(wǎng)絡(luò)模型過(guò)擬合和對(duì)原始能量跡過(guò)度記憶的問(wèn)題, 提高了模型的魯棒性.

        模型 1D-ResNet 模型 ResNet-18 模型輸入層 1×N, 64, stride2 7×7, 64, stride2[ 1×N,64 1×N,64]]×2[ 3×3,64 3×3,64×2[ 1×N,128 1×N,128]×2[ 3×3,128 3×3,128]×2主體結(jié)構(gòu)[ 1×N,256 1×N,256]×2[ 3×3,256 3×3,256]×2[ 1×N,512 1×N,512]×2[ 3×3,512 3×3,512]×2參數(shù)個(gè)數(shù) 2.05×107(N = 3) 3.4×107

        3.2.1 增加高斯噪聲

        噪聲通常是由外界干擾、儀器誤差、設(shè)備故障等原因引起, 常見(jiàn)的噪聲有隨機(jī)噪聲、高斯噪聲和泊松噪聲等. 使用高斯噪聲更能有效模擬能量跡的噪聲, 在原始能量跡采集完畢后, 使用以下步驟完成噪聲插入.

        步驟1: 計(jì)算整條能量跡的均值M 和方差V;

        步驟2: 選取合適的噪聲閾值T, 設(shè)置隨機(jī)噪聲點(diǎn)的個(gè)數(shù)為n=T ×N, 其中N 為曲線樣本點(diǎn)個(gè)數(shù);

        步驟3: 在N 個(gè)樣本點(diǎn)中隨機(jī)選取n 個(gè)點(diǎn), 將其值更新為隨機(jī)值Urandom, 其取值范圍服從均值為M和方差為V 的正態(tài)分布.

        采集到的原始能量跡如圖5(a) 所示, 當(dāng)噪聲閾值T 選擇0.1 時(shí), 增加高斯噪聲后的曲線如圖5(b) 所示, 可以看出噪聲點(diǎn)較多, 整條曲線的輪廓越變得不明顯.

        3.2.2 隨機(jī)相位抖動(dòng)

        由于在波形采集過(guò)程中觸發(fā)信號(hào)存在誤差, 或者被測(cè)設(shè)備使用隨機(jī)延時(shí)、隨機(jī)時(shí)鐘頻率等防護(hù)對(duì)策,導(dǎo)致所采集的波形不能嚴(yán)格對(duì)齊, 因此在典型的相關(guān)能量分析、差分能量分析和模板攻擊的過(guò)程中, 首先需要對(duì)原始信號(hào)進(jìn)行對(duì)齊處理, 才能進(jìn)行后續(xù)的實(shí)驗(yàn)和分析. 根據(jù)經(jīng)驗(yàn), 未對(duì)齊波形的誤差主要包括相位誤差和振幅誤差, 處理振幅誤差相對(duì)容易, 但是處理相位誤差具有一定的難度. 因此, 為了提高神經(jīng)網(wǎng)絡(luò)對(duì)非對(duì)齊能量跡的處理能力, 在本實(shí)驗(yàn)中將采集到的原始信號(hào)添加隨機(jī)相位抖動(dòng)Doffset, 其中Doffset 的取值范圍是[?d,d], d 為抖動(dòng)范圍的最大值. 使用10 條原始能量跡進(jìn)行繪圖, 如圖6(a) 所示, 當(dāng)隨機(jī)抖動(dòng)范圍d 為50 時(shí), 10 條能量跡如圖6(b) 所示, 可以看出波形相位移動(dòng)較明顯.

        3.2.3 同時(shí)增加高斯噪聲和隨機(jī)相位抖動(dòng)

        該方法是上述兩種方法的組合, 首先對(duì)能量跡數(shù)據(jù)增加高斯噪聲, 然后對(duì)數(shù)據(jù)進(jìn)行隨機(jī)相位抖動(dòng), 旨在進(jìn)一步提高所訓(xùn)練模型的泛化能力, 以解決深度學(xué)習(xí)小樣本訓(xùn)練的難題. 如圖7 所示, 使用10 條能量跡增加高斯噪聲, 噪聲閾值T 選擇為0.1, 然后進(jìn)行隨機(jī)相位抖動(dòng), 隨機(jī)抖動(dòng)范圍d 為50, 可以看出各曲線完全錯(cuò)亂.

        圖7 同時(shí)增加高斯噪聲和隨機(jī)相位抖動(dòng)后的能量跡Figure 7 Power traces with Gaussian noise and random phase jitter

        3.3 攻擊流程設(shè)計(jì)

        3.3.1 數(shù)據(jù)采集

        使用實(shí)驗(yàn)平臺(tái)對(duì)能量跡進(jìn)行采集, 并且完成能量跡相位和振幅進(jìn)行對(duì)齊. 以128 比特密鑰的最后8 比特作為建模和攻擊目標(biāo), 因此分別選取256 種固定密鑰, 使用隨機(jī)明文進(jìn)行加密, 每種密鑰采集100 條能量跡, 共計(jì)25 600 條能量跡. 最終隨機(jī)選取22 000 條能量跡構(gòu)建數(shù)據(jù)集, 其中20 000 條曲線為訓(xùn)練集,2000 條曲線為測(cè)試集, 單條能量跡的有效樣本點(diǎn)為2000 個(gè).

        3.3.2 數(shù)據(jù)預(yù)處理

        使用3.2 節(jié)提出的三種數(shù)據(jù)增強(qiáng)方法, 對(duì)原始能量跡增加高斯噪聲和隨機(jī)相位抖動(dòng), 因此共得到4個(gè)數(shù)據(jù)集用于后續(xù)實(shí)驗(yàn): 數(shù)據(jù)集A 為原始能量跡; 數(shù)據(jù)集B 為增加高斯噪聲后的能量跡, 噪聲閾值T = 0.10; 數(shù)據(jù)集C 為隨機(jī)相位抖動(dòng)后的能量跡, 抖動(dòng)范圍取值d = 50; 數(shù)據(jù)集D 為同時(shí)增加高斯噪聲和隨機(jī)相位抖動(dòng)的能量跡, 噪聲閾值T =0.10, 抖動(dòng)范圍取值d=50.

        3.3.3 模型參數(shù)選擇

        將ResNet-18 網(wǎng)絡(luò)中二維卷積核改進(jìn)為一維卷積核后, 為了訓(xùn)練出最優(yōu)的1D-ResNet 模型, 使用數(shù)據(jù)集A 對(duì)激活函數(shù)類型、卷積核大小、訓(xùn)練批量大小設(shè)置等參數(shù)進(jìn)行選擇, 通過(guò)實(shí)驗(yàn)選取用于能量分析攻擊的最優(yōu)參數(shù). 同時(shí)對(duì)多層感知器神經(jīng)網(wǎng)絡(luò)(MLP 模型) 和卷積神經(jīng)網(wǎng)絡(luò)(CNN 模型) 進(jìn)行參數(shù)選擇,使用數(shù)據(jù)集A 對(duì)MLP 模型的全連接層數(shù)、各層節(jié)點(diǎn)數(shù)、各層激活函數(shù)和學(xué)習(xí)率進(jìn)行選擇; 對(duì)CNN 模型的卷積核大小、個(gè)數(shù)和卷積步長(zhǎng)、卷積層數(shù)、池化層數(shù)、全連接層數(shù)進(jìn)行選擇, 確保各模型在數(shù)據(jù)集A 上達(dá)到最佳訓(xùn)練精度.

        3.3.4 模型訓(xùn)練和測(cè)試

        完成數(shù)據(jù)采集、預(yù)處理和模型參數(shù)選擇后, 分別對(duì)4 個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試. 使用20000 條訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練, 訓(xùn)練批量大小設(shè)置為200, 為了對(duì)比各種模型的預(yù)測(cè)精度并節(jié)約訓(xùn)練時(shí)間, 迭代次數(shù)epoch統(tǒng)一設(shè)置為100. 每次訓(xùn)練完畢后, 記錄訓(xùn)練精度和訓(xùn)練損失曲線, 并保存模型用于測(cè)試. 在測(cè)試階段, 使用2000 條測(cè)試集數(shù)據(jù)進(jìn)行測(cè)試, 記錄測(cè)試精度, 對(duì)模型的有效性進(jìn)行評(píng)價(jià), 攻擊流程如圖8 所示.

        4 實(shí)驗(yàn)與分析

        4.1 采集平臺(tái)搭建

        本文實(shí)驗(yàn)使用SAKURA-G 開(kāi)發(fā)板, FPGA 芯片為XILINX SPARTAN-6 系列芯片, 控制芯片型號(hào)為XC6SLX9, AES 加密算法芯片為XC6SLX75, 示波器采樣率設(shè)置為250 MSa/s. 實(shí)驗(yàn)中使用的AES算法由SAKURA 官方網(wǎng)站提供[19]. 使用Python 語(yǔ)言為編程環(huán)境, 使用TensorFlow 框架進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測(cè)試.

        本文實(shí)驗(yàn)所使用的能量跡采集平臺(tái)如圖9 所示, 主要包括數(shù)字示波器、PC、FPGA 開(kāi)發(fā)板和外接電源, 采集流程如下:

        (1) PC 將AES 算法加密所需要的明文、密鑰發(fā)送至FPGA 開(kāi)發(fā)板;

        (2) FPGA 開(kāi)發(fā)板中控制芯片接收PC 輸入, 并控制加密芯片開(kāi)始工作, 同時(shí)向示波器發(fā)出觸發(fā)信號(hào);

        (3) 示波器收到觸發(fā)信號(hào)后開(kāi)始采集能量跡數(shù)據(jù), 并將數(shù)據(jù)儲(chǔ)存;

        (4) PC 收到FPGA 返回的加密信息, 并從示波器中讀取能量跡, 記錄明文、密鑰、密文信息, 完成一次能量跡采集;

        (5) 重量上述(1)–(4) 步驟, 完成實(shí)驗(yàn)所需要的大批量數(shù)據(jù).

        圖9 能量跡采集平臺(tái)示意圖Figure 9 Schematic diagram of power traces acquisition platform

        4.2 模型最優(yōu)參數(shù)選擇

        4.2.1 噪聲閾值和抖動(dòng)范圍值選擇

        通過(guò)設(shè)置不同的噪聲閾值和抖動(dòng)范圍值生成訓(xùn)練數(shù)據(jù), 并使用1D-ResNet 模型對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練, 訓(xùn)練精度和訓(xùn)練損失如圖10 所示. 圖10(a) 和圖10(b) 分別為噪聲閾值T = 0、0.05、0.10 和0.15 時(shí)的訓(xùn)練精度和訓(xùn)練損失曲線, 其中T = 0 為原始能量跡, 可以看出噪聲閾值越大, 訓(xùn)練精度的上升和訓(xùn)練損失的下降越慢; 圖10(c) 和圖10(d) 分別為抖動(dòng)范圍值d = 0、50、100 和150 時(shí)的訓(xùn)練精度和訓(xùn)練損失曲線,其中d = 0 為原始能量跡, 可以看出抖動(dòng)范圍值越大, 訓(xùn)練精度的上升和訓(xùn)練損失的下降越慢. 從圖10 中可以看出, 除原始能量跡外, 當(dāng)T = 0.10 和d = 50 時(shí)訓(xùn)練效果最好, 因此在生成數(shù)據(jù)集B、C、D 時(shí)將噪聲閾值T 設(shè)置為0.10, 抖動(dòng)范圍值d 設(shè)置為50.

        4.2.2 激活函數(shù)類型選擇

        使用數(shù)據(jù)集A 分別對(duì)ReLu 激活函數(shù)、tanh 激活函數(shù)和線性激活函數(shù)進(jìn)行實(shí)驗(yàn), 訓(xùn)練批量大小設(shè)置為200, 共進(jìn)行50 次迭代, 訓(xùn)練精度和訓(xùn)練損失曲線如圖11所示, 可以看出ReLu 激活函數(shù)性能最好, 進(jìn)行15 次迭代后訓(xùn)練精度達(dá)到90%, 線性激活函數(shù)性能最差. 模型訓(xùn)練完畢后使用測(cè)試集對(duì)模型進(jìn)行測(cè)試,測(cè)試精度分別為81.3%、81.2%、44.8%, 未發(fā)生過(guò)擬合現(xiàn)象, 因此1D-ResNet 模型使用ReLu 函數(shù)為激活函數(shù).

        4.2.3 卷積核大小選擇

        使用數(shù)據(jù)集A 進(jìn)行實(shí)驗(yàn), 使用ReLu 激活函數(shù), 訓(xùn)練批量大小設(shè)置為200, 共進(jìn)行50 次迭代, 一維卷積核大小分別設(shè)置為3、5、7、9、11, 卷積步長(zhǎng)設(shè)置為1. 訓(xùn)練精度和訓(xùn)練損失如圖12 所示, 測(cè)試結(jié)果對(duì)比如表2 所示, 可以看出當(dāng)一維卷積核大小設(shè)置為9 或11 時(shí), 訓(xùn)練精度上升較快, 當(dāng)卷積核大小為11 時(shí),測(cè)試精度并沒(méi)有提高, 相反訓(xùn)練時(shí)間變長(zhǎng), 因此在本文實(shí)驗(yàn)中卷積核大小選取為9.

        卷積核大小 3 5 7 9 11訓(xùn)練精度 99.98% 99.99% 99.78% 99.98% 99.93%測(cè)試精度 81.25% 82.50% 83.05% 84.35% 83.50%

        4.3 模型訓(xùn)練

        4.3.1 不同模型性能對(duì)比

        使用數(shù)據(jù)集A 對(duì)1D-ResNet 模型、CNN 模型和MLP 模型進(jìn)行訓(xùn)練和測(cè)試并尋找最優(yōu)參數(shù). CNN模型的卷積核大小為11、卷積步長(zhǎng)為2、使用ReLu 激活函數(shù), 共有12 個(gè)卷積層、6 個(gè)池化層和2 個(gè)全連接層; MLP 模型的全連接層數(shù)為8 層、各層節(jié)點(diǎn)數(shù)為300、各層間使用ReLu 激活函數(shù)、學(xué)習(xí)率為0.000 06. 數(shù)據(jù)集A 的訓(xùn)練精度曲線和訓(xùn)練損失曲線如圖13 所示, 可以看出1D-ResNet 模型經(jīng)過(guò)20 次迭代后訓(xùn)練精度達(dá)到90% 以上, MLP 模型和CNN 模型訓(xùn)練精度增長(zhǎng)較慢.

        4.3.2 1D-ResNet 模型性能對(duì)比

        分別使用4 個(gè)數(shù)據(jù)集, 對(duì)1D-ResNet 模型進(jìn)行訓(xùn)練, 訓(xùn)練精度曲線和訓(xùn)練損失曲線如圖13 所示. 可以看出使用訓(xùn)練集A 進(jìn)行訓(xùn)練時(shí), 訓(xùn)練精度提升很快, 訓(xùn)練損失下降也很快, 經(jīng)過(guò)30 次迭代, 訓(xùn)練精度接近100%. 使用數(shù)據(jù)增強(qiáng)后的的3 個(gè)訓(xùn)練集進(jìn)行訓(xùn)練時(shí), 訓(xùn)練精度上升較慢, 尤其是使用原始數(shù)據(jù)進(jìn)行隨機(jī)相位偏后生成的訓(xùn)練集C 進(jìn)行訓(xùn)練時(shí), 在迭代60 次左右時(shí)訓(xùn)練精度才接近100%.

        4.3.3 使用ASCAD 數(shù)據(jù)庫(kù)訓(xùn)練

        ASCAD 數(shù)據(jù)庫(kù)是由Benadjila 等人在文獻(xiàn)[11] 中提出的, 該數(shù)據(jù)庫(kù)可以對(duì)基于機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的SCA 進(jìn)行效率和準(zhǔn)確性評(píng)估. ASCAD 數(shù)據(jù)庫(kù)由50 000 條訓(xùn)練曲線和10 000 條測(cè)試曲線構(gòu)成, 單條曲線樣本點(diǎn)個(gè)數(shù)為700 個(gè). 文獻(xiàn)[11] 對(duì)比了MLP 模型和CNN 模型不同參數(shù)對(duì)模型性能的影響, 最終通過(guò)實(shí)驗(yàn)訓(xùn)練出MLP_best 和CNN_best 兩個(gè)最優(yōu)模型. 本實(shí)驗(yàn)中使用1D-ResNet 模型對(duì)ASCAD 數(shù)據(jù)庫(kù)進(jìn)行訓(xùn)練和測(cè)試, 根據(jù)文獻(xiàn)[11] 中相關(guān)結(jié)論, 訓(xùn)練批量大小設(shè)置為200, 共進(jìn)行75 次迭代, 訓(xùn)練完畢后使用文獻(xiàn)[11] 中提出的方法對(duì)最優(yōu)模型進(jìn)行性能測(cè)試和評(píng)估.

        4.4 結(jié)果與分析

        4.4.1 測(cè)試結(jié)果分析

        為了對(duì)比實(shí)驗(yàn)效果, 同時(shí)使用4 個(gè)數(shù)據(jù)集分別對(duì)1D-ResNet 模型、CNN 模型、MLP 模型進(jìn)行訓(xùn)練,并記錄實(shí)驗(yàn)結(jié)果. 使用數(shù)據(jù)集A 對(duì)各模型的最優(yōu)參數(shù)進(jìn)行選擇, 使用數(shù)據(jù)集B、C、D 對(duì)模型進(jìn)行測(cè)試和對(duì)比, 訓(xùn)練精度和測(cè)試精度對(duì)比如表3所示.

        模型名稱 模型 數(shù)據(jù)集A 數(shù)據(jù)集B 數(shù)據(jù)集C 數(shù)據(jù)集D 平均值1D-ResNet 訓(xùn)練精度 99.98% 99.99% 99.78% 99.98% 99.93%測(cè)試精度 83.45% 56.00% 73.35% 49.10% 65.48%CNN 訓(xùn)練精度 64.89% 58.45% 67.09% 59.60% 62.51%測(cè)試精度 56.10% 43.45% 52.65% 43.20% 48.85%MLP 訓(xùn)練精度 37.62% 55.71% 23.62% 66.34% 45.82%測(cè)試精度 21.10% 3.40% 19.05% 1.30% 11.21%

        從表3 可以看出, 經(jīng)過(guò)100 次迭代后, 各個(gè)數(shù)據(jù)集上1D-ResNet 模型的訓(xùn)練精度都接近于100%,CNN 模型和MLP 模型的訓(xùn)練精度分別比1D-ResNet 模型低37.42% 和54.11%, 說(shuō)明1D-ResNet 模型對(duì)能量跡數(shù)據(jù)有很強(qiáng)的特征提取能力. MLP 模型使用數(shù)據(jù)集B 和數(shù)據(jù)集D 進(jìn)行訓(xùn)練和測(cè)試時(shí), 訓(xùn)練精度要遠(yuǎn)大于測(cè)試精度, 說(shuō)明在訓(xùn)練期間使用數(shù)據(jù)增強(qiáng)時(shí)模型發(fā)生了過(guò)擬合和過(guò)度記憶訓(xùn)練數(shù)據(jù)的問(wèn)題, 所以在模型測(cè)試時(shí)表現(xiàn)極差, 錯(cuò)誤率很高, 因此增加高斯噪聲對(duì)MLP 模型影響較大, 通過(guò)噪聲進(jìn)行數(shù)據(jù)增強(qiáng)不適用于MLP 模型. 1D-ResNet 模型的平均測(cè)試精度分別比CNN 模型和MLP 模型高16.63% 和54.27%, 平均測(cè)試精度為65.48%.

        不同模型性能對(duì)比如表4 所示, 1D-ResNet 模型相比于其它兩種神經(jīng)網(wǎng)絡(luò)模型, 訓(xùn)練精度和測(cè)試精度都比較高, 在相同硬件配置的條件下, 訓(xùn)練時(shí)間為CNN 模型的1.8 倍, 參數(shù)個(gè)數(shù)是CNN 模型的1.4 倍.引入噪聲和隨機(jī)相位抖動(dòng)后, 訓(xùn)練精度為60% 時(shí), 所需迭代次數(shù)只需要CNN 模型的十分之一. 該模型相比于文獻(xiàn)[14] 中使用的4 分類模型預(yù)測(cè)精度要低26.32%, 主要原因是256 分類任務(wù)相比于4 分類任務(wù),所使用的訓(xùn)練集所包含的有效信息變少, 導(dǎo)致分類精度下降.

        對(duì)比內(nèi)容 1D-ResNet 模型 CNN 模型 MLP 模型單個(gè)epoch 時(shí)間 36.55 s 20.38 s 2.73 s模型參數(shù)個(gè)數(shù) 2.89×108 2.02×108 1.22×107激活函數(shù)類型 Relu Relu Relu模型層數(shù) 18 20 8訓(xùn)練精度達(dá)30% 時(shí)epoch 數(shù) 2 15 73

        4.4.2 ASCAD 數(shù)據(jù)庫(kù)測(cè)試結(jié)果分析

        使用ASCAD 數(shù)據(jù)庫(kù)經(jīng)過(guò)75 次迭代后完成1D-ResNet 模型訓(xùn)練, 訓(xùn)練精度為98.00%, 訓(xùn)練消耗總時(shí)間與文獻(xiàn)[11] 中CNN_best 模型基本相同. 使用文獻(xiàn)[11] 中提出的rank 函數(shù)對(duì)模型性能進(jìn)行測(cè)試和評(píng)估, rank 函數(shù)是側(cè)信道攻擊中用于評(píng)估攻擊性能的常用指標(biāo). 使用3000 條測(cè)試曲線對(duì)模型進(jìn)行測(cè)試, 結(jié)果如圖15所示, 其橫坐標(biāo)為曲線數(shù)量, 縱坐標(biāo)為rank 值, 當(dāng)rank 值為0 時(shí)代表當(dāng)前密鑰恢復(fù)正確.圖15(a) 為曲線最大抖動(dòng)值Nmax=50 時(shí)測(cè)試結(jié)果, 可以看出當(dāng)曲線數(shù)量為350 時(shí), 紅色曲線rank 值降低為0, 可以恢復(fù)出正確密鑰; 圖15(b) 為曲線最大抖動(dòng)值Nmax= 100 時(shí)測(cè)試結(jié)果, 當(dāng)曲線數(shù)量為2400時(shí), 可以恢復(fù)出正確密鑰. 因此, 1D-ResNet 模型性能要優(yōu)于文獻(xiàn)[11] 中的MLP_best 和CNN_best 兩個(gè)最優(yōu)模型.

        5 結(jié)論

        本文使用改進(jìn)的殘差網(wǎng)絡(luò)對(duì)FPGA 實(shí)現(xiàn)的AES 密碼算法進(jìn)行了能量分析攻擊, 以密鑰字節(jié)為攻擊目標(biāo), 采用“分而治之” 的策略逐個(gè)進(jìn)行恢復(fù). 針對(duì)經(jīng)典殘差網(wǎng)絡(luò)在能量分析攻擊中的不足, 提出一種改進(jìn)的一維卷積殘差網(wǎng)絡(luò)1D-ResNet 模型, 該模型將二維卷積核替換為適用于處理能量跡的一維卷積核, 有效減少了模型參數(shù)和訓(xùn)練時(shí)間. 在訓(xùn)練過(guò)程中, 為了避免模型在小樣本數(shù)據(jù)集難以訓(xùn)練和出現(xiàn)過(guò)擬合的問(wèn)題, 使用數(shù)據(jù)增強(qiáng)技術(shù), 通過(guò)引入高斯噪聲和隨機(jī)相位抖動(dòng), 提升了模型的性能, 確保模型在較小的數(shù)據(jù)集下能取得較好的訓(xùn)練和測(cè)試效果. 在攻擊階段對(duì)明文和密文完全未知的情況下, 直接對(duì)8 比特密鑰進(jìn)行256 分類的預(yù)測(cè), 平均測(cè)試精度可以達(dá)到65.48%. 同時(shí)為了驗(yàn)證1D-ResNet 模型的有效性, 在ASCAD公開(kāi)數(shù)據(jù)上進(jìn)行測(cè)試和評(píng)估, 結(jié)果表明該模型要優(yōu)于MLP_best 模型和CNN_best 模型, 通過(guò)實(shí)驗(yàn)驗(yàn)證了該模型的可行性和有效性, 為能量分析攻擊提供了一種新的思路. 但本文實(shí)驗(yàn)僅對(duì)128 比特密鑰中的最后8 比特進(jìn)行了恢復(fù), 如果使用該方法完成全部128 比特密鑰建模需要的曲線數(shù)量較多, 因此如何使用有限數(shù)量的曲線進(jìn)行建模和恢復(fù)完整密鑰, 并將深度學(xué)習(xí)技術(shù)應(yīng)用于非模板型能量分析攻擊, 是下一步的研究方向.

        猜你喜歡
        密鑰卷積噪聲
        探索企業(yè)創(chuàng)新密鑰
        基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
        密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
        噪聲可退化且依賴于狀態(tài)和分布的平均場(chǎng)博弈
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
        控制噪聲有妙法
        基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
        一種基于白噪聲響應(yīng)的隨機(jī)載荷譜識(shí)別方法
        欧美日本免费一区二| 无码人妻精品一区二区三区9厂 | 在线不卡精品免费视频| 国产精品国产三级国产aⅴ下载| 久久人妻内射无码一区三区| 国产精品美女白浆喷水| 区三区久久精品水蜜桃av| 中文字幕一区二区人妻秘书 | 国产99在线 | 亚洲| 无码欧亚熟妇人妻AV在线外遇| 亚洲av综合日韩精品久久久| 亚洲av色在线播放一区| 中国人妻与老外黑人| 无码毛片aaa在线| 亚洲伊人久久综合精品| 99精品国产一区二区三区| a级毛片无码久久精品免费| 亚洲a∨天堂男人无码| 免费国产自拍视频在线观看| 国产精品日日做人人爱| 亚洲五月天综合| www.亚洲天堂.com| 一本色道久久亚洲av红楼| 男人的天堂无码动漫av| 中文文精品字幕一区二区| 亚洲天堂av免费在线| 亚洲一区精品无码| 国产乱人伦av在线a| 久久午夜无码鲁丝片直播午夜精品| 久久日本视频在线观看| 国模无码一区二区三区| 国产网站视频| 中文字幕一区二区在线看| 中文字幕亚洲综合久久| 久久久久国产精品免费免费搜索| 欧美国产伦久久久久久久| 免费av日韩一区二区| 亚洲综合国产一区二区三区| 精品福利一区| 亚洲一区二区三区在线看| 日韩人妻一区二区三区蜜桃视频|