Encryption
對 Rijndael 的主要擴展規模存有疑問
我經常聽到/讀到 AES 密鑰大小 256 和 192 會弱於 128 或不會像預期的大小增加那樣強,但我從未見過證明。如何證明 Rijndael 密鑰大小的強度?
如果我理解正確,密鑰大小與塊大小不同的主要影響是密鑰擴展。迭代算法沿列移動,但鍵大小決定了列數。
addRoundKey()
稍後,由於塊大小,通過獲取適合列數的集合來使用此擴展。我一直試圖理解,假設這個問題是正確的,這將來自哪裡。
AES-128 採用 128 位密鑰,使用加密弱功能從中生成 11 個 128 位子密鑰,並在 10 個內部循環中使用它們。可以說,完整密鑰被重複使用了 10 次。
AES-192 採用 192 位密鑰,從中生成 13 個 128 位子密鑰(或等效地,9 個 192 位子密鑰),並在 12 輪中使用它們。完整密鑰被重複使用 8 次。
AES-256 採用 256 位密鑰,生成 15 個 128 位子密鑰(或 8 個 256 位子密鑰)並在 14 輪中使用它們。完整密鑰被重複使用 7 次。
因此,AES-128 更密集地使用其密鑰,而 AES-192 和 AES-256 的使用頻率更低。然而,只有非常特定的密碼分析攻擊可以利用此屬性。例如,相關密鑰攻擊可以破壞整個 AES-256,但不能破壞整個 AES-128。我們所說的“中斷”是指可以從某些特定密鑰對上的“相似”明文生成“相似”密文。然而,相關的密鑰在實踐中很少見到,所以這個屬性與 AES 的實際安全性關係不大。
總而言之,AES-256 僅在非常特定的設置中被認為比 AES-128 弱,並且這種設置在實踐中不太可能發生。