SPN的差異分析
參考:HM Heys 的教程
如果我們發現一個差分軌跡對於輪 SPN 結構的 n-1 輪具有不可忽略的機率,那麼我們可以恢復最後一輪子密鑰的一些位。
如果我們只管理一個差分軌跡,該軌跡僅在 R < n-1 的幾輪 R 中保持不可忽略的機率,會發生什麼?在這種情況下,我們如何進行密鑰恢復攻擊?
我真的很感激一些思考這個問題的提示。
自習
我不同意@kodlu 的回答。在經典的差分密碼分析中,我們不為最後幾輪支付“機率”,而是為所涉及的密鑰位的列舉支付費用。換句話說,解密不是統計的。
這就是使用更小的原因 $ R $ difficuly:關鍵猜測。密碼具有良好的擴散性,並且隨著每一輪額外的最終部分解密,需要猜測的密鑰位數以驗證輸出差異(現在,統計上,每個密鑰猜測)增長非常快。
此外,輸出差異的形狀也很重要:如果它具有高權重(在隨後的輪次中啟動許多 S-box),則需要更多的密鑰位猜測。
注意 $ R $ 並且要猜測的關鍵位的數量需要權衡:較小 $ R $ 增加了差分機率,但也增加了要猜測的密鑰位數。通常,通過從 $ R=n-1 $ 至 $ R=n-2 $ 當部分解密 2 輪而不是 1 輪時,不會超過密鑰猜測複雜度的增加。
原因 $ R=n-1 $ (或者 $ R=1, $ 應用於解密映射)使用如下。所有單獨的微分近似以及在 $ R $ 回合產生統計關係。
但是,現在可以使用密文輸出,在最後一輪反向執行 Sbox,並以輪密鑰 XOR 輸入的每個猜測為條件 $ n^{th} $ round Sbox 對來自 round 的目標 Sbox 的輸出具有非隨機且準確的猜測 $ n-1. $ 這意味著可以執行可靠的統計實驗,並且可以可靠地計算所選輸入輸出差異的經驗微分機率。
在這個階段,給定足夠多的 P/C 對,導致最大經驗機率的關鍵猜測被宣佈為最可能的關鍵猜測。
有關更具體的詳細資訊,請參閱我對以下問題的回答。
**編輯:**感謝@fractalice 抓住了我回答中草率的最後一部分。確實,重要的是在上一輪中遍歷“活動” Sbox 的關鍵猜測的計算複雜性。所以微分機率 $ \epsilon $ 的 $ n-1 $ 差分特性意味著您需要粗略地使用 $ c/\epsilon $ P/C 對的特徵在經驗上占主導地位,如果有 $ k $ 上一輪中的活躍 Sbox,您需要嘗試 $ 2^{4k} $ (因為 Sbox 是 4 位寬)猜測的鍵,同時試圖確定哪些猜測的鍵最有可能。