【问题标题】:How to decrypt a known cipher text with brute force attack?如何通过蛮力攻击解密已知密文?
【发布时间】:2014-02-13 16:12:21
【问题描述】:

谁能回答我的问题..

如果我有一个已知的密文并且我知道的唯一信息是

明文是英文消息。我不知道明文,只有英文消息。

密钥是 16 位的。

如果我想用暴力破解它,我应该遵循什么程序 攻击??

【问题讨论】:

  • 这是好事还是坏事?
  • 你知道加密的算法吗?
  • 这听起来很像我最近解决的一个项目欧拉问题。也许看看人们对this just for fun puzzle 的解决方案会对您有所帮助。

标签: java encryption


【解决方案1】:

这在很大程度上取决于加密算法。如果您的消息是通过异或每个字母而使用相同长度的密钥加密的,则您没有机会解密该消息。 One-Time-Pad 是一种完美的安全加密方法(至少在仅用于一次加密的情况下)。

如果消息是使用非完美安全方法加密的,您应该遍历密钥空间(所有可能的加密密钥都存在于该空间中)。之后,您必须检查生成的解密消息是否可能是原始消息。为此,您可以检查字典是否包含候选人的子字符串。

同样,在不了解用于加密的算法的情况下,很难描述一种解密消息的方法。

【讨论】:

    【解决方案2】:

    如果您想完全自动化暴力破解,您需要知道暴力破解/解密何时成功 - 也就是说,您需要不断检查解密输出并将其与长长的英语单词词典进行匹配。如果明文与已知的英文单词有很强的匹配,那么您可能已经成功解密它并且可以停止。

    请注意,即使使用 16 位密钥,根据加密的完成方式,这也不是一件容易的事,因为您仍然需要了解加密方法。

    【讨论】:

    • 对于初始扫描,在试用解密中寻找与随机的偏差通常就足够了。对于英文明文,正确明文中的绝大多数字节都在 0x32 到 0x7F 的范围内。任何包含超过 75% 字节在该范围内的试验都值得使用字典进一步查看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多