清晨六点,江城的天空还是一片灰蒙蒙的暗蓝色,路灯刚灭,环卫工的扫帚在柏油路面上刷出第一声响。老码头三号仓库里却已经灯火通明了整整一夜。
陆峥站在一张从废品站淘来的铁皮桌前,袖子卷到小臂中段,露出左前臂上一道陈年旧伤疤——那是六年前在境外追踪一名间谍时,被对方用碎玻璃划的。伤疤早已愈合,只剩一道淡白色的痕迹,但每次行动前,他都会下意识地用手指摸一下那道疤。不是迷信,是提醒——提醒自己,任何一次行动都可能留下新的伤疤,但比起让“深海”计划落入敌手,多几道疤是最便宜的代价。
桌上摊着一张江城市区的卫星地图,是马旭东从国土资源局的服务器里扒出来的民用级影像,清晰度不够高,但足以标注每个关键点位。地图上已经用红蓝两色记号笔密密麻麻地标了几十个点——红色是“蝰蛇”潜伏人员的位置,蓝色是“磐石”行动组的布控位置。二十一个红点分布在江城的各个角落,从市中心的商会大楼到郊区的物流仓库,从医院的住院部到大学的实验楼。六十多个外围协作人员的名单被马旭东导入了数据库,正在用一套他自己写的算法做关联分析,屏幕上跳出一条条关系线,织成一张复杂得让人头皮发麻的网。
“这些人,互相认识的不超过百分之十五。”马旭东坐在角落里的一张折叠椅上,面前支着三台笔记本电脑,眼镜片上映着密密麻麻的代码,“程维远很聪明——他把潜伏网络的每一个节点都隔开了。上线认识下线,但下线之间互不相识。就算我们抓住其中一个人,也最多只能往上追溯一层,伤不到整个网络的根本。他用了二十年时间织这张网,每一根丝都经过了时间检验。”
“所以他才会这么自信。”陆峥拿起红色记号笔,在“深海”实验室的位置上画了一个圈,把圈画得很重,笔尖几乎刺穿了纸面,“二十年没出过差错的人,最大的弱点就是他会觉得自己永远不会出错。我们要利用的,就是他的自信。”
仓库里弥漫着一股铁锈和柴油混合的气味,是这栋废弃建筑在江风吹拂了三十年后留下的味道。行动组的核心成员围着铁皮桌站了一圈:夏晚星靠在墙边,手里拿着一杯已经凉透的速溶咖啡,眼睛下方的青色比昨晚又深了一层,但目光依然清亮锐利;陈默坐在铁皮桌对面的一个木箱上,面前摊着那份油纸包裹的名单,他已经把名单上的每一个名字都背下来了——不是大概记住,而是精确到每一个人的掩护身份、潜伏年限和日常活动规律。刑警的基本功,丢不掉的。
老鬼没有来。他从来不来这种战前会议。但他通过加密频道给陆峥发了一句话:“已调拨四支外勤小组,归‘磐石’统一指挥,代号‘渔网’。”陆峥收到消息后沉默了两秒,然后把手机递给陈默看了一眼。陈默看完,嘴角动了一下:“老鬼这是把家底都掏出来了。”
“因为他知道,这一仗输了,就再也没有家了。”陆峥说完,把笔放下,双手撑着桌沿,目光扫过在场的每一个人,开始做战前部署。
他的部署没有开场白,没有鼓动士气的演讲。在“磐石”行动组,战前部署就是纯粹的逻辑运算——目标、条件、资源、风险、方案、备用方案、备用方案的备用方案。这套方法是在境外潜伏三年期间被逼出来的,三年的时间里他没有犯过一次错,代价是再也改不掉用逻辑分析一切的本能。
“目标三层。第一层,核心目标:程维远,代号‘幽灵’。必须在后门程序激活的同时实施抓捕,人赃俱获。活的优先,死的次之。第二层,二十一名核心潜伏者,与程维远同步收网,一个都不能跑。第三层,六十三个外围协作人员,在核心目标收网后二十四小时内全部控制。马旭东已经按威胁等级排了序,A级威胁十七人优先抓捕,B级四十六人可以在后续四十八小时内分批处理。时间窗口:下周三下午两点到四点——这是沈知言计划中登录‘深海’系统完成最后一个核心模块上线的时间,也是程维远最有信心激活后门的时间。所以我们收网的时间不是周三,是周二深夜。”
陈默抬头,眉头皱了一下:“你打算提前收网?”
“不是提前收网,是逼他提前激活。”陆峥用笔在地图上点了点实验室的位置,“程维远这个人,最大的武器不是他的潜伏能力,是他的耐心。能花十五年伪造学术履历的人,耐心接近无限。如果我们按兵不动等到周三,他会按他的节奏来,主动权在他手里。我们要把主动权抢回来——周二晚上,我会以国安部网络安全处的名义向实验室发一份通知,内容很简单:‘近期发现境外网络攻击异常,拟于周三对“深海”系统进行为期四十八小时的安全维护,期间所有核心数据区访问权限暂时冻结。’”
夏晚星端着咖啡杯的手停在了半空中。她反应最快,放下杯子接过话头:“程维远看到通知之后会慌。他等了二十年才等到‘深海’系统的最后一个核心模块上线,如果系统被冻结四十八小时,他的后门程序可能被安全扫描发现。所以他必须在冻结生效之前激活后门——也就是说,周二晚上。”
陆峥点了点头:“程维远会立刻想办法找沈知言,用最后一次物理接触把激活密钥转移过去,然后催沈知言在系统冻结之前登录,完成最后的模块上线。沈知言不知情,接到程维远的催促会很自然地答应,甚至会加班赶在通知生效前把事情做完。对他来说这是敬业,对他来说这是日常。但对我们来说,这就是收网的时间窗口。”
陈默放下名单,用拇指按了按太阳穴——他抽了一整夜的烟,从昨晚到现在抽了将近两包,嗓子已经沙哑到压低了说话才能听清楚:“那他什么时候碰沈知言?在哪里碰?用什么方式碰?如果我们不能精确到分钟,就没法在触碰发生的瞬间实施抓捕。”
“周二下午三点。”夏晚星从口袋里掏出一个小笔记本,翻开,上面是她这几天跟沈知言秘书套近乎套出来的行程信息,“每周二下午三点是‘深海’项目的例行进度会,沈知言一定会参加。程维远作为核心助手也一定会参加。会场是实验楼三楼的报告厅,长桌会议,参会人员大约十五人。沈知言固定坐在长桌东头第一个位置,程维远固定坐在他左手边。从程维远的位置到沈知言的位置,不到一臂的距离。递一份文件,碰一下手臂,甚至端茶倒水时不小心洒到沈知言身上——任何一种日常互动都可以完成密钥的物理转移。”
“而且。”她合上笔记本,看着众人。
“程维远会选在会议结束后动手。因为会议结束后人群往外走,走廊里人来人往,有足够的混乱做掩护。他可以和沈知言并肩走出去,走到门口的时候拍拍他的肩膀说一句‘沈老师辛苦了’,全世界的监控都看不出异常。”
陆峥在地图上报告厅的位置画了一个圈,然后从圈里拉出一条线,指向实验室主楼的方向,在中间画了一个叉。“所以抓捕必须分两步走。第一步,在报告厅内全程监控程维远的动作,确认他完成物理触碰、将激活密钥转移到沈知言身上。一旦触碰发生,沈知言会按预定路线往实验室方向走。第二步,在沈知言进入实验室之前——注意,是之前——在走廊上实施阻断。假系统已经准备好了,沈知言登录的必须是假的,不能让他碰真的。”
“谁来监控报告厅?”陈默问。
“我。”夏晚星的声音很轻,但没有人反驳。她是整个“磐石”行动组里最适合做这件事的人——女性,形象温婉,有公关总监的掩护身份,出入实验室和学术会议不会引起任何怀疑。她已经以投资方代表的身份旁听过三次“深海”项目的进度会,每次都是坐在角落里安静地记录,偶尔和沈知言的秘书闲聊几句实验进度。程维远见过她,但从来没有正眼看过她。这就是她最好的掩护——一个被敌人当成背景板的人,可以在最近的距离看见最多的东西。
“我的位置在报告厅最后一排靠窗的角落,距离沈知言大约八米,距离程维远大约七米。我的视线可以全程覆盖他们两个人之间的所有肢体接触。一旦程维远触碰沈知言的身体,我会发出确认信号——通讯加密频道的代号已经预设好了,代号‘鸽子’。”
“实验室走廊的阻断由我来执行。”陈默站起来,走到地图前,用食指沿着沈知言从报告厅到实验室的必经路线划了一道线,“刑侦支队六个人,加上渔网小组的四个人,十个人控制整条走廊。一旦夏晚星发出‘鸽子’,沈知言从报告厅出发,沿途每一个拐角都有我们的人。我会在实验室门口截住他。”
“用什么理由?”马旭东在角落里问了一句,眼睛没有离开屏幕,“你不能直接告诉他‘你被植入了后门’——他是物理学博士,不是特工。你跟他说这个,他会以为你疯了。”
陈默沉默了两秒。然后他把一个空烟盒揉成一团扔进墙角——昨晚装了一整宿的镇定自若终于在最后一刻裂开了一道缝。他要拦住的那个人不是坏人,是他负责保护了半年的研究对象,是一个心里只有公式和数据、对谍战一无所知的人。
“我会告诉他,”陈默最终开口了,“实验室有故障,必须由他和程维远先去检查设备。程维远我负责。你们别跟。”他转头看向陆峥,陆峥始终没有打断任何人的发言,他只是在听——听每一个人的计划、每一个人的判断、每一个人的顾虑。然后他把所有人的计划拼在一起,找到拼图里缺了的那一块。
“还差一个人。”他说,声音不高,但所有人都静了下来,“沈知言不能进真的系统,他必须登录假系统。马旭东负责构建假系统,这个没问题。但沈知言登录假系统的时候,程维远一定在旁边看着。他看到沈知言登录成功、后门激活、数据开始传输,才会放松警惕。这时候我们才能动手。问题是——沈知言对自己的恩师张敬之被替换一事毫不知情,而程维远现在正是以‘张敬之’的面孔存在。真沈知言一旦面对‘张敬之’,他会表现出发自内心的尊敬、信任和关切。这些微表情,程维远认识他第一天就知道。”
他停下来,目光从在场每一个人的脸上扫过,扫到陈默的时候,停顿了一下。
“程维远对沈知言的了解,可能比沈知言自己还要深。所以我们不能用真的沈知言。我们需要一个替身。”
“替身?”陈默的眉头拧了起来,“你是说找一个人假扮沈知言,带着假后门走进实验室,让程维远以为激活成功了?可是程维远跟沈知言在一个实验室里待了这么多年,瞒得过监控,瞒不过他。”
“如果替身是他最熟悉的人呢?”陆峥反问。
陈默愣住了。然后他猛地转头看向陆峥,眼睛里闪过一道光:“你是说——”
陆峥没有回答。他拿起桌上的一部加密通讯器,拨了一个短号。通讯器里传来一个沉稳而苍老的声音——是夏明远。
“老枪。我问你一件事。你跟沈知言共事多久了?”
电话那头沉默了片刻。“从‘深海’计划启动到现在,每一天都在。”
“你了解他的步态、习惯、说话方式吗?”
“我看着他长大。他走路喜欢把手插在口袋里,说话时喜欢把眼镜推到鼻梁中间再推回去。他紧张的时候会把左手无名指弯起来,他自己都不知道。”
陆峥握着通讯器,声音低沉而笃定。“那你来扮演沈知言。身高、体型、步态,你来做假目标。”挂掉通讯后他转过脸,正对着夏晚星的目光。夏晚星的嘴唇轻轻动了一下,但什么都没说。她知道陆峥做的每一个决定都不是临时起意。从她父亲夏明远现身的那一刻起,他就已经在脑子里构建好了整个计划的框架。让一个潜伏了十年、刚回到阳光下的老人,再次走进最危险的位置,这不是残忍,而是信任——信任他的能力,也信任他会选择承担。
夏晚星端起凉透的咖啡一饮而尽,把杯子放在桌上。“我父亲会上。我也会在场——周二下午三点的进度会,我也在。程维远碰沈知言的时候,我会亲眼看着;会议结束后,真沈知言被陈默截下后,夏明远会换上沈知言的衣服,沿同一条路线继续往实验室走。我陪他走完实验楼走廊。”
陆峥把所有人的任务重新串了一遍,声音沉稳而清晰:“周二下午三点,‘深海’项目例行进度会。夏晚星在报告厅内监控,确认程维远对沈知言完成物理触碰后发出‘鸽子’。信号发出后,陈默在实验室门口截住真沈知言。会议室里,夏明远伪装成沈知言,沿预定路线前往实验室。马旭东的假系统已经部署完毕,夏明远登录假系统,程维远确认后门激活,数据开始传输。然后——”他拿起红色记号笔,在实验室的位置上重重地画了一个圈,圈旁边写了两个字,“收网。”
铁皮桌四周陷入了一种极具压迫感的沉默,能清楚地听见江风穿过铁皮屋顶的呜呜声,远处码头货轮的汽笛,以及角落里三台笔记本电脑散热风扇转动的声音。陆峥看着陈默,声音压下来。
“你答应过我的,程维远必须活着出实验室。”
陈默没有回答。他把那张粘了胶带的工作证从怀里掏出来,放在桌上。照片上的陈远山还在微笑着看着仓库里的人,笑容和他在警校录像里看到的一样——温和、敦厚、带着一点知识分子特有的腼腆。
“我爹死的时候,嘴是被封住的。”陈默的声音沙哑到了极点,像是嗓子被烟和愤怒反复灼烧过,“他被从楼上推下去之前,程维远在他嘴里塞了一团实验室用的密封胶。法医解剖的时候从他胃里取出来的。”
他把工作证翻过去,背面朝上。背面的铁皮上刻着一行歪歪扭扭的小字,是用指甲盖刻的。刻痕很浅,要凑近了才能看清——“爸对不起你。”
“这是他胃里唯一没被消化掉的东西。不是他写的。是程维远。程维远杀了他之后,把他的工作证吞进了自己胃里,是想销毁证据。但程维远不知道,他有个习惯,会在工作证背面刻字。每次被表彰了、破了大案了,他都会刻一个字。这行字,应该是他在最后一次见到程维远之前刻的。”
他的手指在“对不起”三个字上轻轻摸了一下。
“程维远欠我一条命。我知道纪律。我知道活口比死尸有价值。我知道。”他把工作证重新揣进怀里,站起来,直视陆峥,“你放心。我会把他铐上。然后我会蹲下来看着他的眼睛,告诉他——你输给的不是我。你输给的是那个你永远没资格提起名字的人。”
陆峥看了他很长时间。然后他没有说“好”,也没有说“我相信你”。他只是从口袋里掏出一副手铐,放在陈默手边。那副手铐不是制式的,是旧的,黄铜色的镀层已经磨掉了大半,露出底下银白色的钢。铐子的齿扣上刻着两个字母——CS。
陈默低头看着那两个字母,手指忽然僵住了。“这是我爹的铐子。”
“你爹最后一次出外勤之前交给老鬼的。”陆峥说,“老鬼保存了二十年。这次行动之前,他让我带给你。他说——陈远山没来得及铐住的人,让他儿子替他铐。”
陈默没有说话。他把手铐拿起来,铐子的重量比他想象的要沉,沉得像一个被搁置了太久的承诺。他握住它,齿扣上的字母硌在他掌心,硬而凉。然后他把铐子挂在了自己腰带上。
窗外,江面的晨雾终于开始散了。第一缕真正的阳光从铁皮屋顶的破洞里照进来,落在桌上那张被红蓝色标记画满的江城地图上。陆峥把所有人都重新扫了一遍,然后说了最后一句话。
“从现在开始,到收网之前,所有人的通讯全部走加密频道。备用频道预设三个,代号‘飞鱼’‘海鸥’‘灯塔’。万一主频道沦陷,逐级切换。”
他把记号笔放在地图正中央。笔杆滚了一下,停在一个尚未被圈出的空白位置上。
“七十二小时倒计时。解散。”