本文介绍了加密技术的基本概念及其安全性评估,重点讨论了历史上著名的凯撒密码及其被频率分析破解的案例,以及现代加密技术中密钥大小对安全性的影响。
这是有关加密技术的更大系列文章的一部分。如果这是你遇到的第一篇文章,我强烈建议从该系列的开头开始阅读。
在我们的旅程中,我们的目标始终是尝试理解现代加密学所基于的数学基础。这本身就是一个重要的考验——毕竟,加密学是关于构建极其困难的谜题。如果我们无法理解所涉及的工具,就无法进行构建。
尽管我们在设计加密协议的方式上仍有许多需要探索的内容,但我认为现在是时候稍作旁逸斜出,将注意力转向我们尚未讨论的一个方面。让我们尝试回答以下问题:
我们迄今为止所学的方法安全性如何?
我们到底理解什么是安全?
它是如何衡量的?
在我看来,回答这个问题的最佳方式是迅速回顾一下加密学的历史。通过这样做,我们将会遇到一些可能会从一开始就危及我们方法有效性的问题,而其他问题会逐渐变得明确。
那么让我们开始回顾最开始的部分。
在通信中保护数据的想法肯定不是一个新鲜事物。
历史上有尝试在古代文明中隐藏秘密信息的记录。其中一个著名的例子,也是使用加密技巧的第一个记录案例,是凯撒密码(Caesar cipher),它可以追溯到公元前100年。这是一种非常简单的技术:字母表中的每个字母都被移动一定数量的位置。因此,这被归类为替代密码(substitution cipher),因为每个字母都按照一套特定的规则被替换为另一个字母。
原始字符通过移动映射到新的字符
只要你知道字符移动了多少个位置,就可以解密使用这种技术加密的信息。例如,如果移动了 +3 个字母(如上图所示),那么密文“khooraruog”可以映射回原始文本“helloworld”。当然我们可以添加特定字符,但我们先保持最原始的简单方法。
一切都很好,直到有一个名叫 Al-Kindi 的人出现,并且破解了这个密码,利用了一个致命的缺陷。你能猜到是什么吗?
公正地说,差不多过去了近千年才有人提出这个利用方法,所以如果你没有想到这一点也不要太担心!
我把集体的失败算作个人的成功
在任何语言中,一些字母的出现频率高于其他字母。如果我们对大量文本进行频率分析,会出现一种分布。对于英语,这种分布大致如下所示:
字母在英语文本中的出现频率
你问我们可以用这些信息做什么?好吧,如果消息恰好是一些英文文本,那么我们可以检查我们加密信息中字母的频率。而且,很可能出现频率最高的那个字母是字母E加密后的版本!
我们想一想:例如,如果字母E加密为字母P,那么可以推测P出现频率很高。这种情况发生的概率随着文本的长度增加而增加,因为字母开始重复。
这被称为频率分析(frequency analysis)。而这个问题真的只归结于和我们密文有关的非均匀分布。
我不记得之前是否提到过,不过密文是我们称之为加密过程输出的一种...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!