描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787210098409
◎ 世界著名科普作家西蒙·辛格继《费尔马大定理》之后呕心沥血的又一佳作
3000年来,密码战争极简史;精心动魄的故事,通俗讲述密码技术的进化过程;
BBC推荐科普读物。
◎ 罕见高评分,关于密码学的必读入门书
此前版本在被吐槽译稿不佳的情况下豆瓣评分仍高达9.1;台湾商务印书馆优质译本;本书发起的密码挑战风靡世界。
◎ 不仅是一本密码科普书,更是多种学科交叉的科学书
在激烈的商场战争和军事战争中,谁掌握了密码学上优势,谁就能透视对方的底牌。为此,各个学科的*人才都投入到密码战争中,涉及学科包括且不限于:语言学、统计学、数学、通信学、物理学、计算机学等。本书不仅是一本关于密码的科普书,还是多种学科的交叉的科普书。
自有文字以来,密码就随之诞生,破解密码一直是具有高度智慧的人们不可抗拒的诱惑。编码和解码的战争持续了3000多年,本书作者剖析其间不为人知的历史隐秘,白描一群改变历史的幕后人物,为你呈现密码世界的神秘洞天。在漫长的密码战争中,破解者的每一次胜利,都导致了新的编码法的诞生,将人类科技文明推向不可思议的极限,*终成就了今天的电脑甚至于令人瞠目结舌的量子密码。这场战争远未结束,势必将人类推到一个更加辉煌的文明阶段。
作为BBC资深的制作人,作者是个讲故事的高手,耳熟能详的历史事件、改变世界格局的重大战役,其实都是密码的故事。翻开本书,给你看一段历史的真相。
作者序
第 1 章 苏格兰玛丽女王的密码
第 2 章 无法破解的密码
第 3 章 秘密书写的机械化
第 4 章 破解“奇谜”
第 5 章 语言障碍
第 6 章 爱丽丝和鲍勃公开钥匙
第 7 章 极佳隐私
第 8 章 跃进量子世界
附录A 小说《虚空》开头第一段
附录B 频率分析的基本要领
附录C 所谓的“圣经密码”
附录D 猪圈密码
附录E 普雷费尔密码
附录F ADFGVX密码
附录G 单次钥匙簿的回收缺点
附录H 《每日电讯报》纵横字谜的答案
附录I 尚待解译的古文字
附录J RSA所使用的数学
术语释义
致 谢
延伸阅读
图片来源说明
数千年来,不管是君王或将军,都需要一套很有效率的通讯模式来治理国家、指挥军队。他们当然也深知万一信息落入不当人士手里,让敌国窥知机密,或让反对势力获取关键信息时,所会产生的严重后果。密码术——一种伪装信息,唯有指定的收信人才能读出原意的技术——就是应对敌人拦截机密的威胁而发展出来的。
为了保密,每个国家都设立了密码部门,发明及使用最好的密码来确保通讯安全。相对地,敌方的解码专家则努力破解密码以偷取机密。这些译码专家可说是语言学的炼金术士;就像炼金术士想将石头炼成黄金,他们则尝试从无意义的符号堆里揣度出合理的文字。密码术的历史其实就是几世纪以来编码者与译码者之间的战争史,他们的战争是一场影响历史走向甚巨的知识武器竞赛。
《码书》这本书有两个主旨。首先,我想汇整出密码的演化史。演化?是的,我认为这个词语非常妥切,因为密码的发展过程犹如物种演化的生存竞争。每种密码都会持续遭受译码者的攻击。他们一旦硏发出可以突破其要害的新武器;这类密码就再也派不上用途。它要不是就此绝种,要不就是演化成更强的新密码。同样地,这种新密码会继续繁衍,直到解码者也辨识出它的弱点,如此不断循环下去。这和对付传染病细菌的情况很相似。这些细菌生长、繁衍、存活,直到医生找出能够针对它们的弱点进而予以歼灭的抗生素。细菌被迫演化,必须胜过抗生素。成功的话,就可再度繁衍,重新建立生存据点,如果停止演化,就难以逃脱更新型抗生素的赶尽杀绝。
编码者与译码者的持久战事激发了一连串与时俱进的科学突破。编码者不断努力建造更强的密码系统来防卫通讯,译码者则不断发明更有威力的方法来破解密码。在这场攻防拉锯战中,双方都广泛援引了各学科的知识与技术——从数学到语言学,从信息理论到量子论,无一不被征召投入战场。相对地,编码者与译码者也丰富了这些学科的内容,他们的工作加速了科技的发展,尤其是现代计算机的硏发。
历史的标点符号是密码打上去的。它们决定了战争胜败,也结束了一些国君的性命。这事实让我得以引述几则政治阴谋以及攸关生死的故事来说明密码演化过程的几个关键性转折点。密码的历史数据异常丰富,我不得不舍弃很多引人入胜的故事。这也意味着我的阐述并非定论。若想更进一步了解你最感兴趣的故事或最喜欢的密码专家,不妨参考书末所附的相关书目,它们必定会颇有帮助。
讨论过密码的演化以及对历史的影响后,本书的第二主旨是以实例说明这个主题如何在今日变得比以往更有切身关系。在信息成为价值日增的必需品、通讯革命改变社会的此时,将信息编成密码的程序,亦即所谓的“加密”(encryption),在日常生活中也会扮演更重要的角色。今日,我们的电话交谈往返于卫星之间,我们的电子邮件得通过多台计算机或者服务器;这两种通讯形式都很容易被拦截,我们的隐私因而也更容易受到侵犯。同样地,愈来愈多的商业交易是通过互联网进行,设立一些安全措施来保护公司与客户是有必要的。加密是保护我们的隐私与确保电子商务能够顺利成长的唯一方法。秘密通讯的技术,亦即密码术(cryptogra-phy),可以提供我们防卫信息时代的锁钥。
然而,社会大众日益踊跃使用密码技术的趋势,却跟犯罪防治与国家安全的需求相冲突。数十年来,警察与情报机关常进行窃听以收集恐怖分子与犯罪集团的不法证据。近来超强密码的发展,却可能使窃听技术失效。在迈入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)等机构,仍在持续进行机密的密码技术硏究。他们有何突破?机密。成就应归功于谁?无名氏。
尽管受限于政府的保密措施以及相关硏究的机密性,我仍尝试于本书最后一章推测密码技术的未来。这一章企图分析密码学的发展途径,看看我们能不能预测编码者和译码者之间这场演化竞争的最终赢家是谁。究竟是编码者设计出一套真正破不了的密码,实现绝对保密的梦想?还是译码者造出一台可以破解任何讯息的机器?别忘了,有一些最伟大的头脑正在秘密实验室里工作,而且享有巨额的硏究基金。因此,我在最后一章所作的陈述,可能不尽正确。例如,我说量子计算机——有望破解时下所有密码的机器——尚在起步阶段,可是,也许有人已经造出一台了。只是唯一能够指出我错误的人,正是那些不能揭露这些秘密的人。
“几个世纪以来,密码的故事都让人神魂颠倒。这类故事总是与阴谋诡计、政治欺骗、军事秘密、学术竞争息息相关,在《码书》中,作者也给大家讲述了这类故事。”
——《时代》
西蒙·辛格善于把令人害怕的数学世界说得和小孩游戏一样简单,这能够吸引许多有数学恐惧症的读者。
——《每日电讯报》
本书讲述了从密码怎样被创建到它们怎样被破解的故事,以及围绕它们而产生的种种诡计。
——《纽约时报》
第—章 苏格兰玛丽女王的密码
一五八六年十月十五日星期三早上,玛丽女王(Mary Stuart)走进佛斯林费堡(Fotheringhay Castle)挤满人群的法庭。多年囚禁与风湿症的折磨,使她憔悴不已,但她依旧高贵冷静地展现不容置疑的帝王风范,在医生的协助下,从法官、官员、观众面前缓缓走近位于这狭长的审判室中间的御座。玛丽以为这御座显示她赢取了应得的敬意。她错了。这御座代表缺席的伊丽莎白女王(Elisabeth I.)——玛丽的仇敌与起诉人。玛丽被和缓地带离御座,走到审判室的另一边。被吿席上,那张腥红色丝绒椅才是她的座位。
苏格兰的玛丽女王在此接受叛逆罪的审判。她被控密谋行刺伊丽莎白女王以夺取英格兰王位。伊丽莎白的国务大臣法兰西•华兴翰爵士(Sir Francis Walsingham)已逮到其他共犯,取得供词,并将他们处决了。现在,他要证明玛丽是这宗阴谋的核心人物,一样有罪、一样该当处死。
华兴翰知道,要处死玛丽,得先让伊丽莎白女王相信她真的有罪。伊丽莎白虽蔑视玛丽,却因为诸多原因,迟迟不敢将她送上刑台。头一个顾虑是:玛丽是苏格兰女王;有不少人质疑,英格兰法庭是否有权处决外国君主。再者,处决玛丽恐会创立一项令人不安的先例——政府都可杀掉一国之君了,叛徒更不会顾忌再杀另一个,也就是伊丽莎白自己。此外,伊丽莎白和玛丽是表姊妹,这层血缘关系更让伊丽莎白怯于判决她死刑。总而言之,除非华兴翰能彻底证明玛丽参与了这宗行剌密谋,否则伊丽莎白是不会批准处决玛丽的。
这宗叛逆阴谋是一群年轻的英格兰天主教贵族所策划的。他们意图除掉伊丽莎白这个新教徒,让同为天主教徒的玛丽取而代之。法庭认为,玛丽显然是这群叛徒的名义领袖,但不确定她是6否首肯这项阴谋。事实上,玛丽的确授意了此项行动。华兴翰所面临的挑战是:他必须证实玛丽和这群党羽之间确有共犯关系。
审判日当天早晨,玛丽穿着色泽惨然的黑绒衣,独坐在被吿席上。被控叛逆罪的嫌犯不得请辩护律师,也不准召唤证人。他们甚至不准她的臣子帮忙准备诉讼事宜。不过,玛丽还未身陷绝境;当初她可是很谨慎地一律使用密码与叛徒通讯的。她用密码系统把信息转换成一串无意义的符号。玛丽相信,就算华兴翰搜出这些信件,他也读不出什么名堂来。这些信件的内容既然无解,也就不能成为呈堂证据。不过,这一线生机全维系在:她的密码未被破解。
不幸的是,华兴翰不只是国务大臣,还是英格兰的间谍首脑。他不但拦截到玛丽送给那些叛徒的信件,还知道谁能破解这些密码。托马斯•菲利普(Thomas Phelippes)是英格兰破解密码的第一高手。多年来,他一再破解那些密谋对付伊丽莎白女王的信息,华兴翰才得以将叛徒定罪。他若能破解玛丽授意那些叛徒罪证确凿的信息,她就难逃一死了。相反的,如果玛丽的密码强到足以隐瞒其中的秘密,她就有机会活命。一条命就这样取决于密码的力量;而这并不是第一次。
秘密书信的演进
秘密书信的历史非常悠远。被罗马哲学家及政治家西塞罗(Cicero,106-43 B.C.)誉为“史学之父”的希罗多德(Herodotus,484?-425? B.C.)即讲过一些最早的秘密书信故事。希罗多德在《历史》(The Historys)—书中记载了希腊与波斯于纪元前五世纪时的冲突。他把这些冲突视为自由对抗奴役、独立的希腊城邦对抗暴虐的波斯人的争战。根据他的记述,就是秘密书信的技术拯救了希腊,使他们幸免于被号称万王之王的波斯暴君薛西斯(Xerxes,519?-465 B.C.)征服的厄运。
希腊与波斯之间的宿怨在薛西斯于波斯波利斯(Persepolis)建造城市,作为傲世帝国的新首都后达到临界点。所有帝国境内的王国,乃至邻近城邦,都纷纷献上贡品与珍礼,唯独雅典与斯巴达明目张胆地置身其外。为报复这份无礼的羞辱,薛西斯开始整饬武力,宣称要“扩张波斯帝国的领土,使帝国国界齐同上帝的疆域,阳光所到之处无一不在吾人国境之内”。接下来的五年,他秘密结集了有史以来最强大的武力;纪元前四八〇年,他已就绪,准备发动一场突袭了。
偏偏这些波斯军队的集结行动竟被一位名叫狄马拉图斯(De-maratus)的希腊人给瞧见了。狄马拉图斯被祖国驱逐而住在一个叫苏萨(Susa)的波斯城里。虽然遭受流放,他对希腊仍存忠诚之心,因此决定送封信去警吿斯巴达人薛西斯的侵袭计划。问题是,这封信要怎么送才不会被波斯守卫拦截下来呢?希罗多德记述道:
被发现的风险很高,而只有一个办法能顺利送出这封信:将一副可对折的木制写字板上的蜡刮下来,把薛西斯的企图写在木头上,再用一层蜡把这则信息盖住。这样一来,这些木板看似一片空白,沿路卫兵也就不会找它们麻烦。这则信息抵达目的地时,没有人猜得到其中的奥秘。据我了解,是克利欧明斯(Cleom-enes)的女儿,亦即李奥尼狄斯(Leonides)的妻子戈尔戈(Gorgo)瞧出端倪,告诉旁人:把蜡刮掉,就会发现木头上有字。他们照做之后发现了信息,接着并转告其他希腊人。
这道警吿让原本毫无防备的希腊人开始进行武装准备。城邦所拥有的银矿收益原本由城民均分,现在则改交给海军支用,建造了两百艘战舰。
至此,薛西斯已丧失奇袭先机。公元前四八〇年九月二十三日,波斯舰队抵达雅典附近的萨拉米斯湾(Bay of Salamis)时,希腊人已做好应战准备。他们把波斯舰队诱进海湾时,薛西斯还以为希腊海军已是囊中之物。希腊人自知他们舰队的船身小、数量少,留在外海会全军覆没,回到海湾内则有机会以智取胜。风向一改,波斯人就被一股儿吹进海湾里,窘迫地迎战希腊人。波斯公主雅特弥夏(Artemisia)三面受围,尝试退回外海,却撞到自己的随行船只,引起一阵恐慌,导致更多波斯船只互撞。希腊人趁势发动猛烈的攻击,短短一天之内,波斯的庞大武力随即宣吿屈服。
狄马拉图斯的秘密通讯法只是单纯地把信息藏起来。希罗多德所记述的另一个事件,也是用隐藏法就足以保障信息的传输安全。希斯泰尤斯(Histaiaues)鼓动米里图斯(Miletus)的亚里斯达哥拉斯(Aristagoras)反叛波斯国王。希斯泰尤斯把信差的头发剃光,将信息写在他的头皮上,等他头发又长出来了,才让他去传送秘令;那个时代对行事速度的要求显然宽松些。表面上,这位信差未带任何不妥物品,因此旅程中未受任何干扰。抵达目的地后,再度把发丝剃除,把头伸给指定的收讯人瞧瞧,他的任务就完成了。
这种掩饰信息存在性的保密通讯法称为隐匿法(steganography),源自希腊文steganos和graphein二字,前者意为“掩蔽的”,后者则是“书写”。自希罗多德时代起,两千年来隐匿法的应用以千奇百怪的形式遍及世界各地。例如,古代的中国人把信息写在柔细的丝布上,揉成一个小球,覆上蜡,再让信差吞进这粒蜡球。十六世纪的意大利科学家乔凡尼•波塔(Giovanni Porta)解说了在煮熟的蛋里藏匿信息的方法:用一盎司明矾和一品脱醋所混成的液体当作墨水写在蛋壳上。这种溶剂会穿透富含气孔的蛋壳,而在硬化的蛋白表层上留下信息——你得剥掉蛋壳才看得到。使用隐形墨水写信也是隐匿法的一种。早在公元一世纪,老普林尼(Pliny the Elder)就解释道:ththymallus植物的汁液可以用作隐形墨水。它的汁液干掉后会变透明,但稍微加热就会焦掉而变成棕色。很多有机液体也有类似特性,因为它们富含碳质而很容易焦黑。事实上,就连现代间谍,当配发的隐形墨水用光时,也会想到用自己的尿液来应急呢。
隐匿法的寿命这么长,表示它显然是相当的安全。不过它有一个根本弱点。万一敌人搜查信差身体,发现信息,秘密通讯的内容马上就曝光了。一旦信息被拦截到,所有安全措施皆前功尽弃。一板一眼的卫兵可能依例搜査每位过境的旅人、刮一刮任何蜡板、烤一烤空白纸张、剥剥熟蛋的壳、剃剌人们的头等,多多少少总有些信息会败露的。
因此,就在隐匿法发展的同时,也衍生出了“密码法”(cryptography)。密码法这个字源自希腊文kryptos,“隐藏”的意思。密码法的目标不是将信息本身隐藏起来,而是隐藏信息的意义;它的程序称为“加密”(encryption)——把信息转译成无法理解的文字或符号,也就是依据发信人与收信人预先协议好的规则来改写信息。收信人依照改写规则转换信息,就能还原信息的意义了。而不清楚改写规则的敌人,即使办得到,也得大费周章,才能把加密文字转换回原始信息。
密码法和隐匿法虽然没什么关联,却可合并使用,以强化安全性。例如,属于隐匿法的微缩小点(microdot)在第二次世界大战期间相当普及。在南美洲的德国情报人员把一页文字摄影、缩小成直径不到1公厘的小点,然后藏置在一封看似无关紧要的信函里,伪装成句点。一九四一年,FBI接获密报,首度找到微缩小点。这份情报吿知美国人注意寻找信纸表面上微微发亮的小点,这些小点即是胶卷。这些被拦截下来的微缩小点,大多可以直接读取内容,有时德国情报员会预作防范,先将信息加密再摄影,如此一来,美国人就没辄了。所以,美国人虽拦截、阻绝了一些通讯,但遇到密码法与隐匿法并用的情况,就无法获知德国间谍活动的新消息。由此可见,密码法是秘密通讯两门技术中较强的一个,因为它有防止信息落入敌手的能力。
事实上,密码法本身又可分成两类:移位法(transposition)与替代法(substitution)。移位法是将信息里的字母调动顺序。这个方法不适用于非常简短的信息,像是只有一个单字的,因为少数几个字母的重组方式实在有限。举例来说,三个字母就只有六种排列方式,例如COW、CWO、OCW、OWC、WCO、WOC。不过,字母数目一增加,排列方式的数目就会急速升高,除非确知改写步骤,否则不可能拼回原始信息。“For example, consider this short sentence.”这句话只有35个字母,却有超过50,000,000,000,000,000,000,000,000,000,000种的排列方式。假使每人每秒检查一种排列方式,全世界的人都日以继夜做这项检查工作,也需要宇宙寿命一千倍的时间才能检查完所有组合。
加密信息时,若将字母随意搬家,它的安全度一定非常高,因为即使是短短的句子,拦截到它的敌人也没办法解译出来。只是,这有个缺点。移位法等于是在制造回文谜,困难度可以非常惊人的回文谜;如果字母的重组毫无章法,那么,不仅是敌人,就连原收信人也没办法解读。所以,字母的重组必须遵循发信人与收信人预先约定好的规则,这样的移位法才有实际效用。例如,有些学童会使用“篱笆式”(rail fence)的移位法来传递消息,也就是把信息内容的奇数位字母写成一排、偶数位字母写在另一排,再把偶数位字母接到奇数位字母后面。例如:
THY SECRET IS THY PRISONER; IF THOU LET IT GO, THOU ART A PRISONER TO IT
↓
TYERTSHPIOEITOLTTOHURARSNROT
HSCEITYRSNRFHUEIGTOATPIOETI
↓
TYERTSHPIOEITOLTTOHURARSNROTHSCEITYRSNRFHUEIGTOATPIOETI
收信人只要逆向执行这个程序,就能复原信息。规则性移位法的形式很多,包括三排篱笆法,亦即先把信息改写成三排字母,而不是两排。还有一种方法是:将字母两两对调顺序,亦即第个字母和第二个字母互调,第三个字母和第四个字母互调,以此类推。
历史上第一件军用密码装置——公元前五世纪的斯巴达密码棒(scytale),则采用了另一种形式的移位法。密码棒是一根木棒(如图2),缠绕上一条皮革或羊皮纸,发信人在密码棒上横向写下信息,再解下这条皮带。展开来看,皮带上的长串字母没有任何意义,借此方法即可搅乱信息的内容。有时候,信差会把它当作腰带,有字母的那一面当然向内藏,系在腰上——也算是隐匿法的一种。收信人把这条皮带缠绕在直径相同的密码棒上,就可以还原信息了。公元前四〇四年,一位遍体鳞伤的信差来到斯巴达将领利桑德(Lysander)面前,在这趟自波斯出发的艰困旅程中,只有他和四位同伴幸存。利桑德接过这位信差的腰带,缠绕到他的密码棒上,得知波斯的发纳巴祖斯(Phamabazus)准备侵袭他。多亏了密码棒,利桑德得以预先防范,从而击退了敌军。
除了移位法外,另一种方法是替代法。早在公元四世纪,婆罗门学者跋舍耶那(Vatsyayana)所写的《爱欲经》(kāma-sūtra)即曾提到用替代法加密信息,而它的方法还是得自于公元前四世纪的古文稿呢。《爱欲经》鼓励妇女学习64种技艺,如烹饪、服饰、按摩、制作香水等。此外还有一些有点儿出人意料的技艺,像是魔术、下棋、书籍装帧与木工。第45项则是秘密书信(mlecchita-vikalpa),理由是可帮助妇女隐瞒她们的暧昧关系。其中一项建议方法是:先将字母随意配对,再用配对字母取代信息里的原始字母。如果将这方法套用到罗马字母,我们可以为字母进行如下的配对:
A D H I K M O R S U W Y Z
? ? ? ? ? ? ? ? ? ? ? ? ?
V X B G J C Q L N E F P T
这么一来,发信人可以把meet at midnight (子夜见面)改写成CUUZ VZ CGXSGIBZ。这种秘密书写即称为替代式密码法(substitution cipher),因为原始信息的每个字母都用另一个字母取代,可说是跟移位式密码法(transposition cipher)互补的一种方法。移位法是字母的内涵不变,位置变;替代法则是字母的内涵变了,位置不变。
替代式密码法在军事上的应用首度记载于凯撒大帝(Julius Caesar) 的《高卢战纪》(Gallic Wars)。凯撒提到他如何送信给被围困许久而正考虑投降的西塞罗。他采用的替代法是用希腊字母取代罗马字母,把信息转译成敌人看不懂的符号。凯撒记述了这则讯息的戏剧性传递过程:
信差受到指示,如果无法送达,就把信绑在皮带上,随茅掷进防御阵地里去。这位高卢人怕危险不敢靠近,便依指示把茅丢掷过去。这支茅恰巧卡在楼塔上,卡了两天,都未被我军发现。直到第三天,才被一位士兵看到,拿下来交给西塞罗。他读毕之后,召集全军公开宣达,众人听罢顿时欢欣鼓舞。
凯撒使用秘密书信的次数非常频繁,瓦莱刘斯•普罗伯斯(Valerius Probus)写了一篇论文专门讨论他的密码法,可惜此书已失传。幸好,苏东尼乌斯(Suetonius)写于公元二世纪的《十二帝王传》(Lives of the Caesars)详细记载了凯撒常用的一种替代式密码法。这位罗马皇帝把信息内容的字母——改成比它后三位的字母,例如将A写成D,将B写成E。在此顺便介绍一下密码学家常用的术语:原始信息所用的字母集称为明文字母(plain alphabet),替代字母所组成的字母集则称为密码字母(cipher alphabet)。如图3,把明文字母列在密码字母上面,就可以清楚看出密码字母挪移了三位。因此,这类替代法通常被称为凯撒挪移式密码法(Caesar shift cipher)或简称凯撒密码法(Caesar cipher)。所有原始讯息字母一一由另一个字母或符号取代的替代法,都属于密码法(cipher)。
明文字母集 abcdefghijklmnopqrstuvwxyz
密码 字母集 DEFGHIJKLMNOPQRSTUVWXYZABC
明文 veni, vidI,vici
密码文 YHQL, YLGL,YLFL
图3:应用于简短信息的凯撒密码法。凯撒密码法的定义是:密码字母集相对于明文字母集挪移了一定数目的位置(在此例是挪移了三位)。密码学的惯例是:明文字母集用小写,密码字母集用大写。同样地,原始信息,亦即明文,也是用小写;加密过的信息,亦即密码文,则用大写。
虽然苏东尼乌斯只提到一种挪移了三位的凯撒密码法,这类密码法的挪移数当然并不限于一种,如果使用26个英文字母,它的挪移位数可以是1到25,而得出25种互异的密码法。此外,我们也不一定要挪移固定位数,大可随意指定明文字母与密码字母间的对应关系,如此可产生数量非常庞大的密码法。这样的对应方式超过400,000,000,000,000,000,000,000,000种,我们也就可以有相同数目的密码法。
每种密码法都可视为某种一般加密法——称为算法(algorithm)——再加上一把钥匙(key)的组合结果。钥匙是用来指定特定加密程序的演算细节。在上述例子,算法是指以密码字母集里的字母——取代明文字母集里的字母,而且密码字母集可以是明文字母集的任何一种重组结果。钥匙则定义加密过程中所用的密码字母集。我以图4说明算法和钥匙的关系。
图注:发信人透过一道加密算法来加密明文信息。算法只是加密通则,还必须选配一把钥匙,才能定义出一套特定的加密系统。把钥匙与算法一起运用到明文信息上,就会产生加密过的信息,亦即密码文。敌人或能在信息传送过程拦截下密码文,但应该无法解译出信息。相对地,知道发信人所用钥匙与算法内容的收信人就能把密码文转换回明文信息。
敌人硏究拦截下来的加密信息时,也许可以八九不离十地猜对它的算法,却很难推测出它的钥匙。例如,他们或能猜测到,明文的所有字母都根据一套特定的密码字母集——被调换了,但他们却不太可能知道对方用了哪一套密码字母集。只要发信人和收信人谨慎保密好这套密码字母集,亦即钥匙,敌人就解译不出他们拦截到的信息。钥匙的重要性远高于算法,这是密码学上颠扑不破的真理。荷兰语言学家纽文霍夫的奥古斯特•科克荷夫斯(Auguste Kerckhoffs von Nieuwenhof)—八八三年在《军事密码术》(La Cryptographie militaire)—书所述的“科克荷夫斯原则”明确道出钥匙的重要性:密码系统的安全性不在于防止敌人洞悉密码算法,钥匙的保密才是决定密码安全性的唯一关键。
除了严守钥匙不得泄漏外,安全的密码系统还必须有数量庞大的可用钥匙。像恺撒挪移式密码系统的加密强度就相当弱,因为这类系统只有25把钥匙,敌人若拦截到信息,并怀疑它用的演算法是凯撒挪移法时,只需检査25种可能性就能找出答案。可是,发信人若使用一般的替代式算法,亦即他的密码字母集可以是明文字母集的任何一种重组结果,他就有400,000,000,000,000,000,000,000,000把钥匙可以选用。图5所示即为其中一种。就算敌人拦截到这则信息,也知道他用的算法是什么,恐怕还是没有勇气执行检查所有可用钥匙的恐怖工作。即使敌方每秒可检查一种钥匙,也得花上宇宙寿命十亿倍的时间才能检查完这400,000,000,000,000,000,000,000,000种可能性,来破解这则信息。
明文字母集 abcdefghijklmnopqrstuvwxyz
密码字母集 JLPAWIQBCTRZYDSKEGFXHUONVM
明文 et t u, brute?
密码文 WX X H, LGHXW?
图5 : —般替代式算法的例子——根据钥匙,一一替换明文的字母。钥匙的内容就是这套可以是明文字母集的任一重组结果的密码字母集。
这类密码的妙处就是:执行容易,安全性却很高。对发信人而言,指定钥匙,亦即定出26个字母在密码字母集里的顺序,是件轻松简单的工作。对敌人而言,用所谓的暴力解法来检查所有可能性,是根本不可行的。使用此法时,钥匙的定义应该要简易,因为发信人和收信人两方都必须清楚知晓钥匙为何;钥匙愈简单,发生误会的机会就愈少。
事实上,只要收信人愿意将可用钥匙的数目略减,钥匙的定义可以更加简单。制定密码字母集时,发信人可以选用一个钥匙字(keyword)或钥匙词组(keyphrase),而不必将全部的字母随机重排。例如,选用JULIUS CAESAR当钥匙词组,然后把空格及重复的字母都去掉(变成JULISCAER)>再以这些字母当密码字母集的起始字母。接着,把字母集的其他字母,依照原有顺序,接到钥匙词组字母的后面,就能造出如下的密码字母集:
明文字母集 abcdefghijklmnopqrstuvwxyz
密码字母集 JULISCAERTVWXYZBDFGHKMNOPQ
用这种方式制定出来的密码字母集的好处是,只要记住钥匙字或钥匙词组,就等于记下整套密码字母集了。这一点很重要。如果发信人必须把密码字母集记在一张纸上,敌人就有可能截获这张纸,得到钥匙,而得以阅读所有以这把钥匙加密的通讯内容。若是把钥匙默记在脑袋里,敌人得到它的机会就会小很多。用钥匙词组所能造出来的密码字母集虽然比随机产生的来得少,但数量仍旧很庞大。对敌人而言,检查所有可用钥匙词组以破解信息,仍是一件毫不可行的任务。
简易与强固的特性,让替代式密码法在秘密通讯界风光了公元一至十世纪之间的一千年。就像生物演化一样,编码者已逐步建立起一套能确保通讯安全的系统,没有必要再继续硏发了。既然没有需求,何必要进一步发明呢?重担落到尝试破解替代式密码法的解码者身上。敌方可不可能解得开加密的信息?许多古代学者相信,由于可用钥匙的数目太过庞大,替代式密码法是无法破解的。数个世纪以来,这种看法似乎始终成立。然而,解码者终究会找到一条搜寻钥匙的捷径。破解密码,不再需要数十亿年的时间,抄捷径的话,只要几分钟就可揭开信息内容了。这项突破发生于东方,而且是语言学、统计学与宗教热诚的辉煌结晶。
评论
还没有评论。