使用Java密文分析密文

时间:2011-04-13 20:12:05

标签: java cryptography encryption

我正在寻找关于任务的一些想法。

我有7个密文文件,所有文件都使用相同的对称键加密, 3个字符长按字母顺序。没有提供加密算法,但规范声明它是自制算法并且天真(无论这意味着什么)。我的目标是解密这些文件。我只是在寻找关于我可以对这些文件进行攻击的想法。

到目前为止,我已经做了频率分析,暴力攻击检测Ceasar Cipher,Krasinsky检测Vigenere Cipher的方法,密文XOR检测流密码的简单版本。我怀疑这些文件是使用一些混合密码加密的。

顺便说一下,解密的明文应该只包含一条普通的消息,但密文显示使用了超过97种不同的ASCII符号!

非常感谢任何一般帮助,想法或方向!老实说,我不应该解密这些文件,但我不妨在你的帮助下证明我的教授错了。谢谢!

修改

我正在寻找对阻塞或流密码的攻击。至少那是我怀疑的......

4 个答案:

答案 0 :(得分:3)

着名的Enigma机器使用3个字符的对称字母键。 97个ASCII符号? ASCII运行从32到126,给出94个符号。 \ n和\ r再添加两个用于96然后结束消息标记,例如\ 0用于97.换句话说,早期Engima机器(带有固定反射器)的天真副本加密Windows样式文本数据很好地匹配线索。

这个谜机有一些已知的缺陷。如果你的教授非常善良,他早就会复制德国海军使用的弱系统。这是用一次性密钥加密每条消息,然后允许解密在使用标准密钥加密的消息开始时两次发送一次性密钥。通过传输两次,它们为密码分析提供了额外的背景。

第二个众所周知的缺陷是角色永远不会映射到自身。因此,如果您有可能的纯文本,则不会匹配任何字符。

如果您知道转子和反射器的外观,可以强制使用Enigma。在这种情况下,你不知道有大约10 ^ 15种可能的探索。

答案 1 :(得分:2)

为什么不继续开始使用暴力破解每个最流行的对称密钥算法的所有26**3可能性:

还有其他你能找到的。

答案 2 :(得分:1)

由于算法简单且自制,您可以尝试这些天真的算法:

  • 每隔3个字符使用密钥重复XOR
  • 每隔第二个或第一个字符使用密钥重复XOR
  • XOR和旋转/移位:密码密钥与密文进行xor'ed并旋转/移位

由于您知道纯文本是常规文本,因此请在密文的前几个字符中查找模式,并查看它们是否可以与密码密钥组合以获得字母/数字的ASCII代码。

答案 3 :(得分:0)

现在,你说你做了统计分析。如果算法实际上是天真的,则符号的频率将不是均匀分布的。将更频繁地找到一些符号。是这样的吗?如果是的话,我会从那里挖掘。

  

我不妨证明我的教授   你的帮助错了

“我们的帮助”将我们证明你的教授是错的。