打破224位Blowfish加密

4
我有一堆加密文件需要解密(显然)。通过一些研究,我发现它们是使用224位的Blowfish加密的。我知道明文的前几个字节是什么样子的(有点像标题)。
考虑到我不是NSA,也没有可怕的计算能力,是否有可能在合理的时间内(例如:不是整个宇宙的寿命)通过暴力破解密钥?
我曾经在某个地方读到过有人对完整的Blowfish进行了攻击(无意冒犯),将搜索范围缩小到2^(n/2),但它神秘地消失了。显然这是一种中间人攻击;尽管Blowfish使用16轮Feistel网络,但如果存在的话一定很聪明。有人能证实这件事吗?

编辑:我可以访问大量使用的密钥,只是不能访问全部密钥。也许攻击密钥生成过程更值得一试?

4个回答

5

你不可能通过暴力破解密钥来获取信息。假设Blowfish有中间人攻击的情况,可以将测试密钥数减少到2^112,但在太阳冷却之前,地球上没有足够的计算能力来进行暴力破解密钥。甚至NSA也不能做到这一点,如果有安慰的话,虽然他们可能会解决Blowfish而不是猜测密钥。

除非你能找到密钥,否则无法阅读文件。

*从技术上讲,你确实有机会。但是,你赢得两次国家彩票的可能性要大得多(假设你买了两次抽奖的票)。


4

不,除非加密操作有误,否则无法恢复明文。

已知的“已知明文”攻击是公开的,但需要数十亿个已知明文才能发挥作用。


关于“编辑”的更新:再次强调,如果加密操作被正确执行,检查已知密钥也无济于事,因为用于生成好的密钥的加密数字生成器会具有与密码相似的复杂性。然而,使用不良的生成器(或使用弱密码的基于密码的加密)是常见的实现缺陷。祝好运!


0

在这种情况下,2^(n/2) 意味着 2^223 而不是 224,是吗? 如果是这样,我认为它并没有对你有太大的帮助。 我认为你需要将其降至大约 2^64 等级的规模,才能在家用电脑上以合理的时间暴力破解它。


这里应该是2^(n/2),而不是(2^n)/2,所以它意味着2^112而不是2^224。 - NullUserException

0
你知道这个密钥是怎么选的吗?如果它是从一个密码生成的,而且没有使用适当的密码派生函数,那么这可能是你最好的攻击角度。此外,根据使用的链接模式,可能还有其他攻击方式,我们需要了解更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接