Encryption

更改一輪內的步驟順序是否會影響 AES 的安全性?

  • December 12, 2019

我試圖了解 AES(高級加密標準)的內部結構

一輪內的標準步驟順序:

  1. 替代字節
  2. 換行
  3. 混合列
  4. 添加圓鍵

替換字節、移位行和混合列滿足安全密碼所需的兩個最重要的屬性,即混淆和擴散

Substitute Bytes``Confusion即,密文的每個二進制數字(位)都應依賴於密鑰的幾個部分。

Shift Rows連同Mix Column提供,Diffusion即如果我們更改明文的一位,那麼(統計上)密文中的一半應該更改

Step 1更改and的順序Step 2不會有任何影響。但是我們可以在多大程度上改變其他步驟的順序呢?它是否會削弱 的安全性AES,如果是,如何?

簡短的回答

改變操作順序不會削弱安全性 $ \mathop{AES} $ (也不會增加它)。

長答案

備註: WhileShiftRowsSubBytes是可交換的 ( $ f\ g : A \rightarrow A,\ f \circ g = g \circ f $ )。它們不是可交換的MixColumns。因此,更改操作順序不會產生相同的結果。但這無關緊要,因為我們是從安全的角度來看的。

輪函式內部的操作順序無關緊要。這可以通過觀察字節依賴性在輪函式的 2 次應用中的傳播來證明。

在此處輸入圖像描述

在這個分析中,我忽略了關鍵添加,因為這個操作可以放在所有操作之間的任何地方,只要進行一些調整。因此,我們可以看到差異的擴散與原始規範中的擴散相同。這個結果的主要原因是由於 Rijndael 中的強對齊

他們的實現者在The Design of Rijndael的第 3 章和第 5 章中進一步解釋了這一點。

引用自:https://crypto.stackexchange.com/questions/37328