第51章 紧急召唤·深夜的秘密任务

余洋发现,人真的不能随便立flag。

昨天他刚跟林小悠说“最难的坎儿迈过去了”,今天坎儿就变成山了——还是喜马拉雅那种,带着雪崩特效和缺氧警告的那种。这就好比打游戏通关后得意洋洋地截图发朋友圈,结果系统弹出提示:恭喜解锁隐藏关卡“地狱难度”。惊不惊喜?意不意外?想不想死?

深夜十一点四十七分。

为华坂田园区静得像座坟墓——如果坟墓里堆满服务器和芯片设计文档的话。

余洋刚完成NPU功耗优化的收尾工作,正瘫在人体工学椅上思考人生三大哲学问题:夜宵吃什么、明天睡到几点、以及怎么委婉地告诉周明“我想请假回趟燕京看我妈”。

然后他的加密手机震了。

不是普通震动,是那种带着摩尔斯电码节奏的、三短三长三短的特定震动模式。

余洋瞬间坐直。

这部手机是赵建国给的,外观像个过时的诺基亚功能机,但里面集成了北斗加密通信模块。赵建国当时说:“非紧急勿用。响了,就是真有事。”

余洋按下接听键。

“余洋同志,”赵建国的声音传来,背景有轻微的电波杂音,“现在能离岗吗?”

“能,”余洋看了眼空荡荡的实验室,“就我一个人。”

“园区东门,黑色轿车,车牌尾号179。二十分钟内到。”

“任务性质?”

“到了说。带脑子和身份证。”

电话挂了。

余洋盯着手机看了三秒,然后开始收拾东西。

笔记本电脑必须带——谁知道要算什么。充电器、移动硬盘、还有那本《现代密码学原理》……他把双肩包塞得鼓鼓囊囊,拉链都快崩了。

这场景像极了大学生期末考前夜的突击复习——平时不烧香,临时抱佛脚。区别在于大学生抱的是课本,余洋抱的是可能涉及国家安全的密码学知识。而且人家大学生抱佛脚是为了不挂科,余洋抱佛脚是为了……嗯,为了不辜负党和人民的期望?这压力等级直接拉满。

背上包,关灯,锁门。

走廊里只有安全出口标志的绿光,把一切都照得阴森森的。脚步声在空旷的楼道里回响,啪嗒,啪嗒,像恐怖片的前奏。

余洋走到电梯口,按下按钮。

电梯从一楼缓缓上升,数字跳动:1…2…3…

他突然想起什么,掏出普通手机,给林小悠发消息:

【临时有事,晚点回。别等。】

消息秒回:

【又加班?余洋你昨天答应我什么来着?】

余洋苦笑,打字:

【不是加班。是……社会实践。】

【凌晨十二点的社会实践?你当我是三岁小孩?】

电梯到了,门开。

余洋走进电梯,信号开始减弱。他快速打字:

【真的。回来跟你细说。先睡。】

发送。

电梯下行。

手机信号格彻底空了。

为华东门。

雨开始下了。不是淅淅沥沥的小雨,是鹏城夏夜典型的暴雨,噼里啪啦砸在地上,溅起的水雾把路灯都模糊成光晕。

一辆黑色轿车停在路边,没开大灯,像潜伏在夜色里的兽。

余洋拉开车门钻进去。

车里除了司机,副驾还坐着一个人——三十多岁,寸头,黑西装,坐姿笔挺得像尺子量的。

“余洋同志?”寸头男回头,递过来一个平板,“先看这个。”

平板上是份简单的任务简报,红头文件,盖着“国家保密局”的章。

余洋快速浏览。

任务名称:“烛龙行动-子任务三”

任务目标:协助破解某境外加密通信链路,定位信号源。

时限:72小时。

他的权限:技术顾问,可调用部分解密资源。

“赵局在基地等您,”寸头男说,“路程四十分钟。您可以先休息。”

余洋没休息。

他打开笔记本电脑,连上平板提供的临时WiFi——信号经过层层加密,跳转了三四个代理节点才连上内网。

内网里有任务详细资料:加密算法分析、流量捕获样本、还有十几篇相关技术论文。

余洋扫了一眼加密算法描述,眉头皱起来。

“这用的是……自研的流密码算法?”他问。

“对,”寸头男有些意外,“您一眼就看出来了?”

“结构有特点,”余洋指着屏幕,“传统流密码用线性反馈移位寄存器,但这个算法的状态转移函数是非线性的,还带了时间变量。”

他顿了顿:

“设计者很聪明。这种算法很难用传统的密码分析攻破。”

“所以需要您,”寸头男说,“赵局说,您有‘特殊的天赋’。”

余洋没接话。

他闭上眼睛,意识沉入系统界面。

【检测到紧急任务:密码学攻坚】

【推荐技能:密码学精通(大师级)】

【消耗应变点:3000】

【是否兑换?】

余洋看了眼余额:5540点。

兑换。

瞬间,海量知识涌入脑海:从古典密码到现代公钥体系,从差分分析到线性攻击,从侧信道攻击到量子密码威胁……

这种感觉就像给大脑插了U盘,而且是USB 3.0高速接口的那种。知识不是“学”会的,是直接“灌”进去的。余洋在那一刻明白了什么叫“开挂”——别人要读十年书、做五年研究才能掌握的东西,他三秒钟就拥有了。但这种便利背后有种隐秘的代价:他越来越依赖系统,越来越像个人形外挂载体。而这个事实,让他偶尔会在深夜惊醒,问自己——如果没有系统,我还能走多远?

车在暴雨中疾驰。

雨刷器以最高频率摆动,仍然赶不上雨水倾泻的速度。窗外的世界扭曲变形,灯光拉成长长的色带。

余洋睁开眼,瞳孔深处有种奇异的光——那是知识过量摄入后的短暂过载效应。

“有笔吗?”他问。

寸头男递过来便签本和钢笔。

余洋开始写公式。

`S_{t+1}= f(S_t, t)⊕ K_t`

`C_t = P_t⊕ S_t`

`其中 f是非线性函数,K是密钥流,t是时间变量……`

笔尖在纸上沙沙作响,像春蚕食叶。

寸头男从后视镜看着他,眼神复杂。

这个少年太年轻了,年轻得不像该出现在这种场合的人。但他写字时的专注,推导公式时的流畅,又分明是个老手。

矛盾感在这个雨夜里发酵。

凌晨一点二十一分。

车驶入一个看起来像物流园区的地方。高墙,铁丝网,大型仓库。门口的保安没穿制服,但腰杆挺直,眼神锐利——余洋认出那是军人的站姿。

车停在最里面的仓库前。

卷帘门缓缓升起,里面不是货物,而是个现代化的大厅。几十个工位,大屏幕墙,还有穿着各色制服的人在忙碌。

空气里有种特殊的味道:咖啡、汗液、还有电子设备发热的焦糊味。

赵建国站在大厅中央,背着手,看大屏幕上的信号图谱。

他听见脚步声,回头,脸上露出难得的笑容:

“来了。”

“赵局,”余洋走过去,“任务简报我看了。算法分析有初步思路。”

“这么快?”赵建国挑眉。

“路上想了下,”余洋把便签本递过去,“这种带时间变量的非线性流密码,硬破解很难。但如果我们能拿到一段足够长的密文……”

“多长?”

“至少密钥流周期的十分之一,”余洋快速心算,“按算法设计,周期大概是2^40个字捷。也就是大概1TB的密文。”

赵建国笑了:“那不用想了。我们只截获了200MB。”

“所以得换个思路,”余洋看向大屏幕,“这些信号……是从哪里捕获的?”

“南海,某岛礁附近,”赵建国走到控制台前,调出地图,“对方用高频无线电发报,每天固定时间,每次不超过五分钟。我们监听了两个月,才攒了这些数据。”

地图上,红色光点标注着信号源的大致区域——方圆五十公里,茫茫大海。

“如果能精确定位,”余洋问,“下一步是什么?”

“那就不用你操心了,”赵建国拍拍他的肩,“你的任务就是在七十二小时内,找到破解方法。需要什么资源,提。”

余洋环顾大厅。

这里的技术装备很先进,但人手明显不足——只有十几个人,每个人面前都堆着三四块屏幕,眼圈都是黑的。

“我需要一个安静的工作空间,”他说,“还有……这几篇论文的原文。”

他列出清单:五篇IEEE密码学年会论文,三篇欧洲密码学会论文,还有两篇俄语论文——系统知识里有引用,但他需要看原文细节。

赵建国点头:“小李,带余顾问去三号室。论文半小时内调齐。”

一个年轻女孩站起来:“余顾问,这边请。”

三号室是个十平米的小房间。

一张桌子,三台电脑,一个白板。墙上贴着“保密守则”和“网络安全规定”。

余洋把背包放下,刚开机,门又开了。

小李端着托盘进来:咖啡、泡面、巧克力、还有一瓶眼药水。

“赵局交代的,”她说,“让您注意身体。”

“谢谢,”余洋接过咖啡,“你们也熬了很久吧?”

“十七天了,”小李苦笑,“这个加密算法卡住了整个小组。试了所有常规方法,都没进展。”

她顿了顿,声音低下来:

“余顾问,其实……大家有点质疑。”

“质疑什么?”

“质疑您,”小李说得直接,“您太年轻了,而且资料显示您主攻芯片设计,不是密码学。赵局力排众议把您请来,压力很大。”

余洋笑了:“那你们现在最需要什么?”

“一个突破口,”小李说,“哪怕只是方向性的建议。”

余洋走到白板前,拿起马克笔。

“好,那我就给个方向。”

他在白板上画图:

“传统密码分析,是从算法本身找漏洞。但如果我们换个角度——不从算法下手,从‘实现’下手。”

“实现?”

“任何加密算法,最终都要在硬件上运行,”余洋画了个芯片简图,“芯片有功耗,有时序,有电磁辐射。这些物理特性,可能泄露信息。”

小李眼睛亮了:“侧信道攻击?”

“对,”余洋点头,“但我们拿不到对方的硬件。所以……换个思路。”

他在白板上写下一行字:

通信协议逆向工程

“高频无线电通信,除了加密内容,还有协议头、校验码、同步信号,”余洋快速写着,“这些辅助信息虽然也加密了,但结构相对固定。如果我们能分析出协议格式……”

“就能推测加密算法的某些参数!”小李接话。

“聪明,”余洋笑了,“来,把你们捕获的所有数据包头部信息提取出来。我们做个统计分析。”

小李冲出门,两分钟后抱着硬盘回来。

数据导入,程序运行。

屏幕上开始滚动十六进制代码。

余洋盯着屏幕,眼睛一眨不眨。

狭小的房间里,屏幕蓝光映着两张年轻的脸。余洋的手指在键盘上跳跃,小李在旁边快速记录。白板上逐渐写满公式和推测。窗外暴雨未停,雨声被隔音材料过滤成模糊的背景音。而在这一方天地里,一场关于信息与反信息的无声战争,正以代码和数据的形式激烈进行。时间在流逝,每一秒都像沙漏里的沙,关乎成败,关乎荣辱,也关乎某种更沉重的责任。

凌晨三点。

余洋突然停手。

“找到了,”他声音很轻,“协议头的第32到35字捷,每次都在变,但变化模式有规律。”

他调出波形图:

“看,这四个字捷的值,和时间呈线性关系。斜率固定,截距……每天变一次。”

小李倒吸冷气:“这是……密钥的日期变量部分?”

“大概率是,”余洋快速写代码,“如果这个推测成立,那么我们可以反推出密钥生成算法的一部分参数。”

程序运行。

十分钟后,屏幕上跳出结果:

`推测密钥种子更新周期:24小时`

`时间变量编码方式:UTC时间戳取模`

`非线性函数f可能的结构:基于S盒的SPN网络`

余洋盯着这些结果,脑子里快速推演。

有了这些参数,破解难度从“大海捞针”降到了“池塘钓鱼”。

虽然还是很难,但至少有了方向。

“把结果报给赵局,”他说,“我需要更多计算资源。这个非线性函数的S盒可能不止一层,需要暴力枚举。”

小李冲出去。

余洋靠在椅子上,揉了揉太阳穴。

三百六十行知识在脑子里打架,像三百六十个小人在开辩论会。系统给的技能是“精通”,但精通不等于“不用思考”。相反,知识越多,要做的选择和判断就越多。

这感觉很奇妙:你明知道路就在那里,但路上布满岔路口,每个岔路都可能通向死胡同。

凌晨的灯光下,少年仰着头,闭上眼睛。睫毛在眼睑下投出细密的阴影。他太年轻了,年轻到不该承受这样的重量——十几亿人的信息安全,国家间的无声较量,还有那些在黑暗中对峙的未知力量。但他坐在那里,肩背挺直,像一棵在暴风雨里努力扎根的树。根须向下,枝叶向上,在无人看见的角落,安静地生长。

凌晨四点。

赵建国推门进来,手里拿着刚打印出来的报告。

“余洋,”他声音里有压抑的激动,“你的推测,验证了。”

余洋睁眼:“验证了?”

“我们调了北斗系统的历史数据,对比信号捕获时间,发现你的‘日期变量’模型完全吻合,”赵建国把报告递过来,“现在,我们需要你完成最后一步——破解S盒的具体结构。”

他顿了顿:

“基地的算力全给你调用了。三台天河二号节点,够不够?”

余洋愣了:“天河?国之重器用来算这个?”

“国之重器就是用来解决国之难题的,”赵建国笑了,“七十二小时倒计时,现在还剩六十八小时。你需要多久?”

余洋快速估算。

S盒如果是8进8出(256种可能),三层嵌套的话,搜索空间是256^3,约一千六百万种可能。天河二号的算力……

“给我十二小时,”他说,“十二小时后,我给你答案。”

“好,”赵建国转身,“十二小时,我等你。”

门关上。

余洋深吸一口气,开始编写并行计算脚本。

手指在键盘上飞舞,代码行如瀑布般流淌。

这不是他擅长的领域——系统给了知识,但没给“手感”。他得像学游泳的人第一次下水,明明知道理论,但身体不听话。

出错,调试,再出错,再调试。

凌晨五点,脚本终于跑通了。

任务提交到超算队列。

余洋看着屏幕上“等待计算”的状态,突然觉得饿。

他撕开泡面,倒热水。

三分钟等待时间,他靠在墙上,闭上眼睛。

脑子里还在转:S盒,非线性,雪崩效应……

然后手机震了——不是加密手机,是普通手机。这里居然有信号?

他拿出来看,是林小悠的消息:

【我在为华东门。雨太大,打不到车。你能来接我吗?】

余洋瞪大眼睛。

凌晨五点,暴雨,她从燕京飞来了?

他拨通电话:“小悠?你在哪?”

“为华东门,”林小悠的声音带着哭腔,“我查了天气预报,鹏城暴雨。我担心你……就买了最后一班飞机。”

余洋心里一紧:“你等着,我马上……”

话说到一半,他停住了。

他在保密基地,出不去。

而且,就算出去,他也不能把她带到这里。

“小悠,”他声音发干,“我现在……出不去。”

电话那头沉默了。

然后林小悠说:“我明白了。又是‘社会实践’,对吧?”

“对。”

“危险吗?”

“不危险,”余洋说谎了,“就是……需要保密。”

“好,”林小悠吸了吸鼻子,“那我回酒店。你忙完了联系我。”

“你一个人不安全——”

“我带了防狼喷雾,”林小悠努力让声音轻快,“而且鹏城治安很好。你去忙吧,别担心我。”

电话挂了。

余洋握着手机,站在那儿,很久没动。

泡面的热气升腾起来,模糊了他的眼镜片。

这一刻,余洋突然理解了什么叫“使命”,什么叫“取舍”。使命不是宏大的口号,是你在深夜里接到任务时毫不犹豫的起身。取舍不是壮烈的牺牲,是你在爱人冒雨赶来时只能说“我出不去”。泡面在变凉,雨还在下,几百公里外的女孩独自在陌生城市的暴雨里等待。而他在这个与世隔绝的房间里,面对着关乎国家安全的难题。没有对错,只有选择。而他的选择,早在他接下那部加密手机时,就已经注定。

上午九点。

超算任务完成百分之三十。

余洋趴在桌子上睡着了——不是他想睡,是身体强制关机。

他做了个很短的梦。

梦里他在解一道无穷无尽的数学题,每解一步,题目就变复杂一倍。他拼命跑,题目在后面追。

然后他醒了。

因为有人拍他的肩。

小李端着早餐:“余顾问,赵局让您去主控室。”

余洋抹了把脸,跟着她出去。

主控室里气氛凝重。

大屏幕上的地图,红色光点区域在闪烁。旁边多了一行字:监测到异常信号活动,疑似准备转移。

“对方可能察觉了,”赵建国脸色严肃,“我们的监听站发现,信号源在移动。如果让他们进入公海,就难追了。”

“还有多久?”余洋问。

“最多二十四小时。”

余洋看了眼时间:超算任务还剩六小时。

“来不及等完整结果了,”他说,“把已经算出来的部分S盒结构给我。我尝试用不完全信息推导完整算法。”

“成功率?”

“不知道,”余洋实话实说,“但总比干等强。”

赵建国盯着他看了两秒,然后挥手:“按他说的做。”

上午十一点。

余洋把已经计算出的三分之一S盒结构输入分析程序。

程序开始尝试补全剩下的部分。

这是个极其耗时的过程——就像你只知道拼图的三分之一,要猜出整幅图是什么。

余洋盯着进度条,手指无意识地敲着桌子。

突然,他脑子里闪过一个画面。

昨晚看的那些论文里,有一篇提到过“非线性反馈移位寄存器的代数攻击”。

他跳起来,冲到白板前,疯狂演算。

`设S盒为S(x),未知。已知输入输出对(x_i, y_i)……`

`建立方程组:y_i = S(x_i)`

`但S是非线性的,方程组难解。如果引入中间变量……`

笔在白板上疾走,公式越来越复杂。

小李在旁边看着,眼睛越瞪越大。

她终于忍不住问:“余顾问,您这是……在发明新算法?”

“不是发明,”余洋头也不回,“是组合。把代数攻击和侧信道信息结合,构造约束条件,缩小搜索空间。”

他写完最后一个公式,后退一步,审视着满满一白板的推导。

“成了,”他轻声说,“现在,搜索空间从一千六百万降到了……大概一万。”

小李倒吸冷气:“这……可能吗?”

“理论可能,”余洋回到电脑前,“实践才知道。”

他修改程序,把新的约束条件加进去。

重新提交超算任务。

这一次,预计时间:两小时。

下午一点。

余洋收到林小悠的消息:

【我找到酒店住下了。雨停了,鹏城的天好蓝。】

附了一张照片:窗外的蓝天,还有她比耶的手。

余洋看着照片,笑了。

然后他回复:【等我。晚上应该能结束。】

【好。我等你。】

放下手机,他看向屏幕。

超算进度:89%。

快了。

下午一点四十七分。

程序弹出提示框:

`计算完成。发现唯一解。`

余洋的心脏狠狠跳了一下。

他点开结果文件。

完整的S盒结构,三层嵌套,每个字捷的映射关系,清清楚楚。

“小李,”他声音发颤,“叫赵局。”

下午两点十分。

主控室。

余洋把最终报告递给赵建国。

“这是完整的加密算法结构。密钥生成流程、非线性函数、S盒映射,全部还原。”

赵建国快速翻阅,然后递给旁边的技术负责人:“验证。”

技术负责人操作电脑,把算法模型导入解密程序。

程序开始运行。

大屏幕上,捕获的密文数据被输入,解密程序按新算法尝试解密。

进度条缓缓移动。

所有人都屏住呼吸。

余洋觉得自己的手心在出汗。

主控室里,几十双眼睛盯着大屏幕。空气仿佛凝固了,只有服务器风扇的嗡嗡声。屏幕蓝光映在每个人的脸上,映出同样紧张的表情。少年站在赵建国身边,背挺得笔直,但手指在微微颤抖。这一刻,七十二小时的努力,十七天的煎熬,两个月的监听,全部凝结成一个进度条。而那个缓慢爬行的像素块,将决定这次行动的成败,也将决定这个少年在国家任务中的第一次亮相,是惊艳还是暗淡。

进度条走到100%。

屏幕闪烁了一下。

然后,一大段文字跳了出来。

是明文。

中文。

内容让所有人瞳孔收缩:

“……已确认坐标,三日后抵达……接应船只编号……暗号……”

赵建国猛地转头,对操作员下令:“定位!马上!”

操作员手指飞舞。

三十秒后,地图上的红色光点区域急剧缩小,最终锁定在一个具体的经纬度上。

距离海岸线十二海里,还在领海范围内。

“抓!”赵建国只说了一个字。

整个主控室瞬间动起来。指令下达,通讯接通,行动部队出发。

余洋站在那里,看着这一切,突然觉得腿软。

他做到了。

他真的做到了。

赵建国走到他面前,用力拍了拍他的肩:

“余洋同志,我代表国家,感谢你。”

余洋张了张嘴,想说什么,但没说出来。

他只是点了点头,然后轻声问:

“我现在……能回去了吗?”

“能,”赵建国笑了,“车在外面等你。回去好好睡一觉。”

他顿了顿,补充道:

“这次任务,记你一等功。勋章和文件,后续会保密送达。”

余洋没在意什么勋章。

他只是背起包,走出主控室。

走廊很长,灯光很亮。

他走着走着,突然笑了。

笑得眼泪都出来了。

不是骄傲,不是兴奋。

是一种更复杂的情绪:原来,他真的可以用他的方式,守护这片土地。

而这片土地,也真的需要他。

这就够了。

足够了。