【问题标题】:How to get a Blowfish encryption key如何获得 Blowfish 加密密钥
【发布时间】:2011-01-07 05:50:34
【问题描述】:

我有一堆使用 Blowfish 和相同密钥的加密和解密形式的消息。有没有办法从这些消息中获取key?

对任何算法或工具的引用将不胜感激。 我只有密码学的基本知识,所以如果问题太宽泛且不够具体,请纠正我。

【问题讨论】:

  • 可能不会——但如果你能做到这一点,你将成为著名的(至少在密码学家中)使用已知明文攻击破解 Blowfish 的人。

标签: cryptography key encryption blowfish


【解决方案1】:

您获得钥匙的机会并不多。我看到的唯一攻击是:

  • 利用加密实施中的缺陷。 Blowfish 是一种分组密码,因此它只加密固定大小的块。为了加密可变长度文件,您需要一个mode of operation 和一个padding scheme。在您的帖子中,您没有说明这些文件是否已用于您的文件,但少数成功的针对密码学的攻击中的一些利用了错误的选择或实现。

  • 如果密钥源自密码,您可以尝试猜测密码。除了以上这些,你还需要知道the algorithm that was used to derive the password。您还可以在 Internet 上找到几个dictionaries,它们基本上是一长串可能的密码。通过一些工作,您可以编写一个每秒检查多个密码的程序。我的经验是,如果你很幸运,而且密码在字典里,你可能会在几天内找到它。

为了完整起见,trying all the possible keys 需要的不仅仅是宇宙的生命。

【讨论】:

  • 请注意,Blowfish 确实有一组要避免的“弱密钥”,但前提是您不使用完整的 16 轮加密,因此这是理论上的攻击
  • 是的,Blowfish 实现中的错误不太可能发生。我的回答适用于操作模式的错误实现,例如多次使用相同的 IV。
  • “为数不多的针对密码学的成功攻击中的一些”——在密码领域不乏成功的攻击。 :)
【解决方案2】:

不,密码学使用数学/二进制函数将原始数据(或者更确切地说,transform)创建为加密信息。如果它将密钥存储在消息中,它将变得无用。

这里是 Blowfish 算法工作原理的参考:Link。

这是关于对称密钥加密的参考,Blowfish 是其中的一部分(作为对称块密码):Link

【讨论】:

  • 感谢您提供有关 Blowfish 的信息!
【解决方案3】:

如果这些消息存储在文件中并且文件已加密,您可以编写脚本对这些文件进行基于字典的攻击。当然,我假设这些文本存储在文件中并且文件是加密的。

示例:

$echo "Super secret" >> secret.txt; openssl enc -aes-128-cbc -in secret.txt -out secret.enc -k password

你可以通过粗暴来逆转这个过程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    相关资源
    最近更新 更多