数千年来,不管是君王或将军,都需要一套很有效率的通讯模式来治理国家、指挥军队。他们当然也深知万一信息落入不当人士手里,让敌国窥知机密,或让反对势力获取关键信息时,所会产生的严重后果。密码术——一种伪装信息,唯有指定的收信人才能读出原意的技术——就是应对敌人拦截机密的威胁而发展出来的。
为了保密,每个国家都设立了密码部门,发明及使用最好的密码来确保通讯安全。相对地,敌方的解码专家则努力破解密码以偷取机密。这些译码专家可说是语言学的炼金术士;就像炼金术士想将石头炼成黄金,他们则尝试从无意义的符号堆里揣度出合理的文字。密码术的历史其实就是几世纪以来编码者与译码者之间的战争史,他们的战争是一场影响历史走向甚巨的知识武器竞赛。
《码书》这本书有两个主旨。首先,我想汇整出密码的演化史。演化?是的,我认为这个词语非常妥切,因为密码的发展过程犹如物种演化的生存竞争。每种密码都会持续遭受译码者的攻击。他们一旦研发出可以突破其要害的新武器;这类密码就再也派不上用途。它要不是就此绝种,要不就是演化成更强的新密码。同样地,这种新密码会继续繁衍,直到解码者也辨识出它的弱点,如此不断循环下去。这和对付传染病细菌的情况很相似。这些细菌生长、繁衍、存活,直到医生找出能够针对它们的弱点进而予以歼灭的抗生素。细菌被迫演化,必须胜过抗生素。成功的话,就可再度繁衍,重新建立生存据点,如果停止演化,就难以逃脱更新型抗生素的赶尽杀绝。
编码者与译码者的持久战事激发了一连串与时俱进的科学突破。编码者不断努力建造更强的密码系统来防卫通讯,译码者则不断发明更有威力的方法来破解密码。在这场攻防拉锯战中,双方都广泛援引了各学科的知识与技术——从数学到语言学,从信息理论到量子论,无一不被征召投入战场。相对地,编码者与译码者也丰富了这些学科的内容,他们的工作加速了科技的发展,尤其是现代计算机的研发。
历史的标点符号是密码打上去的。它们决定了战争胜败,也结束了一些国君的性命。这事实让我得以引述几则政治阴谋以及攸关生死的故事来说明密码演化过程的几个关键性转折点。密码的历史数据异常丰富,我不得不舍弃很多引人入胜的故事。这也意味着我的阐述并非定论。若想更进一步了解你最感兴趣的故事或最喜欢的密码专家,不妨参考书末所附的相关书目,它们必定会颇有帮助。
讨论过密码的演化以及对历史的影响后,本书的第二主旨是以实例说明这个主题如何在今日变得比以往更有切身关系。在信息成为价值日增的必需品、通讯革命改变社会的此时,将信息编成密码的程序,亦即所谓的“加密”(encryption),在日常生活中也会扮演更重要的角色。今日,我们的电话交谈往返于卫星之间,我们的电子邮件得通过多台计算机或者服务器;这两种通讯形式都很容易被拦截,我们的隐私因而也更容易受到侵犯。同样地,愈来愈多的商业交易是通过互联网进行,设立一些安全措施来保护公司与客户是有必要的。加密是保护我们的隐私与确保电子商务能够顺利成长的唯一方法。秘密通讯的技术,亦即密码术(cryptography),可以提供我们防卫信息时代的锁钥。
然而,社会大众日益踊跃使用密码技术的趋势,却跟犯罪防治与国家安全的需求相冲突。数十年来,警察与情报机关常进行窃听以收集恐怖分子与犯罪集团的不法证据。近来超强密码的发展,却可能使窃听技术失效。在迈入21世纪之际,民权运动者要求允许广泛使用密码技术,以保护个人隐私。企业人士也跟他们站在同一阵线,因为他们需要强大的加密技术来确保电子商务的交易安全。而同时,执法单位则游说政府限制加密技术的使用。问题在于,我们将何者看得更重要?我们的隐私,抑或强而有力的治安单位?这其中是否另有折中办法?
加密技术不仅对民间活动有很大的影响,在军事方面也一直是非常重要的课题。有人说,首度使用芥子气与氯气的第一次世界大战,可称之为化学家的战争,以原子弹结束的第二次世界大战,可称为物理学家的战争。依此类推,有人相信第三次世界大战将是数学家的战争,因为数学家将掌控下一场大战的重要武器——信息。数学家早已投入研发密码系统保护军方信息的工作。而在密码战中负责破解这些密码的,当然也是数学家。
在叙述密码的演化以及它们对历史的影响时,我有一段稍微偏离了主题。我在第5章讲述一些古文字的解译过程,包括线形文字B以及古埃及象形文字。严格说来,密码学的用途在于刻意设计来欺瞒敌人耳目的通讯内容,而这些古文字并没有这种用意,不过是我们已失去了解读它们的能力罢了。然而,了解古文字意义所需要的技巧跟破解密码的技术非常相似。我读到约翰·查德威克(John Chadwick)在《线形文字B的破译》( The Deciperment of Linear B )中详述线形文字B这种古地中海文字的破译过程时,我对那些学者惊人的成就赞叹不已:他们伟大的破译能力让我们得以阅读祖先的文字,了解他们的文明、信仰与日常生活。
关于本书书名,我得向纯正主义者说声抱歉。《码书》( The Code Book )当然不单讨论代码(code)。代码这个字本来是指秘密通讯的方法之一;这种方法已经越来越少人用了。所谓代码,就是用一个字,或数字、符号,来取代某个字或词组。例如,情报人员都有个代号(codename),也就是用来代替真实姓名以隐藏身份的名称。又例如,要传达“拂晓攻击”这个命令给战场指挥官时,可以用“朱庇特”(Jupiter)这个代码(codeword)来代替。总部和指挥官事先商议好代码,所以真正的收讯人很清楚“朱庇特”的意义,而拦截到这个信息的敌人则一头雾水。相对于代码,还有一种作用面较基层的方法名为密码(cipher)——更替一个个字母,而不是一次整个词。例如,某个词组的所有字母——以它在字母集里的邻居代替,亦即B代替A,C代替B,以此类推。如此,“拂晓攻击”的英文Attack at dawn就变成Buubdl bu ebxo 了。密码是加密技术不可或缺的一分子,所以本书实应命名为《代码与密码》( The Code and Cipher Book )。但为求简洁,我舍弃了较准确的名称。行文时若有必要,我会解释一些密码学术语的定义。在本书,我通常遵循正确的定义来使用术语,有时候为了让一般读者易于了解,我会在叙述时牺牲一点正确性,采用日常通行的词汇。例如,讲到破解密码(cipher)的人时,我常称之为“代码破解者”(codebreaker)而不是较准确的“密码破解者”(cipherbreaker)。然而只有这个词在前后文的意思非常明显时,我才会这么做 。书末附有词汇解释供读者参考。话说回来,大部分的密码术语都相当明了易懂。例如,“明文”(plaintext)就是加密前的信息,而“密码文”(ciphertext)即是加密后的信息。
结束这篇序文之前,我必须提一下每位讨论密码技术的作者都会碰到的问题:大体而言,这门研究保密的科学本身就是被保密的科学。本书介绍了一些在密码学界有卓越贡献的人士,其中有很多在有生之年一直默默无闻,因为他们的发明在当时仍具外交或军事价值,因此无法公开赞扬他们的贡献。在为本书作研究时,英国政府通讯总部(Government Communications Headquarters,简称GCHQ)的专家在访问过程中,透露了20世纪70年代所做的一些非凡研究的细节。这些研究是因最近刚刚解密,才得见天日。也正因为它们不再是机密,三位世界级的密码专家才得以享受他们应得的名誉。这件事提醒了我们,还有更多这类任何科学作家都不知晓的研究正在默默进行中。英国政府通讯总部和美国国家安全局(National Security Agency;简称NSA)等机构,仍在持续进行机密的密码技术研究。他们有何突破?机密。成就应归功于谁?无名氏。
尽管受限于政府的保密措施以及相关研究的机密性,我仍尝试于本书最后一章推测密码技术的未来。这一章企图分析密码学的发展途径,看看我们能不能预测编码者和译码者之间这场演化竞争的最终赢家是谁。究竟是编码者设计出一套真正破不了的密码,实现绝对保密的梦想?还是译码者造出一台可以破解任何讯息的机器?别忘了,有一些最伟大的头脑正在秘密实验室里工作,而且享有巨额的研究基金。因此,我在最后一章所作的陈述,可能不尽正确。例如,我说量子计算机——有望破解时下所有密码的机器——尚在起步阶段,可是,也许有人已经造出一台了。只是唯一能够指出我错误的人,正是那些不能揭露这些秘密的人。