3

我想我缺少一些关于基于密码的数据加密的基本知识。

破解基于密码哈希的登录身份验证的工具在成功登录时知道它找到了正确的密码(或仍然与哈希匹配的备用密码)。但是如何使用密码作为源破解基于文件或流的加密的工具一键知道什么时候成功?在我看来,不同的尝试密码会将加密的源流转换为不同的目标字节集,而特定的密码会生成“正确”的字节集。我不明白破解工具如何识别它具有正确的未加密字节集,停止尝试并报告“破解!”。

4

1 回答 1

5

大多数情况下,纯文本使用已知模式。如果它是完全随机的,那么攻击者就无法区分成功和失败。可能会返回一组密钥,其中只有一个是正确的。也就是说,大多数纯文本包含足够的信息(如一段较长的英文文本)来区分正确的密钥和错误的密钥。

此外,加密模式可能会泄漏足够的信息来区分纯文本和随机文本。分组密码模式(例如ECB 和 CBC)尤其可能使用某种纯文本填充。此填充是在块加密之前添加的,通常包含可识别信息。以 PKCS#5/7 填充模式为例。

请注意,加密算法本身甚至需要承受已知的纯文本攻击,因此即使您已经知道解密文本的样​​子,也应该不可能找到密钥。但是,使用密码会削弱现代密码密码的有效密钥数量,因此密码的强度至关重要。

于 2012-12-06T16:01:27.280 回答