“一直被模仿从未被超越”说的是竞争角逐,“一直都存在从未被抹除”说的是数据信息。人类社会的整个发展过程,其实都充斥着各种各样的信息。这些信息或有用或无用,或多或少,都被人们有意或无意地生产制造且又消费利用着。
在信息传递过程中,密码学就成为了安全机制中的一个重要环节。一直以来密码学都被专指加密算法——将明文(信息,plaintext)转换成难以理解的数据(密文,ciphertext),以及将密文还原成明文的过程。加解密也就成为了密码学中最为重要的两种算法。
对称密钥加密术示意图
在谈到人类社会发展中的加解密或者说密码学(近代以前密码学专指加解密,本文主要围绕加解密来展开。编者注)的时候,我们需要知道,它是由两部分构成的:算法和密钥。密钥是一个用于加解密算法的秘密参数,通常只有通讯者拥有。算法和密钥在编制密码和破译密码的过程中都会参与其中。
为了让大家更加通俗易懂,我们以上图为例子进行说明。明文“Hello World!”通过加密并以密钥(ciphertext)这个参数(也就是图片中的字符串),将明文转换成难以理解的数据或者符合。而接收方也需要这个密钥对其进行解密。从而才能还原出其真实的数据信息“Hello World!”。在这个加密模式中,只需要提供一种密钥进行加、解密过程,也就是我们常说的对称密钥加密。
非对称加密算法
与此对应的,则是非对称加密算法。非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公有和私有密钥彼此不同,公开密钥与私有密钥构成一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
对称和非对称加密,在密码学中占有非常重要的地位,也是整个密码学体系不断发展的两个主要线索。在本文,我们将为大家介绍包括这两种模式的加解密发展历程,并着重以实物的形式来展现人类在密码学所体现的安全技术的发展。
早在公元前,秘密书信已用于战争之中。西洋“史学之父”希罗多德在《历史》当中记载了一些最早的秘密书信故事。
比如,公元前5世纪,希腊城邦为对抗奴役和侵略,与波斯发生多次冲突和战争。公元前480年,波斯秘密结了强大的军队,准备对雅典和斯巴达发动一次突袭。希腊人狄马拉图斯在波斯的苏萨城里看到了这次集结,便利用了一层蜡把木板上的字遮盖住,送往并告知了希腊人波斯的图谋。最后,波斯海军覆没于雅典附近的沙拉米斯湾。
在古代,最早的加密方式通常指采用纸笔等工具,随着生产力的发展,密码学领域就涌现出更多的技巧和工具。比如早期最具代表性的凯撒密码(Caesar Cipher,以Julius Caesar古罗马朱利尤斯·恺撒命名),在古罗马时代就被广泛应用。凯撒密码是最具代表性的一种替代式加密算法,它通过将一组字母系统性地替换成另外的字母或者符号,从而达到加密的目的。
恺撒密码原理
比如,图中我们展示的是将字母A替换成D,B替换成E,C替换成F,依此类推。如果将“hello”进行凯撒式加密的话就替换成“khoor”了。在这种加密方式中,位数就成为了加解密的密钥。
Syctale密码棒
在古希腊的时候,还有一种叫Syctale的棍棒类物体(暂且称之为“密码棒”)被用来对信息进行加解密。这是一个协助置换法的圆柱体,可将信息内字母的次序进行调动。它主要是利用了字条缠绕木棒的方式,实现字母的位移,收信人要使用相同直径的木棒才能还原真实的信息。
在凯撒密码的基础上,发展出一种更为复杂的维吉尼亚密码(Vigenère Cipher)。该密码取名自法国密码学家维吉尼亚,是一种多表替换密码,也被叫做维热纳尔密码。
如果需要对明文进行加密,就需要这组密码矩阵和一个关键词(密钥)来实现。在维吉尼亚密码下,可以采用两种方式来进行加密:公式法和查表法。
16世纪法国亨利三世王朝的布莱瑟·维吉尼亚(图片来自维基百科)
维吉尼亚密码也可以用代数的形式来对待。将字母A-Z对应0-25(26个数字),因此我们可以引入mod26运算(取模运算)。对于公式法来说,我们可以采用:
维吉尼亚密码加密公式
通过K这个密钥来实现对E的加密(M为明文,E为密文,K为密钥)。而对于解密,则可以采用:
维吉尼亚密码解密公式
在以上公式中, 代表明文, 代表密文, 则为使用的密钥。
另外,我们也可以用查表法来进行加密。例如密钥的字母为“d”,明文对应的字母“b”,在下图的表格第一行找到字母“d”,再在左边第一列找到字母“b”,两个字母的交叉点(b行d列)就是字母“e”,所以对应的密文字母为“e”。
维吉尼亚密码表(图片来自维基百科)
和其他所有的加密方法一样,维吉尼亚密码通过字母以某种频率出现,因此频率分析也称为了破解此类加密的一种方法。比如,如果P在密文中的频率非常高,那么人们就可以猜测出所对应的E也是频率较高的字母。但是,使用维吉尼亚密码下的E可以以不同的密文形式来加密。
维吉尼亚密码中不同英文字母出现的频率(图片来自维基百科)
1914-1940瑞士使用过的加密计算尺(图片来自维基百科)
之前介绍的凯撒密码是一种替换加密术,每个字母都制定了以唯一的替换符号(Monoalphabetic Substitution Cipher,单字母表替换加密),因此它们很容易被频率分析法破解。维吉尼亚密码后来出现过多种改进和变形,也引用了这种“多字母表替换加密” (Polyalphabetic Substitution Cipher)。这种多表加密比单表加密复杂,破解难度也大大增加。自从维吉尼亚加密术出现以后,多表加密成为欧洲人最常用的加密方法。比如上图中展示的 1914年至1940年间,瑞士军队使用了这种加密计算尺。
18上世纪90年代,Jefferson(托马斯·杰弗逊,美国第三任总统)发明了一种基于圆盘的加密装置Jefferson disk(杰弗逊圆盘),或者也被称为Jefferson wheel cipher(杰弗逊转轮加密器)。
这种装置有36片同样大小的木制转轮,套在一根铁杆上。每片转轮的圆周边缘上刻有乱序的26个英文字母。通信的双方必须各自有一个完全一样的杰弗逊圆盘(有点类似我们此前介绍的Syctale密码棒,需要彼此双方有同样的加密装置)。
Jefferson disk(杰弗逊圆盘,正面)
Jefferson disk(杰弗逊圆盘,斜侧面)
在使用的时候,密文发送者把一段文字(不超过 36字)通知身处异地的对方时,只需转动加密器上的各片转轮,使这段文字正好出现在同一行上,这时转轮上排列的其他25行都是无意义的乱码。再把其中任意一行的乱码抄下来交给信使(信使无法解密)。对方收到乱码信后,只需拿出自己保存的同样的装置,转动上面各片转轮,让其中一行的排列和这段乱码同处在一行上,然后再查看其他25 行上的内容,其中必然有一行显示出加密者要传达的信息,而其他行显示的都是乱码。
杰弗逊圆盘中的其中一个disk
从这里我们不难看出,这种杰弗逊圆盘属于多表替换加密,每一个转轮相当于一张密码表。只有使用相同的加密装置的情况下,才能得到蕴含其中的秘密。每个转轮都可以随机设置一个字母,密钥则是圆盘中总共36个disk的不同排列算法来实现。从这里我们也不难得出,这种加解密在当时来说还算非常安全的(36!=3.7x10^41)。
Jefferson disk(杰弗逊圆盘,侧面)
杰弗逊的发明在后来的150年里都有深远影响,促使了后来美军使用的M-94圆柱形密码设备的成型。而且它在第二次世界大战中也很流行,不过采用的是机械电子式的,与打字机等设备结合使用。
M-94 Encryption Disks(点击图片看大图)
圆盘上的字母
上图展示的就是这种沿用了杰弗逊圆盘设计思想的圆柱形密码设备M-94。该密码设备总共有25个直径为35mm的铝制圆盘,外缘上刻有字母。该设备在1924年被广泛应用在低级军事通信领域。
二战中美国陆军和海军使用的 条形密码设备M-138-T4,采用了25个可选的纸条按预先编排的顺序编号使用,其加密强度也相当于M-94。
本文来源:中关村在线 作者:佚名