塊大小如何影響安全性?
我最近閱讀了有關塊密碼和流密碼如何工作的資訊,雖然我認為我終於把一切都做好了,但我仍然想知道增加塊大小如何提高安全性。
分組密碼通常用於操作模式。操作模式的安全性取決於兩件事:底層分組密碼的安全性,以及當您將分組密碼替換為“理想”排列時模式本身的安全性。
假設您正在使用具有塊大小的塊密碼 $ n $ 位,因此使用 AES-256, $ n = 128 $ (256 是指密鑰大小)。一個好的分組密碼應該是一個偽隨機排列,這意味著當你給它一個均勻分佈的密鑰時,應該很難將它與理想排列區分開來。理想排列是對所有排列的均勻隨機生成的排列 $ n $ 位到 $ n $ 位,基本上是一個數學對象。
確定給定的分組密碼是否安全意味著對其進行密碼分析以確保沒有明顯的攻擊。此類攻擊利用分組密碼的結構,例如,這意味著查看 AES-256 中的 S-box 並了解它們如何相互作用,並執行差分、線性和其他類型的密碼分析。這些技術都沒有明確使用塊大小,因此具有較小的塊大小並不意味著您將能夠更輕鬆地將塊密碼與理想排列區分開來。因此,當涉及到塊密碼安全性時,塊大小並不重要。
相反,模式安全性很大程度上取決於塊大小。我之前提到過,當分組密碼被替換為理想排列時,您還需要查看模式安全性。完成此操作後,您可以從理論上分析這些模式,甚至可以明確計算其安全性在您使用時如何降低。舉個例子,GCM 的安全降級大致為 $ \sigma^2/2^n $ ,它表示對手的成功機率,其中 $ \sigma $ 排列呼叫的數量。這意味著您使用 GCM 處理的數據越多,模式的暴露程度就越高。發生這種情況的原因是因為 GCM 的安全性依賴於對對手“隱藏”的理想排列,並且當您使用 GCM 時,您會越來越多地暴露隱藏的排列。
所以把所有東西放在一起,即使你知道你的分組密碼 $ n $ 位與理想的排列沒有區別 $ n $ 位,當您在模式下使用分組密碼時,您的安全性仍然會降低。因此,如果您可以選擇使用具有小塊大小的分組密碼,或者使用具有大塊大小的分組密碼,那麼最好使用具有更大塊大小的分組密碼,因為您將能夠在模式下使用它更長的時間(假設所有其他條件相同,這意味著密碼對於兩種塊大小都是安全的)。