1

我的理解是,对于大多数加密算法,无论密钥如何,总是有一个输出。错误的键当然会产生错误的输出。那么当使用暴力破解加密数据时,黑客如何知道密钥何时正确呢?除了分析输出数据还有其他方法吗?

如果这是唯一的方法,我有这个想法。加密文本时,使用目录在字级别加密而不是像今天那样在位级别加密不是更安全吗?然后输出将始终由单词组成。黑客需要使用复杂而缓慢的算法来检查输出单词中的语法,以确定这是否是真正的书面文本。

4

1 回答 1

2

为了回答第一部分,我简单地陈述我对超级用户问题“ Truecrypt 如何知道它有正确的密码? ”的旧答案?

它知道正确的密码,因为在该加密容器中有一个已知的标头。

当 Trucrypt 解密数据块并且标头与预期匹配时,它会报告解密成功。如果您使用不正确的密码,它仍然会“解密”文本,但它会将标头解密为乱码并无法通过解密检查。

这是规范的链接,您可以看到有很多事情必须是正确的才能成为有效的标头(解密后的字节 64-67 应该始终是 ASCII 值TRUE,字节 132-251 必须都是0',等)。如果您解密一个数据块并且它与该标头格式不匹配,则您知道解密失败。

因此,他们已经按照您对“检查语法”的建议进行了操作,他们尝试解密消息,并且如果消息“具有正确的语法”(数据遵循加密文件格式的规范),则消息已成功解密。

对于“使用字典”的第二部分,有几个重要问题。

首先,这仅适用于纯无格式文本,不允许二进制数据或文本元数据。然而,更重要的是,第二你如何“创建”这本字典?如果您使用文档中的单词即时创建字典,请告诉我以下消息的字典是什么:

We attack tomorrow!

您可以用额外的单词填充字典,但是如何选择填充?如果您使用现有的固定字典,如果字典中没有单词怎么办?拼写错误怎么办?

我什至还没有开始接触这种方法很可能会窃取信息。就像你说的那样,英语有一套语法规则,有些单词经常出现在句子的末尾,有些单词经常出现在句子的开头,查看用作索引的数字,你可能会进行统计分析并排除字典中“不太可能”使用的单词的一部分。

我确信这还有很多其他问题,但我只是加密的初学者,我想不出任何其他问题。

密码学中有句格言“你很容易创造一个你自己无法破解的密码,你很难创造一个别人无法破解的密码

于 2013-09-15T23:13:21.150 回答