密码学二三事

接手了一个公众号,每个月有一些文章篇数的需求。摘录一二自觉质量尚好者,存档于此。

密码学不同于密码,指的是将信息进行加密的方式。在今天,密码学不光用来保证信息的安全性,还能用来保证信息的完整性、不可抵赖性。在几千年的文明历程里,密码学经历了坎坷的发展,也发生了不少有趣的故事。

从经典密码学说起

在二战结束、计算机得到长足的发展之前,世界上的密码学只有一种:经典密码学。古典密码学与其称之为技术,不如称之为考验创造力的艺术:加密的安全性不是由数学原理保证的,而是加密者与解密者之间斗智斗勇。

最为原始的凯撒密码,就只是将原文中每个字母用其后的第 n 个字母代替,极容易被破解;而其变种维吉尼亚密码,则是每 n 个字母为一组,每组中第 k 个字母用不同的偏移来替代原文。维吉尼亚密码在历史上一度被认为不可破解,但结合频率分析依然十分脆弱。

经典密码里花样繁多,令人目不暇接。一种被称为伟大密码(Grand Chiffre)的加密方法,是对原文的音节进行加密,为法国皇室使用长达数个世纪,极难破解,时至今日仍有不少外交情报未能解密。在中国明朝时期,曾有军队在出发前与朝廷事先约定一首诗,以其中特定位置的字代表不同的军情,他人即使截获了情报也只会一头雾水。

由此可见,古典密码要么是靠加密方法的巧妙、难以捉摸,要么是靠事先约定的密码本或其类似物来保证安全性。这种密码几乎没有数学原理为其背书,更难以实现现代密码学早已达成的完整性检验、不可抵赖性保证。

经典密码学的最后辉煌

战争向来具有促进科学进步的作用,密码学也为之推动。在二战期间,无线电在军事上取得了长足的应用。因为无线电波不可避免地飘向整个世界,信息的加密成为了当务之急。这期间德军使用的恩尼格玛密码机(Enigma),又被称为「谜」式密码机,将传统的机械与新兴的电气控制融为一体,成为了这一时期的巅峰之作。

其实早在二战爆发前的二十世纪二十年代,恩尼格玛密码机就已投入商业使用,其后的军用版本大大提升了安全性。Enigma 具有非常复杂的参数控制,如转子的线路。没有密码本且转子线路未知时,密码的可能情况为 10 的 114 次方;即使已知转子线路,密码也有 10 的 23 次方种情况。

恩尼格玛密码机复杂如此,以至即使得到了密码机、被波兰人破解许久之后,直到密码本被缴获才被彻底破解。人们普遍认为对 Enigma 的破解使二战的西欧战场提前结束了两年。英国二战时的密码破译所布莱切利园如今有着一块纪念碑,写着丘吉尔的名言:「人类冲突史上从未有如此之少数,于如此短暂之时,挽救如此多众生。」

走向现代

随着步入近代,计算机出现、算力日益增长,依赖电脑的现代密码学也得到了蓬勃的发展。现代密码学指的是依赖数学原理保障可靠性,直接在字节串上进行加解密的方法。这种加密有数学保证安全,算法完全可以公开,而且直接对二进制流进行操作,更适宜数字化的信息。实际上,已经没有人在正式场合中使用经典密码了。

按加解密双方密钥是否相同,现代密码学可分为对称加密与非对称加密。对称加密就是双方共享相同的密码,加密的安全性取决于密码的保密程度;而非对称加密,加解密使用不同的密钥,这两个密钥不能互相推导,信息接受者完全可以把公钥(加密密钥)公之于众,而消息发送者将消息用公钥加密后,照样可以公开密文,只有持有私钥(解密密钥)的信息接受者才能解密获取信息。

而按照加密数据的特征,又可以分为分组加密与流加密。分组加密要求被加密的数据必须拆分成固定的长度,一组一组地对其加密;而流加密则是来一个字节就能加密一个字节,对原数据的形式没有要求。

现代密码学还兼有完整性检验和身份鉴定等诸多功能。例如同时携带一个明文的哈希值,就能让消息接受者判定信息是否遭到篡改。而不可抵赖性,则是将传统的非对称加密反过来:只有一人持有公钥,将私钥公之于众,如果用公开的私钥解密某段密文,得到某条信息,那么这条信息一定来自持有公钥的这个人,无可抵赖。

自由的密码

密码的意义极其重大,在外交、军事中有着十分重要的地位,因此难免遭到有关当局的特别关注。从冷战伊始,美国就将一系列的技术限制出口,加密技术也在其中。实际上,直至 2000 年为止,美国《出口管理法案》都规定密钥长度大于 40 位的加密算法为「军需品」,严禁出口。这也造就了一些奇怪的现象:红极一时的网景浏览器,「美国版」使用的是 128 位的 AES 加密与 1024 位以上的 RSA 加密,而「国际版」就骤减到 40 位与 512 位,而「美国版」的获取极为复杂,很多当时的美国用户都只得使用「国际版」,而 40 位的 AES 加密即使是在当时,也只需要几天时间就能破解。

这一规定在 90 年代后期变得逐渐宽松,在 2000 年被实际废止之前,不少产自美国、服务全球的软件都得以使用更长的密钥。而在这之前,最著名的事件可能就是 PGP 的作者与这一法案抗争的这段佳话了。

PGP(Pretty Good Privacy)诞生于 90 年代初,是一套可用来加密消息、验证完整性、验证来源的程序,通常用于电子邮件,用来确保信息保密、未经篡改、的确来自某人。其后继 GPG 等时至今日依然有广泛的用户。

可是问题在于,PGP 产自美国,使用的密钥长度从未低于 128 位,它一经面世就走向了世界——而在其出现的时期这是严重的违法行为。作者在将 PGP 连带源代码发布到互联网上不久,就遭到了以「没有授权的军需品出口」为名的刑事侦查。PGP 的作者齐默曼自知失态严重,随即采用了一种精彩的方法应对潜在的指控:他将 PGP 的源代码付印成书,任何人都能购买这一售价 60 美元的书籍,将其上面印着的源代码逐行录入电脑,编译成 PGP 软件——理论上而言。就这样,PGP 合法地走向了世界,原理非常简单:对军需品的出口受到有关法案的管制,但对书籍的出版与出口却受到美国宪法第一修正案中言论自由的保护。几年后这场刑事侦查无疾而终,齐默曼没有受到任何刑事指控。

密码学的未来

密码学作为政治、军事等领域的刚需,在数千年来一直陪伴着人类:从上古时代表的替换密码、经典密码学的萌芽,到中世纪经典密码学的中兴,最后到构建起当下世界安全根基的现代密码学。在二十一世纪,筑基于网络之上的世界更加需要安全的密码,但密码学面临着不少新的挑战:广泛使用的 MD5、SHA-1 等哈希算法接连被破,常用的加密算法可能暗藏后门,量子计算或许能对最流行的非对称加密算法 RSA 构成威胁……

密码学将走向何方,未来又是何种形状,又将有多少精彩的故事?不是预言家的我们无从得知。但我们可以确信,只要人类一息尚存,密码学便会一直陪伴在我们身旁。


我们是电子科技大学百度校园菁英俱乐部。

如果你有兴趣与我们一起学习、分享知识,或与我们一起出去见见外面的世界,欢迎加入我们!

请实时关注我们的动态,同时也可以在公众号内留言。

密码学二三事”已有3条评论

  1. …在GitHub上发现大佬做的伪seewo应用商店…当时暗自笑话大佬不知道可以在设置里按出工程菜单打开开第三方应用…后来看了大佬博客…肃然起敬…其实我应该算是学长吧……我感觉我们境遇很相似…但是我感觉还是大佬6p…虽然我已经快要离开高中阶段了……我还是希望趁最后一个寒假跟大佬交流交流…奉上QQ

  2. 早知道我再翻一页百度……学长好…