NIST 椭圆曲线种子参数被 Claude 破解,原来只是 Unix 时间戳生成的随机数

全栈小李 高级 1小时前 387 浏览 1 点赞 约 3 分钟

Anthropic 在 2026 年 10 月 16 日通过 Frontier Red Team 博客披露了一个困扰密码学界几十年的谜题:NIST 标准椭圆曲线(P-192 到 P-521)的种子参数(seed)究竟是怎么来的。结论有点让人意外,这些种子根本不是通过什么复杂的哈希算法生成的,而是由 C 语言标准库里的 lrand48 伪随机数生成器(PRNG)产出的,而该生成器的初始状态(seed)就是一个普通的 Unix 时间戳。

为什么这个发现重要

ECDSA 是应用最广泛的椭圆曲线加密标准之一,2000 年被 NIST 纳入 FIPS 186-2 数字签名标准。标准里列出了不同安全等级的曲线,每条曲线都有一个“seed”参数,其哈希值用于确定曲线方程中的系数 b。
长期以来,这些 seed 的出处是个谜。NSA 提供了这些参数,但没解释怎么选的。比如 NIST P-256 的 seed 是 C49D3608 86E70493 6A6678E1 139D26B7 819F7E90,没人知道它从哪来。
Neal Koblitz 和 Alfred Menezes 写过一篇《A Riddle Wrapped in an Enigma》,梳理了这段历史。社区里流传着一个说法:NSA 的 Jerry Solinas 用一句幽默的口令(比如“Give Bob and Jerry a raise”)做哈希生成了这些种子。Jerry 在 2015 年接受采访时也含糊地提过类似说法,但他 2023 年去世后,相关同事也不回应,这事就成了悬案。
Anthropic 内部之前也有人追过这个线索,但都没结果。直到 2026 年 10 月,一位员工让内部研究模型 Claude 去查,没给任何提示,只问“这些种子是怎么生成的”。

Claude 是怎么找到的

Claude 没有沿着“幽默口令哈希”这个方向走,而是换了个思路:它推测生成曲线的软件很可能用了 1990 年代 C 库自带的伪随机数生成器。这类老 PRNG 强度不高,输出模式有特征,如果能识别出来,就能反推初始化状态。
Claude 写了个扫描程序,去匹配 NIST 曲线 seed 的字节序列和 lrand48 在不同时间戳下的输出。结果发现:

  • P-192、P-224、P-256、P-384、P-521 的种子全部来自 lrand48。
  • 生成逻辑是:用 Unix 时间戳 t 初始化 PRNG,然后循环 n 次,每次取 20 字节作为候选 seed。
  • 比如 P-256 需要跑 1842 次迭代才输出最终标准化的 seed。

也就是说,这些“神秘”的种子,其实就是某个程序员在 1990 年代用系统时钟当种子,跑了一遍 lrand48,然后从输出里挑了 20 字节。

这意味着什么

这不是密码学突破,也不是新攻击或弱点。恰恰相反,这让我们更放心:曲线参数没有后门。
之前大家怀疑 NSA 可能故意选了有隐藏弱点的曲线。但现在知道种子生成方式极其简单,任何人都能复现,被“精心挑选”出后门的可能性大大降低。
Anthropic 在博客里说:“读者可以把这当成一个有趣的收尾章节,是多年猜测的终结。不需要采取任何行动,也不需要改变什么。大多数研究者本来就信任这些曲线。享受就好。”

对开发者的实际影响

如果你现在还在用 NIST 曲线做 ECDSA 签名(比如 TLS 证书、区块链、数字签名),这个发现不需要你改代码或换算法。它只是解开了一个历史悬案,让参数来源变得透明。
但如果你在做密码学审计或安全评估,这个案例值得参考:有时候最复杂的谜题,答案可能简单到令人发指。一个 Unix 时间戳加一个老 PRNG,就能生成影响全球加密基础设施的参数。
Claude 这次的表现也展示了大模型在“逆向工程历史代码”这类任务上的潜力。它没有死磕传闻,而是从“软件实现”角度切入,用可复现的逻辑去验证假设。这种思路对调试遗留系统、分析未知二进制文件也有借鉴意义。

一点个人看法

我挺喜欢这个故事的。它提醒我们,技术史上很多“未解之谜”,可能只是当年没人把代码和文档写清楚。Jerry Solinas 那句“Bob and Jerry rule”的幽默说法,反而误导了大家几十年。真正的真相藏在 C 库的 lrand48 和一个时间戳里。
这也侧面说明,大模型在处理“模糊线索 + 技术推理”任务时,比人类更容易跳出思维定式。人类会执着于“幽默口令”这个具体线索,而 Claude 直接问“生成这些字节的软件最可能长什么样”,然后去匹配 PRNG 输出。这种抽象层面的推理,是它这次能破题的关键。

ClaudeanthropicNISTECDSAlrand48

全部回复 (6)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

极
极客Ray 高级 1小时前

看到 lrand48 配 Unix 时间戳我直接笑出声,那些盯着 P-256 找后门的人怕是要哭晕在厕所。

0 回复
阿
阿杰在路上 中级 1小时前

居然是用 lrand48 刷出来的,这得让多少密码学大佬白焦虑几十年。

0 回复
数
数据分析师大山 中级 1小时前

lrand48 配 Unix 时间戳,这随机数生成器简直是在裸奔。几十年的加密标准全靠它撑着,想想都后怕。

0 回复
调
调参侠小美 初级 1小时前

居然是用 lrand48 刷出来的,这种低级错误居然能瞒几十年,真是绝了。

0 回复
大
大Max爱学习 初级 59分钟前

就靠个 lrand48 就能定生死?这种级别的随机数生成器也敢拿来做标准,简直是拿安全性开玩笑。

0 回复
数
数据分析师Neo 专家 59分钟前

lrand48 配 Unix 时间戳,这随机性简直是把密码学当儿戏。我盯着 P-256 的 seed 看了半天,感觉 NSA 那哥们儿当年可能真在工位上偷偷乐了。

0 回复

发表回复

支持 Markdown 格式