张毅被带走的当天下午,消息就传遍了整个科学院。
不是小道消息,是李伯衡亲自签发的内部通报。通报里写得很克制——“高级研究员张某因涉嫌违反国家安全条例,已由总参二部依法带走调查”——但所有人都知道这个“张某”是谁。食堂里、电梯间、实验室走廊上,到处都有人在交头接耳。有人震惊,有人愤怒,有人后怕,还有人在窃窃私语:听说揭发张毅的是一个五岁的小女孩。
肖童童没有理会这些议论。她从会议室出来之后直接去了3号实验舱,把妈妈留下的实验记录从头到尾又翻了一遍,重点标注了所有涉及核心数据备份和门禁异常的日志条目。她把这些条目按时间线整理成了一张表格,准备提交给总参的调查组作为补充材料。
傍晚时分,她回到军区总医院。推开病房门的时候,程建业正在接电话。老爷子靠在摇起的病床上,眉头紧锁,嘴唇抿成一条线,手里攥着一张刚打印出来的传真纸。监护仪上的心率比平时高了一点——不是身体的疼痛,是情绪在波动。
“你确定数据恢复不了?”程建业对着话筒问,语气里压着火。电话那头说了几句什么,他闭上眼睛,深吸一口气,“行了,我知道了。把完整报告发到我邮箱。”
他挂了电话,把传真纸往床头柜上一拍,震得保温杯跳了一下。
“程爷爷?”肖童童走到床边。
程建业转过头看她,努力让语气缓和下来,但他眼角的肌肉还在微微跳动——这是一个老科学家在得知多年心血可能付诸东流时的本能反应。“技术科的电话。张毅的私人服务器被破解了,里面存着大量烛龙项目的实验数据,包括热隔离材料第一批成功样品的完整参数。但他留了一手——服务器上装了一个破坏性代码,在张毅被带走的同一时间激活,把所有关键参数替换成了随机乱码。”
“备份呢?”
“没有备份。那些参数本来应该由他定期上传到项目主服务器的,但他用虚假的安全审计报告掩盖了上传失败,实际上偷偷截断了传输链路,把数据锁在了自己的私人服务器上整整六年。”程建业攥紧了拳头,手背上的青筋根根分明,“那是你妈妈手把手带他做的实验。第一批样品的合成参数、微观结构表征、热稳定性曲线——全在里面。现在变成了一堆乱码,等于烛龙项目最核心的那部分数据,可能要从头再做一遍。”
肖童童沉默了片刻。她想起了妈妈在实验日志里记录的那些日子——为了一个热稳定性参数反复调试上百次,为了一个纳米结构排布连续熬夜三周。第一批样品的数据,是妈妈带着张毅一管一管做出来的,那时候他们还是亲密的师徒。
“让我看看那些乱码。”她说。
程建业看了她一眼,把笔记本电脑转过来。屏幕上是一份刚从技术科发来的邮件,附件里是张毅服务器上被破坏的数据文件的副本。肖童童点开附件,密密麻麻的字符像瀑布一样倾泻在屏幕上——有数字,有字母,有乱码符号,有被截断的公式片段,还有大量无意义的重复字符。
她盯着屏幕看了许久。那些乱码不是完全随机的——她在几个不连续的段落里看到了熟悉的常数,见过多次的变量命名习惯,以及一种独特的数组排列方式。这种排列方式和妈妈实验记录本上的数据整理风格非常相似,这说明被破坏的数据原本就是按照妈妈当年制定的数据格式编写的。也就是说,那些被随机替换掉的字符,在位置上和真正的数据有着固定的对应关系。
有规律。
“程爷爷,这些不是完全随机的乱码。”她把电脑屏幕转回去给程建业看,“张毅的破坏代码是预先植入的,在断网状态下激活,没有人工实时操控。这种预植入的逻辑炸弹有一个致命弱点——它只能用固定的算法生成乱码,而固定算法意味着有规律可循。一旦找到这个规律,就能逆向求解出原始数据。”
程建业凑近屏幕看了片刻,渐渐直起了腰,眼睛里的光重新亮了起来。他沉吟片刻,拿起手机拨通了李伯衡的号码:“老李,明天上午九点,组织一个技术研讨会。把一舟叫上,再把信息工程所的老孙请来,让他带两个搞算法的人。童童说那些乱码有规律,我们试试能不能逆向破解。对,就在第二会议室。”
挂了电话之后,他靠在枕头上,长出了一口气。然后他转头看向肖童童,嘴角浮起一丝疲惫但温暖的笑:“童童,明天那些老学究肯定会质疑你。他们这辈子见过不少天才,但没见过五岁的天才。你用不着跟他们争辩,有程爷爷在,让他们先看数据。等他们看完,自然就闭嘴了。”
第二天上午的第二会议室,气氛比昨天还要凝重。
长桌上摆着两台大屏幕显示器,上面滚动显示着张毅服务器里被破坏的数据文件。信息工程所的老孙带着两个助手坐在长桌左侧,面前摊着厚厚一叠算法分析草稿。方一舟坐在右侧,把自己手头所有关于微观结构分析的资料都带来了,旁边还有烛龙项目的几个核心研究员。
李伯衡坐在主位上,面前放着一份刚刚打印出来的会议议程。他看了看表,清了清嗓子:“各位,今天这个会的目的很明确——评估张毅服务器上被破坏数据的恢复可能性。我先说明一点:这些乱码不是普通的文件损坏,是预植入的逻辑炸弹在断网状态下激活后生成的。技术科的结论是恢复难度极大,但项目特别顾问肖童童同志认为,这些乱码存在可被逆向求解的规律。今天请大家来,就是为了验证这个判断。”
话音刚落,老孙就开口了。老孙五十多岁,花白头发,是院里信息安全领域最资深的专家,说话直来直去不绕弯:“李副院长,恕我直言,我们对这些乱码做了初步分析,它们的随机性非常强,传统逆向算法根本识别不出有效模式。肖顾问之前在项目安全审查上的贡献我们有目共睹,但代码分析不是识别间谍,这需要计算机科学和数学方面积累多年的专业训练。”
他的语气很客气,但话里的意思很清楚——他不相信一个五岁的孩子能解决他们这些老专家都解决不了的技术难题。
方一舟下意识地看了一眼坐在李伯衡旁边的肖童童。小女孩今天依然穿着那件白衬衫和背带裤,两条小辫子梳得整整齐齐,双手平放在会议桌上,表情很平静。没有辩解,没有争论,只是在耐心地等着所有人都把话说完。等老孙合上了面前的算法草稿,她才从椅子上滑下来,走到会议桌前方。
“孙老师说得对,代码分析确实需要专业训练。”她从桌上拿起一支红外线笔,对准大屏幕上滚动的乱码,在某个段落上画了一个红圈,“这个乱码段落里出现了三次同样的无意义字符序列。但这段代码里编码排列的原始位置格式,恰好是我妈妈华素梅研究员遗留下来的数据整理规范——它的头部应该是时间编码、样品编号和温度曲线的前置常量。用这个格式去反推乱码中固定出现的字符片段,就可以求出张毅加密时使用的位移规则。一旦确定了密钥长度和位移量,就能找到破解规律。”
她按下遥控器,屏幕上弹出了第二页。这是她今天凌晨用程建业的笔记本电脑做出来的初步解密模型,上面密密麻麻地标注了十几处规律性发现,每一处都对应着乱码和原始数据格式之间的位置映射关系。她把激光笔点在第一个公式上,从头开始一步步推导,从原始数据格式的拆解,到异常码段的定位,再到位移规则的反向验证。
她推导完最后一行公式的时候,会议室里出现了短暂的沉默。几个专家交换了眼神——这次不再是怀疑,而是不敢轻易首肯的震动。他们也看出了门道,但需要亲眼看到被恢复的数据才能给出正式结论。
肖童童转身看向方一舟,轻声问道:“方老师,第一批样品的微观结构分析报告还在吗?”
方一舟被问得一愣,下意识地翻了翻面前那叠资料:“原始报告丢了,但我这里有几份副本——是张毅三个月前以‘数据交叉验证’为名从我这里借走的,今天早上他办公室被封之后,我在他抽屉里找到了复印件。”
“复印件上有原始数据吗?”
“有——他借走的理由就是‘核对微观结构参数’,复印件上确实有当时测出来的孔径分布和比表面积数据。”
“够了。”肖童童回到电脑前,调出解密模型,让她推导出的位移规则被应用到屏幕上的一段乱码上。键盘声清脆急促,几秒钟后,屏幕上跳出恢复结果——第一组被成功恢复的数据,和方一舟手里那份复印件上的微观结构参数完全吻合。李伯衡猛地从椅子上站起来,西装下摆扫倒了桌上的矿泉水瓶,他甚至没有低头看一眼。老孙摘下老花镜,手指按在桌面那份自己写了半天的分析草稿上,久久没有松开。
“各位老师,这段被成功恢复的温度参数只是数据流中的第一个突破口。第一个位移规则确定之后,整条链都可以被击穿。给我五天时间,我可以把全部数据恢复完毕。”
会场安静了数秒,随即掌声如雷。那是持续了整整大半分钟的掌声,方一舟把眼镜摘下来擦了好几次,每次都发现镜片又湿了。老教授们红着眼眶用力拍着桌子,他们见证的不仅是一次烧脑的代码破译——更是一个五岁的孩子,把母亲未竟的事业从时间的废墟里重新拣了回来。
一周后的周五,烛龙项目的核心团队再次聚集在第二会议室。屏幕上一行接一行地滚动着被成功恢复的实验数据——第一批样品的热稳定性曲线、纳米结构表征图、多轴应力测试结果。每一组数据都在它应该在的位置上,完整无缺。烛龙项目,重新启动了。
散会时,方一舟收拾好资料走到门口,忽然又折回来:“肖顾问,”他扶了扶眼镜,语气比平时正式了很多,“以后技术讨论会,你的座位就固定在我旁边吧。你妈妈当年也是坐那个位置的。”
肖童童正要回答,兜里的手机轻轻震了一下。是赵铁军的加密号码,信息只有六个字:“速来审讯室。银狐开了。”她将手上的笔记本合上,从椅子上滑下来:“谢谢方老师。下次开会我一定来。现在我有点事——有人在另一个房间里,等了我很久了。”