第五十三章
  旧金山港的雾是从海面上爬过来的。
  不是那种浪漫的薄纱似的雾,是沉甸甸的、带著咸腥味和柴油尾气的东西。
  它从金门大桥的桥墩之间灌进来,沿著防波堤一寸一寸地推进,吞掉货柜吊机的红色钢架,吞掉泊位上那些印著各国文字的货轮舷號,吞掉码头上零星几个穿反光背心的工人手里明灭的菸头。
  陈寅靠在一辆锈跡斑斑的福特皮卡上,看著三十七號码头最后一批夜班工人从闸口走出来。
  他们穿著沾满机油的连体工装,肩上的反光条在雾里变成一圈一圈模糊的光晕,像是被泡化了的水母。
  他从口袋里掏出一张摺叠过不知多少次的纸条,展开,借著码头上那盏唯一还亮著的钠灯看了一眼。
  纸条上只有一行字,是阿德里安用火柴头蘸著机油写在撕开的烟盒纸上的:
  “圣米格尔之星。三十七號码头。周三晚十一点装箱。”
  字跡潦草,但每一个字母都写得很大,像是怕看的人认错。
  陈寅把纸条重新叠好,放回口袋里。他的眼睛在雾里眯了一下,然后他看到了那艘船。
  巴拿马籍,船身漆成褪色的海蓝色,吃水线以下锈跡斑斑,船首的船名模糊得几乎看不清。
  它安静地靠在三十七號码头最里侧的泊位上,像一头被拴在角落里的老牛,既不显眼也不著急。码头上的人来来往往,没人多看一眼。
  但这正是问题所在。
  本书首发 101 看书网解闷好,????????????.??????超顺畅 ,提供给你无错章节,无乱序章节的阅读体验
  陈寅在这个港口观察了四天。四天里,他记住了每一班工人的换岗时间,记住了每一台龙门吊的作业周期,记住了海关巡检的巡逻路线——
  每天下午两点和晚上八点,两个人,一辆白色道奇,从不迟到。
  但“圣米格尔之星”不在任何一张公开的靠泊计划表上。
  他问过铁锤,铁锤沉默了片刻,用那种沙哑的、被香菸和威士忌浸泡过的声音说:
  “这艘船每个月来一次,每次停三天,装的货永远不一样。上个月是四十枝m4卡宾枪,上上个月是两货柜冷冻血浆。再往前——”
  铁锤顿了顿,“再往前,我不知道。我的人查不到那个时间段的记录。”
  “为什么查不到?”
  “因为赫尔曼港口服务公司的系统被格式化了。三年前的事。火灾。”
  火灾。又是火灾。
  陈寅把目光从船身上收回来,转身朝码头的监控死角走去。
  他走得不快,步伐均匀,每一步落地的声音都和码头上那些被风吹动的缆绳拍打声混在一起。他穿著一件深灰色的连帽卫衣,帽子没戴,但卫衣的顏色在雾里几乎和水泥地面融为一体。
  他的呼吸平稳得像一台刚出厂的三菱电机。
  他的手揣在裤兜里,右手掌心贴著一把没有任何编號的格洛克19,枪身冰凉,握把被他的手温捂得微微发潮。
  四十分钟前。
  德雷克把那台烧焦的笔记本电脑放在据点厨房的操作台上时,脸上的表情並不陌生。
  陈寅见过这种表情——两个月前,在布莱顿公寓那间四十平米的小客厅里,德雷克第一次出现时,就是这副模样。
  眼镜片上全是雨水,衬衫领口解开两颗扣子,领带歪在一边,整个人像是被人从水里捞起来又拧了一把。
  但这一次他旁边那个女人没有来。
  取而代之的是一个陈寅从未见过的年轻女孩。
  她坐在餐桌的角落里,双手捧著一杯罗德尼倒的热可可,手指纤细白净,指甲修剪得很短,边缘有些参差不齐,像是被自己咬断的。
  她穿著深灰色粗呢大衣,里面是暗绿色高领毛衣,头髮束成一根粗辫子搭在左肩。
  她的眼睛微微红肿,像在某个地方哭过很久,但此刻她已经没在哭了。
  她把热可可杯放下,手指在杯子上反覆摩挲著杯耳,然后抬起头,看著陈寅。
  “我叫野间。野间惠。”
  她的英语带著轻微的口音,但咬字极清晰。陈寅注意到她说自己名字的时候,用的是日语的发音——noma megumi,而不是任何英文名字。
  这让她在这个塞满旧家具和机油气味的厨房里,显出一种格格不入的乾净。
  “惠的父亲是野间诚一教授,东京大学分子生物学实验室的前主任。”
  德雷克把电脑往前推了一下,往陈寅面前推了半个手掌的距离,“也是卡拉汉研究所的副总裁,卡拉汉本人在亚洲地区的首席研发合伙人。”
  “前合伙人。”
  野间惠纠正道,她的声音很低,但语气篤定。
  “我爸三个月前和卡拉汉彻底决裂,离职文件上有法律效力的那种决裂。一周之后他发生车祸,当场死亡。
  警方结论是酒驾,但他已经十五年没碰过酒了,从他查出胃病的那一年开始就不再碰。”
  陈寅没有接话,目光从德雷克脸上扫过,落在对面那个年轻女孩握杯子的手指上。
  十指都在微微颤动。不是因为夜里冷,是某种反覆压了太久的內容,正在往外面渗。
  “林薇博士呢?”陈寅收回目光,看著德雷克。
  德雷克和林薇上次一起来据点时,林薇还坐在同一把摺叠椅上,用那双和陈寅瞳孔顏色几乎一模一样的深棕色眼睛看著他,一字一顿地告诉他:
  普罗米修斯只是车祸,不是暗杀,是车祸;奥斯汀实验室的火只是意外,还没来得及查清楚。但这一次她没有来,只有德雷克一个人带著一个新出现的角色。
  “她在奥斯汀。”
  德雷克的声音有些发乾:
  “上周三,奥斯汀那个临时实验室被人从內部黑了一次——所有备份数据在凌晨被同步刪除,伺服器管理日誌上显示的是一个根本不存在的管理员权限。
  唯一能解释的是有人拿到了我们在火灾前没来得及关停的远程埠,绕过双重防火墙打进去的。”
  野间惠几乎同时开口,两个人在说同一件事的不同半段。
  “同一周,旧金山港那边有人调高了斯巴达人的加密强度,把一个老掉牙的埠映射进了奥可多残存的节点里。
  动作极快,前后不超过三天。我爸之前说过一句奇怪的话——『关掉斯巴达人的钥匙不是密码,是人』。”
  陈寅把目光锁在她脸上。“『斯巴达人』是什么?”
  “普罗米修斯的前置序列號。但这个序列號本身也是活的——它可以自动获取推送对象的地理位置和生物特徵信號。我爸说它就像一个沉默的管家,什么都不说,但该推的每一条都精准推送到位。”
  她停顿了一下,指尖在杯耳上轻轻敲动,缓慢、无规律,像摩尔斯电码的残片。
  “如果斯巴达人没有密码——”她说,“那就有人在。一直有人在看这些推送。”
  一个念头在陈寅脑子里成型。他忽然看向德雷克。“那台电脑的加密算法跟你们备份伺服器上用的是一套吗?”
  “是。一模一样的协议层,同一组根密钥。”德雷克从湿漉漉的背包里取出那台烧焦的笔记本,用手指点了一下外壳底部那道已经融化大半的铭牌——octo-lab-0421,hardware
  id: 7f-3a-9c,mfg date: 2023-08-14。
  “怎么解?”
  “暴力破解要六十年。侧信道攻击,我们试过,不行。”
  德雷克摘下眼镜,用衬衫下摆擦著镜片上的水雾,动作里透出一种明显的、掩饰不了的疲惫。
  野间惠忽然开口。
  “我爸的遗嘱里提到过一个名字。”
  她把热可可杯放在桌上,从口袋里摸出一张对摺的纸条,递给陈寅。
  “他在卡拉汉研究所的最后一个项目代號是『babel』,实验笔记里反覆引述过一篇论文。
  论文的作者,是斯坦福物理系的詹姆斯·麦考密克——一篇关於蛋白质摺叠能量景观的量子模擬。”
  厨房里没有人说话。直到阿德里安嘴里没点的烟掉在脚边,他弯腰去捡的时候带翻了柜子上的不锈钢盆,当的一声响如同某种信號。
  陈寅拿起手机拨给克莱恩先生,那个在努埃瓦学校科学楼二楼拥有自己实验室的物理老师。
  电话响了很久,久到即將自动掛断,克莱恩的声音才从听筒那头传来,带著睡眠被打断的沙哑。
  “陈寅?现在几——你知道几点吗?”
  “两点四十。克莱恩先生,您上次说麦考密克教授要见我,是因为我在课堂上解过一道量子加密题。”
  “对。”克莱恩声音里的睡意在迅速消退,作为一个好老师对学生的关注正在取代被打断的睡眠,“是一道斯坦福和mit联合发布的难题,你在白板上——”
  “那道题是谁擬的?”陈寅打断了他。
  听筒那头沉默了。
  沉默持续的时间很短,也许只有两秒,但那两秒里陈寅听到了一个细节——克莱恩按在手机话筒上的拇指微微滑了一下,发出一声极细的摩擦声,像一根琴弦被轻轻拨动。
  “麦考密克教授。他亲自擬的。还有你为什么会问——”
  “麦考密克教授认识维克多·卡拉汉吗?”
  窗外的风忽然大了起来,把院子里那棵柠檬树的枝条拍在窗玻璃上,发出密集而尖锐的声响。
  “……认识。十二年前,他们一起在波士顿——”
  陈寅没让他说完:
  “卡拉汉在旧金山港有一条船,『圣米格尔之星』。
  有人在这条船上往波士顿运『活体样本』。本周五,我和麦考密克的会面——”
  他顿了顿,压低声音。
  罗德尼停下了操作,阿德里安手里的打火机停在半空,野间惠攥著杯子,连呼吸都像被冻结了。
  “他如果真那么想见我——让他先告诉我,把『斯巴达人』的程序掛在十二年前的这篇量子模擬论文上,是谁的建议。”
  电话掛断了,厨房里只剩下冰箱压缩机低速运转的嗡嗡声和窗外柠檬树持续拍打玻璃的声音。
  野间惠是第一个打破沉默的人。
  她把热可可杯放回桌上,站起来,看著陈寅。
  “我不懂枪。也不懂物理。我爸说『关掉斯巴达人的钥匙不是密码,是人』。
  这句话他跟我说过两次。第一次是在车祸前一个月,他从波士顿回来之后;
  第二次是在他走的前一天晚上。他从来不跟我说工作上的事,但这句话他说了两遍。”
  “所以你来加州是因为——”
  “他很害怕。我爸那几天总觉得有人在他住所外面蹲守。
  他说——『他们怕的不是我,是怕我告诉你们』。可我不知道『你们』是谁。”
  她看著陈寅,那双发红的眼睛没有迴避他的目光:
  “我不知道你们的计划。我也不需要知道。我只做一件事:
  我爸遗嘱里有加密文件,密钥由我倒背如流。
  我愿意把它拿出来。只要你能让我亲眼看到卡拉汉被抓。”
  她说完这些话,没有坐下,只是站在那儿,双手搭在身前,像一个站在甲板上准备迎接风浪的人。
  雨声顺著门缝灌进来,敲在她脚边的水泥地上,啪啪作响。
  陈寅转过身看向窗外。雨终於停了,港口方向的天空裂开了一道极细的橙色缝隙。他把车门拉开,手机收进口袋里。
  “港口。三十七號泊位。『圣米格尔之星』的装箱时间是今晚,十一点。阿德里安,你去通知铁锤,让他的人在码头外围盯著海关巡检,隨时通报。
  肖恩,把车开到三十七號闸口后面的货柜堆放区。罗德尼——留在据点,继续解析那根內存条,如果那组密文能再往下脱两层壳,不管什么时候,立刻打给我。”
  他把那台烧焦的笔记本合上,推回德雷克面前。
  然后他看著野间惠。凌晨的光线从窗玻璃上经过的时候还带著湿气,落在这个女孩的脸上,把她眼眶周围细密的血丝照得清清楚楚。
  “野间,”他说,“你爸留给你的那份加密文件,密钥你倒背如流。我需要你现在就去找罗德尼,把密钥给他。
  如果我们能在今晚之前打开那份文件,也许你不只是在加州看一眼卡拉汉被抓。你能亲手把他钉在墙上。”
  野间惠抬起手,用手背擦了一下眼角快掉下来的东西,然后从大衣內袋掏出一个银色u盘,递给罗德尼。
  她的手指没有再发抖,那只拿著u盘的手在黎明前的昏暗里微微发光。
  “我跟你一起。”她说,“babel项目的设计组从一开始就包括麦考密克教授的量子模擬。我爸说过,这套加密算法的弱点不在算法本身。弱点在——”
  “在写算法的人。”陈寅替她说完了。
  她点了点头。
  现在,他站在三十七號码头的阴影里,把那把格洛克19从裤兜里抽出来,检查了一下弹匣。
  满装,十七发。备匣三个,全部塞在卫衣內侧的胸掛织带上。
  手套是罗德尼用库存防弹纤维改的那副,掌指关节处贴有一层密织陶瓷纤维。
  他活动了一下手指,陶瓷纤维在关节处发出细微的摩擦声,像砂纸轻轻划过金属表面。
  码头上的雾越来越浓了。
  “圣米格尔之星”的甲板上亮著几盏昏黄的灯,灯光在雾里变成一团一团模糊的光晕,像是被水泡发的月亮。
  货柜吊机已经停了,吊臂悬在半空中,在风里微微晃动。
  码头上的人走得差不多了,只剩下几个穿反光背心的工人聚在闸口旁边抽菸,菸头的红点在雾中一明一暗,像某种缓慢的、无声的信號。
  陈寅从货柜堆放区侧身穿过去。这些货柜垒了四层高,正好形成一条狭窄的走廊,地面是碎石和油污,走上去发出细微的沙沙声。
  他在走廊尽头停下来,侧身靠在一个印著“cosco”字样的蓝色货柜上,朝船的方向看去。
  两个人,一个靠在舷梯上,穿著深灰色工装,腰间別著对讲机;
  另一个站在船舷边,手里端著一把雷明顿870霰弹枪,枪口朝下,但手指没有离开扳机护圈。
  两个人的站姿都是標准的安保站位——背靠光源,视线覆盖正前方一百二十度,互相能看到对方的侧脸。
  陈寅在心里给他们编號:一號,舷梯。二號,船舷。
  他退后一步,把身子完全缩进货柜走廊的阴影里,蹲下来,用手指在地上画了一张潦草的示意图——船尾、舷梯、货舱入口、两个哨位,以及他自己的位置。
  然后他掏出手机,用屏幕最低亮度给阿德里安打了一行字。
  “两个人,一个在舷梯,一个在船舷。雷明顿870。有对讲机。让肖恩在三號闸口待命,铁锤的人在港口外面。”
  阿德里安的回覆几乎是瞬间到的:“收到。铁锤说他的人在港口外已经布好,海关巡检刚过,下一次是两个小时以后。”
  陈寅把手机收起来,他还有两个小时。
  他沿著货柜走廊继续往前,走得很轻,每一步落地之前都会用脚尖先试一下脚下——碎石、油污、还是干水泥。
  他的呼吸始终平稳,心率没有超出静息心率五跳以上。但他自己的意识很清楚,这种平静不是天然的,是某种更深层的东西在起作用。
  他的大脑正在用一种自己都无法控制的方式,把周围环境的每一处细节都拉进一个精密的三维坐標网——风速、距离、光线角度、目標的体重和重心。
  他走到货柜走廊的尽头,蹲下来,拉下卫衣胸口的织带,抽出那把格洛克19,卸下消音器在掌心里转了两圈。
  他等了十秒,確认风正在往船尾方向吹,然后起身。
  舷梯上的那个人最先看到的是一个从雾里忽然浮现的黑影。
  他还没来得及开口,一道巨大的力量已经击中他的侧颈。
  不是拳头,是陈寅的掌侧,精准地切在颈动脉竇上。
  那个人眼前一黑,身体像断了线的木偶一样瘫下去,陈寅用一只胳膊勾住他的胸口,把他无声地放在舷梯下的阴影里。
  船舷上的人在听到异响的瞬间抬起了霰弹枪,但枪口只能转六十度——那边是他的同伴固定的方向。
  他往舷梯那边迈出一步,然后看到同伴歪倒在梯下。
  第二步还没迈出去,一个巨大的衝击力已经正中他的后背,將他整个人砸在钢铁甲板上。雷明顿还抓在手里,但没有再次抬起来。
  陈寅把霰弹枪从他手里掰出来,卸掉弹仓放在角落里,然后把两个人拖进货舱入口后面的维修通道。
  他用扎带把他们的手腕和脚腕捆在一起,又用他们自己的工装布条堵住嘴巴。
  做完这一切,他站在甲板上顺著夜风的方向听了几秒。
  没有无线电呼叫,没有脚步声,货舱深处传出的只有乾冰机恆定的嗡鸣和冷冻压缩机间歇性起停的咔嗒声。船还在沉睡。
  货舱入口是一扇巨大的防水钢门,门没有锁,只是虚掩著,门缝里透出冰冷的白光。
  他侧身滑进去,门在他身后无声地合上。
  货舱內部比船的外观看上去大得多。
  挑高至少有十米,头顶的工业射灯把整个空间照得通亮,货架上垒著层层叠叠的冷链货柜,箱体上全贴著不同年份、不同顏色的国际生物安全標籤。
  空气里瀰漫著一股乾燥而僵硬的冷意,还有一丝若有若无的化学气味——苯酚、或者福马林,陈寅辨认不出。
  他加快脚步,在货架之间穿行。货架上的货柜编號从h-001一直排到h-127,都是標准的赫尔曼港口服务公司序列號。
  但当陈寅走到编號h-124的货柜面前时,他停了下来。
  標籤纸不在它该在的位置,粘胶边缘轻微翘起,顏色比其他標籤新了不止一个年份。
  他把標籤揭开一角。底下露出旧標籤,標籤编號不是h打头。是b-013。
  b——babel项目储备。
  货舱深处的冷气机忽然发出一声更大的噪音。他抬脚往下走去,脚步声在货架之间迴荡成持续的金属共鸣。
  货柜货架总共有四层,每一层都贴著各个机构的研究標籤——东京大学、波士顿卡拉汉研究所、奥可多生物科技以及几个陈寅从未见过的缩写:
  g.c.,n.l.,vector-3。这些编號的顺序初看毫无规律,但当他向后退出几步看向整面货架时,它们在他的视野里自动拼接——每一排货架对应一个项目,每一个项目对应一串不断上跳的序列號。
  这里不只是堆放货物的仓库。这是一个试验品的档案室。
  他站在第四排货架尽头,面对一整个三层高的箱组。箱体上贴著的標籤全部印有同一个前缀——“babel”。
  当他走近最下层一个收件信息已被刮掉的箱体时,標籤上有一行用铅笔手写的日文小字引起了他的注意。
  “もう终わりたい”——我想结束了。
  他把箱子从货架上拉出来。没有锁,直接掀开。
  里面没有標本。没有冷冻血浆,没有动物胚胎,没有任何陈寅预想过的东西。
  只有纸——成堆的快件信封、活页夹、医院手环、贴有儿童照片的信息表、护照复印件和边检离境记录。
  每一张纸的边角都有不同顏色、不同文字的铅笔標註,绝大多数是日语。
  他拿起最上面一封信。信纸是泛黄的,摺痕很深,字跡是用铅笔写的,已经有些模糊。
  “……他说他在找人。不是找样本,是找一个十七年前离开的项目。那个项目编號是『babel-zero』。”
  一张快件回执夹在信纸內侧。回执单末尾是一个手写签名——“野间诚一”。
  外面忽然传来脚步声。
  陈寅把所有东西全部装进背包,侧身靠在货架的阴影里,在枪口指向舱门的同一刻,脚步声突然停住,隨即迅速往船尾方向退去。
  他心里默默数了十秒,走到舱门边,拉开门。舷梯上没有人。雾终於散了,旧金山港的夜空露出一小片冷白色的星光。他穿过码头,穿过货柜堆放区,翻过防波堤,落在堤外那片废弃的碎石滩上。
  然后他拿出手机,拨號。
  “阿德里安,来接我。我有东西要给你们看。”