借走第二把钥匙的人没有跑远。
会场保卫人员在地下停车场找到他时,他正蹲在一辆商务车后面抽烟,胸前挂着临时证件,手里还捏着那张借调单的存根。
他不是间谍,也没准备撬乔岚的盲测箱。
他是负责布置展台的外包主管。
“领导让我保证演示不出问题。”男人把烟摁灭,声音越来越小,“有人说箱子里有故障样本,我想先拿出来看看,万一影响现场数据,就换一批好看的。”
“哪个领导?”
他报出的名字来自主办方宣传部门。电话打过去,对方承认说过“演示要稳”,却否认让人领钥匙。外包主管便从手机里翻出一串消息,最后一句写得很清楚:想办法提前看,别让领导台上难堪。
意思传了四层,每一层都删掉一点责任,到了最下面,就变成一张盖真章的假借调。
乔岚没有接受私下道歉。她要求把经过写入会议安全记录,也没有把事情夸成技术泄密。箱子没开,样本没丢,真正暴露的是一条比算法更古老的漏洞:所有人都觉得自己只是替上一级省一点麻烦。
温蔓从海南打来电话,听完先问:“钥匙还能用吗?”
“锁芯已经换了。”
“那张借调单留下。”
“你又想挂墙上?”
“黑胶带旁边还有位置。”
安全通信评审没有因此取消。大屏幕上的墨子号模型缓慢旋转,讲解员把原理说得很玄:量子不可克隆、测量必然扰动、天地一体化保密通信。坐在后排的企业代表听得频频点头,仿佛只要卫星升空,世界上所有秘密都会自动穿上盔甲。
马飞第二天赶到北京,听见一家机构代表问:“我们以后是不是可以把数据库直接放到量子链路上,再也不用担心泄露?”
台上专家很耐心:“量子通信目前主要帮助分发密钥,不会替你修复数据库漏洞,也不会让被盗的电脑自动变安全。”
代表仍不死心:“那黑客一监听,不就能被发现?”
“你可以发现钥匙传递过程受到窃听。可如果有人拿着正式借调单进门,量子不会替保安判断那张单是谁授意的。”
乔岚坐在旁边,忍不住看了马飞一眼。
马飞摊手:“不是我安排的例子。”
墨子号是国家工程,星辰没有抢它的名字和功劳。星辰参与的是几套地面终端的工程适配:让精密光学设备在风沙、温差和普通值班员手里也能稳定工作;同时把获取的密钥安全送进现有通信系统,而不是停在实验室仪器里供人拍照。
这活听起来没有卫星浪漫,做起来却处处磨人。
地面站望远镜要在几百公里外追住高速掠过天空的卫星,像用一根极细的吸管接住从屋顶飞过的一粒雨。云层会挡住光,空气会让光束发抖,卫星每次经过的时间窗口也只有几分钟。即便成功得到密钥,银行、政务和科研网络还要知道把哪一段密钥交给谁、用多久、什么时候作废。
吕春生第一次听完,皱着眉问:“说白了,就是天上给两边送同一本一次性密码本?”
“可以先这么理解。”工程师说。
“那密码本送到以后,值班员贴在显示器边上呢?”
会议室里一阵笑。
工程师笑不出来。某个试验站为了交班方便,确实把设备初始口令写在纸上,压在键盘垫下面。量子链路的误码率、成码率和跟踪精度全都达标,门口一张纸却足以让成果难堪。
马飞让团队把“人拿到钥匙以后怎么办”单独立项。密钥不能只生成,还要被装入受控设备,按用途切片,按时间轮换;值班员能执行任务,却不能一次导出全部内容;设备丢失或人员调岗,权限当天失效。
苏雨桐看完方案,又加了一条:“别让一个系统管理员同时管申请、审批和销毁。”
“会慢。”项目经理说。
“慢三分钟,还是丢一整套钥匙,自己选。”
她在支付业务里吃过相似的亏。账户风控再聪明,也挡不住有人拿主管账号批自己的申请。星辰后来把权限拆开,开始时人人抱怨麻烦,真到故障追查,却能知道每一步是谁动的。
同一套做法被搬进地面终端。机器可以提醒、拒绝越权、自动轮换,却不能悄悄替两个人完成本应相互制约的签字。
八月,酒泉夜里的风带着沙。
发射前几个小时,控制室灯光压得很低。星辰工程师盯着自己负责的地面适配界面,手边放着冷掉的盒饭。马飞没有进国家任务的核心指挥席,只在合作保障区陪着团队。电视画面里,长征二号丁运载火箭静静立在塔架旁,箭体被探照灯照得发白。
女儿给他发来一条语音,问今晚是不是又有“星星上天”。
马飞走到走廊才敢回复:“这颗星星送钥匙。”
“它有口袋吗?”
“没有,用光送。”
“光跑那么快,钥匙会不会掉?”
他愣了一下,笑着说:“所以爸爸他们要盯着。”
倒计时归零,火焰照亮戈壁。火箭在轰鸣中离开地面,尾焰越升越高,最后缩成夜色里一枚发亮的针。
现场没有人拿这次成功给星辰贴金。大家鼓掌,是因为中国自己的量子科学实验卫星走向轨道,是无数研究单位、工厂、测控站和发射人员一起把一件几年前仍显得大胆的事变成现实。
等轨道数据稳定,合作保障区才有人把盒饭重新热上。
马飞端着饭盒靠在窗边,手机新闻已经刷屏。有人说全球通信即将绝对安全,有人说传统加密从此作废,还有人迫不及待地推销“量子保密手机壳”。
齐放从海南发来一张截图。某家小公司宣称自己的人工智能与量子技术结合,可提前发现全部网络攻击,配图却是一颗蓝色卫星外加人脑形状的闪电。
马飞回了两个字:收藏。
不是准备学习,是留着提醒宣传部门别走到同一条路上。
真正困难的实验还在后面。卫星要经过目标地面站上空,望远镜要捕获光束,天气、姿态、时间同步与背景噪声缺一不可。星辰的终端连续两个窗口都没拿到可用结果。
第一次是薄云。
第二次,设备表面数据正常,望远镜却在最后十几秒出现极小偏差,光斑从接收区域边缘滑了出去。
合作专家没有责怪,只安排重新校准。项目组却发现偏差不像随机误差,更像地面坐标在某个转换环节被重复修正了一次。
“又是一行代码?”赵国梁问。
“还不知道。”
所有配置被冻结。乔岚按盲测办法,把时间同步、站点坐标、姿态输入和设备标定拆开查。星核只负责比对异常模式,不允许自动改参数。凌晨三点,系统找出一个总在交接班后出现的微小跳变。
值班记录显示,夜班人员每次接班都会重新导入当天任务包。这本来只是为了确保文件最新,可任务包里同时带着一份坐标修正表。设备启动时已经加载过一次,人工再导入,相当于把同一把尺子往前挪了两遍。
偏差很小。
放到数百公里外,就足以让那束看不见的光从指缝旁滑过去。
第三个窗口前,任务包被拆成只能更新一次的版本,重复加载会直接报警。值班员仍需核对,系统却不再允许一个“保险动作”悄悄叠加两次。
天气预报说后半夜有云。
所有人提前两小时进场。望远镜转向预计方位,圆顶缓缓打开。风吹进来,值班员手里的咖啡凉得很快。
卫星出现时,肉眼什么也看不见。
屏幕上的跟踪框先抖了一下,随后稳稳咬住目标。光斑进入接收区,误码数据开始下降,可用密钥长度一格一格增长。
没有电影里贯穿天地的蓝色光柱,只有控制室里一排人屏住呼吸,盯着几个安静变化的数字。
链路成功的提示跳出来时,外面刚好起云。
一名年轻工程师握拳想喊,又怕影响操作,硬生生把声音憋成了咳嗽。吕春生递给他一杯热水:“光是接住了,别先把自己呛死。”
第一批试验密钥按流程进入受控设备,没有打印,没有截图,也没有人能够单独把它带走。马飞在记录上签的不是“通信绝对安全”,而是“本次链路与交接过程符合约束”。
庆祝也很克制。食堂临时多做了一锅羊肉汤,值夜班的人每人分到一碗。有人提议拍张合影,保密人员先把桌面和工牌检查了一遍,连窗玻璃上的屏幕倒影都用窗帘挡住。吕春生端着碗站到最后排,照片拍完才发现嘴角粘着一小片香菜。
年轻工程师想替他修图,被他拦住:“别修。省得以后人人都以为搞航天不用吃饭。”
马飞把照片发给苏雨桐,只截了没有设备的那一角。女儿已经睡着,茶几上留着一只纸做的小口袋,歪歪扭扭写着“给光装钥匙”。苏雨桐说她白天追问了半小时,最后决定口袋里还要放一块饼干,免得卫星饿。
“你什么时候回来?”
“交接完就回。”
“别每次都说交接完。上次交接完又多待两天。”
马飞看着外面逐渐泛白的天,老老实实把返程日期写进消息,不再用“很快”敷衍。
项目组也没有因为一次成功便拆设备庆功。下一班把失败的两个窗口重新走了一遍,从薄云预报到重复导入,逐项确认告警能否被普通值班员看懂。最早的提示写的是“坐标参数状态异常”,值班员看完只会打电话;后来改成“今日修正表已加载,不要再次导入”,下面只留下检查与取消两个按钮。
复杂原理藏在系统里面,人的动作却必须简单清楚。
乔岚又故意拿错一份任务包。设备没有把她当成不会犯错的专家,直接拒绝执行,并在记录里留下时间、账号和文件版本。她点点头:“这比相信我靠谱。”
“你不觉得被冒犯?”项目经理问。
“昨天那张借调单才叫冒犯。”
一屋人都笑了。可笑过以后,每个人还是把自己的临时权限交回去,连马飞也不例外。老板可以批准项目预算,却不能因为赶飞机就绕过密钥销毁流程。
天亮后,大家走出地面站。东边云层被太阳照出一条金边,昨夜那束光早已消失。
乔岚的手机却收到一条告警。
一枚已经按流程销毁的测试密钥,在另一座城市的模拟终端里,被调用了一次。