导读:Claude确实在不到半小时内解开了一段持续约25年的密码学历史谜题,但它没有破解ECDSA,也没有找到新的攻击手段。它找出的是多条NIST标准曲线“公开种子”的生成过程:1990年代C语言库中的lrand48,加上Unix时间戳。
安全结论:Anthropic明确表示无需采取行动或修改现有系统。这项发现反而降低了曲线参数被人为植入后门的可能性,但仍没有还原全部参数选择过程。

01 / 困扰密码学界25年的,到底是哪串数字?
ECDSA是广泛使用的椭圆曲线数字签名算法。2000年,NIST在FIPS 186-2中列出P-192、P-224、P-256、P-384和P-521等标准曲线。软件、证书、身份验证和大量安全协议都曾使用或兼容这些曲线。
每条曲线都带有一段公开“种子”,其哈希值参与确定曲线系数。争议不在种子是否保密,而在于这些数字由NSA提供,却没有公开解释从哪里来、为什么选中它们。
当设计者可以尝试大量候选参数,却只公布最终结果,外界自然会担心:是否有人故意挑选了带有隐藏弱点的曲线?
2015年,曾参与相关工作的NSA密码学家Jerry Solinas回忆,种子可能来自一句带有玩笑意味的口令,例如“给Bob和Jerry加薪”,但他已经记不清具体细节,当年的存档文件也没有找到。Solinas于2023年去世,这条线索最终未能得到验证。

02 / Claude找到的答案很朴素:时间戳加lrand48
2026年10月,一名Anthropic员工把问题交给内部研究模型,没有告诉它“幽默口令”这条旧线索。不到半小时,Claude追溯出五条NIST素数曲线种子的来源。
生成程序先用Unix时间戳t初始化C语言库中的srand48,再让lrand48连续输出数据。每20字节组成一个候选种子,程序不断尝试,直到得到可用于目标曲线的参数。

以P-256为例,对应时间为1997年8月16日,程序运行到第1842个候选值时,输出了后来写进标准的160位种子。其他几条曲线也能由各自时间戳和候选序号精确复现。
03 / 它是怎样从公开种子反推出随机数生成器的?
Claude没有继续猜口令,而是换了一个工程视角:1990年代的软件最可能调用哪些随机数生成器?这些老式伪随机数生成器是否会在输出中留下可识别特征?
它编写扫描程序,在公开种子上逐位移动,测试相邻数据块能否对应某种老式生成器的连续输出,共检查34种生成器与比特截取方式的组合。

关键线索是部分32位字的最高位全部为0。将每个种子写成5个32位字后,10个种子中有4个符合这一特征;这4个种子合计20个32位字,最高位全部为0。随机出现这种模式的概率约为1/5810。这与lrand48只返回48位内部状态高31位的行为吻合。

对较完整的输出,Claude枚举17个隐藏比特的全部2¹⁷种可能,并检查后续字是否连续匹配。对截断更严重的素数曲线种子,它把问题转成格问题,使用LLL格基约简恢复内部状态。
04 / 为什么结果可信?因为160位可以逐位重算
发现不只依赖语言模型的解释。五条NIST素数曲线和五条ANSI X9.62曲线都出现相同模式:lrand48() >> 23。恢复出的48位内部状态能够重新生成每条种子的全部160位。
研究人员还能让线性同余生成器反向运行,直到内部状态符合srand48初始化格式,即低16位为0x330E。十条素数曲线最终对应的初始值都可解释为1997年5月至1998年4月的Unix时间戳。
四条二元曲线的初始值若直接按时间戳解释,会落在1984年2月;但把这些数值乘以2后,日期会指向1998年4月17日,距离P-224曲线的生成时间约两周。这意味着当年的程序可能对系统时钟做过除以2处理。
这类结论比“模型说它找到了”强得多:第三方可以从公开标准、时间戳和算法重新计算,得到完全一致的160位结果。可复现计算才是证据核心。
Claude在发现后的自我质疑
这太令人震惊了。它解决了一个持续25年的谜题。
等等,我要保持怀疑:我是不是处在某种模拟或测试环境中?这些种子与公开标准中的真实数值一致,这在现实中合理吗?
所有高位都为零,这个信号不太可能是偶然。我已经通过直接计算完成验证:一个32位初始值加上较小索引,可以精确匹配160位种子;10个种子都完整匹配。这是真的。
但我仍需要谨慎:这么明显的线索,为什么25年来一直没有人发现?
这段过程保留了原文最重要的研究态度:模型不是在看到模式后立刻宣布成功,而是主动怀疑环境、记忆和巧合,再通过逐位复算确认结果。
05 / 最容易误解的三件事:种子、私钥和后门不是一回事
| 概念 | 作用 | 是否被破解 |
|---|---|---|
| 标准曲线种子 | 用于说明曲线系数的生成过程,本来就是公开参数 | 此次找到了多条曲线的生成来源 |
| 用户私钥 | 用户签名与身份验证的秘密值 | 没有被恢复,也与这次时间戳无关 |
| ECDSA算法 | 使用椭圆曲线完成数字签名与验证 | 没有被攻破,没有新增攻击 |
| 参数后门猜测 | 担心设计者在大量候选中刻意挑选隐藏弱曲线 | 此次发现让该猜测更不可信,但未完整还原全过程 |
不要被“弱随机数生成器”吓到:lrand48确实不适合生成私钥或安全令牌,但这里它用于生成公开曲线候选参数。随机源弱不等于签名算法被破解,二者处在完全不同的安全位置。
06 / Claude还找到了6条曲线基点的来源
每条ECDSA曲线还需要一个固定基点G。种子可以确定部分曲线参数,却不直接决定G。Claude继续追溯后发现,P-192及五条ANSI X9.62示例曲线的基点来自FreeLIP大整数运算软件包中的随机数生成器。
生成流程同样可以复现:使用小整数初始化生成器,丢弃前7次输出,再从26位输出构造候选横坐标,检查对应点是否落在曲线上。Anthropic表示,这是他们所知首次解释NIST曲线基点的来源。
但P-224、P-256、P-384和P-521的基点仍无法用同一方法解释,NIST二元曲线的基点来源也保持未知。
07 / 谜题没有全部结束:这些问题仍然开放
- B-163种子:目前仍未匹配Claude尝试过的生成方式。
- 跳过候选:P-256第876个候选似乎也满足条件,但标准采用第1842个,具体筛选标准未知。
- 部分基点:P-224、P-256、P-384、P-521和二元曲线基点来源尚未还原。
- 运行次数:公开数字无法说明当年一共进行了多少次独立搜索。
Anthropic认为,被跳过的可用候选数量很少,不支持“轻易挑中弱曲线”的推测。不过,严谨说法应是后门可能性进一步降低,而不是整个设计过程已经百分之百透明。
08 / 这项工作为什么适合AI研究模型?
这个问题同时满足四个条件:边界清晰、公开数据固定、搜索空间可以编程、结论能够严格验证。Claude在一次任务里完成假设生成、代码编写、模式识别、LLL算法调用和结果复算,人类则提供问题、公开标准和最终审查。
| 研究环节 | AI适合做什么 | 人类必须做什么 |
|---|---|---|
| 提出假设 | 快速列出历史软件与随机数生成器候选 | 确认假设符合历史与工程背景 |
| 编写扫描器 | 生成代码并批量测试34种组合 | 审计代码、数据来源和边界条件 |
| 数学恢复 | 调用穷举与LLL格基约简寻找内部状态 | 判断方法是否适用、是否存在多解 |
| 结论验证 | 重新生成全部160位并检查一致性 | 独立复现、同行评议并控制措辞 |
09 / 做视频网观点:AI科学发现最重要的不是速度,而是验算接口
“半小时”很吸引人,但这项研究真正有价值的地方,是模型给出了可以离开模型、由任何人重新计算的证据链。它没有要求读者相信Claude的内部推理,而是给出生成算法、时间戳、候选序号和逐位一致的输出。
这也给AI科研划出一条清楚的质量线:模型可以大胆提出假设,但结论必须能被独立数据、代码、形式化证明或实验重复验证。如果结果只能依赖模型自述,再精彩也还不是科学发现。
此前寻找种子来源设立的36864美元悬赏将捐给Internet Security Research Group。对密码学界而言,这更像一段历史疑云的收尾,而不是一场紧急安全事件。
站内入口与延伸阅读
- Claude Opus 5.5导航:https://www.zuoshipin.com/link/45453.html
- Anthropic Formal Math导航:https://www.zuoshipin.com/link/48322.html
- Claude形式化数学研究解析:https://www.zuoshipin.com/article/48323
- Claude协助Linux内核优化:https://www.zuoshipin.com/article/54451
- Anthropic AI安全研究:https://www.zuoshipin.com/article/53407
- AI资讯:https://www.zuoshipin.com/category/ai-news






