付超輝, 段 明,2, 魏 強, 吳茜瓊, 周 睿,2, 宿恒川,2
1. 信息工程大學 網絡空間安全學院, 鄭州450001
2. 河南省網絡密碼技術重點實驗室, 鄭州450001
自AlphaGo 誕生以來, 深度學習迅猛發展, 已廣泛應用于社會生活的各個領域, 如智能機器人、智能醫療、智能安防、智能家居、智能交通、智慧城市以及計算機視覺、語音和圖像識別、機器翻譯、自動駕駛、信息推薦等.
2019 年美密會上, Gohr[1]提出深度學習用于密碼算法分析的技術, 并對Speck 算法進行了差分攻擊, 對減少數據復雜度有很好的效果. 本文結合多面體差分的思想[2–4], 利用深度學習的方法創新提出了多面體差分神經網絡區分器. 該區分器由一個殘差神經網絡構成, 可以對特定輸入差分對應的輸出密文分布特征進行學習. 殘差網絡訓練完成后, 可對密文進行預測, 根據預測值即可判斷該密文是否是由特定輸入差分產生. 該多面體差分神經網絡區分器相對于Gohr 提出的單差分區分器精度更高, 一定條件下, 利用其進行密鑰恢復的成功率也有一定提升, 為我們提供了一種在密鑰恢復成功率和數據復雜度時間復雜度之間折中的方法.
Simeck 算法是Yang[5]等在CHES 2015 上提出的一種輕量級的分組密碼, 結合了NSA 在2015 年設計的Speck 和Simon[6]算法的特征, 從輪函數上看更像Simon 算法, 從密鑰擴展上看更像Speck 算法. 該算法能夠滿足RFID 設備低功耗高性能的需求, 且適用于IOT 設備的安全[7], 可在16 位處理器上高效執行[8]. 自提出以來, 出現了大量的針對該算法的攻擊分析, 如差分攻擊[9]、線性攻擊[10]、不可能差分攻擊[5]、積分攻擊[11]、相關序列攻擊[12]、零相關線性分析[13]等, 雖然針對該算法的攻擊方法很多,但大多都是理論攻擊, 針對13 輪的Simeck32/64 攻擊, Bagheri[10]給出了實際攻擊結果, 但數據復雜度和時間復雜度較高.
我們利用多面體神經網絡區分器、單差分神經網絡區分器及兩種區分器的混合對13 輪Simeck32/64算法進行了密鑰恢復攻擊, 相對于現有針對該算法的攻擊它們都降低了所需數據復雜度和時間復雜度,表1 給出了利用兩種區分器的混合進行密鑰恢復的結果, 數據復雜度和時間復雜度分別為217.7和232.7,與已有的攻擊結果相比, 復雜度分別減少為原來的1/212和1/23, 同時我們也給出了利用單差分神經網絡區分器攻擊的結果, 結果顯示在略微降低密鑰恢復成功率的情況下, 所需數據復雜度和時間復雜度還可以再次降低. 其中文獻[10] 中給出的是恢復1 比特密鑰的時間復雜度, 此處對其進行了換算.

表1 Simeck32/64 算法Table 1 Simeck32/64 algrithm
Simeck 是一種輕量級分組密碼, 由Yang[5]等在CHES 2015 提出, 采用Feistel 結構, 記為Simeck2n/mn,其中分組大小為2n(n=16,24,32),mn表示密鑰大小. 本文主要研究Simeck32/64,即分組大小為32 比特、密鑰大小為64 比特. 輪函數可表示為L(i+1)=((Li?5)&Li)⊕(Li?1)⊕Ri⊕Ki,
其單輪函數迭代結構如圖1 所示.

圖1 Simeck 算法輪函數迭代結構Figure 1 Architecture of Simeck
假設F是一個映射,F: (0,1)n →(0,1)m, 一個差分轉移是指一對(△in,△out)∈(0,1)n×(0,1)m,其映射F:(0,1)n →(0,1)m的概率稱為差分轉移概率, 記作

對于一個簡單的迭代結構的分組密碼, 差分特征是指一個差分轉移序列△0,△1,···,△n. 差分區分器是一個高概率的差分特征. 當給定具有某種差分的明文數據時, 密文輸出具有非隨機特性, 差分攻擊就是利用這種特性的一種密碼算法分析方法.
當給定輸入差分△和加密輪數r, 綜合使用多個輸出差分特征時, 我們用


傳統的差分密碼分析利用兩個明文在加密時的統計相關性, 當我們對兩個文本在狀態空間中的絕對位置不感興趣時, 兩個明文之間的差異完全決定了它們的相對位置. 當有多個明文時, 選擇其中一個明文作為參照點, 就只需考慮它們相對于參考明文的差值, 據此Tiessen 在2016 年提出了多面體差分思想, 并在多個密碼分析中得到應用[2–4].
例如有d+1 個明文, 可以用d差分的元組來描述它們的相對位置. 通常我們稱(m0,m1,···,md) 為(d+1) 面體, 相應的差分(m0⊕m1,m0⊕m2,···,m0⊕md) 為d差分,m0稱為錨定值. 因此, 如果給定一個d差分和錨定值, 我們就可以唯一地確定其相應的(d+1) 面體.
多面體密碼分析考慮了明文集在加密時的相互依賴性, 是標準差分密碼分析方法的一個擴展, 是一個通用的方法, 可以包含更高階的差分. 在實際密碼分析中具有一定的實用價值, 可以為我們在時間和數據復雜度之間提供一種折中.
神經網絡差分區分器最早由Gohr[1]提出, 由一個殘差神經網絡構成. 殘差神經網絡是深度學習的模型之一. 利用該網絡, 對給定輸入差分的某算法的輸出差分分布特征進行學習, 并利用訓練的網絡對給定的密文進行預測, 看該密文是否符合其輸出差分分布. 區分器進行預測時, 利用了輸出差分的分布特征, 這其中很多特征對于傳統的純差分區分器來說是不可見的, 并且該區分器在用于密鑰恢復攻擊時, 大大降低了所需數據復雜度和時間復雜度. 下文我們將該區分器簡稱為單差分神經網絡區分器.
下文將基于深度殘差神經網絡的多面體差分區分器簡稱為多面體神經網絡區分器. 我們從功能的角度對多面體神經網絡區分器進行一個簡要描述. 多面體神經網絡區分器的功能類似差分區分器. 首先, 訓練一個多面體神經網絡區分器. 給定輸入差分為△0,△1,···,△d用形如(P,P ⊕△0,P ⊕△1,···,P ⊕△d)的明文訓練一個多面體神經網絡區分器. 其次, 利用該區分器進行預測. 其輸入為由上述明文產生的密文,輸出為Z,Z ∈(0,1), 表示區分器對密文的預測值. 一般意義上當Z> 0.5 且越接近1 時, 說明該密文是由輸入差分為△0,△1,···,△d的明文產生的. 假定多面體神經網絡區分器的輸入為n個密文, 密鑰為k,第i個密文應的輸出為Zki,Zki ∈(0,1) , 綜合多面體神經網絡區分器的多個輸出, 可利用

來區分枚舉密鑰的好壞, 當V2值大于一臨界值時, 說明該枚舉密鑰是一個好的密鑰. 數據復雜度與n值相關.
當d= 2 時神經網絡區分器為3 面體神經網絡區分器, 當d= 3 時神經網絡區分器為4 面體神經網絡區分器, 當d=1 時神經網絡區分器為2 面體神經網絡區分器, 也是Gohr 提出的單差分神經網絡區分器. 下文以3 面體神經網絡區分器為例進行說明.
以3 面體神經網絡區分器為例, 下面直接給出對應Simeck32/64 算法我們的最好模型及參數. 深度學習神經網絡一般由數據預處理、輸入層、隱藏層和輸出層構成, 在數據預處理和輸入層, 將一組具有特定輸入差分的明文記作(P,P ⊕△0,P ⊕△1), 3 個元素共96 比特, 整體看作一個行向量作為網絡的輸入.隱藏層共十一層, 第一層的初始化使用一維卷積和正則化, 卷積使用32 個filter, 激活函數使用Sigmoid函數, kernel_size 設置為1. 隱藏層的其它層全部由一維卷積和正則化構成, kernel_size 設置為3, 其余參數與隱藏層第一層相同. 輸出層由三層構成, 前兩層各有96 個神經元, 每層后面都有正則化、矯正層,激活函數為ReLU 函數, 最后一層有一個神經元, 激活函數為Sigmoid.
訓練數據和驗證數據均用隨機數生成. 三個明文分別記作P0,P1=P0⊕△0,P2=P0⊕△1,P3=(P0⊕Random1),P4=(P0⊕Random2). 此處△0=0x0000/0001,△1=0x0000/0004, Random1和Random2 均為32 比特隨機數. 進行r輪Simeck32/64 算法訓練時, 密鑰由隨機數生成, flag 也由隨機數生成且flag 屬于集合(0,1). flag=1 時, 神經網絡的一組輸入數據為(P0,P1,P2), flag=0 時神經網絡的一組輸入數據為(P0,P3,P4) . 訓練的集合大小為107, 驗證集合大小為106. 每次訓練我們運行50 個epoch, 每個batch 大小為5000, 使用Keras 中默認參數的Adam 算法對均方誤差損失和基于L2權重正則化(正則化參數c= 10?5) 懲罰進行優化, 采用循環學習效率調度. 利用GTX1650 顯卡我們訓練了一個8 輪和一個9 輪的3 面體神經網絡區分器, 每個區分器訓練50 個epoch, 一個epoch 大約需要5 分鐘, 結果如圖2 和圖3 所示.

圖2 N8 三面體神經網絡區分器精度Figure 2 Accuracy of 8-round 3-polytopic differential neural network distinguisher

圖3 N9 三面體神經網絡區分器精度Figure 3 Accuracy of a 9-round single differential neural network distinguisher
其中,x軸表示訓練的epoch,y軸表示精度, 藍線表示訓練精度, 橙線表示預測精度. 隨著訓練周期的增加, 神經網絡區分器的精度基本穩定. 相似的, 我們利用輸入差分△0= 0x0000/0001[9],△0=0x0000/0002, 或△0= 0x0000/0004 等訓練了多個8 輪和9 輪的單差分神經網絡區分器, 結果如表2 所示, N8 和N9 表示8 輪和9 輪神經網絡區分器. 通過對比兩種類型的神經網絡區分器可以發現, 輪數相同的情況下多面體神經網絡區分器的預測精度更高.

表2 單差分神經網絡區分器和多面體神經網絡區分器精度對比Table 2 Accuracy comparison between single differential neural network distinguisher and polytopic neural network distinguisher
在本節我們將利用 3 面體差分神經網絡區分器 N9 和單差分神經網絡區分器 N8 對 13 輪Simeck32/64 進行密鑰恢復攻擊, 并通過該實例對密鑰恢復攻擊過程和原理進行說明.
這里主要對13 輪的Simeck32/64 進行最后一輪子密鑰進行攻擊. 攻擊第13 輪時, 將9 輪的3 面體神經網絡區分器擴展為11 輪的區分器, 添加一個兩輪區分器, 其差分轉移路徑為

(0x0002/0005,0x0008/0014) 為輸入3 面體的2 差分. 其中輸出以約1/16× 1/16 = 1/256 概率為(m0,m0⊕0x0000/0001,m0⊕0x0000/0004) , (0x0000/0001,0x0000/0004) 為輸出3 面體的2 差分. 該2 差分也是我們訓練神經網絡時輸入數據的差分. 此處, 我們將這樣的3 面體數據稱為可用差分結構. 一般來說, 可用差分結構是一個d+1 多面體數據, 它的d差分與訓練多面體神經網絡區分器的d+1 面體數據的d差分相同. 之后將添加的兩輪區分器的輸入解密一輪, 結果即為選擇明文, 以其作為13 輪加密的輸入, 這樣即可保證選擇明文加密1 輪后, 輸出3 面體的2 差分以概率1 為(0x0002/0005,0x0008/0014),加密3 輪后, 輸出3 面體的2 差分以概率1/256 為(0x0000/0001,0x0000/0004), 即9 輪3 面體神經網絡區分器的輸入2 差分以概率1/256 為(0x0000/0001,0x0000/0004).
9 輪3 面體神經網絡區分器經過2 輪擴展后, 其輸入3 面體數據的2 差分以約1/256 的概率為(0x0000/0001,0x0000/0004), 為了擴大該概率, 減小數據復雜度, 我們利用了中性位[14]來構造明文結構.實際上我們在構造明文結構時, 利用了中性位比特變化但不改變輸出差分的性質, 首先選定一個3 面體明文組, 然后對其6 個中性位比特進行變化, 從而擴展出64 個3 面體明文組, 稱其為一個明文結構. 13 輪攻擊采用的中性位比特為(0,1,2,3,4,6), 擴展后的64 個3 面體明文組經加密后可得到64 個3 面體.
明文結構經過13 輪加密后得到相應密文結構, 猜測最后一輪子密鑰, 并利用候選子密鑰搜索策略給出候選密鑰, 利用這些密鑰解密該密文對組, 得到的結果作為輸入進入3 面體神經網絡區分器N9, 經區分器和公式(2)計算后得到一組V2值, 將該值和臨界值Cut1比較, 如果大于Cut1, 就將解密最后一輪得到的密文結構用于猜測倒數第二輪子密鑰. 其過程是, 利用猜測的倒數第二輪子密鑰解密倒數第二輪數據, 得到的結果形如(m0,m1,m2), 取(m0,m1) 作為輸入進入單差分神經網絡區分器N8, 經區分器和公式(2)計算出該輪的V2值, 如果該V2值大于臨界值Cut2, 那么用于解密的兩輪子密鑰即是所求.
簡要地說該過程主要分為兩個步驟: 第一步, 搜索最后一輪候選子密鑰; 第二步, 在最后一輪子密鑰確定后, 搜索倒數第二輪子密鑰. 兩個步驟都利用了輸出密文的差分分布特征. 當然, 也可以只利用第一個步驟確定最后一輪子密鑰, 增加第二步是為了更好地確認第一步搜索出的最后一輪子密鑰的正確性. 第二步對于確定最后一輪子密鑰起到了輔助作用.
4.2.1 候選子密鑰搜索策略
最后兩輪候選子密鑰搜索均采用了貝葉斯優化方法[15]對密鑰搜索策略進行了改進. 貝葉斯優化是一種在不知道函數方程的情況下, 根據已有的采樣點求取函數最大值及其相應參數的方法. 該方法可快速找到函數最大值, 其包含兩個核心過程: 一個是先驗函數, 先驗函數主要利用高斯過程回歸, 其求解按貝葉斯推斷進行; 一個是采集函數, 包括UCB (邊探索邊利用) 方法等, 目的是找到最佳樣本集. 在我們的攻擊模型中, 可把區分器看作一個黑盒函數, 尋找該黑盒函數的最大值過程即搜索候選子密鑰過程, 首先猜測一個子密鑰, 由該子密鑰解密密文再經黑盒函數, 所得結果求均值方差, 再利用采樣點值經貝葉斯推斷即可得出候選子密鑰. 采樣點值可以利用區分器和樣本集在錯誤密鑰情況下預計算獲得.
4.2.2 采樣點值計算


圖4 三面體神經網絡區分器N9 錯誤密鑰均值分布Figure 4 Wrong key response profile of 9-round 3-polytopic differential neural network distinguisher

圖5 單差分神經網絡區分器N8 錯誤密鑰均值分布Figure 5 Wrong key response profile of 8-round single differential neural network distinguisher
其中, 橫軸表示密鑰差△, 縱軸表示神經網絡區分器輸出均值. 該采樣點值主要用在貝葉斯推斷中.
4.2.3 候選子密鑰搜索算法
由上述知識為基礎, 候選密鑰搜索算法可總結如算法1 所示. 其中,S為密鑰集合,N為神經網絡區分器,n為候選密鑰個數,m為密文組個數, count 為貝葉斯優化算法迭代次數.

算法1 候選密鑰搜索算法Input: S := {k0,k1,···,kn?1},N,n,m,count Output: S 1 for iter < count do 2 解密1 輪m 個密文對組得到密文組Pi,k, k ∈S;3 用神經網絡區分器N 預測Pi,k 得到中間變量Zki;4 Zk i 為輸入利用公式(2)得到中間變量wk;5 對每個密鑰構建L = L‖[k,wk];6 對每個密鑰求均值mk = ∑m i=0 Zki/n;7 構建中間變量λk = ∑n?1 i=0 (mk ?μ△⊕k)2/σ2△⊕k,k ∈{0,1,···,216 ?1};8 用S 記錄λk 最小的n 個值對應的k 作為候選密鑰;9 end
用L保存枚舉的密鑰和計算得出的wk, 其中保存密鑰和wk的個數為n×count. 如果其中的某個wk超過了臨界值Cut1, 那么我們將該算法擴展倒倒數第二輪, 如果該輪的wk超過了臨界值Cut2, 那么我們的密鑰搜索就結束了, 此時便得到了最后兩輪的子密鑰.
在密鑰恢復攻擊的過程中, 首先對所有的密文結構進行候選密鑰搜索, 如果沒有找到合適的密鑰, 就繼續主循環的迭代, 直到找出使得該輪wk> Cut1子密鑰. 算法擴展到倒數第二輪, 密鑰搜索過程相同,該輪利用的密文結構是由猜測的最后一輪子密鑰解密原始密文數據得來. 在這些迭代過程中使用了UCB的方法.
在13 輪的攻擊實驗中我們分別使用了1024 個密文結構, 單個密文結構包含64 個3 面體明文對組, UCB 方法的參數為10, 貝葉斯密鑰搜索迭代次數為2048, Cut1= 1.0, Cut2= 10.0, 候選密鑰個數n=32×5=160.
在13 輪密鑰恢復攻擊實驗中, 對100 個密鑰進行了恢復, 統計發現, 共用時17 984 秒, 恢復一個密鑰平均用時180 秒, 最后1 輪子密鑰完全正確的概率為98%, 倒數第二輪子密鑰誤差全部在2 比特以內.
數據復雜度為210×3×64=217.6, 以一次Simeck 運算為單位, 估計時間復雜度為(l1×1.5+l2)×22×22×217≈232.8, 其中217表示一次候選子密鑰搜索所需時間復雜度, 兩個22×22×217表示4次候選子密鑰搜索和神經網絡預測所需時間復雜度,l1≈1024 表示需進行最后一輪解密的數據結構個數,l2≈2095 表示在wk>Cut1的情況下, 進行倒數第二輪解密的密文結構個數.
通過上述攻擊過程, 我們可以發現該攻擊方法的主要計算復雜度在于, 輸入明文經3 輪加密后是以1/256 概率得到我們想要的輸出密文即可用差分結構, 該輸出密文再經神經網絡區分器、候選密鑰搜索等過程最終找到正確密鑰. 在未知哪一個明文輸入能得到可用差分結構時, 我們只能將所有的輸入明文結構枚舉. 但是, 在最后一輪子密鑰搜索完成后, 就可以得到一個輸入明文結構其對應的3 輪加密輸出為可用差分結構, 以及一個完全正確的最后一輪子密鑰. 利用此明文結構即可以常數時間恢復其它各輪子密鑰,從而得到初始完整密鑰.
本節我們主要討論多面體差分相對于單差分帶來的精度提高, 在密鑰恢復效率上的具體體現. 主要以3 面體神經網絡區分器和單差分神經網絡區分器的應用作對比. 同時也涉及到了3 面體神經網絡區分器和單差分神經網絡區分器的混合使用, 即密鑰恢復攻擊的第一步使用3 面體神經網絡區分器, 第二步使用單差分神經網絡區分器.
單差分神經網絡區分器的訓練已由第3 節給出, 下文我們將直接給出單差分神經網絡區分器進行密鑰恢復的結果. 另使用單差分神經網絡區分器時, 該區分器由9 輪擴展為11 輪需添加的兩輪差分特征為(0x0002/0005,0x0000/0001), 得到一個可用差分結構的概率約為1/16. 3 面體神經網絡區分器由9 輪擴展為11 輪時, 得到一個可用差分結構的概率約為1/256. 本節表格中涉及到的概率即為得到可用差分結構的概率.
在該實驗中, 我們將2 差分為(0x0000/0001,0x0000/0x0004) 的3 面體神經網絡區分器與單差分為0x0000/0002 的神經網絡區分器進行對比. 密鑰恢復攻擊的輪數為10 輪. 多面體差分攻擊的兩個步驟使用3 面體神經網絡區分器N9 和N8, 單差分攻擊的兩個步驟使用單差分神經網絡區分器N9 和N8. 因輪數為10 輪, 故不需考慮由輸入明文到可用差分結構的概率. 結果如表3 所示.

表3 無概率條件下單差分神經網絡區分器和三面體神經網絡區分器密鑰恢復精度對比Table 3 Comparison of key recovery accuracy between single differential neural network distinguisher and polytopic differential neural network distinguisher without probability
通過該實驗我們確認了高精度的3 面體神經網絡區分器在密鑰恢復攻擊中, 效果要好于精度低的單差分神經網絡區分器. 另外, 該結果也與采用UCB 方法時的主循環次數相關, 一般意義上主循環次數越大越高密鑰恢復成功率越高, 但計算復雜度也越大, 此處主循環次數為50.
在本實驗中, 我們僅使用密鑰攻擊過程的第一步進行密鑰恢復, 也即僅利用Cut1值進行密鑰恢復.首先猜測一個最后一輪密鑰, 解密一組密文數據, 然后用3 面體神經網絡區分器N9 和單差分神經網絡區分器N9 分別去預測, 給出該組密文數據的預測值分布, 最后利用貝葉斯優化方法搜索候選子密鑰, 當wk>Cut1時, 認為該密鑰為最終密鑰. 兩種區分器所得結果如表4.

表4 單差分神經網絡區分器和三面體神經網絡區分器密鑰恢復精度對比Table 4 Comparison of key recovery accuracy between single differential neural network distinguisher and polytopic differential neural network distinguisher
數據結構個數取512 和32 是為了保證可用差分結構個數約為2. 主循環次數分別為128 和1024. 通過對比發現, 在僅用Cut1值進行密鑰恢復時, 單差分區分器幾乎很難將正確密鑰篩選出來, 3 面體區分器在數據復雜度和計算復雜度一定增加的情況下, 可以以30% 的比例正確恢復密鑰. 其原因是3 面體對數據條件的要求更為嚴格, 區分器精度更高.
在無概率攻擊實驗和簡化密鑰攻擊過程實驗中, 我們都直接指定了進入兩種神經網絡區分器的可用差分結構個數, 但是在實際攻擊中, 我們需要考慮得到可用差分結構個數的概率, 此概率直接影響實際攻擊的數據復雜度.
為了對比單差分神經網絡區分器和3 面體神經網絡區分器精度對密鑰恢復的影響,我們利用兩種神經網絡區分器進行了13 輪密鑰恢復攻擊. 三面體差分密鑰恢復攻擊采用3 面體神經網絡區分器N9 和N8.單差分密鑰恢復攻擊采用單差分神經網絡區分器N9 和N8. 單差分攻擊取20 個明文結構, 3 面體攻擊取320 個明文結構, 即能夠基本保證有一個可用差分結構. 主循環次數采用數據結構數的4 倍. 3 面體差分13 輪密鑰恢復攻擊時,數據復雜度為28.5×3×64 ≈215.9,估計時間復雜度為(l1+l2)×22×22×217≈227.3,其中,l1≈20,l2≈66. 3 面體差分13 輪密鑰恢復攻擊時, 數據復雜度為28.5×3×64 ≈215.9, 估計時間復雜度為(l1+l2)×1.5×22×22×217≈231.4, 其中,l1≈315,l2≈549.
在該實驗的基礎上將數據結構個數增加, 結果如表5. 通過對比可見, 在數據復雜度和時間復雜度一定增加的情況下, 采用多面體神經網絡區分器提高密鑰恢復成功率的效果有限.

表5 神經網絡區分器不同使用方式密鑰恢復效果對比Table 5 Key recovery accuracy comparison of neural network distinguisher using different methods
上一個實驗中, 3 面體攻擊的兩個步驟均使用3 面體神經網絡區分器, 本實驗中, 3 面體攻擊的第一步使用3 面體神經網絡區分器N9, 第二步使用單差分神經網絡區分器N8. 主循環次數采用數據結構次數的4 倍. 用“3 面體/單差分” 表示3 面體和單差分的混合, 在第4 節實驗基礎上, 增加其它數據結構數目, 結果如表5.
由對比可知, 在可用差分結構數目相近的情況下, 混合使用3 面體差分區分器和單差分區分器, 可以使密鑰恢復成功率相較于單差分區分器有一定提高, 但相應數據復雜度和計算復雜度也有增加.
本文主要提出了基于深度學習的多面體差分攻擊方法, 并通過對Simeck32/64 算法的實際密鑰恢復攻擊, 說明了多面體差分攻擊方法的應用及效果. 在實際密鑰恢復攻擊過程中, 我們使用了多面體神經網絡區分器、單差分神經網絡區分器以及兩種區分器的混合. 與傳統差分攻擊方式相比, 三種攻擊方式均可降低數據復雜度和時間復雜度. 同時, 相對于單差分神經網絡區分器, 多面體差分神經網絡區分器進行密鑰恢復的成功率略好, 但所需數據復雜度和計算復雜度較高, 在兩種區分器混合使用的情況下密鑰恢復成功率和數據時間復雜度取得了較好平衡. 最后, 雖然這幾種神經網絡區分器及其應用方式都具有一定的局限性, 如攻擊多輪算法時區分器精度不高等, 但是作為一種新的密碼分析工具, 值得我們繼續探索.