DC娱乐网

聊起核弹发射,多数人都会觉得高深莫测,毕竟关联国家级机密,背后必然是复杂操作,但

聊起核弹发射,多数人都会觉得高深莫测,毕竟关联国家级机密,背后必然是复杂操作,但很少有人知道,这看似严谨的核威慑体系,历史上有过比段子还荒唐的操作,现代流程也藏着不少颠覆认知的细节。
 
聊核弹相关软件代码前,得先搞懂开机密码,绝大多数人都会默认,核发射密码必然复杂至极,要么是动态量子加密哈希值,要么是几百位的多重非对称加密字符,毕竟这是能决定人类命运的终极武器。
 
可历史从不按常理出牌,冷战高峰期,美国国防部长麦克纳马拉为防止手下将军冲动挑起三战,下令给所有核武器安装许可行动链接系统,相当于加了一道密码锁。
 
但美国战略空军司令部的老将们并不买账,苏联核导弹来袭时,预警时间只有十几分钟,若手忙脚乱找长篇密码,不等输入完成己方就会被夷为平地,这仗根本没法打。
 
为追求极致反应速度,军方做出大胆决定,近20年间,美国民兵洲际导弹的发射密码统一设为八个零,前发射军官布鲁斯·布莱尔博士披露,当时的发射清单明文规定,发射人员必须反复确认面板八个波轮全为零,防止拨错导致指令失效。
 
新时代的密码自然不再是八个零,现代核发射密码体系虽比冷战时严谨,却仍没想象中复杂,如今发射核弹,需用到一块名为thebiscuit的塑料卡片,上面印着核心密码。
 
总统需掰开卡片,向五角大楼国家军事指挥中心读出两个字母的挑战码,以此证明自身统帅身份,身份验证通过后,五角大楼会向全球核潜艇、轰炸机和导弹发射井下放真正的发射代码,这串指令仅几十到1200个字符。
 
之所以这么短,是因为核战争的极端环境:核爆炸产生的电磁脉冲会摧毁现代通讯网络,核指令只能通过极低频无线电穿透深海,或通过抗核爆地下硬线传输,这种信道带宽极有限,无法传输几KB的复杂文件。
 
这短短百余个字符,包含了发射时间、打击目标、预案编号、解锁密码及指令认证码等所有关键信息,可谓字字千金。
 
懂行的人或许会问,指令虽短,导弹井主控电脑和制导系统总该有几千万行控制代码吧?毕竟如此精密的武器,没复杂代码支撑说不过去。
 
事实恰恰相反,核弹系统的代码量少得可怜,这要从1976年托马斯·麦凯布提出的圈复杂度说起,代码中每多一个if、while、for等分支判断,复杂度就会增加。
 
普通商业软件分支多些无妨,大不了崩溃重启,但核武器需满足严苛的沃尔斯克标准,正常环境下意外核爆概率不超过十亿分之一,火灾、坠机等异常情况不超过百万分之一。
 
若导弹装有几百万行代码,系统会有海量状态空间,即便电脑每秒测试1000次,测完所有排列组合也需十的二十八次方年,比宇宙寿命还长,根本测不完。
 
无法穷尽测试就必然有未知bug,而核武领域的微小bug可能引发灾难,因此,NASA和军方采用形式化方法编写核心代码,像做数学证明题一样验证正确性。
 
他们严格限制圈复杂度,NASA规定核心模块圈复杂度不超过15,核发射底层代码没有动态内存分配、无限制死循环和第三方插件,只有纯粹线性的确定性逻辑,启动后便一条道走到黑,杜绝意外。
 
更意外的是,这些极简代码运行在极其老旧的硬件上,直到2019年,美国核武指挥系统仍在使用上世纪70年代的IBMSeries1计算机,以及比人脸还大的八英寸软盘。
 
这套老古董的最大优势的是完全不上网,无IP地址、无USB接口,从根源上杜绝网络攻击,用最原始的方式守住核安全防线,核弹发射的最后一步无需代码,这一环被称为肉身代码,全靠人工完成纯机械、纯物理操作。
 
底层程序完成状态校验后,两名导弹操作军官相距34米而坐,确保单人无法同时操作双方面板,从物理上杜绝擅发可能。
 
他们核对指令后,打开带机械挂锁的红色保险柜,在指挥官倒数声中,两人需在2秒误差内同时转动钥匙并保持5秒。
 
“咔嗒”一声后,物理机械继电器闭合、模拟电路接通,导弹成功点火,这简单的机械操作背后,是人类对核安全的极致敬畏,也是核威慑体系的最后一道关键防线。