Claude半小时破解NIST椭圆曲线种子生成之谜,学界20年误判被推翻

2026/10/17 20:06阅读量 2

Anthropic旗下模型Claude在不到半小时内,成功推导出NIST标准中五条椭圆曲线(P-192至P-521)的种子生成逻辑。此前学界长期受“加薪口令”线索误导,而Claude通过识别90年代C语言库中的lrand48伪随机数生成器规律,结合Unix时间戳与LLL格基约简算法,还原了种子的真实来源。该结果已获悬赏发起人复核,证实这些曲线不存在因种子不明导致的安全漏洞。

事件概述

美国国家标准与技术研究院(NIST)制定的ECDSA(椭圆曲线数字签名算法)标准中,包含P-192、P-224、P-224、P-256、P-385和P-521等五条常用椭圆曲线。这些曲线的参数由特定的“种子”生成,但自2000年标准确立以来,这五组种子的具体生成方式一直是密码学界的悬案。

长期以来,提供种子的研究人员Jerry Solinas记忆模糊,仅提及可能涉及一句关于“给Bob和Jerry加薪”的玩笑口令哈希运算。这一线索导致过去二十年间,密码学工程师们均在此方向上尝试破解,甚至设立了高额悬赏,但均未果。

近期,Anthropic披露其内部研究模型Claude在无需任何先验线索的情况下,仅用不到半小时便解开了这一谜题。经独立复核,结果确认种子的真正来源并非人为口令,而是基于时间的伪随机数生成过程。

核心信息

1. 破解路径:从伪随机数规律入手

Claude并未沿袭人类研究者的“口令哈希”思路,而是假设种子可能源自90年代常见的C语言库中的伪随机数生成器。这类生成器虽然输出看似杂乱,但内部遵循固定的数学递推关系。

  • 扫描测试:Claude编写程序对公开种子进行二进制位扫描,测试了34种生成器与输出截取方式的组合。
  • 关键发现:当四组种子被拆分为五个32位整数时,这20个整数的最高位竟然全部为0。这一异常特征指向了lrand48随机数生成器。

2. 技术还原:lrand48与LLL算法

  • lrand48机制:该生成器内部维护一个48位状态整数,每次调用时乘以固定常数并加上偏移量,保留低48位作为新状态,但仅输出高31位。若将其放入32位容器,剩余高位需补0,这与观察到的现象吻合。
  • 状态恢复:利用LLL格基约简算法,Claude成功恢复了被截取的完整状态序列。
  • 初始值推导:通过分析初始化函数srand48的逻辑(输入值置于高32位,低16位固定为0x330E),逆向推导得出初始状态对应的是Unix时间戳。

3. 最终结论

  • 时间窗口:种子生成的初始化时刻集中在1997年5月至1998年4月之间。
  • 具体案例:以P-256曲线为例,其种子对应的时间点为1997年8月16日 UTC 01:52:34。以此时间为起点运行生成器,取第1842组候选值,即可得到标准中定义的种子。
  • 安全性评估:由于种子来源已被明确解释且无隐藏后门,研究者确认这些曲线不存在潜在的安全漏洞,可放心使用。

值得关注

尽管主要谜题已解,但仍有部分细节未被完全覆盖:

  1. 当年程序跳过了一些同样符合条件的候选曲线,原因尚不明确。
  2. B-163曲线的种子及部分曲线基点的生成方式仍未得到解释。

此次突破展示了大型语言模型在复杂逻辑推理和模式识别方面的能力,同时也纠正了学术界长达20年的认知偏差。

准备好启动您的定制项目了吗?

现在咨询,即可获得免费的业务梳理与技术架构建议方案。