密码学历史演进经历了三个时期:古典时期的置换密码、近代多表替代密码以及现代的多种非对称加密。

原文标题:《【图学院】密码学:一场智力的巅峰对决》
撰文:PlatON

密码技术(Cryptography) 包含了密码学(Cryptography)和密码分析学(Cryptanalysis)两大分支,一方为红军(守),一方为蓝军(攻),两者缺一不可。

自古以来,密码学领域加密和解密的故事不断被演绎,你方唱罢,我方登场。

当前人创造一种看似完美的加密技术,经过若干年,又会被后人通过先进技术解密。在这加密-解密-再加密-解密的过程中,展现出不可估量的人类智力,激发让人探寻的无穷乐趣。

从攻防角度读懂密码学演进史:对称加密到非对称加密

本期,让我们盘点密码学领域的重要历史节点,看看前辈大佬们如何运用密码学交锋,留下一段段里程碑式的传奇故事。

一、古典密码学时期

凯撒大帝:置换密码

在古典密码学时期,密码学主要用于军事的密文传递。公元前 58 年左右,Caesar (凯撒大帝)使用的凯撒密码就是运用军事命令的传递。他将每一个字母都进行了位移,以防止他的敌人在截获凯撒的军事命令之后,直接获取到他的真实情报。

从攻防角度读懂密码学演进史:对称加密到非对称加密

加密方法:

加密的双方首先要对字母的位移数字达成共识,比如,我们约定好的加密位移的数字是 3,那么,我发送的每一个字母都要经过 3 个位移,(A 变成 D,B 变成 E,C 变成 F... ...)假设我的明文是「attack」 ,经过位移为 3 的凯撒加密之后,就会变成「dwwtfn」。成功拿到密文的人,再通过把密文的每个字母减 3 的方式,就能得到真实的明文信息。

解密方法:

首先通过频率分析或者样式单词分析的方法,判定是否用的是凯撒密码。如果是,则可以使用穷举的办法,按照字母系统寻找偏移量。由于使用恺撒密码进行加密的语言一般都是字母文字系统,因此密码中可能是使用的偏移量也是有限的,26 个英文字母,至多偏移 25 位。

频率分析是基于某些字母在英文写作中出现不同频率的事实 – 例如,E 通常最常出现,其次是 T 和 A;而 Q 和 Z 出现次数最少(见下图)。

从攻防角度读懂密码学演进史:对称加密到非对称加密英文字母频率

参考如下加密文本 :

PZ AOL TVZA MYLXBLUA SLAALY PU AOPZ ZLUALUJL

如果算上字母,你会注意到 L 的出现频率高于其他任何字母(8 次)。因此,如果这是替换密码并且原始消息是英语,则 L 代表 E 是安全的猜测,L 与字母表中的 E 相距 7 个空格。如果位移量是 7,则这组密码文本将变成:

IS THE MOST FREQUENT LETTER IN THIS SENTENCE

对于非常短的消息,手动执行暴力攻击或频率分析可能很容易,但对于整个段落或文本页面来说可能会非常耗时。

二、近代密码学时期

Enigma (转轮密码机) : 多表替代密码

Enigma (转轮密码机)由德国工程师 Arthur Scherbius 创造,在二战时是德军用来传播信息的加密机,彼时,英法联军完全不知道德国正在借用此机器传递信息。

从攻防角度读懂密码学演进史:对称加密到非对称加密

加密方法:

Enigma 的加密原理是多表替代——通过不断改变明文和密文的字母映射关系,对明文字母们进行着连续不断的换表加密操作。

密码机设计有 3 个转轮,在每个转轮的边缘上标记 26 个德文字母,借以表示转轮的 26 个位置。经过巧妙的设计,每次转轮旋转后,都会停留在这 26 个位置中的某个位置上。在转轮组内,转轮们相互接触的侧面之间,都有相对应的电路触点,可以保证转轮组的内部构成通路。

于是,输入的字母 K,经过第一个转轮,变成输出字母 R;之后这个 R 进入第二个转轮,咱们假设它又变成了 C;尔后,这个 C 再进入第三个转轮,假设又变成了 Y。如此,初始字母 K 历经 3 次轮转,变成了谁也认不出来的 Y。

解密方法:

二战时期,阿兰·麦席森·图灵(Alan Mathison Turing)基于前人的经验,从 Enigma 的整个密文入手,设计了「图灵炸弹机」来进行破解。

从攻防角度读懂密码学演进史:对称加密到非对称加密

因为德国人会在特定时间发送特定的电报,而「天气」和「希特勒」这两个词是「明文库」中最常见的两个单词。所以,图灵采用基于明文的攻击,在早上六点多的电报密文中寻找「天气」和「希特勒」两个单词加密后的密文,就能根据明文和密文的对应关系计算出密钥。

关于这段历史的更多趣闻,感兴趣的小伙伴可参见电影《模仿游戏》。

三、现代密码学时期

在 1976 年以前,所有的加密方法都是同一种模式:加密、解密使用同一种算法,即对称加密算法(symmetric encryption algorithm)。在交互数据的时候,彼此通信的双方就必须将规则告诉对方,否则没法解密。那么加密和解密的规则( 简称密钥 )的保护就显得尤其重要,传递密钥成为了最大的隐患。

当密码学进入现代时期,从艺术变成科学,开始建造完备的体系,这一隐患被得以有效解决。同时,多种密码学技术的诞生,也让原本神秘变换的密码学世界变得更加精彩纷呈。

从攻防角度读懂密码学演进史:对称加密到非对称加密

重大历史节点 :

  • 1976 年,是现代密码学的开端,密码学开始由艺术转为科学,并建立一套完整的理论体系。两位美国计算机学家迪菲(W.Diffie)、赫尔曼(M.Hellman)提出了一种崭新构思,可以在不直接传递密钥的情况下,完成密钥交换。这被称为「 迪菲赫尔曼密钥交换 」算法,开创了密码学研究的新方向。
  • 1977 年,三位麻省理工学院的数学家罗纳德·李维斯特(Ron L. Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard M. Adleman)一起设计了一种算法,可以实现非对称加密。这个算法用他们三个人的姓氏首字母命名,叫做 RSA 算法。
    加密方式需要两个密钥:公开密钥,简称公钥( public key );私有密钥,简称私钥(private key),公钥加密,私钥解密。RSA 算法也具有缺陷 : 效率相对较低 , 字节长度限制等,在实际应用中我们往往会结合对称性加密一起使用 , 秘钥使用 RSA 算法。
  • 1978 年,Ron L. Rivest,Leonard M. Adleman 以及 Michael L. Dertouzos 提出了同态加密(Homomorphic Encryption)概念。允许对密文进行特定的代数运算后依然能得到加密的结果,将该结果解密以后的结果与对明文进行同样运算的结果会保持一致。
  • 1982 年,姚期智先生提出安全多方计算,即 MPC。主要探讨 n 个参与方必须各自输入信息去计算一个约定的函数。除了计算的正确性,这一计算过程还必须保障每个参与方输入数据的隐私。
  • 1989 年,麻省理工学院研究人员 Goldwasser、Micali 及 Rackoff 提出了「零知识证明」的概念。指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。

随着人类科技水平的不断进步,密码学和密码分析学技术得以推陈出新,这驱动着密码从业者不断突破创新,让密码学技术发挥出应有价值,得以运用在社会生活的各个角落。

来源链接:mp.weixin.qq.com