【问题标题】:Can a brute force attack reliably detect whether a key was right?蛮力攻击能否可靠地检测密钥是否正确?
【发布时间】:2013-09-15 21:21:36
【问题描述】:

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

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

【问题讨论】:

  • 在实践中,您通常需要一个 MAC 来防止主动攻击,并且验证 MAC 可以让攻击者检查密钥。
  • 除非密钥源自低质量密码,否则您不能暴力破解现代加密(可能的密钥太多)。但是在密码情况下,KDF 应该比语法检查更昂贵,所以你的想法在这种情况下也没有用。
  • 我没有看到使用字典查找的问题。
  • @Charles 标签understanding有什么问题?
  • @danijar,它以前在过去的清理过程中被烧毁。这是一个可怕的小元标签,它收集了人们乞求“理解”问题的问题。

标签: encryption dictionary cryptography brute-force


【解决方案1】:

为了回答第一部分,我简单地陈述我对超级用户问题“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!

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

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

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

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

【讨论】:

  • 您可以使用自然语言处理中的标记技术,但所有这些统计分析都会使蛮力变得非常昂贵,不是吗?字典必须固定,否则会泄漏信息。所以你是对的,必须有一个不包含的单词的解决方法。不过,我目前无法判断这是否会使实施变得不可能。
  • 我不知道它是否会很贵,但我知道人们解决你的加密方案的字母替换版本是为了好玩(通常完全在他们的脑海中)every day in the newspaper
  • @danijar 正如 CodesInChaos 所指出的,蛮力强制已经非常昂贵——事实上它是如此昂贵,以至于让它变得更昂贵并没有实际的好处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
相关资源
最近更新 更多