现代互联网最庞大的一场信任危机,被一个极其平庸的工程真相画上了句号。

全球数字证书、移动握手和 HTTPS 通信赖以运转的 NIST 椭圆曲线标准(FIPS 186-2),其核心参数源头整整二十五年无人知晓。自斯诺登曝光 Dual_EC_DRBG 算法暗藏后门以来,整个安全界长期怀疑美国国家安全局(NSA)在 P-256 等关键曲线里预先埋伏了代数缺陷。

悬案在 2026 年 10 月突然告破。Anthropic 内部研究模型 Claude 在不到半小时内完成了黑盒逆向,安全专家 Filippo Valsorda 随后用 Go 语言与 PARI/GP 独立复现了整套生成算法,悬赏三年的 36,864 美元奖金全额捐给了 Let's Encrypt 背后的互联网安全研究组(ISRG)。

没有精密的数学陷阱,更没有已故 NSA 密码学家 Jerry Solinas 生前声称的幽默短语哈希。支撑全球流量半壁江山的核心种子,只是工程师在 1997 年随手调用标准 C 语言函数 lrand48,塞进去了当天的系统时间戳。

NIST 椭圆曲线种子生成逆向流程 输入源 UNIX 时间戳 871696354 1997-08-16 01:52:34 UTC 弱伪随机序列 srand48(时间戳) 循环调用 lrand48() >> 23 每次提取 1 字节 ANSI X9.62 连取 20 字节 作为种子输入 SHA-1 哈希衍生 多轮条件筛选 工业标准产物 第1842个候选 P-256 诞生 载入 FIPS 186-2 沿用至今近30年 说明:整个流程只受时间戳与循环计数驱动,数学操作极简,未见额外的人工干预痕迹。

半小时逆向:从最高位的零推导回 1997 年

过去二十多年,人类学者试图穷举各种英文俗语或调侃短句,完全被口述回忆带偏了方向。Claude 的切入点极其务实,直接按 1990 年代 UNIX 系统的典型开发习惯排查统计破绽。

在逐字节扫描标准种子时,模型发现了异常偏差:十个公开种子中,有四个在拆解成 32 位整数时最高位全部为零。这种表现在标准密码学哈希中自发出现的概率仅为 1/5810。

种子拆分后最高位罕见连零,暴露伪随机算法特征
种子拆分后最高位罕见连零,暴露伪随机算法特征

这是极度典型的线性同余生成器(LCG)特征。C 标准库中的 lrand48 维护一个 48 位内部状态,输出时丢弃低位只返回高 31 位,高位必然留空。研究团队利用格基约减算法(LLL)推导内部截断状态,直接回溯出了初始时间戳。

五个关键曲线的诞生时刻全部暴露在阳光下:

曲线名称对应 UNIX 时间戳生成时刻(UTC)候选序列位次
P-1928639517111997-05-18 10:35:11早期轮次
P-2248916053351998-04-03 12:08:55早期轮次
P-2568716963541997-08-16 01:52:34第 1842 次迭代
P-3848729355721997-08-30 10:06:12早期轮次
P-5218710323361997-08-08 09:25:36早期轮次

以当今工业界部署最广的 P-256 为例,它确切生成于 1997 年 8 月 16 日周六凌晨 01:52:34。系统调用了时间戳种子后顺次寻找合规曲线,跑到第 1842 个候选值时输出了二十字节哈希输入,由此写定为行业基石。

随手读取的系统时间戳,被误认为精密密码学后门(示意图)
随手读取的系统时间戳,被误认为精密密码学后门(示意图)

业余反成自白书:30 比特自由度容不下阴谋

常规安全领域总觉得伪随机数发生器越简陋、破绽越大,系统就越危险。但在公开曲线参数选取这件事上,逻辑恰好颠倒了过来。

密码学家 Daniel J. Bernstein 与 Tanja Lange 早就给过严谨推导:如果设计者想暗中挑选一条表面平平无奇、实则暗藏特殊代数弱点的后门曲线,至少需要约 70 比特的自由度进行暴力碰撞搜索。

生成自由度对比:假想后门与现实约束 DJB 假想后门所需碰撞空间 约 70 bit 自由度 攻击者需遍历的微调空间(寻找特定脆弱曲线) 1997 年实际时间戳与候选自由度上限 上限仅约 30 bit 现实锁定范围 结论:即使允许当年设计者任意挑选 1997-1998 年的时间戳与候选者,其空间也远不足以塞入后门。

Claude 逆向出来的算法机制彻底推翻了后门假说。由于算法绑定了物理时间戳,即使当年设计者在 1997 至 1998 年的窄时间窗口内肆意挑选时间,并穷尽筛选前十几个候选序列,整个生成流程也只提供了约 30 比特的操作自由度。

区区 30 比特的熵空间,在数学上根本塞不下预谋已久的脆弱性结构。

上世纪工程师随手涂抹的代码习惯,反倒成了洗清蓄意投毒嫌疑最有力的证据。

ECDSA 曲线种子生成机制:传闻与真实还原对照 三十年行业猜想与传闻 输入源:幽默短语哈希(如加工资调侃) 生成方式:多轮安全哈希算法映射 安全隐患:怀疑 NSA 特别构造数学后门 结论:参数出处不明,工业界信任分裂 Claude 逆向发现的真实机制 输入源:1997-1998 年系统 Unix 时间戳 生成方式:弱伪随机数发生器 lrand48 迭代 后门空间:算法极为简陋,大幅排除预埋漏洞 结论:无预谋后门,纯粹是历史工程惯性

洗冤不等于免死:信任破裂后的技术转移

技术溯源澄清了恶名,并不代表疑云彻底消散。

在还原生成逻辑时,研究人员发现第 876 个候选参数在数学上同样符合素数阶筛选条件,但当年的程序直接跳过了它,一路跑到了第 1842 个。这是源于二十八年前测试脚本的偶发跳步,还是机器并发处理的边缘瑕疵,如今已死无对证。加之二进制曲线 B-163 的种子生成过程依然未能全部厘清,旧标准的档案缝隙里仍残留着历史尘埃。

更现实的问题是,工业界早就不需要靠后门假设来做出抛弃决定了。

复杂老旧曲线难防侧信道泄漏,工业界转向简明架构
复杂老旧曲线难防侧信道泄漏,工业界转向简明架构

NIST 曲线最大的痛点不是数学上的暗门,而是落后的工程架构。这类曲线在软硬件实现上异常脆弱,只要工程师在分支预测或异常点处理上稍有不慎,就会通过时序差异泄漏私钥。这也是为什么后来的 Curve25519 能够迅速席卷工业界,新设计从代数层面直接锁定了常数时间运算,杜绝了绝大多数侧信道漏洞。

《吕氏春秋》有言:疑人之贼,视其行步,窃斧也;颜色,窃斧也。

当年斯诺登掀开真实后门的一角,公众对权威机构的信任机制随即崩塌。大家提心吊胆防备了四分之一个世纪的深重阴谋,剥开来看,仅仅是上世纪开发者图省事敲下的一行简陋代码。

这次破解对密码学界更像是一场软件考古的警示。大模型跳过了人类习惯的叙事思维,直接靠统计特征撕开了旧代码的黑盒。

技术还了老参数清白,但这笔历史欠账并不能换来系统的回流。在线服务不必再为旧协议担惊受怕,而该迁往现代曲线与抗量子算法的基础设施,依然会坚定地往前走。