Claude 半小时破解 NSA 椭圆曲线种子谜题,意味着什么?
先给结论:Claude 没有破解椭圆曲线密码学,没有算出任何人的私钥,也没有让 TLS 或比特币突然失效。它破解的是一段密码学历史——NSA 当年交给标准组织的几串公开「种子」,究竟是怎样生成的。
这个区别很重要。把它说成「AI 半小时攻破全球加密」,是错的;把它当成无关紧要的数字考古,也低估了它。
这项发现同时说明四件事:一,最常用的一组 NIST 椭圆曲线被故意植入后门的可能性显著下降;二,标准中的「可验证随机」如果不能解释最初输入从哪里来,仍然只验证了半条信任链;三,前沿模型已经能把文献理解、假设生成、写代码、统计检验和格算法串成一次自主研究;四,AI 更现实的密码学影响,不是今天突然解开 256 位私钥,而是以极低成本翻查那些长期无人愿意审计的协议、实现和历史遗留物。
先把谜题说清楚:公开的种子,为什么会让人怀疑后门
椭圆曲线可以粗略理解成一种公共的「锁具设计」。每个用户有自己的私钥,但使用同一种曲线的人,共享一套公共参数。对素数域上的曲线,常见方程写作:
`y² = x³ + ax + b (mod p)`
真正的标准还要规定有限域 `p`、系数 `a` 和 `b`、基点 `G`、基点阶 `n`、余因子 `h` 等参数。私钥不是这些参数;它是在这套公共规则中由用户另行生成的秘密数字。
2000 年发布的 FIPS 186-2 收录了 P-192、P-224、P-256、P-384 和 P-521 等曲线。NSA 提供了曲线及 160 位种子,标准规定用 SHA-1 等步骤从种子导出曲线系数。任何人拿到种子,都能复算「这个种子确实得到这个系数」。
问题在于:种子本身为什么是这 160 位?
这像彩票机构公开了中奖号码和摇号算法,却没有展示最初放进机器的是哪组球、为何是这组球。如果设计者先试过海量种子,最后挑中一条具有某种秘密弱点的曲线,后来人只验证「种子能导出曲线」,并不能排除这种筛选。
密码学把π、自然常数或公开文字经过确定步骤得到的参数叫作「袖中无物数」(nothing-up-my-sleeve numbers):重点不是这些数字更神圣,而是选择过程没有隐藏的旋钮。NIST 曲线的种子公开,来源却没有说明,所以形式上「可验证随机」,来源上却不可审计。
这种不信任不是凭空产生的。2013 年后,NSA 参与推动的 Dual_EC_DRBG 随机数生成器被广泛认为存在可被掌握特殊参数关系者利用的后门风险,NIST 随后将其撤回。Dual_EC_DRBG 与这次讨论的 NIST P 曲线不是同一件东西,但它改变了人们对「请相信参数选择者」的容忍度。Neal Koblitz 与 Alfred Menezes 在 2015 年的论文 A Riddle Wrapped in an Enigma 中系统梳理了争议;2023 年,密码学工程师 Filippo Valsorda 等人为找到种子来源设立悬赏。
流传最广的线索来自 NSA 数学家 Jerry Solinas:种子也许是「给 Bob 和 Jerry 加薪」之类玩笑短语的哈希。Anthropic 员工沿着这条线索试过,没有成功。Solinas 于 2023 年去世,原始程序和档案也未找到,谜题看起来会永远停在口述史里。
Claude 实际做了什么:从几个异常的零,到 1997 年的时钟
2026 年 10 月,一名 Anthropic 员工把问题交给一个未公开具体版本的内部研究模型,而且没有告诉它「玩笑短语」这条线索。据 Anthropic 10 月 16 日发布的研究说明,模型不到半小时便找到生成方法。
关键不是暴力枚举所有英文句子,而是换了问题:1997 年的工程师最可能用什么软件产生这些看似随机的字节?
Claude 检查了 34 种老式伪随机数生成器及输出切片组合,沿着种子逐位滑动,寻找连续输出的痕迹。它发现部分种子的若干 32 位字最高位总是 0。这不是安全证明,却像机器留下的齿痕:POSIX/C 库的 `lrand48()` 每次只输出其 48 位内部状态的高 31 位,恰好会留下这种模式。
对保留了较多输出位的种子,穷举 17 个被隐藏的低位就能恢复内部状态。更难的是五条 NIST 素数曲线以及五条 ANSI X9.62 曲线:生成程序只保留了 `lrand48() >> 23` 的片段。Claude 把问题转换成「截断线性同余生成器的状态恢复」,再用 LLL 格基约减算法寻找满足多组近似线性关系的短向量。
通俗地说,像是你只看到一台老式里程表每次转动后露出的几位数字。一次读数信息不足;连续多次读数连同齿轮传动规则,足以把被挡住的数字反推回来。LLL 在这里不是破解椭圆曲线,而是高效地把许多带截断的算术约束拼在一起。
恢复 48 位状态后,`lrand48` 这种线性同余生成器既能向前算,也能向后倒。Claude 倒推到 `srand48(t)` 初始化后低 16 位固定为 `0x330E` 的状态,再把高位解释成 Unix 时间戳。结果不是一个模糊年代,而是一组落在 1997 至 1998 年的具体 UTC 时刻:
| 曲线 | `srand48` 的 UTC 时间 | 命中的第几个 20 字节候选 |
|---|---:|---:|
| P-192 | 1997-05-18 14:45:34 | 139 |
| P-521 | 1997-08-08 01:12:04 | 1,136 |
| P-256 | 1997-08-16 01:52:34 | 1,842 |
| P-384 | 1997-08-30 14:50:08 | 2,688 |
| P-224 | 1998-04-03 12:52:07 | 7,026 |
以 P-256 为例,用时间戳 `871696354` 初始化生成器,依照恢复出的取字节方式运行到第 1,842 个候选,就会完整得到标准里的 160 位种子 `C49D3608 86E70493 6A6678E1 139D26B7 819F7E90`。不是「相似」,而是逐位一致。
这类匹配很难用巧合解释。更重要的是,悬赏发起人 Valsorda 用 Go 独立重写并复现了生成过程,确认这些时间戳和候选编号可以重新生成已发布的种子。也就是说,发现来自 Anthropic 的内部模型,但结论不要求公众相信模型的自述。
为什么这不是「弱随机数导致密钥泄露」
新闻中最容易混淆的是三个完全不同的「随机数」。
第一种是曲线参数的种子。它是公共设计材料,用来决定大家采用哪一把「锁」。这次复原的就是它。1997 年用时钟播种的 `lrand48` 很弱,但这里的输出从一开始就是公开的;攻击者预测它,并不会因此得到任何用户私钥。
第二种是用户私钥的随机数。如果钱包真的用 `lrand48` 加时间戳生成私钥,当然可能被反推,资金也可能被盗。但本次发现没有表明 NIST 曲线用户这样生成私钥。
第三种是 ECDSA 每次签名使用的 nonce(临时数)。nonce 重复或可预测会泄露私钥,这是现实中发生过的严重漏洞;现代实现常用确定性或带额外随机性的签名方法降低风险。它同样不是此次找到的曲线种子。
所以,「种子来自弱 PRNG」与「曲线密码被弱 PRNG 攻破」听起来只差几个字,安全含义却正好相反。这里,弱生成器的可逆性帮助研究者恢复了历史过程;它没有削弱曲线离散对数问题,也没有降低现有私钥的搜索难度。
它对后门争议意味着什么:大幅降低嫌疑,不是数学上的无罪证明
这项发现最重要的密码学意义,是压缩了设计者当年的选择空间。
一种设想中的「选曲线后门」并不需要在方程里放一扇肉眼可见的门。设计者可以掌握某类极罕见弱曲线的识别方法,再秘密尝试大量种子,直到挑中一条只有自己知道如何利用的曲线。Daniel J. Bernstein 与 Tanja Lange 曾描述过一种思路:如果选择者拥有约 70 位自由度,就可能瞄准一个假设中规模约为 `2⁶¹` 的弱曲线类别。
现在可复现的时间线把空间缩得多。Valsorda 的保守估计是:即使允许设计者在 1997—1998 年每一秒之间任选时间,再从前 16 个合格候选中任选一个,也只有约 30 位选择自由度。30 位不是零,却远不足以执行上述 70 位级别的定向筛选。这不能逻辑上证明 NSA 在 1997 年绝不可能掌握任何今天未知的数学,但它排除了此前最具体、最可讨论的一类挑选机制,使「通过海量种子搜索埋入 NOBUS 后门」的说法困难得多。
这里仍需保留三个脚注。
其一,程序跳过了一些表面上合格的候选。P-256 在第 876 个候选已经出现一条满足已知条件的素数阶曲线,却最终采用第 1,842 个;P-224 的运行也跳过了三个候选。团队找到一条额外筛选规则,另一条仍不清楚。跳过少量候选不等于后门——要靠这么少的选择命中极罕见弱点,弱曲线反而必须常见——但完整历史还没有复原。
其二,种子决定曲线系数 `b`,不决定基点 `G`。Claude 找到了 P-192 和若干 ANSI 示例曲线的基点来源,却仍未解释 P-224、P-256、P-384、P-521 的基点如何选择。
其三,二元域曲线中的 B-163 种子尚未恢复,其余几条二元域曲线则可能使用了「时间除以二」的初始化方式。于是最准确的说法不是「NSA 曲线所有谜团全部解决」,而是:五条核心 NIST 素数曲线的种子来源已被可复现地解释,最主要的种子后门疑云显著消退,若干参数选择细节仍是开放问题。
TLS 和比特币到底有没有关系
有关系,但不是背景资料所说的「这些种子是比特币 TLS 数字签名的根基」。这句话把三层概念缝在了一起。
TLS 是浏览器、服务器等建立安全连接的协议。NIST P-256(也叫 secp256r1)长期用于 TLS 中的密钥协商或 ECDSA 证书签名,因此这次发现确实涉及互联网广泛部署的一条曲线。它带来的消息是信心增强,不是紧急更换证书;Anthropic 明确表示没有需要用户采取的行动。
比特币使用的是另一条曲线 secp256k1。它与 NIST P-256/secp256r1 名字相近、同属椭圆曲线家族,却不是同一条曲线,也不由此次复原的 NSA 种子产生。SEC 2 标准把 secp256k1 的方程写成极简形式 `y² = x³ + 7`;BIP 32也明确指定比特币采用 secp256k1。比特币传统交易使用该曲线上的 ECDSA,Taproot 则使用同一曲线上的 Schnorr 签名。
因此:这项发现不影响比特币私钥,不解释中本聪为何选择 secp256k1,也不改变量子计算机未来可能用 Shor 算法威胁椭圆曲线密码的长期问题。把「椭圆曲线」四个字相同,推成「比特币也被破解」,就像发现某款门锁的设计档案,便宣布所有使用金属钥匙的门都已失守。
真正值得警惕的,是 AI 已经能完成怎样的研究闭环
如果只看答案,「原来是时间戳」似乎过于朴素。真正有分量的是得到答案的路径。
Claude 没有只在训练记忆里检索一条现成事实。按照 Anthropic 的叙述,它提出了与流行口述相反的假设,编写扫描器,比较几十种旧 PRNG 的输出结构,从统计异常识别 `lrand48`,为截断输出调用 LLL,恢复状态,倒推初始化形式,再用完整 160 位匹配验证结果。随后,人类研究者整理、复核并发布了可运行代码,外部密码学家独立重写验证。
这是一条「小型科研闭环」:
`阅读问题 → 形成假设 → 设计检验 → 编写工具 → 处理失败 → 数学求解 → 交叉验证 → 给出可复现实验`
过去的模型常能解释 LLL 是什么,也能写一个线性同余生成器;这次更强的地方,是在没有标准解题路线时判断何时把两者连接起来。它显示前沿模型正在从「回答已有答案」走向「在工具环境中制造新证据」。对软件考古、恶意样本分析、协议模糊测试、形式化证明辅助和标准审计,这种能力会产生真实生产力。
但「半小时」也需要正确解读。密码学界不是连续 25 年、每天八小时都在穷举这道题。人类已经写好了标准、提出了后门模型、保存了种子、发明了 LLL、实现了计算软件,还把问题包装成公开悬赏。模型站在整套知识与工具链的顶端,极快地找到了此前没人认真测试的组合。它压缩的是一次研究搜索的边际时间,不是凭空替代 25 年科学积累。
同时,公开材料没有给出内部模型的确切版本、完整原始会话、失败分支、算力消耗或人类在半小时内的介入细节。因此可以确信的是生成法与结果——它们已被代码复现;「完全自主、不到半小时」的能力叙事主要来自 Anthropic 自己,尚不足以作为严格的可重复模型基准。把可验证成果与厂商的能力归因分开,是评价 AI 科研最基本的纪律。
对加密世界的长期影响:黑盒会更快被打开,透明设计也更值钱
这次事件并不预示 AI 明天会暴力算出 P-256 私钥。经典计算下,成熟椭圆曲线的安全性来自规模巨大的离散对数问题;会写代码、会用 LLL,不等于能跨越指数级复杂度。
更近期的变化发生在另一处:安全系统里存在大量「数学本身没坏、但来源不明、实现陈旧、组合复杂」的黑盒。它们之所以多年未被彻查,常常不是无解,而是资料分散、测试空间烦琐、回报不明确,难以长期占用顶尖研究者。能读旧论文、生成探测代码并长时间运行工具的 AI,会显著降低这类审计的成本。
这是一把双刃剑。防守者可以批量复核标准参数、寻找弱随机数指纹、检查供应链里的历史代码;攻击者也可以更快发现冷门协议、固件和企业自研密码中的组合漏洞。真正会先被「撕开」的,往往不是有充分公开审计的 AES、TLS 1.3 或主流曲线,而是那些依赖保密实现、模糊参数和「几十年没人碰过」的系统。
正确回应不是恐慌性弃用 NIST 曲线,而是把标准设计变得更容易机器审计:
- 参数生成必须从公开、不可操纵的熵源或事先承诺的数据出发,给出完整脚本、版本和筛选规则;
- 安全证明、参考实现与测试向量应允许任何人端到端复现,而不只验证最后一步;
- 对 AI 发现要保存完整运行记录,区分模型独立完成、人类提示和事后整理;
- 把模型用于防御性遗产审计,同时用隔离环境、权限控制和负责任披露约束其网络与执行能力;
- 继续推进后量子迁移,但不要把量子威胁与本次种子溯源混为一谈。
最后的判断
这不是一场密码学灾难,而是一次信任账本的补记。
过去 25 年,人们知道 NIST 曲线可以抵抗公开分析,却不知道最初那几串数字为什么在那里。如今,一条从 1997 年 Unix 时钟、`srand48`、候选编号到标准种子的可运行链条,把「请相信 NSA 没动手脚」改成了「你可以自己复现它大概怎样产生」。密码学最珍贵的进步,往往不是增加信任,而是减少必须信任的部分。
对 AI 而言,这也是比「答对一道奥赛题」更值得重视的信号:模型开始能够在一个真实、开放、答案未知的问题上,留下外部专家可以独立检验的新证据。今天它替一段加密史补上出处;明天,同样的能力会被用于发现漏洞,也会被用于证明系统没有人们担心的那种漏洞。
所以,这件事真正意味着的不是「AI 已经攻破密码学」,而是:密码学世界中仅靠历史、权威或无人追问维持的黑盒,保质期正在迅速缩短。











