Administrator
Published on 2026-10-17 / 8 Visits
0
0

Claude 追溯 ECDSA 曲线起源:把历史归因与密码学发现分开验证

Anthropic 报告称,Claude 将十条 NIST 与 ANSI 椭圆曲线 seed 追溯到 lrand48。这是 1990 年代 C 环境常见的伪随机数生成器,初始状态来自 Unix 时间戳。公开代码可以精确复现标准中的 160-bit 数值,核心机制因此具备很强的可验证性。但这个发现仍要拆成三个问题:这些数字怎样生成、1997 至 1998 年究竟是谁运行了程序、为什么选中了特定候选。三者的证据等级不同,AI 辅助科研的归因也应保持这种边界。

Claude 究竟发现了什么

Anthropic 原文从一个持续多年的来源问题切入。FIPS 186-2 公布了推荐椭圆曲线及 160-bit seed,包括 P-256 的 C49D...7E90,却没有说明 seed 从哪里来。曲线生成包含可选择参数,来源空白因此长期引发是否存在隐蔽筛选条件的猜测。

按照 Anthropic 的记录,内部研究模型放弃了流传多年的幽默口令哈希假说,转向查找当时伪随机数生成器留下的输出特征。它识别出符合 lrand48 的高位模式,恢复被截断的内部状态,再将线性生成器倒推到 srand48 的初始化形式。十条 prime-curve seed 对应的 Unix 时间集中在 1997 年 5 月至 1998 年 4 月。

以 P-256 为例,生成配方非常具体:

  • 使用 1997-08-16 01:52:34 UTC 的 Unix 时间初始化 lrand48;
  • 连续生成 20-byte 候选;
  • 取第 1842 个候选;
  • 得到与标准完全一致的 C49D360886E704936A6678E1139D26B7819F7E90。

我在本地独立运行了 Anthropic 页面给出的精简复现代码,P-256 输出逐位一致。这验证了生成配方与公开参数之间的计算恒等关系,但还不能单独识别原始操作者,也没有恢复当年的原始程序。

五级证据栈

最稳妥的报告方式,是把可能独立失败的 Claim 分层。

层级 Claim 当前证据
1. 公开工件 标准中的 seed 是特定 160-bit 数值 NIST FIPS 186-2 与 ANSI/NIST 曲线规格
2. 可复算机制 时间戳初始化的 lrand48 能重建该数值 公开代码与精确输出匹配
3. 跨曲线模式 十条 prime-curve seed 共享同一生成模式 Anthropic 报告的状态恢复与时间戳匹配
4. 历史归因 原始曲线团队确实采用了这套流程 高度吻合的间接证据,缺少原始源码、日志或同期签名记录
5. 意图与安全含义 当年的选择完全善意且不存在有意筛选 怀疑空间显著缩小,但没有直接证明人的意图

第一、二层今天可以由第三方直接检查。第三层原则上同样可计算验证,但仍需要外部团队完整重跑十条 seed 的状态恢复与工具实现。第四层属于历史推断,第五层还混合了密码分析和人的意图判断。

这一区分也决定如何归因。一个标题很容易把全部成果归给最显眼的 Claude。实际研究系统还包括公开标准、此前定义问题的密码学家、赏金与业余调查者、选择研究问题的 Anthropic 员工、执行搜索与写代码的模型,以及完成人工校验和发布的研究团队。

160-bit 精确匹配为何是强证据

核心结果远强于相似性判断。一套候选流程能逐位重建完整公开 seed。Anthropic 还报告,五条 NIST prime curve 和五条 ANSI X9.62 示例曲线出现相同模式,恢复的内部状态都能倒推到合理的历史时间戳。

精确重建极大压缩了偶然巧合空间,也解释了 seed 中可见的位模式。lrand48 是线性生成器,内部状态只有 48 bit,因此可以通过枚举或格算法补回被截断的状态位。

但计算复现回答的是机制问题:这套流程能否产生这些工件。历史来源还要回答更强的问题:归档标准中的参数是否确实由这份程序和这套操作流程生成。最强的缺失证据包括当年源码、构建产物、运行日志、磁盘镜像或同期说明。

精确输出属于高等级计算证据,同时仍是不完整的档案证据。

这不是 ECDSA 破解

Anthropic 明确表示,这项结果没有构成 ECDSA 攻击,也没有发现曲线弱点。这里重建的弱 PRNG 用于几十年前生成公开的曲线选择 seed,和每次签名必须保密、不可预测的 nonce 不是一回事。

新发现确实降低了一类担忧。简单、可复算的时间戳流程,比来源完全不明的 seed 留给隐蔽操纵的空间更小。与此同时,原文保留了多项开放问题:

  • B-163 的 seed 尚未解释;
  • P-224、P-256、P-384 与 P-521 的 base point 来源尚未解释;
  • 生成过程中跳过了若干看起来也可用的曲线候选;
  • 数字本身无法说明当时一共运行了多少轮;
  • 理论上仍可搜索时间戳,以挑选带有某种目标属性的结果。

Anthropic 认为有意选择弱曲线的可能性很低,因为被跳过的候选不多;若能轻易找到弱曲线,弱点就要普遍到足以在小样本中出现。这个判断属于安全分析,不能替代对当事人意图的档案证据。

现实动作也应保持克制:这项发布没有要求用户轮换 ECDSA 密钥或弃用相关曲线。是否继续采用某项标准,应依据当前密码分析与实现指南,而不是只看来源故事。

Base point 结果说明为何要按 Claim 报告

Claude 还把六条曲线的 base point 匹配到 Arjen Lenstra 的 FreeLIP 大整数库所用生成器。公开复现代码从小整数 seed 出发,丢弃前七个输出,再构造候选 x 坐标,最终匹配标准点。

这是另一项结果。前面的 seed 用于确定曲线系数,base point G 是独立参数。部分 base point 能被 FreeLIP 配方重建,几条重要 NIST 曲线的 base point 仍无法解释。如果把文章概括为 Claude 解释了 NIST 曲线的全部起源,就会越过证据边界。

合理的拆分方式如下:

  • 十条 prime curve 的 seed 生成:可复算模式;
  • 四条 binary curve:存在时钟减半的合理解释;
  • B-163:未解决;
  • 六个 base point:可复算的 FreeLIP 模式;
  • 其他 base point:未解决;
  • 原始操作者与筛选政策:历史上仍未确认。

按 Claim 保持颗粒度,可以阻止一项强结果把确定性外溢到相邻问题。

AI 辅助发现的报告协议

这项研究更深的价值,是给模型提出并检验非常规假设的科研流程提供了样板。

分开保存发现与验证

记录模型版本、Prompt、工具、生成代码、失败假设与时间。随后建立一份只接受公开输入、输出确定结果的独立验证器。思维轨迹可以解释发现过程,验证器必须能脱离思维轨迹成立。

把工作归给正确主体

分别说明模型提出了什么、写了什么代码,人类选择和检查了什么,前人研究提供了什么。归因属于技术准确性,因为它直接展示潜在失效点。

把计算与历史分开

确定性匹配可以达到很高证据等级,却仍然无法恢复人的意图。档案缺口应被明确标记,而不是用一个连贯故事自动补齐。

要求真实的独立重跑

发布代码意味着具备可复现条件。只有另一个主体实际重跑完整分析、核对每条曲线并审查实现,才能称为独立复现。

在摘要中保留负空间

未解释参数、跳过候选、档案缺失和外部复核状态应进入核心结论。它们共同定义 Claim 能达到的最大强度。

这套协议延续了站内AI 辅助密码学发现的验证阶梯。这次案例增加了一个重要提醒:计算结果可以非常确定,历史结论仍然保持不完整。

常见问题

Claude 破解了 ECDSA 或 NIST 曲线吗?

没有。它重建了公开曲线 seed 和部分 base point 的可能生成过程,没有提供签名伪造或私钥攻击。

时间戳驱动的 lrand48 能证明曲线没有后门吗?

它让任意隐蔽筛选变得更难成立,也提高了透明度;它不能证明原始设计者的意图,更不能排除所有可能的筛选策略。

任何人都能复现 P-256 结果吗?

可以。Anthropic 发布了短代码,通过一个时间戳和候选序号重建 P-256 seed,可直接与标准参数逐位比较。

为什么历史归因弱于代码复现?

代码证明一种流程能够产生目标工件。历史归因还需要证明原团队确实采用该流程,通常需要同期源码、日志、档案或当事人证词。

还有什么没有解释?

B-163 seed、若干 NIST base point、跳过候选的筛选标准以及运行总次数,在 Anthropic 报告中仍未解决。

参考资料


Comment