摘要:為深入研究深度學習在密碼安全性分析方面的應用,采用神經網絡對輕量級分組密碼進行差分分析,主要得到以下研究結果:采用引入注意力機制的深度殘差網絡構造神經網絡差分區分器,并將其應用于 SIMON、SIMECK 和 SPECK 3 類輕量級分組密碼。結果表明,SIMON32/64 和 SIMECK32/64 有效區分器最高可達 11 輪,精度分別為 0.5172 和 0.5164;SPECK32/64 有效區分器最高可達 8 輪,精度為 0.5868。

  探究不同的輸入差分對神經網絡差分區分器精度的影響。針對 SIMON、SIMECK 和 SPECK 3 類密碼,采用神經網絡的快速訓練得到不同輸入差分對應的神經網絡差分區分器的精度。結果表明,低漢明重量且高概率的輸入差分能夠提高神經網絡差分區分器的精度。同時,尋找到 SIMON32/64、SIMECK32/64 和 SPECK32/64 神經網絡差分區分器的合適輸入差分分別為 0x0000/0040、0x0000/0001 和 0x0040/0000。

  探究包含不同信息量的輸入數據格式對神經網絡差分區分器精度的影響。根據密碼算法的特點改變輸入數據包含的信息量,并重新訓練相應的神經網絡差分區分器。結果表明,相比于只包含密文對信息,輸入數據中包含密文對信息以及倒數第 2 輪差分信息的神經網絡差分區分器會獲得更高的精度。在上述研究的基礎上,進一步對 11 輪 SIMON32/64 進行最后一輪子密鑰恢復攻擊,當選擇明密文對的數量為 2⁹時,在 100 次攻擊中的攻擊成功率可達 100%。

">

欧美一级在线毛片免费观看,国产成人精品视频一区二区不卡 ,成年人精品视频,国产精品手机视频

學術咨詢

讓期刊論文更省時、省事、省心

西安電子科技大學學報雜志投稿格式參考范文:神經網絡差分區分器的改進方案與應用

時間:

  1 引言

  近些年,隨著信息技術的不斷更新迭代,信息安全問題逐漸獲得社會廣泛關注,密碼學作為保障信息安全的核心技術,在現代信息安全領域中發揮著越來越重要的作用。在無線傳感器網絡、射頻識別技術等資源受限的設備中,輕量級分組密碼是保障數據安全的關鍵算法。但是,輕量級分組密碼追求低消耗、高效率,必然會導致安全性的降低。因此,輕量級分組密碼的安全性分析是至關重要的。

  迄今為止,深度學習技術已日漸成熟,廣泛應用于生物信息、計算機視覺、自然語言處理等各個領域。1991 年,RIVEST 概述了深度學習與密碼學之間的關系,并提出了將深度學習應用于密碼學領域中的一些可能的研究方向。2008 年,BAFGHI 等人提出將分組密碼的整個差分特征空間用多級加權有向圖表示,將最佳差分特征的問題簡化為尋找有向圖中兩個已知節點之間的最小權重的多分支路徑問題。相關文獻表明,利用遞歸神經網絡和結合模擬退火的玻爾茲曼機尋找分組密碼最佳差分路徑的方法具有更好的性能。

  2012 年,ALANI 等人提出基于神經網絡的已知明文攻擊,并將其成功應用于 DES 和三重 DES。相關文獻表明,在攻擊過程中,神經網絡無需加密密鑰,可直接從密文中獲取明文。2014 年,DANZIGER 等人利用神經網絡發現 S-DES 中明文、密鑰和密文之間的映射關系,在此基礎上提出關于 S-DES 新的 S 盒設計方案,經驗證,該 S 盒對差分攻擊更有抵抗力。2018 年,HU 等人開發了一種前饋神經網絡攻擊 AES 密碼,該網絡恢復整個明文字節的概率大于 40%,恢復一半以上明文字節的概率大于 89%。

  2019 年,GOHR 提出了基于深度學習的減輪 SPECK32/64 差分攻擊,通過訓練深度殘差網絡構造差分區分器,用于區分固定明文差分加密的密文對和隨機數據。2020 年,BAKSI 等人受 GOHR 工作的啟發,提出嘗試通過機器學習模擬非馬爾科夫密碼的所有 “單輸入多輸出” 差分路徑,利用機器學習成功構造了 8 輪 Gimli-Hash 區分器、8 輪 Gimli-Cipher 區分器、8 輪 Gimli-Permutation 區分器、3 輪 Ascon-Permutation 區分器、10 輪 Knot256-Permutation 區分器、12 輪 Knot-512-Permutation 區分器和 4 輪 Chaskey-Permutation 區分器。相關文獻表明,攻擊者能夠通過使用機器學習技術降低尋找區分器的復雜度。

  2021 年,BENAMIRA 等人對相關文獻中的神經網絡差分區分器的內在工作原理進行深入研究,并設計了基于決策樹的 LGBM 區分器,其與神經網絡差分區分器具有相同效果。2022 年,PAL 等人提出通過深度學習工具自動查找神經網絡差分區分器,并將其應用于 ARX 型密碼 HIGHT、LEA、SPARX 和 SAND。相關文獻證明了神經網絡差分區分器輸入差分的漢明權重與對應的最大輪數之間的關系,也改進了差分密碼分析的數據復雜度下界。2023 年,BAO 等人深入分析解釋相關文獻提出的神經網絡差分區分器優于基于差分分布表的區分器的優勢原因。相關文獻表明,控制差分傳播是提高神經網絡差分區分器準確率的關鍵。2024 年,ZHENG 等人從密文對的概率分布的角度分析相關文獻中的神經網絡差分區分器學習到的特征,并以此減小網絡模型參數。相關文獻表明,神經網絡差分區分器不僅從密文對中學習到差分特征,還學習到密文對左右分支的異或信息。

  基于深度學習的密碼安全性分析逐漸成為一個全新的研究熱點,使得密碼安全性分析工作有了新的突破。現如今,國內外學者對密碼算法安全性分析的相關研究工作表明,借助深度學習技術的安全性分析相比于傳統的攻擊手段能夠降低攻擊的復雜度,減少資源成本,具有一定的現實意義。然而,目前的研究工作仍存在一些未得到充分研究和解決的問題:

  研究如何改進神經網絡模型來進一步提高神經網絡差分區分器的精度;

  探究輸入差分對神經網絡差分區分器精度的影響;

  探究輸入數據格式對神經網絡差分區分器精度的影響。

  基于上述問題,文中要進行的工作如下:

  文中嘗試將注意力機制引入神經網絡模型中,以提高神經網絡差分區分器的精度。基于此,文中提出采用引入注意力機制的深度殘差網絡構造神經網絡差分區分器,并將其應用于 SIMON、SIMECK 和 SPECK 3 類輕量級分組密碼,期望得到有效改進的神經網絡差分分析模型。

  對于 SIMON、SIMECK 和 SPECK 3 類密碼算法,文中提出借助神經網絡模型測試并總結不同的輸入差分對神經網絡差分區分器精度的影響,期望尋找到神經網絡差分區分器的合適輸入差分。

  文中嘗試利用輕量級分組密碼的單輪加解密過程生成額外的輸入數據信息,為神經網絡模型提供更多的特征。針對 SIMON、SIMECK 和 SPECK 3 類密碼算法,文中研究輸入數據中只包含密文對信息和包含密文對信息以及倒數第 2 輪差分信息兩種不同的格式,探究包含不同信息量的輸入數據格式對神經網絡差分區分器精度的影響。

  以 SIMON32/64 密碼為例,進一步探究不同明密文對數量對密鑰恢復攻擊成功率的影響。文中嘗試改變密鑰恢復攻擊時輸入明密文對的數量,依次比較在不同明密文對數量下,11 輪 SIMON32/64 最后一輪子密鑰恢復攻擊的成功率。

  2 基礎知識

  2.1 符號說明

  文中用到的符號說明。

  2.2 差分分析

  差分分析是目前已知攻擊分組密碼最有效的方法之一,由 BIHAM 等人提出。該方法是利用密碼算法在加解密過程中差分傳播特性的不均勻性,尋找一條高概率的差分特征,從而將密碼算法與隨機數據區分開。

  假設給定一個 r 輪迭代分組密碼 E,其分組長度為 n,記 r 輪差分為 Λ=(α→β),明文 X∈F₂ⁿ,則 r 輪差分特征概率定義為特定公式。

  差分分析是研究滿足特定差分值 α 的輸入明文對(X,X⊕α)在每一步加密過程中對應密文對的差分變化情況,即根據差分值在加密過程中的高概率傳播特性,從而識別不隨機特性,建立區分器;在區分出真實密文對的基礎上,統計明密文對差分之間的分布規律,恢復部分密鑰信息,從而實現密鑰恢復攻擊。

  2.3 神經網絡差分區分器

  傳統差分分析需要尋找一條高概率的差分特征,進而利用高概率的差分特征構造差分區分器對真實密文和隨機數據進行分類。與傳統差分區分器效果相同,神經網絡差分區分器是在輸入差分確定的情況下,對大量已知密文數據進行學習、挖掘并提取大量有效密文數據特征,從而實現對未知密文數據的分類。在 2019 年美密會上,GOHR 首次提出采用深度殘差網絡構造神經網絡差分區分器,并將其成功應用于減輪 SPECK32/64。相關文獻表明,相比于傳統差分區分器,神經網絡差分區分器的區分精度更高,性能也更好。

  GOHR 的文章第 1 次表明神經網絡可以用來產生與公開的現有技術水平相當的攻擊,展示了深度學習在密碼分析的應用潛力。在 2021 年歐密會上,BENAMIRA 等人深入研究 GOHR 提出的神經網絡差分區分器,表明神經網絡差分區分器的區分效果主要依賴于密文對的差分分布,但也依賴于倒數第 2 輪的差分分布。此后,密碼分析者主要從優化神經網絡結構和改進輸入數據格式兩方面來進一步提高神經網絡差分區分器的精度。

  在優化神經網絡結構方面,ZHANG 等人在神經網絡殘差結構之前引入 Inception 結構,擴大了網絡的感受野;KIM 等人在神經網絡結構中加入殘差連接和門控線性單元;在改進輸入數據格式方面,HOU 等人使用多組輸出差分改進神經網絡差分區分器;CHEN 等人使用多個密文對作為輸入數據集,為神經網絡提供更多差分特征。另外,在 2023 年亞密會上,BAO 等人指出 GOHR 提出的神經網絡差分區分器除了利用純密文差分信息,還利用了密文的偏值、密文對的差分和中間狀態的差分之間的相關性。相關文獻表明,神經網絡差分密碼分析在相關密鑰的設置下可以比在單密鑰設置下攻擊更多的輪數。

  隨著深度學習的興起,密碼分析者著眼于將深度學習與傳統密碼分析方法相結合,為密碼安全性分析提供了全新的思路,有助于進一步發現密碼算法潛在的安全性缺陷,以改進現有密碼算法或協議的設計方案。因此,基于深度學習的密碼安全性分析將是未來研究工作的重點之一。

  2.4 注意力機制

  注意力機制最早由 BAHDANAU 等人于 2014 年提出,通過引入注意力機制,神經網絡能夠自動學習并動態地關注不同的特征,從而提高模型的性能和泛化能力。在 2022 年亞密會上,BAO 等人采用 SEResNeXt 變體構造神經網絡差分區分器,并將其應用于 SIMON32/64 密碼算法中。2023 年,DENG 等人在殘差網絡的輸出層引入注意力機制,用于分析 SPECK 密碼算法的安全性。相關文獻將 SEblock 應用于 ResNeXt 中。相關文獻將多頭注意力機制應用于殘差網絡的輸出層,兩者均為神經網絡提取更多特征,進一步提高了神經網絡差分區分器的性能。

  由于注意力機制的結構和添加位置可變,故文中嘗試采用一維卷積神經網絡、批量歸一化、ReLU 激活函數和乘法層構成注意力機制,并將注意力機制應用于殘差塊中,使神經網絡能夠集中學習明密文對之間的特征信息。

  2.5 模型評估指標

  模型評估指標用來衡量模型的訓練效果和性能。神經網絡差分區分器的評估指標分別為精度、損失、真陽性率和真陰性率。

  2.5.1 精度

  精度為區分器預測值與真實值完全一致的數量比率,是神經網絡差分區分器的主要評估指標,其定義為特定公式,其中 m 為樣本數量,Zᵢ為樣本對應的預測值即神經網絡差分區分器模型的分數;Yᵢ為樣本對應的真實值即標簽值。

  2.5.2 損失

  損失用均方誤差來衡量,反映區分器預測值與真實值的差異程度,其定義為特定公式。

  2.5.3 真陽性率和真陰性率

  區分器預測值與真實值的混淆矩陣。

  只有當區分器預測值與真實值完全一致時才能判定為區分器分類正確,即當真正例(R_TP)和真反例(R_FN)出現時區分器分類正確,其對應的指標分別為真陽性率(R_TPR)和真陰性率(R_TNK)。其計算式為特定公式。

  3 神經網絡差分區分器的構造

  為改進相關文獻提出的神經網絡差分區分器,文中基于引入注意力機制的深度殘差網絡構造神經網絡差分區分器,下面介紹其具體結構和數據集生成過程。

  3.1 神經網絡差分區分器結構

  文中構造的神經網絡差分區分器模型主要采用注意力機制結構構造引入注意力機制的深度殘差神經網絡,記為 Attention-ResNets神經網絡差分區分器模型主要分為:輸入表示層、引入注意力機制的殘差塊和輸出層。

  輸入表示層是對輸入數據集進行數據處理。輸入表示層包括輸入層、數據整形層、重新排列層和初始卷積層。由于神經網絡結構的訓練是面向 16bit 的字結構,所以,輸入層的輸入數據格式為(None,4w),其中,w=16。經過數據整形層及重新排列層后輸出數據格式變為(None,w,4),并連接到初始卷積層,該層由內核大小為 1 的一維卷積網絡、批量歸一化和 ReLU 激活函數組成。其中,一維卷積網絡包含 32 個濾波器。經過初始卷積層后的輸出數據格式為(None,w,2w)。

  引入注意力機制的殘差塊是對經過處理變型后的數據進行特征提取。文中構造的殘差塊由兩層卷積神經網絡、一個注意力機制、一個連接輸入輸出的旁路和 ReLU 激活函數組成。其中,卷積神經網絡采用內核大小為 3 的一維卷積網絡,而后連接批量歸一化和 ReLU 激活函數;注意力機制包括 4 個部分:內核大小為 3 的一維卷積網絡、批量歸一化、ReLU 激活函數和連接輸入輸出的乘法層;旁路采用加法層。經過引入注意力機制的殘差塊后的輸出數據格式為(None,w,2w)。

  輸出層則是對數據進行分類,判別其是真實密文對或是隨機數據。輸出層由一個平鋪層、兩個隱藏層和一個輸出單元組成。經過平鋪層后,輸出數據格式變為(None,w×2w),并連接到隱藏層。每個隱藏層均由全連接層、批量歸一化和 ReLU 激活函數組成。經過兩個隱藏層后,輸出數據格式為(None,4w)。輸出單元包括全連接層和 Sigmoid 激活函數。經過輸出單元后,得到最終輸出數據格式為(None,1)。以最終輸出數據作為神經網絡差分區分器模型的分數,該分數位于(0,1)區間內,在分類判別時,將分數大于 0.5 的對象判為真實密文對;而分數小于或等于 0.5 的對象則判為隨機數據。

  3.2 數據集的生成

  神經網絡模型的學習需要大量的訓練數據和驗證數據,數據集的選取會影響模型的精度。在神經網絡差分區分器的構造中,選取的數據集應該盡可能覆蓋所有的情況。因此,文中通常采用隨機數生成器來生成數據集。

  與傳統差分區分器一樣,神經網絡差分區分器也需要給定輸入差分。假設文中選取固定輸入差分作為神經網絡差分區分器的輸入差分,記為 Δ,神經網絡差分區分器的數據集生成過程如下:隨機生成 m 個明文 Pᵢ₁、Pᵢ₂,初始密鑰 keyᵢ和標簽數據 Yᵢ。其中,明文 Pᵢ₁、Pᵢ₂均為長度不超過 n 的非負整數,初始密鑰 keyᵢ是長度不超過 K 的非負整數,標簽數據 Yᵢ=0 或 Yᵢ=1,i=0,1,…,m-1,n 表示所研究的輕量級分組密碼的分組長度,K 表示其密鑰長度。

  若標簽數據 Yᵢ=0,對應的隨機明文 Pᵢ₁、Pᵢ₂保持不變;若標簽數據 Yᵢ=1,令 Pᵢ₂=Pᵢ₁⊕Δ,此時,明文 Pᵢ₁、Pᵢ₂具有固定輸入差分 Δ。對初始密鑰 keyᵢ進行密鑰擴展,得到密鑰 sk。使用密鑰 sk 對 m 個明文 Pᵢ₁、Pᵢ₂分別進行加密,得到對應的 m 個密文 Cᵢ₁、Cᵢ₂和標簽數據 Yᵢ,記 Cᵢ₁=(Cᵢ₁ₗ,Cᵢ₁ᵣ),Cᵢ₂=(Cᵢ₂ₗ,Cᵢ₂ᵣ)。5. 將 m 個密文(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)進行二進制化得到 Xᵢ和標簽數據 Yᵢ,作為神經網絡差分區分器的輸入數據集。

  4 基于神經網絡的輕量級分組密碼 SIMON 安全性分析

  文中采用第 3 節介紹的神經網絡差分區分器的構造方法對輕量級分組密碼 SIMON 進行安全性分析。在分析過程中,文中構建神經網絡模型尋找 SIMON32/64 神經網絡差分區分器的合適輸入差分,以此研究不同的輸入差分對神經網絡差分區分器精度的影響;結合 SIMON32/64 密碼的單輪加解密過程改變輸入數據包含信息量,以此研究包含不同信息量的輸入數據格式對神經網絡差分區分器精度的影響。

  4.1 SIMON 密碼算法

  SIMON 系列算法是由美國國家安全局(NSA)于 2013 年推出的一款輕量級分組密碼算法,與 SPECK 系列算法是同一時間推出的。SIMON 系列算法基于平衡的 Feistel 結構,由線性運算(比特移位運算、比特異或運算)和非線性運算(邏輯與運算)經過多輪迭代組成,摒棄了傳統分組密碼具有的 S 盒。SIMON 有多種不同的版本,但在文中,重點關注 SIMON32/64,它由 32 輪組成。設密碼算法的第 i 輪輸入為(Lᵢ₋₁,Rᵢ₋₁),輪密鑰為 kᵢ₋₁。

  4.2 區分器性能指標測試

  文中采用第 3.1 節介紹的 Attention-ResNets 模型構造 SIMON32/64 神經網絡差分區分器,隨機選取 Δ=0x0000/0001 作為神經網絡差分區分器的輸入差分,加密輪數 nᵣ=6,7,8,9,采用第 3.2 節介紹的方法,使用加密算法分別生成 10⁷bit 訓練數據集和 10⁶bit 驗證數據集,并以此訓練構造 6~9 輪 SIMON32/64 神經網絡差分區分器。其中,神經網絡差分區分器模型的參數。

  在訓練 SIMON32/64 神經網絡差分區分器過程中,一個訓練周期(Epoch)是指神經網絡差分分析模型學習整個數據集中的所有樣本一次,并記錄當前訓練周期(Epoch)下神經網絡差分區分器的損失和精度,以反映模型對當前數據集的擬合程度。文中設置訓練周期數(Epochs)為 50,共進行 50 個周期的訓練。

  隨著訓練周期數的不斷增加,7 輪 SIMON32/64 神經網絡差分區分器的損失函數不斷下降,精度不斷上升,且在大約 20 個訓練周期后,損失函數和精度的波動范圍始終維持在 1% 以內。由此可以表明,文中選擇訓練周期數(Epochs)為 50 是較為合適的,此時模型已基本收斂。

  經過訓練后可得到 4 個神經網絡差分區分器,分別記為 Net6、Net7、Net8 和 Net9。同樣地,采用第 3.2 節中的方法使用加密算法生成 10⁶bit 測試數據集,然后分別使用 Net6、Net7、Net8 和 Net9 在 10⁶bit 測試數據集上進行評估,可得到 6~9 輪神經網絡差分區分器的評估指標。

  當嘗試改變神經網絡差分區分器的輸入差分為 Δ=0x0040/0000,在保持其他神經網絡結構參數、SIMON32/64 加密輪數、訓練數據集、驗證數據集和測試數據集大小相同的情況下,分別使用相同的方法訓練 6~9 輪 SIMON32/64 神經網絡差分區分器,并對其性能進行測試評估。

  采用上述方法,當僅改變神經網絡差分區分器的輸入差分為 Δ=0x0000/0001 或 0x0040/0000 時,6~9 輪 SIMON32/64 神經網絡差分區分器評估指標。

  當改變神經網絡差分區分器的輸入差分時,6~9 輪 SIMON32/64 神經網絡差分區分器的精度有明顯差異。由于訓練數據集、驗證數據集和測試數據集樣本數量較大,因此可以忽略因生成數據集的隨機性而導致的區分器精度的差異。因而,猜測輸入差分能夠對神經網絡差分區分器的精度產生一定影響。

  4.3 尋找 SIMON32/64 神經網絡差分區分器的合適輸入差分

  輸入差分的不同會對密文數據輸出差分的分布產生一定影響,對于神經網絡差分區分器,其本質是在給定輸入差分的情況下,學習大量密文數據特征。因此,在神經網絡模型參數確定的情況下,研究合適輸入差分對于提高神經網絡差分區分器的精度是十分有必要的。

  近年來,密碼分析者大多基于 SAT/SMT 求解器搜索高概率差分特征,進而尋找神經網絡差分區分器的合適輸入差分 [22,28-29]。相較于借助 SAT/SMT 的自動搜索工具,神經網絡模型實現較為簡單,并不需要密碼分析者具備一定的先驗知識。因此,文中使用神經網絡的快速訓練尋找 SIMON32/64 神經網絡差分區分器的合適輸入差分。

  神經網絡模型的輸入數據集包括密文數據和標簽數據。其中,密文數據是具有固定輸入差分的明文對經過 SIMON32/64 加密算法得到的。所示的預處理器是借助第 3.1 節中構造的 Attention-ResNets 模型的輸入層和倒數第 2 層的輸出組成的。為了使實驗結果更加具有可信度和客觀性,盡可能地覆蓋所有情況,文中使用隨機數生成器來生成神經網絡差分區分器的輸入差分。

  2015 年,KÖLBL 等人 [30] 提出 SIMON-like 輪函數的非線性部件的差分傳播規律;2016 年,BEIERLE [31] 進一步證明 SIMON-like 輪函數的差分概率上界僅與輸入差分的漢明重量有關。由文獻 [30] 和文獻 [31] 可知,SIMON32/64 輪函數的差分概率只與輸入差分的漢明重量有關,當輸入差分的漢明重量較低時,密文對的差分分布會不均勻,從而導致密文數據和隨機數據差異性較高,使得神經網絡能夠進行有效的特征學習。因此,文中在尋找 SIMON32/64 神經網絡差分區分器的合適輸入差分時,會對其漢明重量有所限制,控制隨機生成的神經網絡差分區分器的輸入差分具有低漢明重量的特點。

  文中采用第 3.2 節介紹的方法,使用加密算法生成 10⁷bit 訓練數據集,并以此針對采用上述模型構造的 9 輪 SIMON32/64 神經網絡差分區分器進行訓練,且使用訓練好的 9 輪 SIMON32/64 神經網絡差分區分器分別對具有不同輸入差分的 2000bit 測試數據集進行評估。在本次實驗中,設置神經網絡差分區分器的輸入差分漢明重量閾值為 4,引入注意力機制的殘差塊個數為 1。

  選取不同的輸入差分對神經網絡差分區分器的精度是有一定影響的,低漢明重量且高概率的輸入差分能夠使神經網絡模型學習到更多的特征,從而提高神經網絡差分區分器的精度。實驗結果表明,采用神經網絡模型尋找到 SIMON32/64 神經網絡差分區分器的合適輸入差分為 0x0000/0040,且與 KÖLBL 等人 [30] 基于 SAT/SMT 求解器搜索出來的高概率差分軌跡一致,間接驗證了該方法的正確性。另外,相比于傳統分析方法,采用神經網絡模型搜索合適輸入差分能夠大大降低數據復雜度和計算復雜度。因此,在設計和訓練神經網絡差分區分器的過程中,通過選取合適的輸入差分能夠促使神經網絡更加有效地捕捉到輸入數據中細微而關鍵的變化特征,從而優化神經網絡差分區分器的性能。

  4.4 改變輸入數據格式

  上述實驗采用的輸入數據為 m 個密文 Cᵢ₁、Cᵢ₂的實際值,即(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ),其中,i=0,1,…,m-1。此類輸入數據格式使得神經網絡差分區分器模型僅接收密文對作為輸入,模型在訓練過程中學習的是密文對之間的特征。文獻 [14] 指出,神經網絡差分區分器的區分效果主要依賴于密文對的差分分布,但也依賴于倒數第 2 輪的差分分布。同時,文獻 [16] 表明,相比基于差分分布表構造的差分區分器,神經網絡差分區分器利用了密文的偏值、密文對差分和中間狀態的差分之間的相關性。鑒于文獻 [14]、文獻 [16] 分析結果的啟示,為了更加直觀地研究包含額外的差分信息的輸入數據格式對神經網絡差分區分器的影響,文中設計對比實驗,利用 SIMON32/64 單輪加解密過程改變輸入數據中包含的密文信息量,為神經網絡提供更多的可學習密文分布特征。

  將神經網絡差分區分器的輸入數據格式取為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁),其中,t₀和 t₁可分別表示為特定公式。

  若將 m 個密文 Cᵢ₁、Cᵢ₂使用最后一輪子密鑰 k 解密至倒數第 2 輪密文 Cᵢ₁'、Cᵢ₂',且記 Cᵢ₁'=(Cᵢ₁ₗ',Cᵢ₁ᵣ'),Cᵢ₂'=(Cᵢ₂ₗ',Cᵢ₂ᵣ'),其中,i=0,1,…,m-1,由相關圖示可以看出有以下等式成立(公式內容略)。

  將相關公式左右兩邊分別取異或運算得到 Cᵢ₁ₗ'⊕Cᵢ₂ₗ'=Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁=Cᵢ₁ᵣ'⊕Cᵢ₂ᵣ',由此可以看到 Cᵢ₁ᵣ⊕Cᵢ₂ᵣ和 t₀⊕t₁中包含倒數第 2 輪的差分信息。基于此分析結果可知,本節所選取的輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁)中包含密文對信息以及倒數第 2 輪差分信息。

  4.5 區分器對比

  選擇合適輸入差分 Δ=0x0000/0040 作為神經網絡差分區分器的輸入差分,加密輪數 nᵣ=6,7,8,9,10,11,采用第 3.2 節介紹的方法及不同的輸入數據格式,使用加密算法分別生成 10⁷bit 訓練數據集、10⁶bit 驗證數據集和 10⁶bit 測試數據集,以訓練數據集和驗證數據集訓練神經網絡差分區分器,并在相應的測試數據集上對其進行評估,可得到 6~11 輪 SIMON32/64 神經網絡差分區分器的評估指標,I₀表示(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ),I₁表示(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁),i=0,1,…,m-1。

  4.6 實驗結果分析

  相比于隨機選取的輸入差分,合適輸入差分 0x0000/0040 能夠使 9 輪 SIMON32/64 神經網絡差分區分器的精度達到較高值,并且隨著 SIMON32/64 加密輪數的不斷增加,區分器的精度降低速率較為緩慢。另外可以看到,當輸入差分分別為 0x0040/0000 和 0x0000/0040 時,SIMON32/64 神經網絡差分區分器的精度有顯著差異,也就是說,當輸入差分的漢明重量為 1 時,其非零位分布在前 16 位或后 16 位會對神經網絡差分區分器的精度產生一定影響,其原因主要與 SIMON32/64 密碼算法的輪函數有關,因為在 SIMON32/64 密碼算法的輪函數中,非線性運算主要集中在前 16 位。如果輸入差分的前 16 位中存在非零位,經過非線性運算后,非零位在下一輪的離散度會更大,繼續擴散到下一輪輸入中,導致下一輪輸入差分的漢明重量繼續增加,會讓密文數據和隨機數據具有較高的相似性,使神經網絡難以進行有效的特征學習。

  根據表 6 的輸入數據格式縱向比較可以看出,在相同的實驗條件下,新的輸入數據格式 I₁較原輸入數據格式 I₀精度有所提升,其中 8 輪、9 輪和 11 輪的提升較為明顯。由此可以表明,相比于只包含密文對信息,輸入數據中包含密文對信息以及倒數第 2 輪差分信息時,具有更多差分特性的數據樣本能夠使神經網絡學習到更多特征,提高神經網絡模型的泛化能力,從而使 SIMON32/64 神經網絡差分區分器的精度得到進一步提高。另外,當輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)時,有效區分器最高為 9 輪,而當輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁)時,SIMON32/64 的有效區分器最高可達 11 輪,有效提高了 SIMON32/64 神經網絡差分區分器加密的最大輪數。

  4.7 實驗結果對比

  文中構造的 9 輪 SIMON32/64 神經網絡差分區分器與文獻 [12,22,25,28,32] 的分析結果對比如表 7 所示(表格內容略)。其中,輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)記為 I₀;輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁)記為 I₁,i=0,1,…,m-1;文獻 [28] 中的輸入數據格式記為 I₂;文獻 [32] 中的輸入數據格式記為 I₃,采用的輸入差分(0x0000/0008,0x0000/0004,0x0000/0002)記為 PD。

  文中采用第 3.1 節介紹的 Attention-ResNets 模型構造的 9 輪 SIMON32/64 神經網絡差分區分器具有較高的精度,證實文中提出的引入注意力機制的神經網絡模型改進方法是有效的,注意力機制能夠讓神經網絡從密文數據中學習到更多相關信息,進一步提高神經網絡差分區分器的精度;當改變神經網絡差分區分器輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,t₀⊕t₁)時,9 輪神經網絡差分區分器的精度得到進一步提高,間接證明神經網絡能夠從輸入數據中學習到更多的特征,區分效果更好。

  另外,文獻 [28] 的 9 輪 SIMON32/64 神經網絡差分區分器的精度較高,主要原因在于其采用多密文對(8 個密文對)生成輸入數據集,相比于文中采用的單密文對,會提供更多的特征信息,從而提高神經網絡差分區分器的性能。但同樣也會存在一些不足之處,由于引入了多密文對作為輸入,神經網絡需要學習更多的輸入特征,從而增加了模型的訓練成本和訓練時間,導致大量的內存消耗,還可能引起過擬合等風險。同時,文獻 [28] 中 10~11 輪 SIMON32/64 神經網絡差分區分器的精度分別為 0.6975 和 0.5609,由此可以表明,隨著加密輪數的增加,相比于文中分析結果,文獻 [28] 構造的神經網絡差分區分器的性能下降速率較快。

  5 改進模型的通用性

  在第 4 節的分析過程中,文中采用 Attention-ResNets 模型對 SIMON32/64 密碼算法進行差分分析,并進一步提出尋找合適輸入差分和改變輸入數據格式的方法,為神經網絡提供了更多的可學習特征,使得 SIMON32/64 神經網絡差分區分器在精度上取得了較為顯著的效果,也進一步從實驗角度證明文中提出的改進模型方法是有效的。為了探究文中提出的構建神經網絡差分區分器、尋找合適輸入差分以及改變輸入數據格式的改進方法的通用性,文中分別將其應用于 SIMECK 和 SPECK 兩類輕量級分組密碼算法。

  5.1 應用于 SIMECK 輕量級分組密碼算法

  文中采用第 3 節闡述的 Attention-ResNets 模型對 SIMECK 輕量級分組密碼算法進行安全性分析。在分析過程中,采用 4.3 節構建的神經網絡模型尋找 SIMECK32/64 神經網絡差分區分器的合適輸入差分,以此研究不同的輸入差分對神經網絡差分區分器精度的影響;采用第 4.4 節介紹的方法改變 SIMECK32/64 神經網絡差分區分器的輸入數據格式,以此研究輸入數據格式對神經網絡差分區分器精度的影響。

  5.1.1 SIMECK 密碼算法

  SIMECK 算法是由 YANG 等人 [33] 在 CHES2015 中提出的輕量級分組密碼,其設計思想結合了 SIMON 和 SPECK 分組密碼算法的優點,在硬件實現上更加高效。SIMECK 系列算法采用 Feistel 結構,其輪函數與 SIMON 算法類似。由于 SIMECK 系列算法的分組長度和密鑰長度會有所不同,它同樣也有 3 個版本,文中重點關注 SIMECK32/64,由 32 輪組成。設密碼算法的第 i 輪輸入為(Lᵢ₋₁,Rᵢ₋₁),輪密鑰為 kᵢ₋₁。

  5.1.2 尋找 SIMECK32/64 神經網絡差分區分器合適輸入差分

  本節采用第 3.2 節介紹的方法,使用加密算法生成 10⁷bit 訓練數據集,并以此針對采用神經網絡模型構造的 9 輪 SIMECK32/64 神經網絡差分區分器進行訓練。使用訓練好的 9 輪 SIMECK32/64 神經網絡差分區分器分別對具有不同輸入差分的 2000bit 測試數據集進行評估。在本次實驗中,設置神經網絡差分區分器的輸入差分漢明重量閾值為 4,引入注意力機制的殘差塊個數為 1。

  當選取不同的輸入差分時,SIMECK32/64 神經網絡差分區分器的精度有所不同,低漢明重量且高概率的輸入差分能夠使神經網絡差分區分器獲得更高的精度。實驗結果表明,采用神經網絡模型尋找到 SIMECK32/64 神經網絡差分區分器的合適輸入差分為 0x0000/0001。

  5.1.3 改變輸入數據格式

  上述實驗采用的輸入數據為 m 個密文 Cᵢ₁、Cᵢ₂的實際值,即(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ),其中,i=0,1,…,m-1。通過第 4.4 節的分析及實驗結果可知,神經網絡差分區分器的輸入數據中包含倒數第 2 輪的差分信息,能夠進一步提高神經網絡差分區分器的精度。基于此分析結果,本節將 SIMECK32/64 神經網絡差分區分器的輸入數據格式取為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,s₀⊕s₁),s₀和 s₁可分別表示為特定公式。

  5.1.4 區分器對比

  選擇合適輸入差分 Δ=0x0000/0001 作為神經網絡差分區分器的輸入差分,加密輪數 nᵣ=6,7,8,9,10,11,結合第 3.2 節介紹的方法及兩種不同的輸入數據格式 I₀和 I₁,分別使用 SIMECK32/64 加密算法生成 10⁷bit 訓練數據集、10⁶bit 驗證數據集和 10⁶bit 測試數據集,以此對神經網絡差分區分器進行訓練和評估,可得到 6~11 輪 SIMECK32/64 神經網絡差分區分器的評估指標。

  5.1.5 實驗結果分析

  在維持實驗條件一致性的前提下,采用新的輸入數據格式 I₁相較于原有格式 I₀顯著提升了模型的預測精度,特別值得注意的是在第 8 輪、第 9 輪以及第 10 輪的實驗過程中,神經網絡差分區分器精度的提升效果尤為突出且明顯。這一發現有力地證明,改變輸入數據中包含的信息量,能夠在一定程度上影響 SIMECK32/64 神經網絡差分區分器的精度。當 SIMECK32/64 神經網絡差分區分器的輸入數據格式取為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,s₀⊕s₁)時,能夠給神經網絡提供更多的密碼算法特征,從而提高神經網絡差分區分器的精度。另外,當輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)時,SIMECK32/64 的有效區分器最高為 10 輪;而當引入倒數第 2 輪差分信息后,SIMECK32/64 的有效區分器最高可達 11 輪,有效提高了 SIMECK32/64 神經網絡差分區分器加密的最大輪數。

  可以明顯察覺到一種趨勢,隨著 SIMECK32/64 密碼算法加密輪數的不斷增加,神經網絡差分區分器的精度會持續下降。其根本原因是,基于密碼算法的混淆和擴散原理,隨著 SIMECK32/64 加密輪數不斷增加,明文、密文和密鑰之間的統計規律不斷降低,從而導致密文數據和隨機數據之間相似性較高,使神經網絡無法進行有效的特征學習,進而導致神經網絡差分區分器的精度下降。

  5.1.6 實驗結果對比

  文中構造的 9 輪 SIMECK32/64 神經網絡差分區分器與文獻 [12,28,34,35] 的分析結果對比。輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)記為 I₀;輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,s₀⊕s₁)記為 I₁,i=0,1,…,m-1;文獻 [28] 中的輸入數據格式記為 I₂;文獻 [35] 中的輸入數據格式記為 I₄,采用的神經網絡模型記為 Inception-Nets。

  對于 9 輪 SIMECK32/64 輕量級分組密碼算法,文中采用第 3.1 節介紹的 Attention-ResNets 模型構造的神經網絡差分區分器具有較高的精度,證實文中提出的引入注意力機制的神經網絡模型改進方法是有效的;當改變神經網絡差分區分器輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,Cᵢ₁ᵣ⊕Cᵢ₂ᵣ,s₀⊕s₁)時,9 輪神經網絡差分區分器的精度得到進一步提高,區分能力更好。另外,文獻 [28] 的 9 輪 SIMECK32/64 神經網絡差分區分器的精度較高,其采用多密文對作為輸入,會讓神經網絡學習到更多有用的特征,在一定程度上增強區分效果,但相比于單密文對,多密文輸入數據會消耗更多內存,增加計算成本,導致訓練時間過長。同時,文獻 [28] 中 10~11 輪 SIMECK32/64 神經網絡差分區分器的精度分別為 0.7354 和 0.5646,這一實驗結果也可以表明,隨著加密輪數的增加,相比于文中的分析結果,文獻 [28] 構造的神經網絡差分區分器的性能衰減速度顯著。

  5.2 應用于 SPECK 輕量級分組密碼算法

  文中采用第 3 節介紹的 Attention-ResNets 模型對 SPECK 輕量級分組密碼算法進行安全性分析。在分析過程中,采用 4.3 節構建的神經網絡模型尋找 SPECK32/64 神經網絡差分區分器的合適輸入差分,以此研究不同的輸入差分對神經網絡差分區分器精度的影響;文中采用 4.4 節介紹的方法改變 SPECK32/64 神經網絡差分區分器的輸入數據格式,以此研究輸入數據格式對神經網絡差分區分器精度的影響。

  5.2.1 SPECK 密碼算法

  與 SIMON 系列算法類似,SPECK 系列算法 [27] 同樣是由 NSA 于 2013 年提出的一類 ARX 型輕量級分組密碼。SPECK 系列算法基于廣義的 Feistel 結構,由比特移位運算、比特異或運算和模加運算經過多輪迭代組成,有多種不同的版本,文中重點關注 SPECK32/64,由 22 輪組成。設密碼算法的第 i 輪輸入為(Lᵢ₋₁,Rᵢ₋₁),輪密鑰為 kᵢ₋₁。

  5.2.2 尋找 SPECK32/64 神經網絡差分區分器的合適輸入差分

  采用第 3.2 節介紹的方法,使用加密算法生成 10⁷bit 訓練數據集,并以此針對介紹的神經網絡模型構造的 7 輪 SPECK32/64 神經網絡差分區分器進行訓練,且使用成功訓練的 7 輪 SPECK32/64 神經網絡差分區分器分別對具有不同輸入差分的 2000bit 測試數據集進行評估。在本次實驗中,設置神經網絡差分區分器的輸入差分漢明重量閾值為 3,引入注意力機制的殘差塊個數為 1。

  輸入差分的取值影響 SPECK32/64 神經網絡差分區分器的精度,低漢明重量且高概率的輸入差分能夠使神經網絡模型進行有效的特征學習,從而提高神經網絡差分區分器的精度。實驗結果表明,采用神經網絡模型尋找到 SPECK32/64 神經網絡差分區分器的合適輸入差分為 0x0040/0000。

  5.2.3 改變輸入數據格式

  上述實驗采用的輸入數據為 m 個密文 Cᵢ₁、Cᵢ₂的實際值,即(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ),其中,i=0,1,…,m-1。根據 4.4 節的分析及實驗結果,為進一步提高神經網絡差分區分器的精度,本節將 SPECK32/64 神經網絡差分區分器的輸入數據格式取為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,l₀⊕l₁,r₀⊕r₁),l₀、l₁、r₀和 r₁可分別表示為特定公式(公式內容略)。

  5.2.4 區分器對比

  選擇合適輸入差分 Δ=0x0040/0000 作為神經網絡差分區分器的輸入差分,加密輪數 nᵣ=5,6,7,8。采用第 3.2 節介紹的方法及兩種不同的輸入數據格式 I₀、I₁,使用加密算法分別生成 10⁷bit 訓練數據集、10⁶bit 驗證數據集和 10⁶bit 測試數據集,以訓練數據集和驗證數據集訓練神經網絡差分區分器,并在測試數據集上對其進行評估,可得到 5~8 輪 SPECK32/64 神經網絡差分區分器的評估指標。

  5.2.5 實驗結果分析

  在控制實驗條件相同的前提下,相比于只包含密文對信息,輸入數據中包含密文對信息以及倒數第 2 輪差分信息會顯著提高 SPECK32/64 神經網絡差分區分器的精度;當輸入數據格式取為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,l₀⊕l₁,r₀⊕r₁)時,輸入數據中包含更多的信息量會讓神經網絡學習到更多特征,從而使 SPECK32/64 神經網絡差分區分器的區分能力更強。另外,當輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)時,有效區分器最高為 7 輪;而當輸入數據格式中增加了倒數第 2 輪的差分信息后,SPECK32/64 的有效區分器最高可達 8 輪,有效提高了 SPECK32/64 神經網絡差分區分器加密的最大輪數。

  對于 5~8 輪 SPECK32/64 神經網絡差分區分器,其精度均顯著高于 0.5,具有較好的區分效果,證明神經網絡可以成功提取密文數據和隨機數據特征并進行正確分類。但是,對于更多輪數的 SPECK32/64 神經網絡差分區分器,其精度近似為 0.5,意味著密文數據與隨機數據相似度較高,神經網絡無法進行有效的特征學習,已經不具備分類能力。

  5.2.6 實驗結果對比

  文中構造的 7 輪 SPECK32/64 神經網絡差分區分器與文獻 [12,23,26] 的分析結果對比。其中,僅包含密文對信息的輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ)記為 I₀;同時包含密文對信息及倒數第 2 輪差分信息的輸入數據格式(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,l₀⊕l₁,r₀⊕r₁)記為 I₁,i=0,1,…,m-1;文獻 [23] 中的輸入數據格式記為 I₅;文獻 [26] 中的輸入數據格式記為I₆,采用的神經網絡模型記為 Nets。

  對于 7 輪 SPECK32/64 輕量級分組密碼算法,文中采用 3.1 節介紹的 Attention-ResNets 模型構造的神經網絡差分區分器具有較高的精度,證實文中提出的引入注意力機制的神經網絡模型改進方法是有效的;當改變輸入數據格式為(Cᵢ₁ₗ,Cᵢ₁ᵣ,Cᵢ₂ₗ,Cᵢ₂ᵣ,l₀⊕l₁,r₀⊕r₁)時,7 輪神經網絡差分區分器的精度得到進一步提高,區分效果更好。另外,文獻 [23,26] 中均采用多密文對作為輸入數據,在一定范圍內增加了密文信息,但是其精度并不如文中的分析結果,也從側面反映了多密文對的輸入數據格式并不一定意味著神經網絡差分區分器的性能會是最優的,可能也會與具體的密碼算法有關,也可能由于多密文對會過多地消耗計算資源,導致訓練時間過長,容易使神經網絡差分區分器在訓練過程中產生過擬合現象。因此,在實際應用中,應該根據具體的密碼算法和成本需求選擇合適的輸入數據格式,以提高神經網絡差分區分器的精度。

  6 密鑰恢復攻擊

  以 SIMON 密碼算法為例,文中進一步探討輕量級分組密碼的密鑰恢復攻擊過程。在第 4 節研究的基礎上,進一步對 11 輪 SIMON32/64 進行部分密鑰恢復攻擊,并探究不同明密文對數量對密鑰恢復攻擊的成功率的影響。

  SIMON 密碼算法加密過程的第 1 輪子密鑰異或運算發生在首次進行非線性運算之后。因此,文中可以在沒有額外成本的情況下將所有神經網絡差分區分器擴展一輪。基于此分析,文中基于 9 輪 SIMON32/64 神經網絡差分區分器對 11 輪 SIMON32/64 最后一輪子密鑰進行攻擊,并計算攻擊成功率。

  6.1 基本攻擊思想

  11 輪 SIMON32/64 子密鑰恢復攻擊的詳細過程。

  算法 1 候選子密鑰排序

  輸入:輸入差分 Δ=0x0000/0040,m 個明文對(Pᵢ₁,Pᵢ₂)(i=0,1,…,m-1),9 輪神經網絡差分區分器 model₉

  輸出:候選子密鑰排序 key_rank

  ①random Pi1, i=0,1,…,m-1

  ②Pi2=Pi1⊕Δ, i=0,1,…,m-1 ∥選擇具有固定輸入差分的明文對

  ③Pi1←decrypt_one_round (Pi1,0)

  ④Pi2←decrypt_one_round (Pi2,0)

  ⑤random key

  ⑥ks←expand_key (key,11)

  ⑦key_right←ks [10] ∥記錄正確子密鑰

  ⑧Ci1←encrypt (Pi1,ks)

  ⑨Ci2←encrypt (Pi2,ks)

  ⑩FOR k∈(0,2¹⁶-1) DO ∥嘗試所有可能候選子密鑰

  Ci1←decrypt_one_round (Ci1,k)

  Ci2←decrypt_one_round (Ci2,k)

  t₀=((Ci1r<<<1) & (Ci1r<<<8)) ⊕ (Ci1r<<<2) ⊕ Ci1l

  t₁=((Ci2r<<<1) & (Ci2r<<<8)) ⊕ (Ci2r<<<2) ⊕ Ci2l

  Zᵢᵏ←model₉(Ci1l,Ci1r,Ci2l,Ci2r,Ci1r⊕Ci2r,t₀⊕t₁)

  vk←grade (Zᵢᵏ) ∥參見式 (18)

  ⑪ENDFOR

  ⑫RETURN key_rank←descending_sort (vk) ∥降序排列

  在算法中,對于每一個候選子密鑰 k,將分數 Zᵢᵏ合并成一個分數 vₖ,公式為特定表達式。

  在對候選子密鑰排序時,將分數 vₖ最高的子密鑰記為 key_guess,若出現 key_guess=key_right,則視為攻擊成功。

  6.2 11 輪 SIMON32/64 子密鑰恢復攻擊

  文中采用算法 1 對 11 輪 SIMON32/64 最后一輪候選子密鑰進行 100 次密鑰排序,并以此計算 100 次子密鑰恢復攻擊成功率。為了探究不同明密文對數量對密鑰恢復攻擊成功率的影響,文中嘗試改變密鑰恢復攻擊時輸入明密文對的數量,依次比較在不同明密文對數量下,11 輪 SIMON32/64 最后一輪子密鑰恢復攻擊的成功率。因此,在本次實驗中設置輸入明密文對數量分別為 n=2⁶、2⁷、2⁸、2⁹,采用第 4 節成功訓練的 9 輪神經網絡差分區分器對 11 輪 SIMON32/64 最后一輪子密鑰進行 100 次攻擊,并計算 100 次攻擊成功率。

  當選擇明密文對數量不同時,11 輪 SIMON32/64 子密鑰恢復攻擊成功率是有顯著差異的,較多的選擇明密文對數量讓神經網絡接觸到更多數據樣本,意味著能夠使神經網絡獲得更多有效的可學習特征,從而捕捉到不同候選子密鑰之間的細微差異,以提高密鑰恢復攻擊成功率。同時,在有限的樣本數量下,神經網絡差分區分器的性能可能會受到隨機性的影響,導致攻擊成功率不穩定,然而,當選擇明密文對數量較多時,會對隨機性進行平均化,進而使攻擊性能更加穩定和可靠。

  6.3 實驗結果對比

  文中針對 11 輪 SIMON32/64 進行子密鑰恢復攻擊與文獻 [29,32,36] 的攻擊結果。

  文中進行的 11 輪 SIMON32/64 子密鑰恢復攻擊結果是十分可觀的,其攻擊成功率最高可達 100%,數據復雜度為 2⁹,計算復雜度為 2²⁵,時間復雜度小于 2¹⁷・¹。相比于傳統密碼分析方法,基于神經網絡的密碼分析方法具有較低的攻擊復雜度,在密鑰恢復攻擊中具有更大的優勢,其原因主要在于神經網絡差分區分器在給定輸入差分的情況下,能夠從密文對中學習到更多有效的特征,進一步提高密鑰恢復攻擊成功率。

  7 結束語

  文中從神經網絡、輸入差分和輸入數據格式 3 個角度出發改進神經網絡差分區分器,并將其應用于 SIMON、SIMECK 和 SPECK 3 類輕量級分組密碼。首先,文中提出采用引入注意力機制的深度殘差網絡構造神經網絡差分區分器,這一優化方法具有先進性,并以輕量級分組密碼為例,進一步驗證該優化方法的可行性和有效性;其次,文中利用神經網絡的快速訓練尋找神經網絡差分區分器的合適輸入差分,進一步提高區分器精度;最后,利用輕量級分組密碼的單輪加解密過程改變輸入數據格式中包含的信息量,為神經網絡提供具有更多差分特性的數據樣本。此外,文中進一步對 11 輪 SIMON32/64 進行部分密鑰恢復攻擊,攻擊成功率最高可達 100%,并且大大降低了密碼分析攻擊復雜度,體現了深度學習應用于密碼安全性分析這一研究方向的潛在優勢。

栗琳軻;陳杰;劉君,西安電子科技大學通信工程學院;河南省網絡密碼技術重點實驗室;陜西師范大學計算機科學學院,202501