蛮力攻击能否可靠地检测到钥匙是否正确?

时间:2013-09-15 21:21:36

标签: encryption dictionary cryptography brute-force

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

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

1 个答案:

答案 0 :(得分:2)

要回答第一部分,我只是陈述我对超级用户问题“How does Truecrypt know it has the correct password?”的旧回答

  

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

     

当Trucrypt解密一大块数据并且标题符合它时   期待它报告说解密成功了。如果   你使用不正确的密码,它仍然会“解密”文本,但它   会将标题解密为乱码并且无法通过解密检查。

     

Here is a link to the specification,你可以看到有很多   必须为真有效的标题(字节64-67   解密后应始终为ASCII值TRUE,字节   132-251必须都是0,等等。如果你解密了一大堆数据   它与标题格式不匹配,你知道解密   失败。

所以他们已经做了你在“检查语法”的建议,他们试图解密消息,如果消息“有正确的语法”(数据遵循加密文件格式的规范),消息被成功解密

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

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

We attack tomorrow!

你可以用额外的单词填充字典,但是如何选择填充?如果您使用现有的固定字典,如果单词不在字典中,那么您会怎么做?拼写错误怎么样?

我甚至没有开始谈论这种方法很可能如何韭菜信息。就像你说的那样,英语有一套语法规则,有些单词更常出现在句子的末尾,有些单词更常出现在句子的开头附近,看看用作索引的数字,你可能会进行统计分析在它上面并排除字典的一部分“不太可能”使用单词。

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

密码学中有一句谚语“你很容易创造一个你自己无法破解的密码,你很难创造一个其他人无法破解的密码