我认为我遗漏了一些关于基于密码的数据加密的基本信息。
破解基于密码哈希的登录身份验证的工具知道在成功登录时找到了正确的密码(或者仍然匹配哈希的备用密码)。但是如何使用密码破解基于文件或流的加密的工具作为密钥的来源知道何时成功?在我看来,不同的尝试密码会将加密的源流转换为不同的目标字节集,其中特定的密码生成“正确的”字节集。我不明白破解工具如何识别它具有正确的未加密字节集,停止尝试并报告'破解!'。
答案 0 :(得分:5)
大多数情况下,纯文本使用已知模式。如果它是完全随机的,则攻击者无法区分成功和失败。可能会返回一组键,其中只有一个是正确的。也就是说,大多数纯文本包含足够的信息(比较长的英文文本)来区分正确的密钥和错误的密钥。
此外,加密模式可能泄漏足够的信息以区分纯文本和随机文本。分组密码模式 - 例如ECB and CBC - 特别可能使用某种纯文本padding。此填充在块加密之前添加,并且通常包含可识别的信息。例如,看一下PKCS#5/7填充模式。
请注意,加密算法本身甚至需要承受已知的纯文本攻击,因此即使您已经知道解密文本的外观,也无法找到密钥。但是,使用密码会削弱现代加密密码的有效密钥数量,因此密码的强度至关重要。