跳到正文
IFAI

AI科研

Claude 破解 25 年悬案:NIST 椭圆曲线种子来自 90 年代 C 语言随机数

首次发布 传播指数 40

Anthropic 的 Claude 破解了困扰密码学界 25 年的悬案,反推了 NIST ECDSA 椭圆曲线种子的来源。它发现种子并非传闻中的短语哈希,而是 1997 至 1998 年用 C 语言 lrand48 结合时间戳生成的。这一发现证实曲线不存在故意设计的后门。

Claude 破解 25 年悬案:NIST 椭圆曲线种子来自 90 年代 C 语言随机数
图:anthropic.com

过去二十五年里,密码学界一直悬着一个大心病:保护全球网络流量的 NIST 椭圆曲线标准,到底有没有被美国国家安全局(NSA)留后门?

这套算法就是 ECDSA,几乎所有安全连接都在用它。当年 NSA 提交给 NIST 的参数里带有一串种子数字,却死活不肯解释这串数字打哪来。密码学界几十年来流传着各种阴谋论,甚至有人设了悬赏金寻根究底。

2026 年 10 月,Anthropic 的一名员工随手把这个问题扔给了内部的 Claude 研究模型。结果不到 30 分钟,这个困扰全世界顶尖专家四分之一个世纪的谜题,被彻底解开了。

根本没有什么幽默暗语,只是程序员偷懒了

长期以来,圈内流传最广的一个传言是,NSA 的老员工 Jerry Solinas 在 1990 年代用了一句搞笑的短语当密码哈希,比如「给鲍勃和杰瑞加薪」。但 Jerry 在 2023 年去世了,写代码的同事也记不清细节,这条线索彻底断了。

Anthropic 团队之前也顺着这个传闻找过,一无所获。这次提问时,他们干脆没给模型任何关于搞笑短语的提示。

Claude 换了个思路:既然是 90 年代写的程序,程序员大概率直接用了当时 C 语言标准库自带的随机数发生器。

它写了一个扫描器,挨个测试 34 种老式生成器组合,结果抓出了一个显著特征:部分种子的最高位全是零。这正是当年非常古老且脆弱的线性同余发生器 lrand48 的特征签名。

通过应用密码学里经典的 LLL 格基约简算法,Claude 倒推回了生成器的内部状态。答案简单得让人哭笑不得:这些参数根本不是什么复杂的加密哈希,而是直接用 1997 年到 1998 年之间的 Unix 时间戳当种子,调用标准库 lrand48 连续吐出来的。

比如大名鼎鼎的 P-256 曲线,就是用当年某个时刻的时钟初始化生成器后,连续循环提取到第 1842 次拿到的候选值。

除了种子,Claude 还顺藤摸瓜找出了 P-192 等曲线基点的出处:来自 Arjen Lenstra 开发的 FreeLIP 长整数运算包。当时 Claude 自己在思维链里还反复确认:「这解决了 25 年的谜题?我是不是在测试环境里?这是真的。」

破解获得的 36,864 美元悬赏,Anthropic 已经全部捐给了非营利组织互联网安全研究集团(ISRG)。

为什么重要

我们认为,这件事对整个互联网安全界来说,是一记货真价实的定心丸。

几十年来,许多偏执的工程师和开源项目因为怀疑 NSA 在 P-256 里动了手脚,宁愿转向其他曲线方案。现在真相大白:当年的工程师只是随手拿了系统时间和老旧的 C 库生成器,根本没有精妙布置后门的空间。这意味着现存的这套底层安全基础设施比大家担心的要干净得多。

更有意思的是对 AI 能力的重新审视。这不是大模型第一次写代码,却是大模型第一次在没有先验提示的情况下,自主建立假设、编写扫描工具、调用格算法并解开世界级悬案。

Anthropic 员工随手提问到出结果只要半小时,说明在逆向工程、符号推理和老旧系统取证领域,AI 已经跨过了简单的代码助手阶段,具备了资深安全专家的直觉和执行力。

不过,目前还有一点悬念没有解开。比如 B-163 的种子依然对不上这套规律,而且在 P-256 跑出结果前,程序跳过了几个同样可用的候选曲线。虽然 Anthropic 认为这更像是程序无意的副产物,但也提醒我们:历史代码考古可以告一段落,但真正的严谨审视永远不需要停歇。

来源 (1)

  1. [1]
    anthropic.com(在新标签页打开)原文anthropic.com

每日 AI 内容精选