Aes
為什麼 AES(和其他密碼)中的排列不是隨機的或依賴於密鑰的?
如果 AES(或其他密碼)中的排列是隨機生成的或依賴於密鑰,那麼它對差分攻擊的抵抗力會不會更強?
如果是這樣,那麼我們可能需要更少的輪次來獲得相同的安全級別嗎?
您已將問題澄清為詢問是否將 ShiftRows 替換為隨機字節排列會增強 AES 對差分攻擊的攻擊。它不會。
ShiftRows 和 MixColumns 被精心挑選以協同工作,這樣每個字節都會在兩輪內影響狀態中的每個其他字節。MixColumns 確保每四個字節的列在該步驟之前和之後至少有五個差分活動字節(即如果將 MixColumns 之前列中的差分活動字節添加到 MixColumns 之後列中的活動字節,則數量至少為5)。ShiftRows 確保該步驟之後的每一列都包含該步驟之前每一列的一個字節。
這兩個步驟一起操作,為 4 輪中差分活動 s-box 的數量設置了一個較高的下限:AES 創建者證明,至少有 25 個 s-box 在 4 輪中處於活動狀態,從而最小化任何差分特徵的機率/踪跡。
有替代 ShiftRows 的替代品可以做同樣的事情(參見例如交換列和行的密碼 SQUARE)。但是隨機字節排列可能無法確保在像 ShiftRows 這樣少的輪次中具有如此高的最小活動 s-box 數。
我假設您的意思是 S-box。答案是不!隨機選擇的 S 盒不是差分和線性密碼分析的好選擇。當 Biham 和 Shamir 提出對 DES 的差分攻擊時,他們展示的一件事是,如果您將 DES 中的 S-box 替換為隨機選擇的 S-box,那麼差分攻擊將變得更具破壞性。您必須規劃您的 S-box,使其能夠抵禦這些攻擊。