2013-07-12 270 views
-1

所有的对称算法都伴随着密钥大小,如128位或256位等 我认为在算法使用它之前密码被哈希,所以它具有这个特定长度的x位。 如果这是正确的,那么可以实现最大的密码长度/安全性? 想象一下,我使用了一个长度为999999的密码,它使用了200个不同的符号。暴力攻击需要检查的可能密码的数量是200^999999 ... 如果密码被哈希为256位字符串,但它只有2^256个可能的组合吗? 创建一个由长度和字符组成的超过1.16 * 10^77组合的密码是没有用的。加密密码的密码长度

有人可以清除这个由我来告诉我如何选择的密码实际上与算法的安全性有关吗?

+4

有关密码学的问题不包括实现问题,因此无法用于堆栈溢出。您不妨考虑在http://crypto.stackexchange.com上发布此信息。 –

回答

1

是的,典型的对称密码只接受128位或256位的密钥是正确的。根本没有办法将更多的熵压入密钥。

但是,您应该注意,在可预见的将来,无法在现在或任何地方通过所有可能的密钥执行蛮力搜索。使用更长的键不会带来任何好处(事实上​​,AES-256甚至可能比AES-128弱;请参阅this。)

但是,我怀疑任何人都可以拿出来,更不用说记住,密码的位置接近128位的熵。为了说明密码比这弱得多的事实,任何合理的实现都将使用密钥推导算法,例如PBKDF2而不仅仅是简单的哈希。

+0

声称AES-256比AES-128弱很容易让人误解。它只适用于以非常规方式使用AES的情况,攻击者可以很好地控制您使用的密钥。它当然不适用,如果你使用散列(有一个适当的散列函数如SHA-2)作为关键。 – CodesInChaos

+0

@CodesInChaos不够公平,但为什么要用一种算法来显示漏洞?在可预见的未来,AES-128不可能在任何地方被强制使用,所以256位密钥不会提供任何额外的功能。 – ntoskrnl