AES:關於雙重密碼和安全性的問題
我最近了解了雙密碼,特別是 AES 的雙密碼。好像有很多。我的大部分資訊來自:(1) Representations and Rijndael Descriptions。
在本文中,作者(其中包括 AES 的設計者之一)討論了 $ 256! $ 其中等價的密碼 $ 2^{62} $ 有用(4.1 和 4.2)。
- 如果雙重密碼是等價的,我們可以假設它們都一樣安全嗎?
另一篇論文 (2) In How Many ways Can You Write Rijndael討論了不同類型的雙密碼,例如對數雙密碼和平方雙密碼。
- 這篇論文指的是瑣碎的雙重密碼,有人可以舉一個使用非常基本的密碼的簡單例子嗎?我無法理解論文中的解釋。
秒。論文 (2) 的 4 中提到了更改不可約多項式(有 30 個,每個具有 8 個平方對偶密碼,總共有 240 個對偶密碼)。
- 如果我們對每一輪AES使用不同的不可約多項式來創建一種多對偶密碼(我自己的術語),那會不會使密碼分析變得更加困難,從而對 DCA 和 LCA 更加強大?如果是這樣,我們是否可以在保持相同安全級別的同時使用更少的輪次?
- 並且,進一步到上面的3.,如果每一輪的不可約多項式是隨機選擇的,並且每次完全加密都改變了怎麼辦?同樣,這是否允許在保持相同級別(或至少足夠)安全性的同時減少輪次?
我知道所謂的多對偶密碼可能存在巨大的實現問題,並且可能會大大降低密碼速度,但我純粹是出於安全性考慮,即難以分析。
- 雙密碼是否同樣安全?是的。
定義是:
兩個密碼 $ E $ 和 $ E’ $ 如果它們是同構的,則稱為對**偶密碼,**即,如果存在可逆變換 $ f(\cdot) $ , $ g(\cdot) $ , $ h(\cdot) $ 這樣
$$ \forall P, K \quad f(E_K(P)) = E’_{g(K)}(h(P)). $$
注意 $ f $ , $ g $ , 和 $ h $ 獨立於密鑰和明文。如果你有一個隨機算法 $ \mathcal A(F) $ 可以區分的 $ P \mapsto E_K(P) $ 從 $ P \mapsto U $ 對於均勻隨機 $ K $ 和 $ U $ 有一定的機率 $ p $ , 那麼算法 $ \mathcal A’(F) = \mathcal A(P \mapsto f^{-1}(F(P))) $ 區分 $ P \mapsto f(E_K(P)) $ 從 $ P \mapsto U $ 對於均勻隨機 $ K $ 和 $ U $ 以相同的機率 $ p $ 和可忽略不計的額外成本,以評估 $ f^{-1} $ . 2. 密碼 $ E = \operatorname{AES} $ 和 $ E’ = \operatorname{AES} $ 是微不足道的自對偶 $ f(C) = C $ , $ g(K) = K $ , 和 $ h(P) = P $ 對所有人 $ C, K, P $ . 證明留給讀者作為練習。(提示:這是微不足道的。) 3. 使用不同的表示 $ \operatorname{GF}(2^8) $ 在每一輪中都不會實質性地改變密碼。代數結構將保持不變,但在每一輪中你會有不同的 S-box。
這可能只會使合法使用者的加密更加昂貴,而不會對攻擊者施加任何真正的障礙——事實上,它可能會使實施更容易受到定時側通道攻擊的影響,從而使攻擊者的工作更容易。 4. 現在你需要定義一個不可約 8 次多項式的偽隨機生成器 $ \mathbb Z/2\mathbb Z $ ,並以某種方式使其獨立於密碼中使用相同密鑰的所有其他內容。如果你幸運的話,這可能會使攻擊變得更加困難,而且對於在軟體中已經非常緩慢的密碼來說代價高昂——甚至可能在硬體中變得更加昂貴。
但是,作為一個有抱負的密碼學家,你的工作不是四處亂竄,如果幸運的話,可能會增加安全性。你的工作是證明這些變化比 AES 採用的更簡單的方法更徹底地挫敗了所有現有的密碼分析技術。
考慮從更小、更簡單的 AES 調整開始。除了大量文獻外,作者還有一整本書關於 Rijndael 的設計和實現。你可以打破或證明對現有密碼分析技術的抵抗力,對其中記錄的設計空間進行哪些小的調整?
正如 poncho 在評論中指出的那樣,使 AES 更強大的最簡單方法是增加更多輪次。 如果你的調整擴大了安全邊際,它對安全邊際的擴大是否比僅僅增加更多輪次更大?它比僅僅增加更多輪次更便宜嗎?