我决定在uni做一个项目,要求我破解一个单字母替换密码。这篇课文是带有空格的英语文本。关键是字母的排列。这不是什么大项目,应该相当简单。因此,我正在寻找一个算法(不一定要非常快),这是相当简单的。
我谷歌了一下,所有像这是对“破解推定替代密码的策略”的回答这样的提议的算法都是一些遗传算法(我不想进入这个领域)或者一些高级的(我的意思是不太基本的)统计数据(比如这里的http://practicalcryptography.com/cryptanalysis/text-characterisation/quadgrams/#a-python-implementation,你需要一些其他的文件)。
有什么可靠的(我认为不是这么快的方式)来破解密码,只知道和使用的字母频率和一些清单,让我们说10k或更多的英语单词?
我想了一段时间,但我想不出一个很好的方法来给密文打分(就像大多数算法中使用的那样)。什么是经过良好审查的密码分析方法来攻击一个简单的单字母替换密码算法?
发布于 2017-02-26 18:32:41
这里有一个简单的解决方案,对我有效,但它不是直接的‘算法’的方式,需要一些人工工作,才能应用一个算法。
简单地说,它由两个步骤组成:
因此,发现的每一个新词都应该“发现”更多的字母。我能够用这种方法破译任何文本(虽然相对较大,理想情况下至少是1/2页)。
注意:什么是“魔法”模式?我不会说出它们的名字,但我会给出一个提示:人们可以通过观察具有特定字母重复的序列的搜索结果来找到它们。如果首先查找空格字符,则更容易做到,对于任何(足够大的)正常文本来说,空格字符是最常见的。
因此,要破译一个文本,只需要一个包含特定单词/模式的列表,并且解密步骤的数量将等于单词列表的长度,即大约20次迭代。
https://crypto.stackexchange.com/questions/44191
复制相似问题