0

几个月前,我进入了密码学领域,我对此表示怀疑。从技术上讲,PBKDF 将任何密码(具有任何密钥长度)转换为具有特定密钥长度的单一密钥。我知道这是为了可以使用任何用户输入的密码和密码算法,从而不会导致密钥长度错误。

例如,如果 AES 128 接受 128 位密钥大小,当我用蛮力解密时,我有 2^128 次找到正确密钥 (X) 的可能性。但是用户密码的可能性是无限的(理论上,在实践中一个遥远的 keylength 值界定了可能性)。因此,当程序应用 PBKDF 时,无限数量的用户密码变为相同的 128 位派生密钥 (X)。无论如何,至少一个 128 位的用户密码,应用 PBKDF,会产生正确的派生密钥 (X)。这是真实的?我只是打算将逻辑应用于概念。

无论如何,我记得 128 位密钥长度蛮力意味着很多时间。

4

1 回答 1

0

是的,当然,可能的密码短语比密钥多得多。另一方面,假设散列函数是好的,找到一个碰撞需要 2^64 的工作,而找到一个原像需要 2^128 的工作。所以这在实践中不是问题。


编辑回复评论:

听起来您说您可以选择一个不错的长随机密码,但它可能会生成与非常短的密码相同的哈希?嗯,是的,这是可能的,但概率如此之低,以至于在实践中不值得担心。

让我们考虑所有可能的 8 字符密码。94 个可打印字符,提高到 8 次方,提供少于 2^53 种可能性。在 2^128 个散列的宇宙中,偶然命中其中一个的概率小于 2^-75,或小于 10^22 中的 1 个。我们更有可能被小行星撞击,文明将终结。

于 2015-11-08T13:56:22.320 回答