Encryption

密碼預散列多少可以提高針對暴力攻擊的安全性?

  • July 6, 2015

我想知道用作對稱密鑰算法密鑰的密碼散列多少有助於防止對加密文本的暴力攻擊。

假設我想使用 AES-256 使用密鑰 B 加密文本 A。我希望使用者輸入不安全的密鑰,例如:['apple', '22march', 'newyork']. 因此,我使用 PBKDF2 對這些密鑰進行了多次迭代,得到了密鑰 B。這是我將用於使用 AES 加密文本的長且固定長度的密鑰。

AES(TEXT, PBKDF2(KEY))

這有助於防止暴力攻擊嗎?

攻擊者還應該散列每個輸入(例如來自字典,他們將在其中匹配“apple”)以獲取密鑰 B 以嘗試使用 AES 解密文本 A?或者,他們應該嘗試直接暴力破解 AES 加密文本,但密鑰總是從 PBKDF2 輸出,因此它們真的很難被破解。

這有助於防止暴力攻擊嗎?

它會減慢攻擊者的速度並阻止他們嘗試盡可能多的密碼猜測。例如,如果您像 RFC 2898 中那樣使用 1000 輪,您可以將猜測次數減少 1000 倍。

假設你把字典攻擊算在暴力攻擊下,這樣的攻擊肯定不會被完全阻止。無論您為迭代選擇哪個(實際)數字,最簡單的密碼(例如您的“apple”範例)都可能被破解。您不能使工作因子足夠大,以至於攻擊者仍然無法在可行的時間內做出數百或數千次猜測,或者您自己也無法使用它。

但是,是的,您對 PBKDF2 的使用是有意義的,並且本質上是在密鑰生成上下文中使用它的目的。只是在任何情況下都沒有辦法讓像“蘋果”這樣簡單的密碼安全。(至少除非有另一個身份驗證因素。)

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