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

        ?

        深度學(xué)習(xí)在ARX 分組密碼差分分析的應(yīng)用*

        2022-11-14 01:50:24楊小雪韓立東
        密碼學(xué)報 2022年5期
        關(guān)鍵詞:密文區(qū)分差分

        楊小雪, 陳 杰,, 韓立東

        1. 西安電子科技大學(xué) 通信工程學(xué)院, 西安 710071

        2. 杭州師范大學(xué) 浙江省密碼技術(shù)重點實驗室, 杭州 311121

        1 引言

        神經(jīng)網(wǎng)絡(luò)是實現(xiàn)深度學(xué)習(xí)的主要方式, 而深度學(xué)習(xí)屬于機器學(xué)習(xí)的一個分支, 它利用算法來處理數(shù)據(jù)、提取特征、模擬人類思維或者進行開發(fā). 深度學(xué)習(xí)的歷史可以追溯到1943 年, 當(dāng)時Walter Pitts 和Warren McCulloch 創(chuàng)建了一個基于人腦神經(jīng)網(wǎng)絡(luò)的計算機模型. 隨著計算機處理數(shù)據(jù)速度的加快, 如今深度學(xué)習(xí)在很多領(lǐng)域都有廣泛的應(yīng)用[1–4], 比如圖像識別、自動駕駛、AI 機器人等.

        1991 年, Ronald Rivest 首次將深度學(xué)習(xí)和密碼分析聯(lián)系起來, 在文獻[5] 中提出了關(guān)于密碼學(xué)和機器學(xué)習(xí)兩個領(lǐng)域的主題調(diào)查. 然而, 由于早期計算機硬件的運算能力有限, 深度學(xué)習(xí)的發(fā)展受到限制, 因此它在密碼學(xué)領(lǐng)域的應(yīng)用成果并不多, 主要集中在側(cè)信道攻擊[6,7]上. 但側(cè)信道攻擊屬于物理攻擊, 并不屬于真正意義上的密碼分析. 此后, 隨著GPU (圖形處理單元) 技術(shù)的不斷發(fā)展和深度學(xué)習(xí)一些新算法的提出, 機器學(xué)習(xí)在密碼分析上的應(yīng)用越來越廣泛. 2008 年, Bafghi 等人利用蟻群算法開發(fā)了一個模型,將Sperpent 分組密碼差分特征空間用一個加權(quán)有向圖表示, 再利用遞歸神經(jīng)網(wǎng)絡(luò)找到其中的最小權(quán)重多分支路徑, 從而得到最佳差分路徑[8]. 2009 年, Soos 等人將SAT 求解器引入到密碼問題中[9], 并取得顯著效果. 自此, 自動搜索技術(shù)得到廣泛應(yīng)用, 在發(fā)現(xiàn)分組密碼特征上比機器學(xué)習(xí)更有優(yōu)勢. 由于機器學(xué)習(xí)在發(fā)現(xiàn)分組密碼特征上的競爭力不夠, 學(xué)者們開始關(guān)注其他方面的應(yīng)用, 比如利用機器學(xué)習(xí)算法來對加密流量和密碼算法進行分類. 2015 年, 文獻[10] 使用了三種基于機器學(xué)習(xí)的分類方法來對加密數(shù)據(jù)進行分類, 均在實際藥物數(shù)據(jù)集上運行時有效地執(zhí)行分類. 2017 年, Liu 等人提出利用無監(jiān)督學(xué)習(xí)來對無標記數(shù)據(jù)進行分類, 并展示了如何應(yīng)用該方法來分析Caesar 密碼[11]. 2018 年, De Mello 等人利用六種學(xué)習(xí)算法識別在EBC 和CBC 工作模式下的七種加密算法[12], 在EBC 模式下的識別成功率非常高, 在有些算法下甚至收斂到100%. 原本CBC 模式對區(qū)分攻擊不敏感, 而在文獻[12] 中, 在CBC 模式下成功識別密碼算法的范圍為40—50%. 然而以上工作都沒有對現(xiàn)代密碼算法進行實際的攻擊和破解, 因此學(xué)者們開始進行一些新的研究, 他們利用機器學(xué)習(xí)尋找明文、密文和密鑰的映射關(guān)系. 2018 年, Hu 等人開發(fā)了一個反向傳播(BP) 前饋神經(jīng)網(wǎng)絡(luò)模型來攻擊AES 算法[13], 以超過40% 的概率恢復(fù)明文的整個字節(jié), 以超過89% 的概率恢復(fù)明文的一半以上的字節(jié), 一定程度上可為暴力攻擊降低計算復(fù)雜度. 2019 年,Gohr 首次將基于深度學(xué)習(xí)的差分密碼分析與傳統(tǒng)差分密碼分析進行對比[14], 提出了利用深度學(xué)習(xí)對減輪的SPECK32/64[15]的差分攻擊. 文獻[14] 表明, 神經(jīng)網(wǎng)絡(luò)可以用來產(chǎn)生與公開的現(xiàn)有技術(shù)水平相當(dāng)?shù)墓? 對抗現(xiàn)代分組密碼的簡化版本. 文獻[14] 利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練了SPECK 的5—8 輪差分區(qū)分器, 且區(qū)分準確率高于傳統(tǒng)差分區(qū)分器. 同時, 文獻[14] 在此基礎(chǔ)上結(jié)合貝葉斯優(yōu)化算法提出一種新的密鑰搜索策略, 并結(jié)合該策略對11 輪的SPECK 進行密鑰恢復(fù)攻擊, 且計算復(fù)雜度低于傳統(tǒng)分析手段. 這一成果一經(jīng)發(fā)布就引起了密碼學(xué)界對深度學(xué)習(xí)技術(shù)的研究熱潮. 2020 年, So 等人開發(fā)了一個基于深度學(xué)習(xí)的通用自動密碼分析模型[16], 并成功破解了基于純文本密鑰的SIMON32/64 和SPECK32/64[15]. 然而, 文獻[16] 中的模型只能破解密鑰空間有限的密碼, 通用性較差. 在密碼分析上, 結(jié)合深度學(xué)習(xí)技術(shù)和傳統(tǒng)密碼分析理念的工作并不多. 2021 年, Benamira 等人在EUROCRYPT 發(fā)表了對文獻[14] 的工作的深入解釋和一些改進, 提出了結(jié)合傳統(tǒng)機器學(xué)習(xí)算法和差分分布表的替代策略[17].

        對于已經(jīng)成為研究熱點的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器模型, 我們發(fā)現(xiàn)兩個未得到充分研究和解決的問題: 一是神經(jīng)網(wǎng)絡(luò)差分區(qū)分器面對密碼算法本身不同的運算部件的表現(xiàn)如何; 二是對于同一種密碼, 什么因素會影響神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率. 對此本文進行了以下三項工作, 并得到相應(yīng)的結(jié)果:

        (1) 構(gòu)造了Speckey[18]和LAX32[19]兩類密碼的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器, 并基于密碼算法的線性運算部件進行對比分析. 其中Speckey 的有效區(qū)分器最高為7 輪, 準確率為0.69; LAX32 的有效區(qū)分器最高為4 輪, 準確率為0.55.

        (2) 以SIMON32/64 為例, 測試并總結(jié)了輸入數(shù)據(jù)所含信息量對神經(jīng)網(wǎng)絡(luò)差分區(qū)分器準確率的影響.實驗結(jié)果表明在一定范圍內(nèi)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的信息越多, 其區(qū)分準確率也會提高, 差距最高可達0.18. 當(dāng)提供給神經(jīng)網(wǎng)絡(luò)的信息增多到一定程度, 神經(jīng)網(wǎng)絡(luò)將不能繼續(xù)利用更多的信息來提高區(qū)分準確率.

        (3) 對11 輪的SIMON32/64 進行最后一輪子密鑰恢復(fù)攻擊. 在選擇明密文對數(shù)為28時, 在1000 次攻擊中的成功率為95.6%.

        2 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器模型

        傳統(tǒng)差分區(qū)分器的構(gòu)造就是找到一條高概率的差分. 在輸入差分確定的情況下, 通過觀察一對密文的差分是否符合輸出差分, 來判斷這是真實密文對還是隨機數(shù)據(jù). 利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練差分區(qū)分器實際要達到的效果也是類似的, 只是方法有所不同. 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的訓(xùn)練是一個挖掘和提取明密文數(shù)據(jù)特征并進行分類的過程, 所以需要事先生成訓(xùn)練數(shù)據(jù). 本文構(gòu)造區(qū)分器所采用的是深度殘差神經(jīng)網(wǎng)絡(luò)[20], 相比其他網(wǎng)絡(luò)結(jié)構(gòu), 殘差網(wǎng)絡(luò)在提高網(wǎng)絡(luò)深度和特征提取上都具備比較大的優(yōu)勢. 文獻[16] 中提出了一種基于殘差塊的神經(jīng)網(wǎng)絡(luò)區(qū)分器, 并應(yīng)用于減輪的SPECK 密碼. 同樣地, 本文也是基于深度殘差網(wǎng)絡(luò)建立神經(jīng)網(wǎng)絡(luò)差分區(qū)分器模型, 下面介紹具體結(jié)構(gòu)和數(shù)據(jù)生成過程.

        2.1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

        本文的網(wǎng)絡(luò)包括3 個部分, 共5+2i(1≤i ≤10) 層, 由輸入部分、特征提取部分和分類部分組成,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示.

        (1) 輸入部分. 輸入部分包括輸入層和初始卷積層. 因為訓(xùn)練面向16 比特的字結(jié)構(gòu), 輸入層的輸入數(shù)據(jù)格式為16i×1 (i為正整數(shù), 可根據(jù)輸入信息的長度來調(diào)整). 之后將輸入數(shù)據(jù)整形(Reshape)為i×16 的格式, 并連接到初始卷積層, 即位片層. 該層由一個內(nèi)核大小(kernel size) 為1 的1D-CNN (一維卷積神經(jīng)網(wǎng)絡(luò)), 一個批量歸一化(batch normalization) 和一個ReLU (線性整流單元) 激活函數(shù)組成. 其中1D-CNN 包括32 個濾波器, 初始卷積層的輸出為32×16 的矩陣, 這也是之后殘差層所需的輸入數(shù)據(jù)格式. 具體結(jié)構(gòu)如圖1(a) 所示.

        (2) 特征提取部分. 輸入數(shù)據(jù)已經(jīng)整理好以后, 神經(jīng)網(wǎng)絡(luò)就要從中提取數(shù)據(jù)特征, 特征提取主要由殘差網(wǎng)絡(luò)來實現(xiàn). 殘差網(wǎng)絡(luò)(residual network), 簡稱Resnet, 由一個或多個殘差塊組成. 此處使用的殘差塊包括兩層卷積網(wǎng)絡(luò)和一個連接輸入輸出的旁路(shortcut). 旁路的出現(xiàn)實際上是使用一般意義上的有參層來直接學(xué)習(xí)殘差, 這比直接學(xué)習(xí)輸入、輸出間映射要容易得多, 也有效得多. 其中卷積層采用的是內(nèi)核大小為3 的1D-CNN, 同時后面連接一個批量歸一化和一個ReLU 激活函數(shù). 該部分最終將得到一個32×16 的特征張量, 這一部分的殘差塊個數(shù)可取1 到10, 一個殘差塊的具體結(jié)構(gòu)如圖1(b) 所示.

        圖1 經(jīng)網(wǎng)絡(luò)差神分區(qū)分器模型Figure 1 Neural network differential partition divider model

        (3) 分類部分. 分類部分包括兩層全連接網(wǎng)絡(luò)和一個輸出單元, 這三者都屬于感知機結(jié)構(gòu). 感知機是神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)模型, 用于線性二分類, 其輸入是分類對象的特征向量, 輸出則是輸入的加權(quán)和. 對第二部分提取出來的數(shù)據(jù)特征, 要進行分類. 特征提取得到的數(shù)據(jù)格式為32×16 的矩陣,Reshape 為512×1 的向量輸入到第一層全連接網(wǎng)絡(luò)(512 to 64), 得到64×1 的向量, 再輸入到第二層全連接網(wǎng)絡(luò)(64 to 64), 得到64×1 的向量. 每層全連接層都要經(jīng)過批量歸一化和ReLU激活函數(shù). 最后得到的64×1 的向量被一個輸入為64, 輸出為1 的感知器接收并進行評估. 該感知機的輸出經(jīng)過激活函數(shù)—Sigmoid 函數(shù), 得到最后的分數(shù), 該分數(shù)位于(0,1) 區(qū)間, 把分數(shù)大于0.5 的對象判為真實密文對, 小于等于0.5 則判為隨機數(shù)據(jù). 具體結(jié)構(gòu)如圖1(c) 所示.

        2.2 數(shù)據(jù)生成

        神經(jīng)網(wǎng)絡(luò)模型的產(chǎn)生需要訓(xùn)練數(shù)據(jù)和驗證數(shù)據(jù), 這兩類數(shù)據(jù)都是由隨機數(shù)生成器產(chǎn)生的, 其中驗證數(shù)據(jù)是用來防止訓(xùn)練過擬合. 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器和傳統(tǒng)差分區(qū)分器一樣, 要先確定輸入差分, 再得到完整的區(qū)分器. 神經(jīng)網(wǎng)絡(luò)區(qū)分器所需要的數(shù)據(jù)是給定輸入差分的密文對和隨機密文對以及對應(yīng)的標簽, 這樣做的目的是讓神經(jīng)網(wǎng)絡(luò)區(qū)分器對這兩類密文進行區(qū)分, 達到差分區(qū)分器的效果.

        數(shù)據(jù)生成過程中, 首先, 生成n個隨機明文對Pi和初始密鑰Ki以及對應(yīng)的標Yi(Yi= 1 或0); 其次, 對于Yi= 1 的數(shù)據(jù), 明文對的差分為固定差分Δ. 對于Yi= 0 的數(shù)據(jù), 明文對的差分隨機; 然后, 用Ki對所有的明文對進行加密, 得到密文對Ci和對應(yīng)的標簽Yi; 最后, 對Ci進行一些不同的操作并二進制化得到最后的Xi和Yi作為輸入數(shù)據(jù).

        3 基于不同線性部件的兩類ARX 密碼神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的構(gòu)造

        2.1 節(jié)介紹的神經(jīng)網(wǎng)絡(luò)模型最開始應(yīng)用于SPECK 密碼, 而對其他密碼的攻擊效果目前還有待研究.考慮到Speckey 和LAX 這兩類密碼的線性運算具有極大相似性, 并且缺乏對其相關(guān)的分析結(jié)果, 我們選擇對Speckey 和LAX 密碼進行神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的訓(xùn)練. 本文所用到的符號解釋見表1.

        表1 符號說明Table 1 Symbol description

        3.1 Speckey 和LAX 簡介

        Speckey 密碼[18]是Alex 等人在2016 年提出的一類ARX 密碼, 它相當(dāng)于SPECK 密碼算法的一個變體. 更準確地說, Speckey 是改變了子密鑰異或運算過程的SPECK32, 分組大小為32 bit. 其一輪加密包括循環(huán)移位、按位異或運算和模加運算等三類運算. 設(shè)第i輪的輸入為(Li-1,Ri-1), 輪密鑰為Ki-1的Speckey 密碼的一輪加密過程如圖2 所示.

        圖2 Speckey 輪函數(shù)Figure 2 Speckey round function

        LAX 密碼[19]則是Dinu 等人在研究可證明安全性的ARX 設(shè)計策略時提出的, 它是一類只使用模2加法和GF(2) 仿射函數(shù)的密碼, 是一種具有2n比特分組大小的分組密碼結(jié)構(gòu), 實驗采用的是分組大小為32 bit 的密碼LAX32. 事實上, LAX 是根據(jù)Speckey 的結(jié)構(gòu)來設(shè)計的, 它將Speckey 的所有線性運算替換為更一般的線性置換. 因此, 兩者唯一的區(qū)別在于線性部件不同. LAX 第i輪的輪函數(shù)如圖3 所示, 其中仿射變換是n比特的向量與n×n的矩陣L相乘, 可表示為:L(x)=L·x.

        圖3 LAX 輪函數(shù)Figure 3 LAX round function

        3.2 構(gòu)造Speckey 和LAX32 神經(jīng)區(qū)分器

        尚未有公開文獻對Speckey 和LAX32 進行基于神經(jīng)網(wǎng)絡(luò)的差分分析, 我們訓(xùn)練了這兩種密碼的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器并測試其區(qū)分真實密文對和隨機數(shù)據(jù)的準確率. 選擇這兩種密碼的主要原因是這兩個密碼在運算部件上的區(qū)別僅存在于線性運算. 除了線性運算部件, 它們的輪密鑰加運算是相同的, 非線性運算也都是發(fā)生在輪密鑰加之后的模216加運算. 這樣, 通過對比兩者的訓(xùn)練結(jié)果, 可以推出密碼的線性運算部件對抵抗神經(jīng)網(wǎng)絡(luò)差分分析的影響. 同時, 我們設(shè)計了一個簡單的實驗來對比神經(jīng)網(wǎng)絡(luò)差分區(qū)分器和傳統(tǒng)差分區(qū)分器在區(qū)分Speckey 和LAX32 時的不同表現(xiàn).

        3.2.1 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的構(gòu)造

        選擇輸入差分為Δ = 0x0040/0000, 加密生成107bit 的訓(xùn)練數(shù)據(jù)集和106bit 的驗證數(shù)據(jù)集以及106bit 的測試數(shù)據(jù)集. 此外, 神經(jīng)網(wǎng)絡(luò)模型的參數(shù)選擇如表2 所示.

        表2 模型參數(shù)Table 2 Model parameter

        對于Speckey 密碼, 訓(xùn)練了其5—8 輪的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器. 對于LAX32, 訓(xùn)練了其3—5 輪的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器. 若輸入數(shù)據(jù)經(jīng)過神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的輸出大于0.5, 則將輸入數(shù)據(jù)判斷為真實密文對,否則判斷為隨機數(shù)據(jù). 用107bit 的訓(xùn)練數(shù)據(jù)集和106bit 的驗證數(shù)據(jù)集來進行訓(xùn)練, 所有數(shù)據(jù)遍歷一次稱為一個epoch, 共進行100 個epoch 的訓(xùn)練, 記錄下每一個epoch 的準確率和損失函數(shù)值. 其中訓(xùn)練5 輪Speckey 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率和損失函數(shù)隨epoch 變化分別如圖4 和圖5 所示, 訓(xùn)練3 輪LAX32 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率和損失函數(shù)隨epoch 變化分別如圖6 和圖7 所示.

        圖4 準確率變化(5 輪Speckey)Figure 4 Change of accuracy (5 rounds Speckey)

        圖5 損失函數(shù)變化(5 輪Speckey)Figure 5 Change of loss function value(5 rounds Speckey)

        圖6 準確率變化(3 輪LAX32)Figure 6 Change of accuracy (3 rounds LAX32)

        圖7 損失函數(shù)變化(3 輪LAX32)Figure 7 Change of loss function value (3 rounds LAX32)

        以上是對訓(xùn)練過程的一個描述和記錄, 對于訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器, 則用106bit 的測試數(shù)據(jù)集來測試其準確率. Speckey 和LAX32 的測試結(jié)果如表3 所示.

        表3 Speckey 和LAX32 的測試準確率Table 3 Test accuracy of Speckey and LAX32

        3.2.2 基于實驗的傳統(tǒng)差分區(qū)分器的構(gòu)造

        為了對比神經(jīng)網(wǎng)絡(luò)差分區(qū)分器和傳統(tǒng)差分區(qū)分器的區(qū)分效果, 我們針對5 輪Speckey 和3 輪LAX32設(shè)計了簡單的對比實驗, 構(gòu)造了5 輪Speckey 和3 輪LAX32 基于實驗的傳統(tǒng)差分區(qū)分器. 主要分為以下兩個步驟:

        (1) 搜索高概率差分. 由于傳統(tǒng)差分區(qū)分器的構(gòu)造大多是理論上的, 并且其區(qū)分效果的評估指標是差分概率, 無法與神經(jīng)網(wǎng)絡(luò)區(qū)分器的測試準確率進行橫向?qū)Ρ? 因此, 我們通過實際實驗來選取高概率的差分. 選擇輸入差分為Δ = 0x0040/0000 的n個明文對P1,P2,··· ,Pn, 加密r輪(對Speckey 加密5 輪, 對LAX32 加密3 輪) 得到密文對C1,C2,··· ,Cn, 再獲得密文對的截斷差分值(分別獲取左半部分密文分組和右半部分密文分組的差分)ΔC1,ΔC2,··· ,ΔCn, 分別保存其中出現(xiàn)次數(shù)最多的100 個輸出差分. 最后將上述過程迭代t次, 再從所有保存的差分中選擇頻率最高的100 個差分作為該傳統(tǒng)區(qū)分器的輸出差分, 這是借鑒了多重差分分析[21]和截斷差分[22]的思想.

        (2) 測試傳統(tǒng)差分區(qū)分器的區(qū)分準確率. 以輸入差分Δ = 0x0040/0000 生成帶標簽的測試數(shù)據(jù), 將傳統(tǒng)差分區(qū)分器的判定結(jié)果與標簽進行對比得到測試準確率. 其中5 輪Speckey 和3 輪LAX32測試的都是由左半部分密文差分作為輸出的截斷差分區(qū)分器, 因為搜索得出左半部分密文差分出現(xiàn)的最高頻次大于右半部分密文差分出現(xiàn)的最高頻次.

        當(dāng)選擇n= 107,t= 5 以及測試數(shù)據(jù)量為106bit 時, 基于實驗的傳統(tǒng)差分區(qū)分器測試結(jié)果和相應(yīng)的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的對比結(jié)果如表4 所示. 值得一提的是, 每一次迭代得到的100 個差分重復(fù)率極高,頻次最高的差分一直不變, 并且出現(xiàn)次數(shù)明顯高于頻次第二高的差分. 也就是說, 最后保存的100 個差分至少包含一個最高概率差分和其他多個較高概率差分.

        表4 Speckey 和LAX32 的傳統(tǒng)區(qū)分器和神經(jīng)網(wǎng)絡(luò)區(qū)分器對比Table 4 Comparison of conventional and neural network discriminators with Speckey and LAX32

        3.3 實驗結(jié)果分析

        首先, 從神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率可以看到, 對于5—7 輪Speckey 和3—4 輪LAX32, 其區(qū)分器的準確率都明顯高于0.5. 也就是說, 相應(yīng)區(qū)分器都是有區(qū)分效果的, 并且區(qū)分效果是非常顯著的, 5 輪Speckey 密碼的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器準確率甚至達到了0.95. 因而, 神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練過程中可以成功提取這兩種密碼的密文數(shù)據(jù)特征并實現(xiàn)正確分類. 而對于8 輪Speckey 和5 輪LAX32, 其神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率都低于0.5, 按照本文的定義是不具備區(qū)分效果的.

        其次, 從表3 的結(jié)果可以看到, Speckey 的有效的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器最多可達8 輪, 而且LAX32 最多可達5 輪. 當(dāng)兩類密碼的輪數(shù)相同時, 即對于5 輪神經(jīng)網(wǎng)絡(luò)區(qū)分器, Speckey 的區(qū)分準確率明顯高于LAX32. 可見, 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器對Speckey 的區(qū)分效果明顯高于LAX32. 這兩類密碼的分組大小都是32 bit, 加密中的唯一非線性運算都是模216加運算, 輪密鑰加的位置也相同, 最大的不同就是線性運算部件. 結(jié)合實驗結(jié)果, 可以看出輪數(shù)較低時, 在抵抗基于神經(jīng)網(wǎng)絡(luò)的差分攻擊方面, 一般的線性仿射要比循環(huán)移位效果更好. 這是因為在加密過程中線性仿射的擴散效果要更好一些, 而這一點在傳統(tǒng)差分分析中也有相同的表現(xiàn)[18,19].

        文獻[18]和文獻[19]給出了Speckey 和LAX32 的最佳減輪差分搜索結(jié)果,此處列舉3—5 輪Speckey和LAX32 的自動搜索結(jié)果并與3.2 節(jié)測試結(jié)果進行對比分析, 具體數(shù)據(jù)如表5 所示.

        表5 3—5 輪Speckey 和LAX32 的自動搜索結(jié)果和測試準確率對比Table 5 Comparison between 3–5 round Speckey and LAX32 automatic search results and test accuracy

        在輪數(shù)為5 時, Speckey 的最佳差分概率為2-9, 而LAX32 的最佳差分概率為2-11. 此外, 我們發(fā)現(xiàn)4 輪LAX32 的最佳差分概率和5 輪Speckey 的最佳差分概率是相同的, 都是2-9. 但5 輪Speckey的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器準確率大約為4 輪LAX32 的準確率的2 倍. 由此說明, 擴散效果對神經(jīng)網(wǎng)絡(luò)差分區(qū)分器準確率的影響比傳統(tǒng)差分概率要更明顯, 但擴散效果越好, 安全性越高這一整體趨勢是相同的. 設(shè)計者在設(shè)計密碼時, 需要針對現(xiàn)有的各種攻擊進行安全性分析. 當(dāng)進行對基于深度學(xué)習(xí)的差分攻擊的安全性分析時, 本文的實驗結(jié)果對線性部件的設(shè)計可提供參考價值.

        另外, 表4 的結(jié)果展示的是在利用相同的數(shù)據(jù)量時傳統(tǒng)區(qū)分器和神經(jīng)網(wǎng)絡(luò)區(qū)分器的簡單對比. 由于神經(jīng)網(wǎng)絡(luò)區(qū)分器所能利用的信息更多, 而我們構(gòu)造的基于實驗的傳統(tǒng)差分區(qū)分器只能利用差分信息, 所以神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率更高. 這一結(jié)果是不難理解的, 而這也正是神經(jīng)網(wǎng)絡(luò)區(qū)分器的優(yōu)勢所在, 可以從密文數(shù)據(jù)中學(xué)習(xí)到除差分以外的其他信息來提升區(qū)分效果. 傳統(tǒng)差分區(qū)分器想要達到類似的區(qū)分準確率則要收集大量的差分信息并存儲為一個差分分布表, 比如文獻[14] 給出的Speck32/64 的最佳差分分布表的存儲需要35 GB 的讀寫空間, 而一個神經(jīng)網(wǎng)絡(luò)的權(quán)重文件大約為600 KB.

        4 基于不同輸入信息的神經(jīng)區(qū)分器對SIMON32/64 的分析

        經(jīng)過對Speckey 密碼和LAX 密碼的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的構(gòu)造, 我們繼續(xù)利用神經(jīng)網(wǎng)絡(luò)模型對SIMON 密碼進行分析. 在分析過程中, 我們結(jié)合文獻[17] 的工作和SIMON 密碼算法的輪函數(shù)發(fā)現(xiàn): 可以通過改變輸入數(shù)據(jù)的格式來改變傳遞給神經(jīng)網(wǎng)絡(luò)的有關(guān)密文數(shù)據(jù)的信息量, 以此探究輸入數(shù)據(jù)包含的信息量對神經(jīng)網(wǎng)絡(luò)區(qū)分器準確率的影響. 此外, 我們在此基礎(chǔ)上對11 輪SIMON 密碼進行最后一輪子密鑰恢復(fù)攻擊, 得到1000 次攻擊的成功率.

        4.1 SIMON 密碼算法簡介

        SIMON 密碼[15]是一類輕量級分組密碼, 在2013 年由美國國家安全局提出, 在發(fā)布之后受到廣泛關(guān)注和分析. SIMON 密碼是典型的Feistel 結(jié)構(gòu), 一輪加密包括循環(huán)移位、按位異或運算和按位與運算等三類運算. 因此, 它也屬于廣義的ARX 結(jié)構(gòu). SIMON 密碼族作為一類分組密碼, 其分組大小可表示為2n,單位是比特,n的值可以為16、24、32、48 和64, 對應(yīng)的密鑰長度為mn比特. 因此, 一個分組大小為2n, 密鑰長度為mn的SIMON 密碼可用SIMON2n/mn來表示. 設(shè)第i輪的輸入為(Li-1,Ri-1), 輪密鑰為Ki-1的SIMON 密碼的一輪加密過程如圖8 所示.

        圖8 SIMON 密碼輪函數(shù)Figure 8 Round function of SIMON

        4.2 輸入信息量對神經(jīng)區(qū)分器準確率的影響

        在密碼分析中, 差分攻擊是分析分組密碼最有效的方法之一. 本實驗基于傳統(tǒng)差分分析方法, 分別構(gòu)造了SIMON32/64 的7—10 輪的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器并測試其準確率. 訓(xùn)練該區(qū)分器采用的輸入差分為Δ= (0x0000/0040), 該差分可以確定性地傳遞到第二輪輸入差分0x0040/0000[23]. 由此生成的訓(xùn)練數(shù)據(jù)量為107bit, 驗證和測試數(shù)據(jù)量為106bit. 此外, 模型的參數(shù)選擇為: 訓(xùn)練期數(shù)(Epochs) 為100, 批次(Batch Size) 為5000, 優(yōu)化算法(Optimizer) 選擇了Adam 算法, 損失函數(shù)(Loss Function) 為MSE. 訓(xùn)練過程與3.2 節(jié)類似, 測試結(jié)果如表6 所示.

        表6 SIMON32/64 的測試結(jié)果Table 6 Test result of SIMON32/64

        上述實驗中的輸入數(shù)據(jù)為密文對的實際值, 若用C0,C1表示密文對, 用C0l,C0r,C1l,C1r分別表示C0,C1的左半部分和右半部分. 輸入數(shù)據(jù)可表示為(C0l,C0r,C1l,C1r), 長度為16× 4. 這一輸入是文獻[14] 采用的, 而文獻[17] 中采用了另一種輸入, 并在SIMON32/64 的區(qū)分器上達到了更好的效果. 因此, 我們想進一步研究并系統(tǒng)分析輸入信息量對神經(jīng)網(wǎng)絡(luò)區(qū)分器的影響, 于是采用四種信息量不同的輸入數(shù)據(jù)對SIMON32/64 的7 到10 輪差分區(qū)分器進行訓(xùn)練. 四類數(shù)據(jù)分別為(C0l ⊕C1l,C0r ⊕C1r),(C0l,C0r,C1l,C1r),(C0l ⊕C1l,C0r ⊕C1r,t0⊕t1) 和(C0l,C0r,C1l,C1r,t0⊕t1), 其中t0和t1可由式(1)和(2)表示.

        根據(jù)SIMON 的輪函數(shù), 可以看到t0和t1包含了倒數(shù)第二輪的除密鑰以外的信息.

        4.3 部分密鑰恢復(fù)攻擊

        在4.2 節(jié)的實驗基礎(chǔ)上, 進一步對11 輪SIMON32/64 進行部分密鑰恢復(fù)攻擊. 由于第一個子密鑰異或發(fā)生在SIMON 首次進行非線性運算之后, 進行選擇明文攻擊的攻擊者可以很容易地使他們選擇的明文差分出現(xiàn)在第一輪SIMON 的輸出中. 因此, 在進行密鑰恢復(fù)攻擊的時候, 可以很容易地把所有區(qū)分器再擴展一輪. 本文對11 輪SIMON 的最后一輪子密鑰攻擊過程如下:

        (4) 保存高分密鑰. 將所有的密鑰值k按照其分數(shù)Vk進行降序排列, 留下分數(shù)最高的密鑰值kmax作為候選正確密鑰.

        (5) 測試成功率. 將以上攻擊過程實施1000 次, 若保存的候選密鑰等于正確密鑰則判為一次成功的攻擊. 對于不同的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器, 測試其成功率.

        4.4 實驗結(jié)果及分析

        4.4.1 輸入信息量不同的神經(jīng)網(wǎng)絡(luò)區(qū)分器測試結(jié)果及分析

        4.2 節(jié)采用的分析方法屬于選擇明文攻擊, 而這四種數(shù)據(jù)包括了該類攻擊中神經(jīng)網(wǎng)絡(luò)能利用信息的所有具備代表性的組合. 將輸入數(shù)據(jù)類型不同的神經(jīng)網(wǎng)絡(luò)區(qū)分器依次表示為Na, Nb, Nc, Nd. 4.2 節(jié)的測試結(jié)果如圖9 所示.

        圖9 不同輸入數(shù)據(jù)格式下SIMON32/64 的準確率測試結(jié)果Figure 9 Test results of accuracy for SIMON32/64 under different input data format

        從圖9 可以看到, 四種神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率隨著輸入數(shù)據(jù)的改變而發(fā)生變化. 這四種輸入數(shù)據(jù)包含的神經(jīng)網(wǎng)絡(luò)所能利用的密碼先驗知識是不同的. (C0l ⊕C1l,C0r ⊕C1r) 只包含選擇密文對的差分值信息, (C0l,C0r,C1l,C1r) 包含密文對的差分值和實際值, (C0l ⊕C1l,C0r ⊕C1r,t0⊕t1) 包含密文對的差分值和倒數(shù)第二輪的部分差分信息, (C0l,C0r,C1l,C1r,t0⊕t1) 則包含密文對的差分值和實際值以及倒數(shù)第二輪的部分差分信息. 可見, 輸入數(shù)據(jù)的信息量是遞增的. 根據(jù)實驗結(jié)果, 當(dāng)可利用的信息量越多, 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器Na, Nb, Nc 的準確率是遞增的, 但Nd 的準確率卻沒有比Nc 的準確率更高. 前三個區(qū)分器的準確率的遞增很好理解, 輸入數(shù)據(jù)的信息含量越多, 神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)到關(guān)于密碼的知識更多, 對真實密文對和隨機數(shù)據(jù)的區(qū)分能力就更強. 這也再一次印證了Ghor 在文獻[14] 中對神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的準確率比傳統(tǒng)差分區(qū)分器高的原因解釋, 神經(jīng)網(wǎng)絡(luò)能從密文對中學(xué)到除了差分信息以外的密碼知識.但對于最后一類輸入數(shù)據(jù)格式, 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器準確率并沒有繼續(xù)升高, 我們推測原因是最后一類輸入數(shù)據(jù)提供的數(shù)據(jù)特征太多, 該神經(jīng)網(wǎng)絡(luò)在這樣一個結(jié)構(gòu)下無法很好地整合這些特征. 這一點可以理解為:該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在接受過多的數(shù)據(jù)信息后, 判斷密文對是真實或隨機的限制條件過多, 導(dǎo)致神經(jīng)網(wǎng)絡(luò)對所有輸入數(shù)據(jù)的評分偏低, 出現(xiàn)一定的分類誤差. 因此, 在神經(jīng)網(wǎng)絡(luò)模型的超參數(shù)確定的情況下, 研究合適的輸入數(shù)據(jù)格式對于得到區(qū)分效果較好的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器是十分有必要的.

        在利用本文最好的輸入數(shù)據(jù)格式, 即(C0l,C0r,C1l,C1r,t0⊕t1) 時, 本文和文獻[14]、文獻[17] 的對比結(jié)果如表7 所示.

        表7 SIMON32/64 最佳分析結(jié)果對比Table 7 Comparison of best analysis results for SIMON32/64

        從表7 可以看到: 對于SIMON32/64, 應(yīng)用文獻[14] 的方法訓(xùn)練的7—10 輪差分區(qū)分器的測試準確率均比本文的最佳測試結(jié)果低, 其中8 輪區(qū)分器的準確率相差5%. 同時, 應(yīng)用文獻[14] 訓(xùn)練的10輪SIMON32/64 的測試準確率是0.5, 該準確率對于二分類問題是無效的, 所以應(yīng)用文獻[14] 訓(xùn)練的SIMON32/64 有效區(qū)分器最高可達9 輪, 而本文訓(xùn)練的有效區(qū)分器可達10 輪. 文獻[17] 應(yīng)用Ghor 的模型[14]訓(xùn)練了SIMON32/64 的8 輪差分區(qū)分器并得到了0.834 的準確率, 但只給出了一個測試結(jié)果, 沒有進行深入的研究, 缺少對比文獻[14] 準確率高的原因分析, 也沒有給出SIMON32/64 有效區(qū)分器的輪數(shù)上限. 而我們訓(xùn)練了7—10 輪的SIMON32/64 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器, 其中8 輪的結(jié)果與文獻[17] 的結(jié)果相當(dāng), 準確率為0.837. 同時, 分析了相對文獻[14] 準確率提高的原因, 還給出了通過本文方法所訓(xùn)練的有效的SIMON32/64 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器的最高輪數(shù), 即10 輪.

        4.4.2 部分密鑰恢復(fù)的結(jié)果展示及分析

        4.3 節(jié)的攻擊采用的神經(jīng)網(wǎng)絡(luò)區(qū)分器包括Na, Nb, Nc, Nd, 也就是對于不同的輸入數(shù)據(jù)格式都進行了部分密鑰恢復(fù)實驗. 在此設(shè)置下, 選取不同的明文對數(shù)所得到的攻擊成功率如表8 所示. 當(dāng)明文對數(shù)為n,數(shù)據(jù)量為2n. 由于9 輪Na 的準確率接近0.5, 不適合用來進行11 輪的密鑰恢復(fù)攻擊(實際攻擊結(jié)果顯示其對所有猜測密鑰的評分都相同, 不具備區(qū)分能力), 其攻擊成功率在數(shù)據(jù)量為29bit 時等于0, 所以其攻擊結(jié)果不予展示. 而Nb 在數(shù)據(jù)量為29bit 時的攻擊成功率接近0.1, 為了更好地比較Nb 和其他兩類區(qū)分器在相同數(shù)據(jù)量下的攻擊效果, 此處只展示利用Nb 的攻擊中正確子密鑰的分數(shù)在所有猜測子密鑰分數(shù)中的平均排序, 我們把這個值稱為krank. 在一次攻擊中, 若krank為0, 則該次攻擊是成功的,krank越大, 表示誤判的子密鑰數(shù)越多.

        表8 不同區(qū)分器下的對SIMON32/64 攻擊結(jié)果Table 8 Attack results of SIMON32/64 under different discriminators

        在每一種輸入格式下, 我們嘗試了不同數(shù)據(jù)復(fù)雜度下的攻擊. 從表8 可以看到: 最好的結(jié)果是在選擇明密文對數(shù)為28, 即數(shù)據(jù)量為29時, 使用Nd 對11 輪SIMON32/64 的最后一輪子密鑰進行1000 次攻擊, 成功率可達95.6%. 可見, 神經(jīng)網(wǎng)絡(luò)差分區(qū)分器在差分分析中表現(xiàn)不錯, 有較好的區(qū)分能力, 并且不需要存儲差分分布表, 空間復(fù)雜度降低.

        5 結(jié)束語

        我們基于深度學(xué)習(xí)在分組密碼差分分析方面進行研究. 首先, 構(gòu)造了Speckey 和LAX32 兩類密碼的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器, 并取得有效的結(jié)果. 我們訓(xùn)練了5—7 輪Speckey 和3—5 輪LAX32 的有效的神經(jīng)網(wǎng)絡(luò)差分區(qū)分器. 如果把測試準確率在0.5 以上的區(qū)分器視為有效的區(qū)分器, Speckey 的有效區(qū)分器可達到7 輪, 且準確率為0.69. LAX32 的有效區(qū)分器可達到4 輪, 且準確率為0.55. 在經(jīng)過以上研究之后, 繼續(xù)對SIMON 密碼進行分析, 在分析過程中發(fā)現(xiàn)改變神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)形式會影響其差分區(qū)分器的準確率. 當(dāng)輸入數(shù)據(jù)所含信息量不同時, 區(qū)分器的最高準確率和最低準確率相差18%. 在構(gòu)造完神經(jīng)網(wǎng)絡(luò)差分區(qū)分器后, 我們進一步對11 輪SIMON32/64 密碼進行最后一輪子密鑰恢復(fù)攻擊, 在選擇明密文對數(shù)為n=28時, 1000 次攻擊中捕捉到正確密鑰的成功率為95.6%.

        猜你喜歡
        密文區(qū)分差分
        區(qū)分“旁”“榜”“傍”
        一種針對格基后量子密碼的能量側(cè)信道分析框架
        你能區(qū)分平衡力與相互作用力嗎
        一種支持動態(tài)更新的可排名密文搜索方案
        基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯恢復(fù)
        數(shù)列與差分
        教你區(qū)分功和功率
        基于差分隱私的大數(shù)據(jù)隱私保護
        云存儲中支持詞頻和用戶喜好的密文模糊檢索
        罪數(shù)區(qū)分的實踐判定
        国产自拍一区在线视频| 亚洲伊人久久大香线蕉影院| 2021久久精品国产99国产| 久久熟女少妇一区二区三区| 国精产品一区一区二区三区mba| 97久久人人超碰超碰窝窝 | 亚洲综合偷自成人网第页色| 一本色道久久88综合亚精品| 青青草狠吊色在线视频| 在线视频观看免费视频18| 亚洲区在线播放| 一本之道加勒比在线观看| 亚洲精品在线国产精品| 亚洲色www成人永久网址| 国产成人免费一区二区三区| 精品人妻av区二区三区| 色噜噜亚洲男人的天堂| 中国a级毛片免费观看| 国产精品丝袜美女在线观看| 亚洲精品国产av成拍| 无码a级毛片免费视频内谢| 丰满五十六十老熟女hd| 无码高潮少妇毛多水多水免费| 男女搞事在线观看视频| 伊人久久大香线蕉av不卡| 亚洲精品456| 蜜桃av噜噜一区二区三区免费 | 尤物在线精品视频| 免费一级特黄欧美大片久久网 | 日本一区二区在线看看| 精品一区二区三区四区国产| 国产成人av性色在线影院色戒 | 久久久精品人妻一区二区三区四区 | 偷拍视频网址一区二区| 国产午夜鲁丝片av无码| 久久久久久中文字幕有精品| 亚洲国产成人久久精品美女av| 久久精品国产99久久无毒不卡| 久久综合给合久久狠狠狠97色69| 久久av一区二区三区下| 亚洲综合av大全色婷婷|