国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SincNet 的側(cè)信道攻擊*

2020-11-06 08:29董高峰胡紅鋼
密碼學(xué)報(bào) 2020年5期
關(guān)鍵詞:過濾器密鑰信道

陳 平, 汪 平, 董高峰, 胡紅鋼

中國(guó)科學(xué)技術(shù)大學(xué) 中國(guó)科學(xué)院電磁空間信息重點(diǎn)實(shí)驗(yàn)室, 合肥230027

1 引言

在過去的幾年中, 側(cè)信道攻擊(Side Channel Attack, SCA) 被證明是攻擊加密算法實(shí)現(xiàn)的一種非常有效的方法[1]. 攻擊者使用算法運(yùn)行時(shí)間、功耗和電磁輻射等側(cè)信道信息, 從目標(biāo)加密設(shè)備中恢復(fù)敏感數(shù)據(jù), 常見的加密設(shè)備主要有智能卡[2]、FPGA[3]、ASIC[4]、RFID 標(biāo)簽[5]、IoT[6]和微控制器[7]等小型嵌入式設(shè)備. 此外, 最近的一些研究還針對(duì)復(fù)雜設(shè)備比如PC 級(jí)計(jì)算機(jī)[8]和智能手機(jī)[9]的側(cè)信道攻擊.

側(cè)信道攻擊可以分為兩類: 建模類側(cè)信道攻擊和非建模類側(cè)信道攻擊. 建模類側(cè)信道攻擊是最強(qiáng)大的一種側(cè)信道攻擊方法, 主要包括建模階段和攻擊階段, 對(duì)應(yīng)于深度學(xué)習(xí)中的訓(xùn)練階段和預(yù)測(cè)階段. 在建模階段, 攻擊者使用與目標(biāo)設(shè)備相同的設(shè)備來對(duì)密鑰相關(guān)的信息與目標(biāo)設(shè)備的泄露值之間的依賴關(guān)系進(jìn)行建模. 在攻擊階段, 使用已建立的模型對(duì)目標(biāo)設(shè)備執(zhí)行密鑰恢復(fù)攻擊. 這種類型的攻擊包括模板攻擊(Template Attack, TA)[10]和隨機(jī)攻擊(Stochastic Attack, SA)[11]. 從信息論的角度來看, 模板攻擊假設(shè)能量軌跡的噪聲遵循多變量的高斯分布, 被認(rèn)為是現(xiàn)階段最有效的攻擊方法. 在實(shí)踐中, 模板攻擊存在一些局限, 比如攻擊者無法擁有與目標(biāo)設(shè)備相同的設(shè)備, 并且在軌跡非對(duì)齊和輸入數(shù)據(jù)是高維的情況下模板攻擊處理起來較為困難. 非建模類側(cè)信道攻擊, 對(duì)應(yīng)于能力較弱的攻擊者, 他只能獲取目標(biāo)設(shè)備的側(cè)信道泄漏. 為了恢復(fù)密鑰, 他可以使用統(tǒng)計(jì)分析工具計(jì)算泄露點(diǎn)和敏感數(shù)據(jù)之間的相關(guān)性. 這類攻擊方法主要包括包括差分能量分析(Diあerential Power Analysis, DPA)[12]、相關(guān)能量分析(Correlation Power Analysis, CPA)[13]和互信息分析(Mutual Information Analysis, MIA)[14].

近年來, 基于深度學(xué)習(xí)的側(cè)信道攻擊引起了研究人員的注意. Maghrebi 等人在2016 年首次將深度學(xué)習(xí)技術(shù)應(yīng)用于側(cè)信道攻擊[15]. 2017 年, Cagli 等人提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)端到端的建模類攻擊方法, 這種方法不需要對(duì)軌跡進(jìn)行預(yù)處理也不需要精確的特征點(diǎn)選擇, 此外, 他們使用數(shù)據(jù)增強(qiáng)提升了卷積神經(jīng)網(wǎng)絡(luò)的性能[16]. 在2019 年,Robyns 等人提出了一種新的相關(guān)優(yōu)化(Correlation Optimization,CO)方法, 通過在電磁軌跡中選擇有用的泄漏樣本作為機(jī)器學(xué)習(xí)的優(yōu)化問題來改進(jìn)相關(guān)電磁分析(Correlation Electromagnetic Analysis, CEMA)[17].

在本文中, 我們提出了一種優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)側(cè)信道攻擊方法, 通過使用基于sinc 函數(shù)的Sinc-Conv 層[18]來提升攻擊效果, 我們?cè)谟糜谠u(píng)估深度學(xué)習(xí)側(cè)信道攻擊效果的公開數(shù)據(jù)集ASCAD[19]和用于側(cè)信道攻擊研究的數(shù)據(jù)集DPA contest v4.1[20]上進(jìn)行了實(shí)驗(yàn), ASCAD 數(shù)據(jù)集提供了ATMega8515 MCU 上實(shí)現(xiàn)的AES-128 算法運(yùn)行過程中的電磁能量軌跡, DPA contest v4.1 數(shù)據(jù)集提供了Atmel ATMega-163 智能卡上的AES-256 的電磁能量軌跡. 在ASCAD 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明該方法減少了攻擊成功需要的軌跡條數(shù)并且有效地緩解了軌跡非對(duì)齊對(duì)攻擊結(jié)果造成的影響. 在DPA contest v4.1 數(shù)據(jù)集上, SincNet 網(wǎng)絡(luò)模型和經(jīng)典的CNN 模型相比需要更少的訓(xùn)練軌跡條數(shù)就可以恢復(fù)出正確的子密鑰. 此外, SincNet 層只需要學(xué)習(xí)2 個(gè)頻率參數(shù), 相對(duì)于其他卷積層其參數(shù)規(guī)模更小.

本文的章節(jié)安排如下: 在第2 節(jié)中, 我們介紹了預(yù)備知識(shí); 在第3 節(jié)中, 我們提出基于SincNet 的側(cè)信道攻擊方法并對(duì)其進(jìn)行解釋; 在第4 節(jié)中, 我們介紹實(shí)驗(yàn)過程并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析評(píng)估; 最后, 在第5節(jié)中我們總結(jié)了現(xiàn)有的工作并提出未來工作展望.

2 預(yù)備知識(shí)

2.1 高級(jí)加密標(biāo)準(zhǔn)

美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(National Institute of Standards and Technology, NIST) 在2001 年發(fā)布了高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard, AES)[21]. AES 是一種分組密碼, 其加密密鑰和解密密鑰相同, 可以在各種平臺(tái)上高效實(shí)現(xiàn). 我們僅關(guān)注AES-128、AES-256 算法, 兩者密鑰長(zhǎng)度不同、加解密輪數(shù)不同, 但分組長(zhǎng)度一致:

(1) 明文(p), 原始可理解的消息或數(shù)據(jù), 加密算法的輸入, 解密算法的輸出. AES-128 長(zhǎng)度為128 位,AES-256 長(zhǎng)度為128 位.

(2) 密文(c), 加密算法的輸出, 解密算法的輸入, 依賴于明文和密鑰. AES-128 長(zhǎng)度為128 位, AES-256 長(zhǎng)度為128 位.

(3) 密鑰(k), 在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文算法中輸入的數(shù)據(jù). AES-128 的長(zhǎng)度為128 位,AES-256 的長(zhǎng)度為256 位.

(4) 輪數(shù)(r), AES-128 為10 輪, AES-256 為14 輪.

AES 算法運(yùn)行時(shí), 其能量消耗依賴于算法所執(zhí)行的中間值. 執(zhí)行一次AES 加密算法時(shí), 先將明文與密鑰進(jìn)行異或, 再執(zhí)行多輪加密操作. 每一輪加密操作的第一個(gè)子操作都是字節(jié)替換(SubBytes), 為此AES 定義了一個(gè)S 盒(Sbox), 它是由16×16 個(gè)字節(jié)組成的矩陣, 包含了8 位數(shù)據(jù)所能表示的256 個(gè)數(shù)的一個(gè)置換. 我們定義v 為S 盒的輸出, 是AES 加密算法的中間值, 下標(biāo)s 表示第1 至第16 字節(jié), vs表示第s 個(gè)字節(jié)的S 盒輸出, 同理, ps, ks表示第s 個(gè)字節(jié)的S 盒輸入:

其中, (vs,ps,ks) ∈[0,255]3. 明文是已知的, S 盒是已知且可逆的, 由于v 依賴于k, 所以S 盒的輸出v是敏感的數(shù)據(jù).

2.2 建模類側(cè)信道攻擊

建模類側(cè)信道攻擊分為兩個(gè)階段: 建模階段和攻擊階段, 分別對(duì)應(yīng)于深度學(xué)習(xí)的訓(xùn)練階段和預(yù)測(cè)階段.

在建模階段, 攻擊者采集Np條電磁能量軌跡, 表示為集合Xprofiling={xi|i=1,2,··· ,Np}. 每一條軌跡xi對(duì)應(yīng)于已知密鑰k*下加密操作的中間值vi= f(pi,k*), 攻擊者根據(jù)建模集合{xi,vi}i=1,···,Np構(gòu)建模型, 計(jì)算如下條件概率:

在攻擊階段,攻擊者采集Na(Na<Np)條電磁能量軌跡,表示為集合Xattack={xi|i=1,2,··· ,Na},Xattack和Xprofiling是相互獨(dú)立的, 此時(shí)每條軌跡xi對(duì)應(yīng)于固定未知的密鑰k*. 攻擊者根據(jù)貝葉斯定理計(jì)算每條能量軌跡猜測(cè)密鑰k 對(duì)應(yīng)的中間值的后驗(yàn)概率:

然后用極大似然準(zhǔn)則(在真實(shí)環(huán)境下, 每條采集的電磁能量軌跡可以看作是相互獨(dú)立的) 計(jì)算每個(gè)猜測(cè)密鑰對(duì)應(yīng)的似然函數(shù)值dk:

求k 極大似然估計(jì)值~k:

隨著攻擊條數(shù)Na的增加, ~k 最終等于正確的密鑰k*.

2.3 性能指標(biāo)

在本文中, 我們使用rank 指標(biāo)來評(píng)估基于深度學(xué)習(xí)方法的建模類側(cè)信道攻擊的效果. rank 指標(biāo)是側(cè)信道攻擊中常用的一個(gè)指標(biāo), 它的定義如下:

其中, i,k ∈{0,1,··· ,255}, 模型的輸出dk(密鑰k 的后驗(yàn)概率) 是一個(gè)有256 個(gè)元素的張量, 分別對(duì)應(yīng)著猜測(cè)密鑰{0,1,··· ,255} 的概率, 我們使用sort() 對(duì)dk進(jìn)行降序排序, 正確密鑰的概率對(duì)應(yīng)的索引即為該密鑰的rank. 我們希望正確密鑰具有最大的輸出概率, 即在攻擊正確的情況下, dk[real_key] 是張量dk中的最大值, 經(jīng)過排序后, 它對(duì)應(yīng)于sort(dk) 中索引為0 的值, 即sort(dk)[0]. 所以說, 我們的目的是構(gòu)建一個(gè)模型, 該模型需要較少的能量曲線就能使得正確密鑰的rank 為0.

2.4 卷積神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)[22]是一種具有局部連接、權(quán)重共享等特性的深度神經(jīng)網(wǎng)絡(luò), 其起源于對(duì)生物神經(jīng)感受野的研究, 相對(duì)于全連接神經(jīng)網(wǎng)絡(luò), 卷積神經(jīng)網(wǎng)絡(luò)進(jìn)步的地方是引入了卷積層和池化層.

CNN 的卷積層是線性層, 它使用過濾器對(duì)輸入電磁能量軌跡進(jìn)行卷積操作. 如圖1 所示, 不同的過濾器從輸入能量軌跡對(duì)應(yīng)的過濾器小窗口中提取不同的特征, 得到不同的特征映射. 隨著卷積操作的加深(也就是層數(shù)的增加), 輸入數(shù)據(jù)的高層抽象特征被提取出來, 這些高級(jí)抽象特征在更深的數(shù)據(jù)維度上并排排列, 這個(gè)幾何特性使得CNN 對(duì)能量軌跡時(shí)間上的變形有很好的魯棒性. 通俗來講, 一旦一個(gè)特征被提取出來, 只要保存下來它相對(duì)于其他特征的大致位置, 它的準(zhǔn)確位置變得不再重要, 即使特征出現(xiàn)的位置改變了, 在任何地方也都能識(shí)別出這個(gè)特征, 不需要再重新學(xué)習(xí)這個(gè)特征.

圖1 使用2 個(gè)大小為3 的過濾器的卷積操作Figure 1 Convolution operation using 2 filters of size 3

CNN 的池化層是非線性層, 它對(duì)卷積操作得到的特征映射進(jìn)一步處理, 一是為了減少需要處理的特征映射的元素個(gè)數(shù), 二是為了讓窗口覆蓋原始輸入軌跡的比例越來越大, 從而引入空間過濾器的層級(jí)結(jié)構(gòu). 池化層會(huì)將特征映射某一位置及其相鄰位置矩形區(qū)域內(nèi)的特征值進(jìn)行統(tǒng)計(jì)匯總, 比如, 最大池化輸出該區(qū)域內(nèi)的最大值; 平均池化輸出該區(qū)域內(nèi)的平均值. 如果計(jì)算最大池化操作和平均池化操作的區(qū)域不重疊, 那么經(jīng)過池化操作之后的特征映射的大小會(huì)進(jìn)一步縮小, 事實(shí)上, 在Keras 2.2.4 API 中池化操作的區(qū)域取決于池化窗口(pool_size) 的大小以及池化步長(zhǎng)(strides). 圖2 展示了一個(gè)平均池化操作, 其中,pool_size = 2, strides = 2, 將圖1 一條能量軌跡和1 個(gè)過濾器卷積操作之后的特征映射(示例僅展示了部分特征值) 分為2 個(gè)區(qū)域, 輸出每個(gè)區(qū)域的平均值.

在本文中, 由于能量軌跡是一維(1D) 的張量, 所以我們使用的卷積層是Conv1D. 此時(shí), 過濾器也是1D 的.

圖2 平均池化操作Figure 2 Average Pooling operation

3 基于SincNet 的建模類側(cè)信道攻擊

3.1 SincNet 的原理

在信號(hào)處理領(lǐng)域, sinc 濾波器是理想化的低通濾波器, 它可以消除高于給定截止頻率的所有頻率分量,而不會(huì)影響較低的頻率.

具有截止頻率fl的低通濾波器的沖激響應(yīng)和傳遞函數(shù)為:

其中, t 表示連續(xù)時(shí)間, f 表示頻率, sinc(t)=sin(t)/t, rect(·) 是頻域上的矩形函數(shù), 濾波器的相位是0.具有高截止頻率fh和低截止頻率fl的帶通濾波器是分別具有這兩個(gè)截止頻率低通濾波器的差值:

卷積神經(jīng)網(wǎng)絡(luò)的第一層對(duì)輸入能量軌跡和有限長(zhǎng)沖激響應(yīng)(Finite Impulse Response, FIR) 濾波器執(zhí)行時(shí)域卷積操作. 卷積的定義如下:

其中, n 表示抽樣時(shí)間樣本點(diǎn), x(n) 對(duì)應(yīng)輸入的一段能量軌跡, h(n) 是長(zhǎng)度為L(zhǎng) 的過濾器, y(n) 是卷積的輸出. 在卷積神經(jīng)網(wǎng)絡(luò)中, 我們?cè)谟?xùn)練過程中需要學(xué)習(xí)過濾器h(n) 中的L 個(gè)元素.

為了減少學(xué)習(xí)參數(shù), 并且利用到電磁能量曲線的頻域特征, 我們使用僅依賴于截止頻率的過濾器來替換原始的過濾器. 為此在SincNet 網(wǎng)絡(luò)第一層實(shí)現(xiàn)具有高和低截止頻率的sinc 帶通濾波器(SincConv層), 對(duì)輸入電磁能量軌跡進(jìn)行濾波操作:

其中, w 表示加窗函數(shù), hw(n,fl,fh) 是時(shí)域上的函數(shù), 該函數(shù)僅僅依賴于fl和fh這兩個(gè)參數(shù).

根據(jù)逆傅里葉變換 (Inverse Discrete-time Fourier Transform, IDTFT), 得到時(shí)域上的函數(shù)h(n,fl,fh):

由于經(jīng)過IDTFT 之后h(n,fl,fh) 是無限長(zhǎng)的, 故要用一個(gè)有限時(shí)長(zhǎng)的截?cái)嗪瘮?shù)(窗函數(shù)) 加以截?cái)?

為了防止直接對(duì)信號(hào)處理產(chǎn)生的頻率泄露, 我們使用漢明窗作為截?cái)嗪瘮?shù). 漢明窗是信號(hào)處理領(lǐng)域比較常用的一個(gè)窗函數(shù), 漢明窗是非矩形的, 它的幅頻特性是旁瓣衰減較大, 主瓣峰值與第一個(gè)旁瓣峰值衰減可達(dá)40 db. 漢明窗的定義如下:

對(duì)h(n,fl,fh) 應(yīng)用漢明窗, 得到所需濾波器函數(shù):

3.2 SincNet 的網(wǎng)絡(luò)結(jié)構(gòu)

Prouあ等人在2018 年對(duì)一些最先進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)類型(包括VGG-16, ResNet-50 和Inception-v3) 進(jìn)行研究, 發(fā)現(xiàn)ResNet-50 和Inception-v3 不能提取密鑰相關(guān)信息, 而VGG-16 在提取密鑰相關(guān)信息上表現(xiàn)的非常好, 于是他們選擇VGG-16 網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)原則, 并研究了訓(xùn)練參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)對(duì)側(cè)信道攻擊效率的影響, 提出了ASCAD 數(shù)據(jù)集原始卷積神經(jīng)網(wǎng)絡(luò)模型CNNbest[19].

CNNbest共有14 層(包括輸入層和輸出層): 1 個(gè)輸入層, 5 個(gè)卷積層后分別跟著5 個(gè)平均池化層, 3個(gè)全連接層, 參數(shù)總量為66 652 544. SincNet 網(wǎng)絡(luò)在CNN 的基礎(chǔ)之上增加一個(gè)SincConv 層, 該層實(shí)現(xiàn)了sinc 帶通濾波器, 一共有15 層(不包括Flatten 層和Dropout 層, 這兩個(gè)對(duì)數(shù)據(jù)處理的層沒有可學(xué)習(xí)的參數(shù)), 參數(shù)總量為66 652 546, 比CNNbest多了SincConv 層的兩個(gè)截止頻率參數(shù). 具體的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)如圖3 所示:

(1) 第一層: InputLayer 層是輸入層, 輸入是700×1 的能量軌跡.

(2) 第二層: SincConv 層是sinc 濾波器過濾層, 過濾器的大小是11, 步長(zhǎng)為1, 輸出通道數(shù)1, 采樣頻率2 GHz (根據(jù)電磁能量軌跡的采樣頻率確定), 高和低截止頻率隨機(jī)初始化, 使用same 的填充模式(輸出數(shù)據(jù)的長(zhǎng)度和輸入長(zhǎng)度相同).

(3) 第三層: Conv1D 層是一個(gè)卷積層,過濾器的大小是11,步長(zhǎng)為1,過濾器的個(gè)數(shù)是64,使用same的填充模式, 激活函數(shù)使用relu.

(4) 第四層: AveragePooling1D 層是一個(gè)池化層, 池化窗口大小為2, 步長(zhǎng)為2 .

(5) 第五層、第七層、第九層、第十一層: 都是Conv1D 卷積層, 過濾器的大小是11, 步長(zhǎng)為1, 過濾器的個(gè)數(shù)分別是128、256、512、512, 使用same 的填充模式, 激活函數(shù)使用relu.

(6) 第六層、第八層、第十層、第十二層: 都是AveragePooling1D 池化層, 池化窗口大小為2, 步長(zhǎng)為2 .

(7) 第十三層、第十四層: Dense 層是一個(gè)全連接層, 有4096 個(gè)單元, 激活函數(shù)是relu, 多維數(shù)據(jù)輸入Dense 層之前需要通過Flatten 層將其轉(zhuǎn)換為一維的數(shù)據(jù), 為了防止模型出現(xiàn)過擬合, 我們Dense 層之后添加了Dropout 層, Dropout 層使得神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中隨機(jī)丟棄一些網(wǎng)絡(luò)結(jié)點(diǎn), 丟棄結(jié)點(diǎn)的比例為0.4.

(8) 第十五層: Dense 層, 也是輸出層, 共有256 個(gè)單元, 輸出具有256 個(gè)元素的向量. 最后一層使用了Softmax 激活函數(shù), 網(wǎng)絡(luò)輸出256 個(gè)類別的概率分布, 對(duì)應(yīng)于256 個(gè)猜測(cè)的子密鑰.

圖3 SincNet 網(wǎng)絡(luò)結(jié)構(gòu)Figure 3 Architecture of SincNet

4 評(píng)估

4.1 實(shí)驗(yàn)配置

在本文的工作中, 我們使用了Keras 深度學(xué)習(xí)開源庫(keras-2.2.4) 和tensorflow 后端(tensorflowgpu-1.9.0), 對(duì)ASCAD 數(shù)據(jù)集和DPA contest v4.1 數(shù)據(jù)集均在搭載80 個(gè)邏輯Intel(R) Xeon(R) Gold 6148 CPU @ 2.40 GHz CPUs 和10 塊NVIDIA TITAN Xp GP102 GPUs 的服務(wù)器上進(jìn)行實(shí)驗(yàn).

4.2 數(shù)據(jù)集

我們使用了兩個(gè)專門用于側(cè)信道攻擊領(lǐng)域的公開數(shù)據(jù)集來評(píng)估我們的方法.

4.2.1 ASCAD 數(shù)據(jù)集

法國(guó)國(guó)家網(wǎng)絡(luò)安全局(ANSSI) 提供了兩個(gè)實(shí)現(xiàn)在ATMega8515 MCU 上的掩碼AES 的源代碼, 可以在以下github 倉庫中找到: https://github.com/ANSSI-FR/secAES-ATmega8515. ASCAD 數(shù)據(jù)庫是由Prouあ等人提出[19], 對(duì)應(yīng)于上述掩碼AES 的第一個(gè)版本(v1) , 第二個(gè)版本目前不公開, 它為評(píng)估基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的側(cè)信道攻擊方法的效率和準(zhǔn)確性提供了一個(gè)基準(zhǔn). ASCAD 數(shù)據(jù)庫對(duì)應(yīng)的原始電磁能量軌跡保存在5.6 GB 的ATMega8515_raw_traces.h5 中. ATMega8515_raw_traces.h5 一共有60 000 條軌跡, 每條軌跡具有100 000 樣本點(diǎn), 是以2 GHz 的采樣率在基于AES (v1) 實(shí)現(xiàn)的WB Electronics 64 Kbit ATMega8515 芯片卡上采集的.

ASCAD 數(shù)據(jù)庫中的提供的數(shù)據(jù)集是從包含原始軌跡的ATMega8515_raw_traces.h5 文件中提取的, 為了避免無用而大量的數(shù)據(jù)處理, 只保留了從45 400 到46 100 這700 個(gè)特征點(diǎn)(這些特征點(diǎn)對(duì)應(yīng)于能量軌跡中第3 個(gè)S 盒泄漏操作的時(shí)間樣本點(diǎn)), 主要包含了以下3 個(gè)HDF5 文件格式的數(shù)據(jù)集:

(1) ASCAD.h5 從原始能量軌跡中提取的數(shù)據(jù)集.

(2) ASCAD_desync50.h5 經(jīng)過處理的最大窗口為50 個(gè)樣本點(diǎn)非對(duì)齊的數(shù)據(jù)集.

(3) ASCAD_desync100.h5 經(jīng)過處理的最大窗口為100 個(gè)樣本點(diǎn)非對(duì)齊的數(shù)據(jù)集.

上述3 個(gè)數(shù)據(jù)集是HDF5 文件, 每個(gè)均包含了兩個(gè)標(biāo)記的數(shù)據(jù)部分:

(1) 具有50 000 條軌跡的建模數(shù)據(jù), 用于訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型.

(2) 具有10 000 條軌跡的攻擊數(shù)據(jù), 用于在建模階段之后檢查訓(xùn)練模型的性能.

4.2.2 DPA contest v4.1 數(shù)據(jù)集

DPA contest v4 數(shù)據(jù)集是2013 年6 月和7 月法國(guó)巴黎高等電信學(xué)院數(shù)字電子系統(tǒng)研究小組的安全實(shí)驗(yàn)室在Atmel ATMega-163 智能卡上采集的電磁軌跡集合, 這款A(yù)tmel ATMega-163 智能卡上用軟件實(shí)現(xiàn)了一個(gè)基于旋轉(zhuǎn)S 盒掩碼(Rotating Sbox Masking, RSM) 方案的AES-256. 我們僅關(guān)注第一輪的第一個(gè)掩碼S 盒操作:

p1是第一個(gè)S 盒的明文字節(jié), m 是已知的掩碼字節(jié), 對(duì)于DPA contest v4.1 數(shù)據(jù)集我們選擇攻擊第一輪的第一個(gè)掩碼S 盒的輸出v1, 通過相關(guān)性分析, 定位到第一個(gè)掩碼S 盒的泄露位置在第100 000 到102 000 個(gè)樣本點(diǎn)之間, 為了降低模型訓(xùn)練的復(fù)雜度, 從其中選取了包含了主要泄露的1000 個(gè)連續(xù)的樣本點(diǎn).

4.3 ASCAD 數(shù)據(jù)集攻擊結(jié)果

我們分別對(duì)ASCAD.h5、ASCAD_desync50.h5 和ASCAD_desync100.h5 這3 個(gè)數(shù)據(jù)集分別訓(xùn)練了 3 個(gè)模型. 圖4、圖5 和圖6 分別展示了模型在 ASCAD.h5、ASCAD_desync50.h5 和ASCAD_desync100.h 數(shù)據(jù)集上的攻擊結(jié)果. 圖中的橫坐標(biāo)代表攻擊的能量軌跡條數(shù), 縱坐標(biāo)代表正確密鑰的rank, 當(dāng)rank 的值為0 的時(shí)候, 代表攻擊成功.

圖4 ASCAD.h5 的攻擊結(jié)果Figure 4 Attack results of ASCAD.h5

圖5 ASCAD_desync50.h5 的攻擊結(jié)果Figure 5 Attack results of ASCAD_desync50.h5

我們和ASCAD 數(shù)據(jù)集原始卷積神經(jīng)網(wǎng)絡(luò)模型CNNbest[19]進(jìn)行了對(duì)比實(shí)驗(yàn). 在ASCAD.h5 數(shù)據(jù)集上, 如圖4 所示, 原始模型攻擊成功需要530 條能量軌跡, 而我們的模型只需要170 條. 在圖5 中, 對(duì)于50個(gè)樣本點(diǎn)非對(duì)齊的數(shù)據(jù)集ASCAD_desync50.h5, 我們需要990 條能量軌跡就能恢復(fù)出密鑰, 而原始模型攻擊效果不明顯. 在圖6 中, 對(duì)于100 個(gè)樣本點(diǎn)非對(duì)齊的ASCAD_desync100.h5 數(shù)據(jù)集我們的模型需要4050 條能量軌跡就能恢復(fù)出密鑰, 而原始模型攻擊不出來, 具體比較結(jié)果如表1 所示.

圖6 ASCAD_desync100.h5 的攻擊結(jié)果Figure 6 Attack results of ASCAD_desync100.h5

表1 ASCAD 數(shù)據(jù)集正確子密鑰攻擊成功需要的軌跡條數(shù)Table 1 Number of traces required to successfully get the correct key in ASCAD dataset

4.4 DPA contest v4.1 數(shù)據(jù)集攻擊結(jié)果

我們依舊使用CNNbest模型和SincNet 模型進(jìn)行對(duì)比, 并對(duì)兩個(gè)模型做了細(xì)微的調(diào)整, 但整體網(wǎng)絡(luò)結(jié)構(gòu)不變. 我們發(fā)現(xiàn)攻擊第一個(gè)掩碼S 盒的密鑰字節(jié)時(shí), 訓(xùn)練軌跡超過400 條, CNNbest模型或SincNet模型都可以使用一條能量軌跡攻擊出來. 我們逐漸減小訓(xùn)練軌跡條數(shù)到200 條(測(cè)試能量軌跡1000 條),加大攻擊的難度. 圖7 展示了在訓(xùn)練軌跡條數(shù)為200 條時(shí), DPA contest v4.1 數(shù)據(jù)集的攻擊結(jié)果. SincNet模型需要20 條測(cè)試軌跡能夠恢復(fù)出子密鑰, 原始CNNbest模型需要240 條測(cè)試軌跡恢復(fù)出子密鑰.

圖7 DPA contest v4.1 數(shù)據(jù)集的攻擊結(jié)果Figure 7 Attack results of DPA contest v4.1 dataset

4.5 分析與比較

我們對(duì)SincNet 模型和CNNbest模型訓(xùn)練過程中的精確度(acc) 和損失(loss, 定義交叉熵作為損失函數(shù)) 進(jìn)行記錄, 并繪制出精確度曲線和損失曲線, 分別用實(shí)線和虛線表示. 如圖8 所示, 紅色曲線表示SincNet 模型, 藍(lán)色曲線表示CNNbest模型, 可以看出, SincNet 模型在訓(xùn)練過程中精確度和損失相比于CNNbest模型能夠更快的收斂.

為了說明SincNet 網(wǎng)絡(luò)SincConv 層的效果, 我們對(duì)經(jīng)過SincConv 層處理之后的軌跡做相關(guān)性分析,和原始軌跡的相關(guān)性分析結(jié)果作對(duì)比, 如圖9 所示, 橫軸表示軌跡的樣本點(diǎn), 縱軸代表相關(guān)性. 我們發(fā)現(xiàn)經(jīng)過SincConv 層處理之后的軌跡的相關(guān)性有了一定的提高, 這也說明通過訓(xùn)練學(xué)習(xí)到的SincConv 層能夠過濾掉一些無關(guān)信息, 提取到有用的特征.

圖8 SincNet 模型和CNN 模型訓(xùn)練時(shí)收斂情況的對(duì)比Figure 8 Comparison of convergence between SincNet model and CNN model during training

圖9 經(jīng)過Sinc 層處理后的軌跡相關(guān)性和原始軌跡相關(guān)性對(duì)比Figure 9 Correlation of traces through Sinc layer vs. Correaltion of raw traces

5 結(jié)論

為了研究深度學(xué)習(xí)在側(cè)信道攻擊中的應(yīng)用, 本文對(duì)卷積操作進(jìn)行優(yōu)化, 提出了基于SincNet 卷積神經(jīng)網(wǎng)絡(luò)的側(cè)信道攻擊方法. SincNet 網(wǎng)絡(luò)的SincConv 層可以自動(dòng)學(xué)習(xí)濾波器的截止頻率, 通過相關(guān)性計(jì)算結(jié)果發(fā)現(xiàn)它能夠有效地濾除和泄露無關(guān)的信息, 不需要對(duì)軌跡進(jìn)行預(yù)處理. 實(shí)驗(yàn)結(jié)果表明, 我們的方法在ASCAD 和DPA contest v4.1 數(shù)據(jù)集上均表現(xiàn)出很好的效果并且對(duì)于兩個(gè)非對(duì)齊的ASCAD 數(shù)據(jù)集也有較好的魯棒性. 此外, 由于SincNet 卷積層只需要學(xué)習(xí)過濾器的兩個(gè)截止頻率, 和傳統(tǒng)的卷積層相比, 參數(shù)更少. 在未來的工作中, 我們將繼續(xù)研究深度學(xué)習(xí)技術(shù)在側(cè)信道攻擊中的應(yīng)用以及探索一些信號(hào)處理方法,比如過濾器的設(shè)計(jì)方法和不同濾波函數(shù)的性能比較等.

致謝

在此, 特別感謝中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)實(shí)驗(yàn)中心提供的軟硬件服務(wù).

猜你喜歡
過濾器密鑰信道
幻中邂逅之金色密鑰
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
更 正
TPM 2.0密鑰遷移協(xié)議研究
聲音過濾器
一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
FRFT在水聲信道時(shí)延頻移聯(lián)合估計(jì)中的應(yīng)用
基于導(dǎo)頻的OFDM信道估計(jì)技術(shù)
基于LOGO!的空氣過濾器自潔控制系統(tǒng)
一種基于GPU的數(shù)字信道化處理方法
林芝县| 牡丹江市| 区。| 垣曲县| 呈贡县| 广东省| 绥棱县| 浪卡子县| 绥化市| 灵川县| 临夏县| 扬州市| 平果县| 景宁| 南投县| 承德县| 临泉县| 铜鼓县| 鄱阳县| 吴桥县| 东乌| 梁平县| 横峰县| 芷江| 大悟县| 绥中县| 台东县| 漳平市| 定西市| 怀化市| 辛集市| 微山县| 合作市| 乌拉特中旗| 和平区| 施秉县| 科技| 克拉玛依市| 通辽市| 卢湾区| 北票市|