2015-11-08 70 views
0

幾個月前,我進入密碼學,我有一個疑問。 從技術上講,PBKDF將任何密碼(使用任何密鑰長度)轉換爲具有特定密鑰長度的一個密鑰。我明白這是因爲可以使用任何用戶使用密碼算法輸入密碼,從而不會產生密鑰長度錯誤。例如,如果AES 128接受128位密鑰大小,那麼當我用蠻力解密時,我有2^128個可能性來找到正確的密鑰(X)。但用戶密碼的可能性是無限的(理論上,實際上遠離鍵長值限定了可能性)。因此,當程序應用PBKDF時,無限數量的用戶密碼變爲相同的128位派生密鑰(X)。無論如何,應用PBKDF的最小128位用戶密碼將生成正確的派生密鑰(X)。這是真的?我只是將理念應用於概念。重複基於密碼派生密鑰的可能性?

無論如何,我記得128位keylength蠻力意味着很多時間。

回答

0

是的,當然,還有更多可能的密碼短語比 密鑰更多。另一方面,假設散列函數是好的,找到一個 碰撞將需要2^64個工作,並且找到一個預映像需要2^128個工作。所以這在實踐中不是問題。在回答


編輯評論:

這聽起來像你說,你可以選擇一個漂亮的長隨機 密碼,但它可能會產生相同的哈希作爲一個非常 缺一?那麼,是的,這是可能的,但有可能如此低,在 的做法是不值得擔心的。

讓我們考慮所有可能的8個字符的密碼。 94個可打印的 個字符,提高到8次方,給出的可能性少於2^53個。在2^128散列的宇宙之中,偶然發生其中一個的概率小於2^-75,或者小於1的概率爲 10^22。我們很可能會遭受一次主要的小行星襲擊,並且文明將會結束。

+0

我明白它和碰撞的概念,但它可能是一個16位輸入密碼由bruteforce(因爲在那種情況下它開始於「aa」)的情況下,成爲一個192位的衍生鍵用戶輸入的密碼(「c7Pe%_3rA2 = xgKl-02a3e93w」)? 雖然我把一個16位密碼(2個字符),pbkdf返回一個128位派生密碼(如果這種情況)。他們總是可以嘗試... – CyberneticCat

+0

哈哈哈,當然,但我認爲如果那時我正在吃冰淇淋,那麼哈希值將會改變,小行星將與可憐的月亮相撞。 – CyberneticCat