重复基于密码的派生密钥的可能性?
Possibilities to repeat password-based derivated key?
几个月前我进入了密码学,我有一个疑问。
从技术上讲,PBKDF 将任何密码(具有任何密钥长度)转换为具有特定密钥长度的单密钥。我知道这是为了可以使用任何用户输入的密码和密码算法,不会导致密钥长度错误。
例如,如果 AES 128 接受 128 位密钥大小,当我用暴力解密时,我有 2^128 种可能性找到正确的密钥 (X)。但是用户密码的可能性是无限的(理论上,实际上一个很远的密钥长度值限制了可能性)。因此,当程序应用 PBKDF 时,无限数量的用户密码将变成相同的 128 位派生密钥 (X)。无论如何,至少 128 位用户密码,应用 PBKDF,会产生正确的派生密钥 (X)。这是真实的?我只是想将逻辑应用于概念。
无论如何,我记得128位密钥长度蛮力意味着非常多的时间。
是的,当然,可能的密码比现在多得多
键。另一方面,假设散列函数很好,找到一个
碰撞需要 2^64 的工作,找到原像需要 2^128
工作。所以这在实践中不是问题。
编辑回复评论:
听起来你是说你可以选择一个不错的长随机数
密码,但它可能会生成与非常
短的?嗯,是的,这是可能的,但概率如此之低,以至于
练习一下就不用担心了。
让我们考虑所有可能的 8 字符密码。 94可打印
字符,提高到 8 次方,给出少于 2^53
可能性。在 2^128 个哈希的宇宙中,概率
意外击中其中一个小于 2^-75,或小于 1 in
10^22。我们更有可能受到小行星撞击
文明终将终结。
几个月前我进入了密码学,我有一个疑问。 从技术上讲,PBKDF 将任何密码(具有任何密钥长度)转换为具有特定密钥长度的单密钥。我知道这是为了可以使用任何用户输入的密码和密码算法,不会导致密钥长度错误。
例如,如果 AES 128 接受 128 位密钥大小,当我用暴力解密时,我有 2^128 种可能性找到正确的密钥 (X)。但是用户密码的可能性是无限的(理论上,实际上一个很远的密钥长度值限制了可能性)。因此,当程序应用 PBKDF 时,无限数量的用户密码将变成相同的 128 位派生密钥 (X)。无论如何,至少 128 位用户密码,应用 PBKDF,会产生正确的派生密钥 (X)。这是真实的?我只是想将逻辑应用于概念。
无论如何,我记得128位密钥长度蛮力意味着非常多的时间。
是的,当然,可能的密码比现在多得多 键。另一方面,假设散列函数很好,找到一个 碰撞需要 2^64 的工作,找到原像需要 2^128 工作。所以这在实践中不是问题。
编辑回复评论:
听起来你是说你可以选择一个不错的长随机数 密码,但它可能会生成与非常 短的?嗯,是的,这是可能的,但概率如此之低,以至于 练习一下就不用担心了。
让我们考虑所有可能的 8 字符密码。 94可打印 字符,提高到 8 次方,给出少于 2^53 可能性。在 2^128 个哈希的宇宙中,概率 意外击中其中一个小于 2^-75,或小于 1 in 10^22。我们更有可能受到小行星撞击 文明终将终结。