第 30 章 31-32
墨在自己高中时代,玩过曾经流行一时的推理游戏,因此知道七八种加密方式——他写给神殿的是其中两种:棋盘密码和凯撒(Caesar)密码。
棋盘密码,顾名思义,就是在棋盘格子里填上字母,然后将文件中每个字母用纵横格子的编号取代。而凯撒密码则是约定将文件的字母用字母表中另一个代替。
在以色列人还神秘兮兮地用明文滚筒密码的时期(就是将腰带一圈圈裹在一根规定粗细的棍子上,横向写字,解开腰带后只能看到凌乱的字母,除非收信人用同样粗细的棍子缠上去才能阅读),在埃及人还惨无人道地往奴隶头顶刺青,并等头发长出来后派他出去的时期,孙焱墨透露的这两样在他看来只是个休闲玩法的加密技术,绝对含金量破表。
然而,孙焱墨在让商船捎去给帕里斯的密信中推荐了第三套密码:维吉尼亚(Vigenere)。
他是存心要折腾那些折腾了自己很久的史官,毕竟没有电子游戏的古希腊,娱乐项目实在太少,空闲时间的确很长,长到了他就是浪费个两天时间慢慢解密读信,也不要史官过好日子……
有同样心思的帕里斯显然很配合。
(你们两个都是身边围绕着黑色怨念对着神庙和史官扮鬼的类型。)
维吉尼亚密码是从凯撒密码演变来的——但是更阴险。我们举个例子(为了不造成晋江乱码,用英语代替一下希腊语):
假定帕里斯在兴奋中想要写给孙焱墨的原文,是:Historiographersarefool.(史官们是笨蛋。)
如果约定的替换方式为字母表顺次移后三位,就变成了klvwrulrjudskhuvduhirro.
这是最普通的凯撒密码加密后的形式,不知道对应的话,想破解只需要顺字母表最多实验26次。
而维吉尼亚密码……用了一样东西……叫密钥……
(相信孙焱墨不是故意要用这个名称和“蜜月”读音类似的东西的,这真是个巧合。)
在这种情况下,我们……假定密钥单词是love的话,将它反复写在原文每个字母下,就成了:
Historiographersarefool.
Lovelovelovelovelovelovelovelovelove……
(喂,其实你不用写超掉的,一一对应就行了……)
然后按照孙焱墨动用贿赂买通商人绕过史官交给帕里斯的信中说的方式,帕里斯拿出26个字母的字母表,开始做替换字母的准备。
每一个密钥单词的字母都要对应一套类似于凯撒密码的替换法,帕里斯没有孙焱墨聪明,搞复杂了他也不知道如何将加密方式传递给对方,于是帕里斯决定只更改移位替换的位数,L对应的字母往后1位,O对应的往后3位,V对应的往后1位,E对应的往后4位。
于是密信内容就变成了:
Iltxpujshubtihswbufjprm.
由于帕里斯和孙焱墨没有预约密钥,帕里斯就必须想个简单又不易被发现的方案提示孙焱墨——这个简单,他只需要在这一串看起来是乱码的东西后面加上4131evol,孙焱墨自然会心知肚明地将它反过来当做密钥用。
就让神庙史官们个个都去抓耳挠腮吧。