对密文与明文进行分类

数据挖掘 机器学习 分类
2022-02-24 08:46:45

我正在尝试在机器学习中进行一个相当简单的练习,并尝试将文本样本分类为明文或密文(加密)。

以下是两个示例:

  • 纯文本:This is a sentence in plaintext which any human person can read
  • 密文:5oXbLiEZbMUgOOdYy+q4+rsDaqUngBrrUbpVeuu2ggvP6hHObC4GgTLhq

使用的特定加密没有任何我可以用来分类的特殊属性(例如,不能保证密文比明文长得多),所以任务就是弄清楚哪些文本与随机字符无法区分,并且什么文本是可读的明文。

我目前的启发式方法涉及计算空格并假设任何具有高于某个阈值的空格比率都是明文,但我正在尝试找到一个更好的鲁棒算法。

1个回答

简单地计算字符的频率应该很容易区分英语和密文,因为它们明显不同。

你可以只计算一个大的英语语料库和一个大的密文语料库中字符的频率,并对每个语料库进行卡方检验,以确定哪个与新文本块中的计数匹配。

或者,如果您可以假设密文在字符上具有大致均匀的分布,仅此一项就可以让您构建一个很好的测试来判断新文本是否不太可能是密文。

我写了一篇关于类似内容的简短博客文章。https://blog.cloudera.com/blog/2016/09/solving-real-life-mysteries-with-big-data-and-apache-spark/