Claude 破解 ECDSA 曲线种子来源

来自 Anthropic Research · 期号 2026-10-16

摘要

NIST 椭圆曲线标准(ECDSA)的种子参数来源是密码学界一个持续二十多年的谜团。 Anthropic 的研究人员让 Claude 尝试破解这个谜题。Claude 在半小时内发现,P-192、P-256 等曲线的种子并非来自哈希算法,而是 C 库 lrand48 伪随机数生成器的输出,初始化种子是一个 Unix 时间戳。 这意味着曲线参数没有后门,反而让社区对标准的安全性更有信心。Claude 还找到了部分基点的生成方式。 原文是研究团队的技术复盘,附有可复现的代码。

深读

导读 NIST 椭圆曲线标准(ECDSA)的种子参数来源是密码学界一个持续二十多年的谜团。Anthropic 的研究人员让 Claude 在半小时内破解了它:种子并非来自哈希算法,而是 C 库 lrand48 伪随机数生成器的输出,初始化种子是一个 Unix 时间戳。这意味着曲线参数没有后门,反而让社区对标准的安全性更有信心。 关键信息 - Claude 在半小时内破解了 NIST P-192、P-224、P-256、P-384 和 P-521 共五个曲线的种子来源。 - 种子并非哈希算法的输出,而是 C 库 lrand48 线性同余生成器的输出,初始化种子是一个 Unix 时间戳。 - 例如,P-256 的种子需要 1842 次迭代才能从 lrand48 中生成出标准中发布的那个值。 - 十个素域曲线的 srand48 初始化时间戳落在 1997 年 5 月到 1998 年 4 月之间;四个二元域曲线的时间戳对应 1998 年 4 月 17 日。 - Claude 还找到了部分基点的生成方式:P-192 和五个 ANSI X9.62 示例曲线的基点来自 FreeLIP 库的随机数生成器,种子是 20000、20420 等小整数。 - 破解的奖金 36,864 美元将捐赠给 Internet Security Research Group。 逐节讲解 谜题背景:二十年的猜测 ECDSA 是使用最广泛的椭圆曲线密码标准,2000 年被 NIST 采纳为 FIPS 186-2 数字签名标准的一部分。标准中为每条曲线发布了一个“种子”参数,其哈希值用于定义曲线的系数 b。这些种子由 NSA 提供,但没有给出任何解释或来源说明,引发了长期猜测,最流行的传说是 NSA 员工 Jerry Solinas 用一句幽默口令的哈希值生成的(如“Give Bob and Jerry a raise”)。Solinas 于 2023 年去世,这个谜题一直未解。 Claude 的发现:不是哈希,是伪随机数 Anthropic 的一名员工让一个内部研究模型尝试破解种子来源。Claude 没有沿着哈希口令的线索走,而是猜测生成曲线的软件使用了 1990 年代 C 库中的伪随机数生成器(PRNG)。Claude 写了一个扫描器,逐位检查每个已发布种子中相邻片段是否来自某个旧式生成器的连续输出。扫描覆盖了 34 种生成器与输出切片的组合后,Claude 注意到某些种子的最高位全部为零,四个种子共 20 个 32 位词的最高位都是 0,偶然发生的概率为 1/5810。这是 lrand48 的特征,它只返回 48 位状态中的高 31 位。 Claude 通过尝试 2¹⁷ 种可能的隐藏位值恢复了状态,并验证了后续四个词。对于素域曲线,种子保留了更少的位,Claude 用 LLL 格基约化算法恢复…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。