您可以使用 256 位密鑰加密 256 位密碼,使其無法被暴力破解嗎?
假設我們有一個任意但可被字典攻擊的密碼,小於 256 位。(假設密碼是“1234Password”)。
我們使用 AES 使用安全隨機的 256 位密鑰加密此密碼。
所以我們有
encrypted_password = aes(password, key)
.密鑰僅用於儲存此密碼,不用於其他任何地方。
假設某人擁有 encrypted_password 和無限的處理能力,他們是否能夠暴力破解密碼?當然,他們可以遍歷所有可能的密鑰,其中一個會輸出 1234Password,但是是否會有大量其他人類可讀的密碼,因此攻擊者不會有有用的輸出?或者此設置是否會受到限制,因此對查找密碼沒有影響。
為了清楚起見,讓我重新措辭。
- 我們生活在一個處理能力無限且暴力破解所有可能性的宇宙中。
- 我們有一個密碼 p,小於 256 位,不是隨機的。(非常有限的熵)
- 它是用 256 位的隨機密鑰 k 加密的。此密鑰對於此案例是唯一的,不會加密其他任何內容。
- 加密密碼 ep = aes(p, k)。
- 如果攻擊者獲得了 ep,他們能否確定 p 是什麼?或者不同的密鑰會產生太多的結果,這些結果也是非常有限的熵,因此也可能是密碼。
您所描述的是one-time-pad。如果密碼是使用 256 位密鑰加密的,並且攻擊者獲得了生成的密文,那麼他將生成所有 $ 2^{256} $ 可能的明文(包括正確的明文),但無法區分哪個是正確的。
然而,實際上沒有人使用 OTP,因為密鑰必須是真正隨機的並且與消息本身一樣長。AES 不是完全安全但足夠安全。如果您的攻擊者能夠暴力破解所有 $ 2^{256} $ 可能性然後他將能夠自信地聲稱您的明文是什麼。
幸運的是,對於防御者來說,強制使用 256 位密鑰是不切實際的。
–edit–
為了說明為什麼攻擊者可以自信地聲稱原始明文是所有可能的明文,最容易通過一個例子來說明。
如果您有給定加擾的替換密碼。
abcdefghijklmnopqrstuvwxyz xyzabcdefghijklmnopqrstuvw
然後你加密一條消息說’立即逃跑。我們被發現'
flee at once. we are discovered cibb xq lkzb. tb xob afpzlsboba
xob可能是are、ate、sue、car、sub、cat等……但是如果我們使用頻率分析,我們可以看到字母b出現的次數最多,所以這可能是明文中的和e排除了car ,子,貓。xob的明文更可能是ate、are或sue但我們不確定是哪一個。如果您繼續進行頻率分析,您將排除越來越多的純文字可能性,直到只剩下幾個或只剩下 1 個。