18. 清单的最后两条

旧管道厂路在地图上的标记是一条灰线,在现实中是一条被废弃的沥青路。路面的裂缝宽得能塞进一只脚,裂缝里长出来的野草已经结了穗,在午后干燥的风里互相拍打,发出细碎的沙沙声。路两旁排列着管道厂倒闭后留下的厂房骨架——红砖墙被酸雨蚀出了蜂窝状的孔洞,屋顶的铁皮被风掀走了一半,剩下的那一半在阳光里闪着生锈的暗红色光泽。空气里有一种说不清的味道,像是旧机油和石灰粉混在一起,被太阳晒了二十年之后发酵出来的。

“就是这里。”薇拉把越野车停在一栋外墙还算完整的二层小楼前面。小楼的门牌上写着“旧管道厂路14号”,门牌下面的墙上贴着一张手写的告示——“此处非拆迁区,居民自管。任何未经居民同意进入者后果自负。”告示的纸已经发黄,边角被雨水泡得起皱,但字迹仍然清晰,每个字都带着一种南部工业走廊特有的倔强。

埃利安推开车门。脚下的沥青路面被太阳晒得微微发软,鞋底踩上去有一种轻微的黏腻感。他走到14号门前,发现门没有锁——准确地说,门锁已经被撬掉了,锁孔的位置只剩下一个黑洞洞的窟窿,门框上钉着一根铁丝,把门板和门框勉强连在一起。他敲了敲门框。

里面传来脚步声。不是成年人的脚步——太轻,太快,像是一双小号的胶鞋踩在水泥地面上。门从里面被拉开了一条缝,一只眼睛从门缝里看着他。眼睛是深褐色的,瞳孔很大,带着孩子特有的那种不闪躲也不示弱的直视。

“你找谁?”一个女孩的声音。

“米洛·阿尔瓦雷斯。”

门缝拉开了一些。女孩大概十一二岁,穿着一件大了两号的工作服改成的罩衫,袖口挽到手肘,露出两条瘦但结实的小臂。她的头发剪得很短,短到几乎能看见头皮,衬得她的眼睛和颧骨的轮廓格外鲜明。她上下打量了埃利安一眼,然后转头朝屋里喊了一声:“哥!有人找你!”

她把门完全拉开,转身消失在屋内的阴影里,像是完成了任务就不需要再多说一句话。埃利安走进门,眼睛花了几秒钟才适应屋里的昏暗。一楼是一个打通了隔墙的大通间,靠墙堆着几排从旧厂房里拆下来的铁架,铁架上摆满了各种他叫不出名字的金属零件、半拆开的机器外壳和用塑料袋分装的螺丝螺母。房间正中央是一张用旧门板搭成的工作台,台上放着一台被拆得七零八落的老式工业水泵,水泵旁边是一盏可调角度的工作灯,灯光打在台面上,把一个蹲在工作台后面的人影照出了一圈暖黄色的轮廓。

米洛·阿尔瓦雷斯站起来。

他比埃利安矮一些,瘦一些,穿着一件洗到领口发白的深绿色T恤,肩膀和手臂上的肌肉线条不是健身房里练出来的那种——是长年搬金属件、拧螺丝、在废弃工厂里翻找有用零件练出来的那种。他的脸很年轻,大概二十出头,但眼睛下面的阴影和嘴角两道还没到年龄就出现的纹路,让他看起来比实际年龄老了五岁。他看到埃利安的第一眼没有露出任何惊讶的表情,好像他一直在等这个人来,唯一的悬念只是——今天来,还是明天来。

“你把纸条上的密码解开了。”米洛说,语气是陈述句。

“薇拉·卡斯特罗的加密协议。”埃利安从口袋里掏出那张纸条,放在工作台上。“你从哪里拿到她的源代码?”

“我没有拿她的源代码。”米洛把工作台上的水泵零件推到一边,从工具盒下面抽出一台旧笔记本电脑。电脑的外壳上贴满了各种颜色的胶带,屏幕的转轴断了半边,用一根铁丝绞着固定。“我是从她三年前公开在网上的一份安全白皮书里逆向推导出来的。白皮书里写了她设计加密协议的底层逻辑,但没有公开密钥生成器的代码。我花了两年,用旧管道厂里翻出来的废弃服务器写了破解程序。不是为了破解她——是为了找到她。”

薇拉这时候刚好走到门口。她站在门框里,抱着双臂,用一种介于被冒犯和被逗乐之间的表情看着米洛。

“逆向推导一个没有公开密钥生成器的加密协议,”薇拉慢慢地说,“光是第一步就需要处理十六的十六次方种组合。你在废弃管道厂里用旧服务器跑出来的?”

“跑了十四个月。”米洛说,好像十四个月只是一段不算长的时间。“跑到第十个月的时候服务器冒烟了,我又从隔壁化工厂的废料堆里找了另一台。后来我发现不用跑完所有组合——你的协议在底层的随机数种子选择上有一个微小的偏好。你偏爱质数。这个偏好把你的密钥熵从十六的十六次方降到了十的十二次方。虽然仍然很大,但十四个月够用了。”

薇拉沉默了几秒钟。然后她放下手臂,走进房间,在工作台对面的一把旧折叠椅上坐下来。她的表情已经不是被冒犯或者被逗乐了,而是一种更复杂的、更接近尊重的东西。

“我是偏爱质数。”她说,“没人发现过。网络安全部安全审计组做了四轮压力测试,没有一组发现这个漏洞。你是第一个。”

“因为我不是网络安全部的人。”米洛说,嘴角终于出现了一点笑意——很淡,像是这个表情在他的脸上不太常住。“我是管道厂熔接工的儿子。我的本事不是在大学里学的,是在我父亲病床边学的。他躺在床上那三年,我把旧管道厂扔掉的工程手册和编程教材捡回来,一本一本地读,从认字读到能写代码。后来我发现科伦迪亚所有被淘汰的政府服务器都会流到南部工业走廊的废品回收站,我就在那些服务器上练。”

他打开笔记本电脑的盖子,屏幕亮起来,显示着一个用极简字符组成的界面——不是图形界面,是命令行。命令行上跳动着一个正在运行的程序状态条。

“我花了两年逆向薇拉的协议,是因为我想联系马格努斯·韦尔克。我知道他在国家安全部档案管理司,知道他在收集被压制的调查报告。我父亲的案子——南部工业走廊管道厂工人职业病调查报告——被他藏在档案库的某个地方。我需要知道他藏在哪里,需要他把报告给我。”

“你联系到他了吗?”埃利安问。

米洛把电脑屏幕转过来,面向埃利安。屏幕上的命令行状态下拉出了一长串通讯日志,日期从一年前开始,每隔几个月有一条。通讯日志的格式简洁到近乎寒酸——每一条只有时间、对方加密邮箱地址和极短的正文内容。

第一条:来自米洛——“我在找托马斯·阿尔瓦雷斯的调查报告。档案编号未知。如果你有线索,请联系这个地址。”

第二条:来自马格努斯——“你怎么拿到这个加密协议的?”

第三条:来自米洛——“逆向推导。花了两年。”

第四条:来自马格努斯——“下周六下午四点,西港区枫树街7号地下室。一个人来。”

之后有几条简短的通话确认。再之后是一条来自马格努斯的长消息,日期是五个月前,发件时间标注着凌晨三点二十一分。

“米洛:今天下午我和南部工业走廊劳动权益协会的退休律师谈了一次。你父亲的职业病调查报告在档案管理司的内部编号是IRC-1987-009。原件已经从正式档案系统中移除,但完整副本存放在我之前告诉过你的枫树街地下室第二个文件柜底层。我留了一份影印件,你可以随时来取。你的父亲是第十七名。他的名字没有被忘记。”

然后是一条更晚的消息,日期是一个月前,发件时间晚上十一点四十分。这条消息的语气和前面所有消息都不同——更急促,更直接,每一个字都像是抢在什么事情发生之前写下来的。

“米洛:如果你还在犹豫要不要接这份清单,不用犹豫了。我已经没有时间了。你和你父亲一样,你的第一反应不是愤怒,是修东西。他修管道,你修服务器。但有些东西不能用扳手和代码修好。清单不是用来修的,是用来传的。你懂我的意思。”

埃利安把目光从屏幕上移开,看向米洛。“你没有回复?”

“没有。”米洛合上笔记本电脑,在工作台旁边的椅子上坐下。他把手放在那台拆到一半的水泵上,手指无意识地摸着水泵叶轮上那些被铁锈和泥沙磨出来的划痕。“不是因为我犹豫。是因为我知道,不管我回复还是不回复,他都会把该做的事情做完。他是那种人——二十七年来他从来不等人回复。他只是把消息发出去,然后把该留的东西留在该留的地方,等后来的人自己去发现。他不需要你的确认,他只需要你存在。”

“但你收到了遗产通知。”埃利安说,“我在旅馆收到的纸条上,你写——‘我知道你是谁。我也收到过一封邮件。’”

米洛站起来,走到墙角的一个旧文件柜前面。文件柜的门变形了,他用膝盖顶了一下才打开。从里面拿出了一个信封,递给埃利安。信封是普通的牛皮纸信封,没有邮戳,没有寄件人地址,收件人地址写着“旧管道厂路14号,米洛·阿尔瓦雷斯”。信封没有封口。

埃利安从信封里抽出一张纸。纸上只有一段话,打印体,不是马格努斯的手写笔迹——但底端那个闭眼符号的标记,是马格努斯用钢笔亲手画上去的。

“米洛·阿尔瓦雷斯:你已被列为马格努斯·韦尔克遗产的潜在继承人之一。正式的遗愿清单已在特定继承人名下启动。如果有人来找你——如果那个正式继承人活到了能来找你的那一天——他会带着第八条清单的未完成稿。帮他写完。然后你自己决定,你愿不愿意成为第九条。”

“第九条。”埃利安重复了这个词,“他对你说第九条。那第八条是什么?”

米洛把信封翻过来。信封背面还有一行手写的字,笔迹比正面更潦草,像是事后匆忙补上去的:

“第八条的内容由正式继承人来写。如果正式继承人没有找到你,你就自己写第八条。如果正式继承人找到了你,你们两个一起写。”

房间里的空气忽然安静下来。只有远处某个废弃厂房里传来的一两声金属被风刮动的撞击声,和那盏工作灯变压器的轻微嗡鸣。薇拉从折叠椅上站起来,走到工作台前,拿起那个信封看了很久。

“他在建的不是一张名单。”薇拉说,声音很低,像是在对自己说话。“他在建一条链。每一环连到下一环,每一环都可以是最后一环,也可以不是。如果埃利安没有找到米洛,米洛就会自己成为下一环的起点。如果埃利安找到了米洛,他们就一起把下一环造好。没有中心,没有终点。任何一环断掉,剩下的环可以重新连接。”

米洛回到工作台后面,从工具盒里拿出一样东西——一个U盘,外壳是一块被切割成方形的旧电路板残片,电路板上的铜线被重新焊接过,变成一个闭眼的图案。

“这是我写的第八条清单草案。”他把U盘放在埃利安面前,“我收到那个信封之后开始写的。写了大半个月。你来之前我还在改第四条——关于如何保证下一环不被切断。我父亲活着的时候告诉我,管道厂所有最关键的阀门都装在最难修的角落里。因为容易修的地方,出了事谁都找得到。最难修的地方,出了事只有你一个人能爬进去。清单也是一样。”

埃利安拿起那个用电路板残片做成的U盘。它比他想象的要轻,边缘被仔细打磨过,不会割手。他把它和自己背包里那个刻着闭眼符号的U盘——马格努斯留给他、里面存着第八条清单开头的那一个——并排放在手心里。一个来自西港区枫树街的公寓顶层,一个来自南部工业走廊最穷的废墟。两个U盘没有任何相似之处,除了上面那个相同的符号。

“你把第八条写了什么?”埃利安问。

“等一下。”米洛说,目光越过埃利安的肩膀,看向门口。之前那个开门的女孩不知道什么时候又出现了,靠在门框上,手里拿着一个老式的无线电对讲机。对讲机上的红灯正在快速闪烁。

“哥,南边检查站的人又来了。”女孩说,声音平稳得不像是这个年龄的孩子。“三辆车。从矿渣堆的方向开过来的。应该不是来查拆迁的——他们没开拆迁队的卡车。”

米洛站起来,脸色没有变,但动作明显加快了。他走到窗边,从窗帘缝里往外看了一眼。外面的沥青路上还没有出现车灯,但远处矿渣堆方向的尘土已经扬起来了,在夕阳的光线里像一条正在接近的灰色长蛇。

“不是冲你来的。”米洛回头对埃利安说,“他们在追一个从灰石镇绕路南下的逃犯。他们已经追了三天了。你现在知道他们为什么要把灰路封住了——不是为了阻止你出境。是为了把你往南赶。”

“赶到哪里?”

“赶到旧管道厂路。”米洛拉上窗帘,从工作台下面的柜子里拿出一个早就准备好的背包,背在肩上。他的动作熟练、流畅,像是一个把逃生流程排练过很多次的人。“旧管道厂路是南部工业走廊最边缘的居民区。在这里抓人不用向市政府报备,不用通知媒体,因为官方地图上这片区域根本不存在。安全组在灰石镇设了包围圈,圈口朝南——他们不是在追你。他们是在等你到南边来。”

他把那个老式水泵的拆卸工具快速收进背包,然后把女孩拉到身边,低声说了几句话。女孩点了点头,跑上了楼。

“你妹妹?”埃利安问。

“不是。她是隔壁化工厂工人的女儿。她爸去年得了和管道厂工人一样的呼吸系统病,在床上下不了。我教她修旧电器,她帮我望风。”米洛背好背包,把笔记本电脑夹在腋下,朝后门的方向走。“你们跟我来。矿区的废弃通道入口离这里两公里。莉迪亚给的那条路没错——但它被安全组发现了。我走另一条。”

“还有另一条?”

“管道厂倒闭之前修了一条地下蒸汽管道,从旧管道厂路通向矿渣堆的南侧。管道直径一米二,人弯腰能走。后来管道塌了一段,但塌的位置我清理过。安全组不知道这条路,因为蒸汽管道从来不在市政地图上——它是工厂私有财产,地图归属权跟着管道厂一起倒闭了。”

薇拉已经把越野车的钥匙重新拿在手里。“你们走管道,我把车开到矿区入口,等你们出来。”

“不。”米洛回头看了她一眼,“车不能动。安全组在矿区周边布置了热成像无人机。任何移动的引擎热源都会被立刻锁定。你开车等于在给他们发坐标。”

薇拉把钥匙放回口袋,没有争辩。她只是在拿回钥匙的同时也把一把螺丝刀从背包侧袋里抽了出来,动作安静而自然,像是在准备拧紧一个松掉的螺丝。

米洛推开后门。后门外是一条被废铁和碎石堆出来的窄巷,巷子两侧是塌了半边的车间围墙。夕阳从围墙的缺口处斜斜地打进来,把他们四个人的影子投在地上,拉成四道长长的、不断移动的黑色线条。那个女孩不知道什么时候又出现了,跟在队伍最后面,手里拿着她哥哥给的那个无线电对讲机,耳朵上挂着一副过大了的旧耳机。

“她也跟来?”埃利安问。

“她叫索拉。”米洛说,没有回头。“索拉·维加斯。她爸现在躺在床上,和十年前我爸躺的位置一模一样。她已经收到邮件了——薇拉。马格努斯死前写好的,定时发送。发送日期是四年后。”

薇拉的脚步顿了一下。“四年后?”

“四年后,索拉就十六岁了。法定可以独立申请公民信息的年龄。”米洛的声音在窄巷里回荡得很轻,但每个字都很清楚。“马格努斯在信里告诉她,她父亲的职业病调查报告放在枫树街地下室的哪一个抽屉里。信的落款不是他的名字。是你和我。他现在还不知道我们的名字是什么——但他知道四年后会有人替他把这封信寄出去。”

窄巷的尽头是一个被铁锈覆盖的圆形井盖。井盖边缘焊着一个已经几乎锈断了的铁梯,往下一级一级地延伸进黑暗。米洛蹲下去,把井盖掀开,一股混合着水汽、铁锈和某种陈年有机物发酵气味的空气从下面涌上来。他把一个小手电筒咬在嘴里,第一个爬了下去。

索拉跟在米洛后面。埃利安跟在索拉后面。薇拉在最后面,把井盖从里面拉回原位,然后开始往下爬。金属梯在她脚下发出不堪重负的呻吟,锈渣簌簌地往下掉,落在前面埃利安的肩膀上。

黑暗吞掉了手电筒的光束。管道里的空气又闷又湿,脚底下踩着一层不知道是淤泥还是锈渣的黏滑沉积物。但米洛的脚步没有减速——他在完全黑暗的蒸汽管道里弯腰前行的速度,像是在走一条他每天都要走的路。

埃利安在黑暗里想起来一件事。他背包里现在装着两个U盘——一个来自马格努斯,一个来自米洛。两个U盘上都刻着那个闭眼符号。一个链的起点和一个链的环扣。

前方,米洛的手电筒光照亮了管道尽头堆着的几块塌落的混凝土碎块。碎块之间的缝隙被清理得刚好够一个人侧身挤过去。缝隙另一边,微弱的自然光透进来——那是废弃矿区的方向,也可能是黎明的方向。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

您的邮箱地址不会被公开。 必填项已用 * 标注