Claude半小时解开NIST椭圆曲线种子25年之谜,源头只是Unix时间戳喂给lrand48
据 Anthropic 官方研究博客 10 月 16 日发布(https://www.anthropic.com/research/ecdsa-curve-origins ),内部研究模型 Claude 在不到半小时内发现了 NIST 五条质数域椭圆曲线 P-192、P-224、P-256、P-384、P-521 种子参数的来源,这些种子自 2000 年 ECDSA 被 NIST 采纳为数字签名标准以来,由 NSA 提供却长期没有解释,成为密码圈 25 年的悬案。36 氪机器之心 10 月 17 日的转述(https://eu.36kr.com/en/p/4029189714170496 )指出,结论是种子并非任何哈希算法的输出,而是 C 语言库 lrand48 随机数发生器以 Unix 时间戳为种子迭代生成,P-256 需要 1842 次迭代才得到标准化种子。 25年的怀疑到底在怀疑什么? ECDSA 是使用最广的椭圆曲线签名标准,从 HTTPS、数字货币到企业身份认证都建立在这几条曲线上。NSA 当年提供种子却不说明来历,密码社区长期猜测参数是否被刻意植入后门,让 NSA 可以在不通知使用者的情况下破解签名。民间曾悬赏寻找种子来源,最流行的说法是一句玩笑口令的哈希,但 NSA 老员工 Jerry Solinas 2023 年去世后线索断绝,Anthropic 内部多名员工按口令方向追查多年也一无所获。 Claude 换了思路,不去猜口令,而是从 1990 年代 C 库常用的伪随机发生器出发反推。 Claude是怎么识破lrand48签名的? Claude 写了一个扫描器,沿每条已公布种子逐位滑动,测试相邻片段是否老式发生器的连续输出,覆盖 34 种发生器与切片组合。它注意到部分种子高位为零的规律,十个种子里有四个在全部 20 个 32 位字上最高位为零,这种巧合概率只有 1/5810,正是只返回 48 位状态高 31 位的线性同余发生器 lrand48 的指纹。 ...