2010-10-14 112 views
1

输入: 使用随机生成的替换密码加密的英文正常文本(A-Z)。识别替代密码随机密钥。 (英文文本)

输出: 键

思路: 读取整个文本存储在某些阵列的每个字符/二元/三字母组的频率,并将它们进行比较:
http://en.wikipedia.org/wiki/Letter_frequencies
http://en.wikipedia.org/wiki/Bigram
http://en.wikipedia.org/wiki/Trigram

缺点:字母/ bigrams /相近百分比的卦(如“c”和“u”)

我的软件应该能够猜出最大值。来自加密文本的可能字符(最少2000个字符)。
我必须猜测至少18-20个字母。

问题:
有什么办法/知算法猜测所有的字符=>全键?
或者你可以给我一些有用的参考或建议,我可以如何改善整个猜测过程?

回答

1

我认为你是在正确的轨道上。如果所有字符(或全1)都存在于纯文本中,则可以恢复完整密钥的唯一方法是。

我会考虑做一些统计猜测,然后用statically检查明文Bigrams/Trigrams结果的结果。或者在单词列表中检查整个单词(如果您知道单词边界在哪里)。

+0

这是一个问题..我只有从A到Z没有空格的字母..和1字+来自下一个单词的第一个字母的最后一个字母将在我的统计数据中形成一个digram ..我想知道是否找到频率在维基百科会为我工作。 – sdadffdfd 2010-10-14 04:05:04

+0

只要它是一个26字符的密钥,你正在寻找有26个字符的文字是好的。我的观点是,如果纯文本不包含字母Q,X和Z,例如,您将无法确定这些字符的替换。不知道字边界可能会搞砸digram统计。 – 2010-10-14 04:12:07