单纯的单套字母替代式密码法为秘密通讯提供了数世纪的安全保障后,频率分析学一连串的发展,先是在阿拉伯世界,然后在欧洲,摧毁了它的安全度。苏格兰玛丽女王悲惨的处决,很戏剧性地证明了单套字母替代式密码法的弱点。很明显地,这场编码者和译码者的战役,译码者略胜一筹。每个发送密码的人事先都必须有心理准备,敌方的解码专家很可能拦截并破解他们最重要的秘密。
重担显然又落在编码者身上。他们必须编制一套更强、可以难倒译码者的新密码系统。这样的密码直到16世纪末才出现,可是它的起源可以追溯到15世纪的佛罗伦萨才子里昂·巴提斯塔·阿尔伯蒂(Leon Battista Alberti)。出生于1404年的阿尔伯蒂是文艺复兴的重要人物之一。他既是画家、作曲家、诗人、哲学家,也是第一篇科学性分析透视法的论文、探讨家蝇的论文以及给爱犬的祭文的作者。他最著名的身份大概是建筑师——罗马特雷维喷泉 (Trevi Fountain )的原始设计者,著有第一部印刷出版的建筑论著《论建筑》( De re aedificatoria ),此书是建筑设计从哥德风格一变而成文艺复兴风格的催化剂。
在1460年间,阿尔伯蒂在梵蒂冈的庭院游荡时,碰到他的朋友莱奥纳多·达托(Leonardo Dato),教皇的书记官。达托跟他聊起密码术的一些细节。这段闲聊促使阿尔伯蒂以此为题写了一篇论文,勾勒出一种他认为的新密码法。在当时,所有替代式密码法在为一封信函加密时都只用到一套密码字母。阿尔伯蒂却建议使用两套,甚至更多套密码字母,在加密过程中交替使用,以混淆译码者的分析。
例如,我们可以交替使用上面两套密码字母来加密信息。假设要将hello加密,我们先用第一套密码字母来加密第一个字母,所以h变成A。加密第二个字母时,则改用第二套密码字母,所以e变成F。加密第三个字母时,又回到第一套密码字母,加密第四个字母时,又再取用第二套密码字母。也就是说,第一个I被加密为P,第二个I却被加密为A。最后一个字母O则又根据第一套密码字母加密为D。最后得到的密码文是AFPAD。阿尔伯蒂系统最主要的优点是,明文里相同的字母可能会被转成不同的密码,如hello的两个I就被加密成不同的字母。另一方面,在密码文重复出现的A也各代表明文里不一样的字母,先是h,再是I。
阿尔伯蒂虽然想出加密法一千多年来最重大的突破,却没有把这个概念发展成一套完整具体的加密系统。这项任务落在之后的几位学者身上。第一位是德国的约翰尼斯·特里特米乌斯(Johannes Trithemius),一位生于1462年的修道院院长;再来是乔凡尼·波塔,生于1535年的意大利科学家;最后是布莱斯·德·维吉尼亚(Blaise de Vigenère),生于1523年的法国外交官。维吉尼亚26岁时被派去罗马担任两年的外交官,因而读到阿尔伯蒂、特里特米乌斯和波塔的相关著作。刚开始,他对密码术的兴趣纯为外交工作上的需要。到了39岁时,维吉尼亚认为自己积蓄的钱足以支持他放弃工作,专注于研究生涯了。此时他才仔细审视阿尔伯蒂、特里特米乌斯和波塔的构想,将它们发展成一套既完整又强大的新密码系统。
图11:布莱斯·德·维吉尼亚
虽然阿尔伯蒂、特里特米乌斯和波塔都有极重要的贡献,这套密码系统仍被称为维吉尼亚密码法(Vigenère cypher),以彰显维吉尼亚将它发展成形的功劳。维吉尼亚密码法的力量源于它使用的不仅是一套,而是26套密码字母来加密信息。它加密的第一道步骤是画出如表3的维吉尼亚方格:最上面一行是明文字母,下面紧接着26套密码字母,每套字母都是将它前面那套字母挪移一位而成的。如此,密码的第一行是移了一位的恺撒挪移式密码字母,亦即可用来执行每个明文字母都由在它后一位字母取代的恺撒式密码法的密码字母集。同理,第二行是移了两位的恺撒式密码字母集,依此类推。方格最上面一行的小写字母是明文字母。你可以用这26套密码字母中的任何一套来进行加密。例如,若使用2号密码字母,字母a就会被加密成C;若用12号密码字母,a就会加密成M。
发信人若只用其中一套密码字母来加密整则信息,就是一个单纯的恺撒式密码法,这是非常弱的密码,敌方的拦截者很容易就能破解。维吉尼亚密码法却是分别使用维吉尼亚方格里不同列的密码字母来加密信息的各个字母。换句话说,发信人加密第一个字母时可以使用第5行的字母集,第二个字母则用第14行,第三个字母则用第21行,以此类推。解译信息时,收信人必须知道发信人使用维吉尼亚方格的哪一行字母集加密哪一个字母,所以双方必须协议出一套切换所用字母集的系统。这可以借由钥匙单词来达成。我们且以WHITE这个钥匙单词来加密divert troops to east ridge(部队改赴东岭)这则简短的信息,以示范钥匙单词如何用于维吉尼亚密码法。首先把这个钥匙单词拼写在信息的上方,一再重复,直到信息的所有字母都一一对应到钥匙单词的字母。再以如下的方式产生密码文:加密第一个字母d时,我们看到它上方的钥匙字母是W,就去维吉尼亚方格找出以W起头的那一行。第22行以W开头,我们就在这一行找明文字母d的替代字母。以d开头的直栏和以W起始的横行在Z交会,所以d在密码文就是以Z代替。
表3:维吉尼亚方格
重复上面的程序,加密第二个字母。i上方的钥匙字母是H,所以用维吉尼亚方格的H行(第7行)来加密这个字母。以i开头的直栏和以H起始的横行在P交会,所以i在密码文是以P代替。钥匙单词的每一个字母都对应到维吉尼亚方格的某一行密码字母,这个钥匙单词有五个字母,发信人就循环使用五行维吉尼亚方格的密码字母来加密信息。信息的第五个字母是根据钥匙单词的第五个字母E来加密,但在加密信息的第六个字母时,则回到钥匙单词的第一个字母。使用更长的钥匙单词或钥匙词组会让加密过程中用到更多列密码字母,从而增加密码的复杂度。表4是标示出钥匙字WHITE所指定的五行密码字母的维吉尼亚方格。
维吉尼亚密码的最大优点是,第一章所介绍的频率分析法无法攻破它。例如,当译码者使用频率分析法解译密码文时,通常会先找出密码文里最常出现的字母(在此例是Z),然后假设它就是英文最常用字母e的替身。然而字母Z在此例分别代表了三个不同的字母d、r、s,而非e。这当然会让解码者摸不出头绪。一个在密码文出现很多次的字母可以代表数个不同的明文字母,这让译码者面临了极其模棱两可的困境,难以找出破解密码的线索。同样造成困扰的是,一个在明文出现很多次的字母,在密码文却可能是以数个不同的字母来代替。例如troops(部队)这个词,字母oo是重复的,却被不同的字母替代,而被加密为HS。
维吉尼亚密码法不仅可抵挡频率分析法的攻击,而且密码钥匙的数量也很惊人。发信人和收信人可以协议采用字典上的任何一个单词、任何单词组合,乃至杜撰的单词。译码者无法借由试探可用钥匙来破解信息,因为数量实在太大了。
表4:标示出钥匙单词WHITE所指定的五行密码字母的维吉尼亚方格。由W、H、I、T、E所指定的这五行密码字母会在加密过程中循环使用。
维吉尼亚把他的研究成果写成《密码论》( Traité des Chiffres ),发表于1586年。也正是这一年,托马斯·菲利普破解了玛丽女王的密码。假使玛丽女王的秘书读到这篇论文,学会运用维吉尼亚密码法,菲利普势必解不开玛丽写给贝平顿的密函,她的命或许也就能保住。
这一切只是想当然罢了,维吉尼亚密码法的强度与安全保证,应该很快就会让全欧的密码秘书趋之若鹜、纷纷采用?毕竟,终于他们又有了一种安全的加密法可用,想必觉得如释重负。错了。恰巧相反,各地的密码秘书似乎都很排斥维吉尼亚密码法。这个看来毫无缺陷的系统,在接下来的两个世纪里,大受冷落。