Block-Cipher

通過在一半的鍵空間上徹底搜尋找到正確鍵的機會

  • July 28, 2019

對一半關鍵空間的詳盡搜尋需要 $ 2^{n-1} $ 工作並在 75% 的時間內提供正確的答案。如果攻擊者找到了密鑰,他就知道了答案。如果他沒有找到鑰匙,他仍然有 50% 的機會通過隨機猜測來猜對。因此,總的來說,他得到正確答案的機會是 $ 0.5 + 0.5*0.5 = 0.75 $ .).

在 Bruce Schneier 的 Cryptography Engineering 書籍第 3.4 節的這句話中,有人說,通過將密鑰空間分成兩半,從這裡窮舉搜尋並隨機選擇一個密鑰,有 75% 的機率可以找到一個特定的密鑰。成立。如何 $ 0.5+0.5*0.5 $ 在這種情況下是否已經導出?從密鑰空間中隨機猜到一個密鑰的機率在 50% 中是多少?難道不應該 $ 1/2^n $ 如果密鑰大小是 $ n $ .

Schneier 正在談論將分組密碼與理想密碼區分開來 - 或者換句話說,關於安全性的正式定義。想像一個遊戲,攻擊者得到一個用分組密碼或理想密碼(機率相等)加密的密文,並且必須猜測哪個密碼加密了消息。

假設這個攻擊者嘗試了 50% 的分組密碼密鑰空間,並且如果任何密鑰正確地解密了消息,那麼它猜測加密消息的密碼就是分組密碼。但是如果沒有密鑰正確地解密消息,那麼攻擊者就會猜測使用了理想的密碼。

使用的密碼實際上是理想密碼的可能性為 50%。在這種情況下,攻擊者總是會正確猜測使用了理想密碼——因此它有 50% 的機會沿著機率樹的那個分支正確。

密碼實際上是分組密碼的可能性也有 50%,在這種情況下,有兩種可能的結果 - 要麼密鑰是攻擊者嘗試過的密鑰(在這種情況下,它會正確猜測使用了分組密碼) ),或者密鑰不在攻擊者嘗試的密鑰中(在這種情況下,攻擊者會錯誤地猜測使用了理想密碼)。由於攻擊者嘗試了一半的密鑰空間,這意味著攻擊者有 50% 的機會正確猜測(假設使用了分組密碼)。所以機率樹的這個分支的總貢獻是 50%(使用分組密碼的機率)* 50%(密鑰在測試中的機率)= 25%。

所以攻擊者做出正確猜測的總機率是 50% + (50%*50%) = 75%。

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