Anthropic内部研究模型Claude在半小时内推导出了NIST标准中五条核心椭圆曲线种子的真实生成机制。学界曾普遍误以为种子来自某句口令哈希,Claude则证明其源自90年代C语言随机数生成器与Unix时间戳,彻底打消了业界对后门漏洞的疑虑。
AI的解题能力,已经开始倒查密码学界长达二十余年的历史旧账。
Anthropic近日披露,其内部研究模型Claude仅用不到半小时,就查明了五条NIST(美国国家标准与技术研究院)标准椭圆曲线的种子(Seed)生成来源。这串支撑现代网络加密长达二十多年的关键数字,其最初生成逻辑终于真相大白。

这桩历史悬案的破解结果,已经得到了此前悬赏发起人、著名密码学工程师Filippo Valsorda的独立复核。

该技术基于椭圆曲线数字签名算法(ECDSA)。ECDSA能帮助接收方验证数据是否由声称的签署者发出,以及内容是否在传输中被篡改。2000年,ECDSA被NIST正式纳入FIPS 186-2标准。
在应用该算法时,必须先选定公开数学参数,其中包括P-192、P-224、P-256、P-384以及P-521五条曲线。业界长期存在的争议,正集中在这些曲线的种子参数上。

种子是生成整套曲线参数的初始输入:拿到种子后,按照标准规程计算,就能验证后续参数是否匹配。但当时究竟如何选定这些初始数值,外界无从得知。
当年参与制定标准的Jerry Solinas曾模糊回忆,他们可能将一句调侃加薪的口令进行了哈希处理,再加上计数器得到数值。由于缺乏正式文档记录,二十年来学界几乎全沿此方向推演,Filippo Valsorda甚至为此设立了高额悬赏。

在测试中,Anthropic的研究人员并未向Claude提供关于“加薪口令”的线索。在缺乏先验偏见的情况下,Claude提出了不同假设:这些种子可能直接来自20世纪90年代C语言标准库中的伪随机数生成器。
伪随机数生成器输出的数据看似随机,实则具备固定的数学递推关系。只要找出特征,就能逆向还原生成机制。
随后,Claude自主编写了扫描脚本,将公开种子转换成二进制逐位比对,测试了34种主流生成器与截取方式。分析结果显示:四组种子被拆分为五个32位整数后,对应的20个整数最高有效位全部为0。

这一特征迅速锁定了关键嫌疑程序——lrand48随机数生成器。lrand48内部维护一个48位整数状态,每次迭代时乘以固定常数并累加偏移,再取低48位作为下一次迭代状态;其对外输出仅提供高31位,存入32位变量时最高位自然补0。
识别出算法特征后,Claude利用LLL格基约简算法,成功反推并还原出种子在被截取前的内部完整状态。

最后的闭环落在初始化函数上。lrand48通常由srand48完成初始化,后者将传入参数填入48位内部状态的高32位,低16位则默认固定为0x330E。顺着递推公式反查,输入的初始种子精准对应了Unix时间戳。
这些时间戳集中落在1997年5月至1998年4月之间。

以应用广泛的P-256曲线为例,其对应的初始化时刻为UTC时间1997年8月16日01:52:34。以该时间作为种子启动随机数生成器,取第1842个候选值,完全复现了标准中以“C49D”开头的原始种子。其余四条曲线的种子也均在相应时间段内完成匹配。
Anthropic指出,虽然当时筛选程序跳过部分候选曲线的具体判定规则仍未完全弄清,但可以明确的是,这些参数绝非经过精心挑选以植入后门。这一推理直接确认了相关曲线不存在人为操纵的安全缺陷,彻底终结了业内对基础加密组件安全性的疑虑。
免费获取企业 AI 成熟度诊断报告,发现转型机会
关注公众号

扫码关注,获取最新 AI 资讯
3 步完成企业诊断,获取专属转型建议
已有 200+ 企业完成诊断