Aes

使用相同的分組密碼進行兩次加密會產生安全漏洞嗎?

  • February 23, 2016

如果我使用密碼的輸出(例如 AES 等分組密碼)並使用相同的算法再次對其進行加密,我讀到這會在系統的整體安全性中引入弱點。

是這樣嗎?

好吧,我不知道你在哪裡讀到的。然而,根據他們的意思,這要麼是胡說八道,要麼是一個適當的警示故事。

眾所周知,再次加密不會使密碼變弱,只要您選擇第二次加密的密鑰與您第一次使用的密鑰無關。這背後的邏輯很簡單。假設攻擊者知道除了密鑰之外的所有密碼。如果他有一些密文要攻擊,沒有什麼能阻止他選擇自己的“第二次密鑰”,然後對密文進行加密,形成雙重加密的密文。如果雙重加密本質上較弱,那麼他可以攻擊它(因此單一加密同樣弱)。

另一方面,如果您在第一次和第二次使用時使用的兩個鍵相同,則此邏輯不適用。而且,事實上,有些密碼使用相同的密鑰進行兩次加密是一個壞主意。例如,如果您使用相同的密鑰再次執行密文,某些密碼將生成與明文完全相同的“雙重加密密文”;這顯然比“單獨加密的密文”弱

我假設你的意思是你已經加密了一條消息 $ M_1 $ (資訊字元串)帶有 AES 和密鑰 $ K $ ,收到一個輸出 $ C_1 $ ,現在要插入輸出 $ C_1 $ 通過 AES 返回(作為新的 $ M_2 $ ) 使用相同的密鑰 $ K $ 產生另一個輸出 $ C_2 $ . 這稱為超級加密。

由於您認為 AES 一開始是安全的,因此可以合理地假設它不會引入計算複雜性安全漏洞。重複使用相同的密鑰會增加暴力破解超級密文所需的計算複雜性,但不會增加其安全複雜性(這是通過增加密鑰來完成的)。如果您假設所有公共塊密碼都具有反函式,其中給定密文和可能的消息,您可以獲得密鑰(為什麼在消息機率較低時暴力破解密鑰,對吧?),並且您必須假設這一點,那麼您的超級加密過程增加了安全性,但僅在尚未創建超級反函式的情況下。使用不同的鍵可以解決這個問題。

從資訊論的角度看香農的《保密系統的通信理論》(PDF)。如果您的消息比您使用的密鑰短,則它具有“完美保密性”,並且超級加密沒有任何好處。如果您的消息比密鑰長但比唯一性距離短(密鑰字元數/消息中的冗餘 - 英語使用 84%),那麼在 256 位密鑰的情況下,32 個字元,您將受益於僅前 38.09 個字元的“理想保密”。由於 39 個字元落在 2 個塊內,因此僅對前兩個塊進行暴力攻擊就足以對您的密文進行消息暴力破解(即使是超級加密的)。增加密鑰大小,使用 2 個獨立密鑰,對於 64 個字元的密鑰,將唯一性距離移動到 76.19 個字元,需要 4 個塊來進行消息暴力破解。一個更大的計算複雜性問題,但在資訊論環境中無關緊要。請注意,無論密文或超級密文的長度如何,此規則都適用。在唯一性距離之外,任何密碼都沒有資訊論安全性可言——它是“偽安全性”。

與公眾的看法相反,獲得資訊理論上的安全性並非不可能,實際上很容易,只需停止在盒子裡思考。沒有盒子,你的問題可以幫助我們突破可能的界限。

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