期间,莫之鸣又破解了不少离奇的案子,但是关于Cicada3301的谜就像他的一个心头刺,将他刺痛了一遍又一遍。这个谜和他的关系千丝万缕,是命中注定而不是萍水相逢。
机会终于又来了,2013年,在4chan上匿名者发布了The Second Chance。
“怎么判定这个匿名者就是原来那个匿名者?”莫之鸣向苏媚红讨教。
“2012年,在subreddit的另一张图片Welcome中3301已经给出了解决方案。你还记得吗?
‘从现在起,我们会用这个钥匙给所有信息附上密码标识。
在MIT密匙服务器(mit keyservers)上取得它。密匙ID 7A35090F,与a2e7j6ic78h0j中一致。
耐心是项美德。
好运。3301’”苏媚红说,“实际上,在每条3301的信息中都包含有GPG标识序列。利用GnuPG就能够对每条信息进行检验,只有密匙ID一致的信息才能代表确实来自3301。一旦有了GPG标识,寻找答案的每一个过程就会更加明晰。同时是否有GPG标识也是判断解谜思路是否走对的关键。”
2013年1月5日,距离2012年谜题公布恰好366天,Cicada 3301如约而至。4chan上再次出现了同样风格的有3301PGP标志的黑底白字图片:
“你好,又见面了。我们对高智商个体的搜索将会继续。
第一个线索隐藏在这张图片中。
找到它,它将会带你走上发现我们的道路。
我们期待与通过所有谜题的少数见面。
好运
3301”
这一次,莫之鸣轻车熟路,同样用outguess解密了隐藏信息:
“再次欢迎。
这是一段书码。找到书,解开谜语:
此书的学问被视为禁忌,
一头野兽曾被其诱惑;
阅读一次后将其销毁
否则将不得安宁。
I:1:6? I:2:15? I:3:26? I:5:4? I:6:15? I:10:26? I:14:136? I:15:68? I:16:42? I:18:17 I:19:14? I:20:58? I:21:10? I:22:8? I:23:6? I:25:17? I:26:33? I:27:30? I:46:32? I:47:53? I:49:209? I:50:10? I:51:115? I:52:39? I:53:4? I:62:43? I:63:8? III:19:84? III:20:10? III:21:11? III:22:3? III:23:58? 5? I:1:3? I:2:15? I:3:6? I:14:17? I:30:68? I:60:11? II:49:84? II:50:50? II:64:104? II:76:3? II:76:3? 0 ? I:60:11
好运
3301”
莫之鸣搜索了开篇的诗句,来源于一本名为《Liber AL vel Legis》(意为“律法之书”)的书。该书的作者阿莱斯特·克劳利声称被一位名叫艾华斯(Aiwass)的超自然实体所诱惑写下了这本书。
“这本律法之书”诫看过这本书的人应该要忘记书中的内容,才能够真正自由地行使自己的意志。”莫之鸣对苏媚红说,“怎么有点张无忌学武功的感觉?”
“克劳利在生前一直臭名昭著,他被大众媒体抨击为‘世界上最邪恶的人’和一名撒旦主义者,因此这本书被视为‘禁忌’也不足为奇了。”苏媚红说。
“迷语中野兽(Beast)的来源则与《启示录》有关,克劳利在埃及曾将博物馆中的一块石碑宣称为昭示之碑,石碑的编号是666,在《启示录》中代表着兽的印记。”莫之鸣说。
莫之鸣用那串数字在《律法之书》中依样画葫芦,成功破解出了书码,线索指向一份来自dropbox的ISO文件。这份文件可以用虚拟光驱打开。打开后,出现了一个四翼蝉的标志。
紧接着从小到大,依次不断跳出质数,值得注意,在1033和3301这两个质数跳出后有2秒的停顿。
整个质数序列进行到3301后结束,屏幕上出现了熟悉的3301风格的线索提示:
“@1231507051321
钥匙就在你身边。
好运。
3301”
除了这一段神秘的信息外,莫之鸣把疑点投向了ISO文件本身。以压缩包的形式打开后会发现其中一共有 boot、 audio 、data三个文件夹。boot文件夹中的是启动程序,而在audio文件夹里有一个名为761的mp3文件(761也是个质数)。在文件的简介中显示这首歌曲名为“The Instar Emergence龄期迫捷”,创作者也是3301。
“Instar意为昆虫的龄期,整首歌名便暗指‘蝉’即将蜕去外皮并破土而出。”莫之鸣对苏媚红说,“怎么有种十年不鸣,一鸣惊人的感觉?”
“你的感觉是对的。”苏媚红语焉不详地说。
莫之鸣怀疑她已经进入了3301的核心团队了。
莫之鸣将这首曲子的十六进制转储(hexdump)中找到并翻译出了一段信息:
“寓言 1,595,277,641
像是龄期(Instar),直通向地表
我们必须蜕去身外之物;
找到其中的神圣(Divinity)并脱壳而出。”
除此之外,在data文件夹中包含三个文件:“_560.00、 560.13、560.17”,这三个文件都没有显示文件类型,其中的信息似乎是完全随机的字符。
莫之鸣在这里陷入了混沌状态,整日整夜,却没有丝毫进展。
“你看推特了吗?”苏媚红给了好心建议。
原来她在推特(Twitter)上发现了一个名为“1231507051321”的用户(不用说,这肯定是个质数,这个号码很可能是3301的小号。而推特包括微博的用户提及某人都要用到“@”,更奇怪的是,该用户在第一份ISO文件被下载后不久注册,而且关注人数为零。
该用户在推特上发表了一堆看似乱码的内容。?
莫之鸣通过玛雅二十进制,举一反三,很快计算出,推特上的每条信息都由一段十六进制的开头和65个字节的编码组成。
3301没有故弄玄虚,反而是为了方便猜谜者,因为如果所有内容以二进制发表,在传递等量信息的前提下,内容则会比现在多出四倍。
然而在将十六进制码转换为二进制后,包括莫之鸣在内的解谜者们发现其内容还是不可读的乱码。很多人止步于此,但在苏媚红的再次帮助下,看似不可能解开的谜题再次被破解了。
“老莫,你知道XOR(异或)吗?”苏媚红问。
“亦或?”
“异或和‘与’、‘或’一样,属于逻辑运算中的基本概念。举例,当我们手里有这样两条信息:0010 、1010 ,1100、 0010,‘与’(AND)处理的结果:0000 0010,‘或’(OR)处理的结果:1110、 1010,‘异或’(XOR)处理的结果:1110、 1000。”
在苏媚红的提醒下,莫之鸣用XOR的方式将Twitter用户发表的内容和前面761.mp3文件中的十六进制转储的原始信息进行处理,最终的结果是一份以“ff d8”开头的jpg文件。
值得一提的是,3301的推特账号发布第一条线索内容的时间是1月6日,之后每隔4到5分钟发布下一条内容,直到两天以后3301才将所有内容发布完毕。理论上解谜者只有等到所有信息发布完毕才能得到完整的jpg图片,但是在这次,有高手甚至摆脱了3301的魔力节奏,提早找到了推特用户发送十六进制信息的规律,在信息发布完毕之前就已经逆向破解并提早得到了完整文件。
破译后是一张“Gematria Primus”(最初字母表)的图片,若干个如尼文(Runes)的字母表。字母表有三列,分别是RUNE字符、LETTER字母、VALUE值。每一个字符都是真实存在的如尼文字符,同时值所代表的数字恰好是前29个质数。
既然找到图了,那么旧技重施,要用老家伙outguess出场效力了,但出人意料的是,这次图片打开后的文本消息有完整的PGP起始和终止标识,然而本该嵌入下一个谜语的位置却是空白的!
“为什么是空白的?”莫之鸣傻眼了。
本来无一物?但很快他就明白了。他也发了一个空白的对话给苏媚红。
不知道亲爱的读者们,你们收到过空白的对话框吗?
实际上当然不是空白的,你可以按一下空格键,就可以发出空白对话框了。
果然,一叶障目,这个看似空白的图片包含了若干Tab键与空格的组合,莫之鸣把这段看不见的信息转换为二进制,再转换为ASCII系统,最终找到了加密的信息:
“请到emiwp4muu2ktwknf.onion
我们会在那等候。
好运
3301”
莫之鸣用TOR进入了这个暗网的洋葱网站,看到了一段乱码,莫之鸣尝试了多个网页浏览器都没有用。他都快崩溃了,突然很意外从玛雅语的0是一个SHELL贝壳的联想,发现了网页乱码里有个可用于交互的shell,莫之鸣向其中输入“hello”,得到了一段隐藏信息。转化为可读文本,略去GPG标识内容如下:
“非常好。
直至目前你都做的不错。
xsxnaksict6egxkq.onion
好运。
3301”
其中有第二个洋葱网址。莫之鸣顺藤摸瓜,页面上只有一句话:
“耐心是项美德。”
在焦急等待中,也有其他解谜者在shell中输入千奇百怪的信息,收获不一。比如当解谜者往shell中输入“hint”或“clue”时,一条新的信息出现了,将其与DATA文件夹中的_560.00文件进行XOR能将其转化成可读文本:
“只见树木就见不到森林。
好运。
3301”
不久后网站重新刷新,给守株待兔的莫之鸣等人一个新的谜语:
“你已经得到了前进所需要的一切。
有时要做的只是轻叩天空并聆听回声。
好运。”
“这段谜语是什么意思?”苏媚红也一直在持续关注,希望莫之鸣能尽快破冰。
“这是一个双关语。轻叩天空在暗示解谜者ping该网站的IP地址,得到的回声即回复的数据包,能够合并成下面这一段信息(PGP标识已省略):
“干得好。 你走了很远。
pklmx2eeh6fjt7zf.onion
好运。
3301”
莫之鸣进入了第三个暗网网址,历史重复了,出现了一个倒计时,幕后者要求解谜者“待命并等待坐标”。
不久,倒计时结束,七张印有Cicada的线索被贴在全球不同国家和地区的电线杆上,每张海报包含了一段电话号码和两个字母。
这一次,莫之鸣亲自飞到了日本冲绳,找到了新的海报写着:+16265861033 ACESS YF。
苏媚红很义气,特地飞到俄罗斯莫斯科,她找到的是:+19282373301。ACESS CR。其他的地标还有美国俄勒冈州波特兰+14249991033,ACESS GH等。
莫之鸣拨打海报上的电话,听到了一段自动录音,要求输入一段数字。他很快意识到他们要将海报上的字母转化为数字,而转化方法就是前面解开的如尼文字母表。
莫之鸣是在冲绳,ACESS是YF。对照如尼表是1032.输入后,莫之鸣得到一段信息(要注意每个地点取得的信息都是不同的):
Dataset:13
Offset:12821
Data:28C07E1B102D4D5C4C1A376E064477E1416FCC94928765
通过Dataset的提示,在ISO的DATA中找到一份名为560.13的文件,与Data字符串XOR后顺利得到了一串地址(同样,每个地点所取得onion地址也是不同的):
gbyh7znm6c7ezsmr.onion
用TOR进入洋葱网址后,包括莫之鸣在内的解谜者们各自收到了一份SSSS码(Shamir's Secret Sharing Scheme)。
“这次果然升级了,都用到SSSS了。”苏媚红摩拳擦掌,似乎还想再玩一遍,“SSSS是一种特殊的信息加密方式,Wiki有个生动的比喻,SSSS就像是哈利·波特中的灵魂碎片。这种加密能够让某人分享一段信息给一定数目的人群,每个人收到的会是这段信息的一个加密片段,而只有在所有片段合并后才能得到原本的信息。”
“去你的哈利波特,这不就是中国古代的虎符吗?”莫之鸣说。
“值得一提的是,这种加密技术的发明者是色列密码学家阿迪·沙米尔(Adi Shamir),也是之前的RSA加密算法的发明者。”苏媚红笑着说。“SSSS的运作方式如下,当输入一段信息(例如一串字母)后,会有两个可调节参数,股数(share)n和阈值(threshold)t?,例:
my secret root password
当t=3,n=5时,就会分成下面几段:
1-1c41ef496eccfbeba439714085df8437236298da8dd824
2-fbc74a03a50e14ab406c225afb5f45c40ae11976d2b665
3-fa1c3a9c6df8af0779c36de6c33f6e36e989d0e0b91309
4-468de7d6eb36674c9cf008c8e8fc8c566537ad6301eb9e
5-4756974923c0dce0a55f4774d09ca7a4865f64f56a4ee0
股数即是分出的信息片段总数,而阈值则代表解开原始信息所需最低的片段数量。所以,假设3301将上面这段信息分成了五部分并发送给了五个人,但由于阈值=3,这时只需要其中任意三人的片段就能够解开原本的信息了。”
“简单说,股数就是股东人数,阈值就是投票人数,只要投票人达到标准,就算全体通过了。”莫之鸣比喻说。
“聪明!”
而3301给出的SSSS码的阈值只有股数的一半,也就是在全部十个SSSS码中成功取得了五个后,解谜者们就能破解出信息:
p7amjopgric7dfdi.onion
这是第五个,同时也是最后一个洋葱网址。
莫之鸣进入了第五层空间,出题者要求解谜者输入邮箱地址,同时要求不准公开收到的信息。
而解谜者收到的不再是谜语,而是一份测试。测试的题目共有两种类型,选择题和问答题。
测试的方式和大多数人格测试题类似(只是问题古怪得多),选择题的选项都是相同的,共有八个:对、错、不确定、无意义、自我指认、游戏规则、怪圈、以上都不是。
完成测试后,莫之鸣再次收到了一封邮件,要求按照指定协议建立一个TCP服务器,并将服务器的Tor地址通过GPG加密邮件发送给对方。
邮件中同时提到截止时间为2013年2月3日,0:00 UTC,任何逾期的邮件都将被忽略。
而直到两个星期后,TCP服务器终于被ping。
很奇怪的是,这一次的招募,并没有一个SAY GOODBYE的公告。
没有人知道后来发生了什么。
当苏媚红亲自从国外飞来,出现在莫之鸣的侦探社里,关心地问莫之鸣通过了测试没有,莫之鸣没有回答,却说了一个故事。
“两个人站在湖边。一个说:那水中的倒影真是惹人喜爱。另一人说:我没有看到什么倒影,这不过是鱼、植物和石头在水中的迷人混合。你觉得谁在说谎?”
苏媚红无法回答。
她久久地看着莫之鸣,觉得他好像水里的一个倒影,那么清晰,又那么遥远。