【问题标题】:Substitution cipher decryption using letter frequency analysis for text without blanks and special characters使用字母频率分析的替换密码解密对没有空格和特殊字符的文本
【发布时间】:2014-12-20 03:11:11
【问题描述】:

我需要找到给定密文的纯文本。我还有给定语言的字母的统计信息(在 Excel 文档中),例如我有字母和有向图的频率。

到目前为止,我尝试了这种方法:我评估了收到的密文中每个字母的频率。然后我按字母的频率降序对字母进行排序,并将每个字母与 Excel 文档中的相应字母进行映射。这种方法的问题在于它给了我一些根本没有意义的文本。那是因为我的文字很小(只有 1500 个字符长)。

我考虑过做一些有限的排列,但我不知道我可以用什么来评估一些排列的好坏。我认为一个好的评估函数可以解决我的问题。

请注意,所有特殊字符和空格都会从文本中删除。也没有数字。

提前谢谢你。

【问题讨论】:

    标签: algorithm machine-learning cryptography statistics artificial-intelligence


    【解决方案1】:

    全自动解密

    • 您需要添加一些常用词词典
    • 并与之比较
    • 从中找到最多单词的解决方案可能是正确的解决方案

    字母概率很少出现问题

    • 它们是为普通文本派生的
    • 所以如果您的加密文本是技术论文而不是 beletry ...
    • 或者它包括方程式或表格
    • 然后它会搞砸你的整体字母出现

    这样做:

    1. 计算字母的概率
    2. 按概率将字母分组
      • 所以常用(高概率)的字母被归为一组(A 组)
      • 因此不太常用的(中等概率)字母被归为一组(B 组)
      • 其余的(低概率)也归为一组(C 组)
    3. 替代组A
      • 首先查看 A 组的概率是否与您的语言匹配
      • 如果不是,那么文本是不同的语言、样式/形式,或者根本不是纯文本
      • 在这种情况下,您将无法安全进行
      • 如果匹配,则替换 A 组中的字母
      • 第一次运行应该没问题
    4. 尝试替换B组
      • 所以你知道 B 组的所有字母(加密/解密)
      • 因此生成所有替换排列
      • 每个人都尝试破译文本
      • 并在解密后搜索单词(忽略尚未替换的字母)
      • 计算字数百分比
      • 并记住最好的一个(或几个顶级的)
    5. 尝试替代C组
      • 和第 4 条一样做
    6. 更正
      • 很可能在最终结果中会有几个字母混合在一起
      • 所以也有办法处理这个问题
      • 您可以拥有可相互混合的字母表
      • 因此您可以尝试排列它们并根据您的字典进行测试
      • 或在您的文本中查找每个单词有 1-2 个错误字母的单词(对于较大的单词,例如 5 个或更多字母)
      • 如果找到足够多的此类单词,则排列/正确替换错误的字母

    [注释]

    • 您可以向翻译人员索取词典
    • 还在网上看到了一些纯文本翻译表
    • 各组之间应该有明显的概率差异
    • 组数可以随语言变化
    • 我使用半自动化方法完成了这项任务的最佳结果
    • 步骤 5,6 可以使用用户输入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 2013-11-03
      相关资源
      最近更新 更多