什么是密码学?从斯巴达密码棒到量子加密术

自古以来,人们一直依赖密码来传递有用的信息,这是一种关于加密和解密编码信息的艺术。古代,加密的信息被写在皮革或纸上,由人类信使传递;今天,信息在互联网上传播,密码则保护电子数据不被破译;未来,密码学可能会再次飞跃,随着量子计算机的出现,密码学家正在利用物理学的力量制造迄今为止最安全的密码。

历史中的原始加密法

“cryptography”(密码学)一词源自希腊语“kryptos”,意思是隐藏,以及意为写作的“graphein”,合起来就是隐藏写作的意思。密码学不是在视觉上隐藏信息以躲避他人的观察,而是通过他人无法阅读的语言进行通信。

要加密消息,发件人必须使用被称为算法(algorithm)的系统性方法来改变内容,对原始消息(明文,plaintext)进行加密,使其字母或文字以无法理解的顺序排列,或者每个字母被另一个字母替换,由此产生的乱码被称为密文(ciphertext)。

根据密码学历史中心(Center for Cryptologic History)的说法,在古希腊,斯巴达军方使用一种叫做密码棒(scytale)的装置来加密信息,这种装置由一条皮带和一根木棍组成。在展开时,皮带似乎只是一串随机字符,但如果缠绕在一定大小的木棒上,字母会对齐成单词。这种技术被称为转置密码,也称换位密码(transposition cipher)。

密码棒(scytale)

还有一种简单的加密方法,称为替换式密码(substitution cipher),具体操作起来就是:发送消息者将明文中的每个字母换成另一个字母,例如将所有“A”写成“Z”,依此类推,最终替换完的文本就成了密文。为了解密这样的消息,发送者和接收者需要就信息中的哪些字母被替换达成一致,就像斯巴达士兵需要拥有相同大小的密码棒一样。

第一个密码分析师

将密文恢复为明文所需的具体方法和规律,称为密钥。密钥不被破解,才能保证消息的安全性。如果想在没有密钥的情况下破解密码,需要大量的知识和技能,以及不可思议的计算量。

根据西蒙·辛格(Simon Singh)《密码故事:人类智力的另类较量》(The Code Book)中的说法,一直到公元8世纪,阿拉伯数学家肯迪(al-Kindi)意识到替换式密码的弱点,这种使用了上千年的密码才被破译。

肯迪

肯迪注意到在所有拼写语言中,某些字母的使用频率远高于其他字母,如英语中高频字母“e”“t”“n”等,在此基础上通过分析在密文中最常出现的字母来反转替换,最终破译密码。肯迪通过统计推理的方法,让阿拉伯数学家成为了世界上最早的密码分析师,迫使密码学家改进加密算法。

随着密码学的不断进步,密码分析师们也开始了艰苦卓绝的升级。在密码的“加密与破译”这场永不停歇的战斗中,最着名的激烈冲突发生在二战期间——盟军密码分析师与德国恩尼格码密码机(Enigma)之间的恩怨。恩尼格码机使用替换算法加密消息,其复杂密钥每天都会更改。根据美国中央情报局的说法,英国数学家、密码分析师艾伦·图灵(Alan Turing)开发了一种名为“炸弹”的装置来跟踪恩尼格码机的变化规律,在波兰破译小组的帮助下,最终破译了恩尼格码机。

互联网时代的密码学

进入数码时代,密码学的目标没有变:防止沟通双方交换的信息被第三个人知道。计算机科学家经常将沟通双方称为“爱丽丝和鲍勃”,他们会被一个名叫“夏娃”的讨厌偷听者打扰。这种拟人化叫法最初是在1978年的一篇讲述数字加密方法的文章出现,随后就成了计算机领域的流行词。

互联网的出现引入了一个新的加密问题:如果爱丽丝和鲍勃位于地球的两侧,那么他们如何在公开的互联网中分享密钥,而夏娃不会得到密匙呢?根据可汗学院(Khan Academy,非营利性教育组织)的说法,公钥加密(Public key cryptography)成为最流行的解决方案,即爱丽丝和鲍勃在夏娃的监视下交换他们的密文和公钥,但双方都为自己保留一把私钥。通过将两个私钥应用于密文,共享加密信息。

在《RSA密码系统:历史、算法、素数》(The RSA Cryptosystem:History、Algorithm、Primes)一书中,迈克尔·卡尔德班克(Michael Calderbank)介绍了目前广泛使用的公钥加密技术,称为RSA加密。这种加密法利用了素数的数学性质:将两个素数(大于1的自然数中,只能被1和自己整除的数)相乘毫不费力,但给定一个数字,反推出它是由哪两个素数相乘的结果,就不那么容易了。如果这个数字够大,那么即使是地球上最快的计算机,也可能需要数百年才能完成计算过程。

当然,RSA加密也并非万无一失,很多聪明人想到了破解方法,比如通过记录拥有密钥计算机打开加密信息的速度,能够反推出这个素数密钥的范围。为了寻找更加先进的加密技术,量子物理学登场了。

迈出一大步的密码学

为了寻找一种牢不可破的密码,今天的密码学家们正在研究量子物理学。量子物理学以极小的尺度描述了物质的“奇怪”行为,著名的例子就是薛定谔和他的猫。早在20世纪80年代,物理学家就开始尝试这种时髦的方式来加密消息,这种方法现在被称为“量子密钥分配”。

传统密钥是以字节为单位编码,量子加密则可以对粒子属性编码,这种粒子通常是光子。偷窥者夏娃必须通过测量光子来窃取密钥,但根据量子力学,任何偷窥粒子的观察行为,都会改变它的状态。当夏娃行动时,爱丽丝和鲍勃就会发现交流存在安全漏洞。

阿图尔·埃克特(Artur Ekert)

20世纪90年代,牛津大学的阿图尔·埃克特(Artur Ekert)提出了一种新的量子加密技术,这种技术基于“量子纠缠”现象,允许两个光子在很远的距离上进行实时通信。

“量子拥有这种神奇的属性,如果你将它们分开,甚至超过数百千米,它们还会彼此感受到,”埃克特说,“这种特性允许爱丽丝和鲍勃制作共享密钥,并交流信息。如果窃听者试图拦截密钥,则粒子就会有反应,并且测量值会发生变化。沟通双方发现窃听者,立刻放弃交流,换另一种方法。又因为量子通信是实时的,当发现窃听者后,放弃信息传输,并不会泄露任何内容。”

量子密码学不仅仅是一个抽象的概念,如今已经有了实践案例。据有关媒体报道,2004年时,研究人员通过纠缠光子将3000欧元转入了银行账户。据《新科学家》(New Scientist)杂志报道,2017年,研究人员用卫星向地球发射了两个纠缠光子,使它们在1203千米的距离上实现了连接。

“如果你拥有一台实力强劲的量子计算机,那么现有的加密系统,都不再是安全的了。”阿图尔·埃克特说,“我们不知道工程师何时造出这种计算机,但对于密码学家来说,我们现在最好开始做点什么了。”

厕读观点:其实,自从文字被发明后,关于信息加密的需求就出现了,不管是经济、军事、政治上的大事,还是情侣之间的柔情蜜语,人们都不希望被无关的人打听到有用的信息,所以为了实现信息的安全传递,人们不断更新加密技术,从密码棒、换位密码,到恩尼格码机,再到量子加密技术。因为信息越来越重要,加密法就得越来越高级,虽然为了保住秘密,人们被折磨得疲惫不堪,焦头烂额,但我们还在密码游戏中玩得乐此不疲,这也许就是密码学的魅力所在。

参考资料:

《Crash Course Computer Science》

《密码故事:人类智力的另类较量》(The Code Book)Simon Singh

《RSA密码系统:历史、算法、素数》(The RSA Cryptosystem:History、Algorithm、Primes)Michael Calderbank

《新科学家》(New Scientist)