首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有使用字典来解密加密算法的解密算法?

有没有使用字典来解密加密算法的解密算法?
EN

Stack Overflow用户
提问于 2009-05-04 00:18:22
回答 3查看 2.2K关注 0票数 1

嗯,我一直在做一个作业,它写道:

必须开发一个程序,并用C语言编写代码,才能破译用意大利语编写的使用密钥编码的文档。密钥是由所有大写字母、小写字母、数字和空格随机排列而得到的。例如,让我们考虑以下两个字符串:

代码语言:javascript
复制
Plain: “ABCDEFGHIJKLMNOPQRSTUVXWYZabcdefghijklmnopqrstuvwxyz0123456789 ”
Code:  “BZJ9y0KePWopxYkQlRjhzsaNTFAtM7H6S24fC5mcIgXbnLOq8Uid 3EDv1ruVGw”

密钥仅修改原始文档的字母、数字和空格,其余字符保持不变。文档存储在长度未知的文本文件中。

程序必须读取文档,使用合适的解码算法找到密钥(根据定义,该密钥是未知的;上表只是示例,并且它不是用于准备网络课程上可用的样本文件的密钥),并将解码后的文档写入新的文本文件。

我知道我必须上传一本英语词典到程序中,但我不知道为什么会有人问它(可能没有出现在该语句中,但我必须这样做)。我的问题是,虽然我可以使用简单的加密/解密算法来做这个程序,但是在我们的程序中上传英语词典有什么用呢?那么,有没有使用字典来解密加密算法的解密算法呢?或者有人能告诉我我应该使用什么方法或算法来解决这个问题?

如果您能尽早回复(也是真实的),我们将不胜感激。

谢谢你们。

EN

回答 3

Stack Overflow用户

发布于 2009-05-04 00:33:08

这是一个simple substitution cipher。它可以使用frequency analysis来打破。维基百科的文章详细解释了这两个概念。您需要做的是:

  • 查找意大利语文本中字符的统计频率。如果你在任何地方都找不到这本书,你可以通过分析大量的意大利语文本语料库来构建它。
  • 分析密文中字符的频率,并将其与统计数据进行匹配。

维基百科的第一篇文章链接到了实现上述所有功能的a set of tools。您只需要使用它,并可能使其适应您的用例。

票数 8
EN

Stack Overflow用户

发布于 2009-05-04 01:08:32

你的密码是替换密码。也就是说,它用一个字母替换另一个字母。

考虑一下密文

"yjr,1drv2ry1od1q1...“

我们可以使用字典来查找明文。

查找标点符号,因为空格总是跟在逗号后面,所以您可以找到空格的替换规则。

这给了你。"yjr,drv2ry od q...“

请注意单词长度。因为在英语中只有两个1字母的单词,Q可能是I或a。"yjr“可能是”为什么“、" the”、"how“等。

我们试着用结果来解释为什么

“为什么,dyv2yw od q...”

没有带两个y的英语单词,并且以w结尾。

所以我们尝试"the“并得到

"the,dev2et od q...“

我们得出结论,这是一个可能的答案。

现在,我们在字典中查找以?e??et开头的单词。

重复冲洗。

也就是说,找到一些适合可用长度的单词集,并且不破坏彼此的替换规则。

就我个人而言,我只是做上面建议的频率分析。

票数 1
EN

Stack Overflow用户

发布于 2009-05-04 01:41:19

正如其他两位受访者所说,频率分析是一种方法,你可以使用digram和trigram来使其更强。只需从网络上抓取大量的意大利语文本,然后继续前进!这真的是非常简单的编程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/818398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档