一个悬了大约25年的密码学问题,被一个内部研究模型在30分钟内解开了。Anthropic说,Claude追踪到了五组由NSA提供的椭圆曲线种子的来源。这件事解释的是重要公共安全参数当年怎么被选出来的,而不是泄露了什么密钥,也不是破解了加密。
![]()
报告发布于2026年10月16日。研究人员称,NIST曲线P-192、P-224、P-256、P-384和P-521背后的种子,来自lrand48——一个用Unix时间戳初始化的老式C库随机数生成器。这个结果,直接挑战了流传很久的一种猜测:那些值是一些幽默短语的哈希。
事情的起点在2000年。NIST在FIPS 186-2标准中采纳了ECDSA,也就是椭圆曲线数字签名算法。数字签名用来验证数据是谁签的、有没有被改过。标准公布了种子,种子经一套基于SHA-1的流程推导出曲线参数,但种子的出处没有交代。
这段缺失的历史,给"NSA可能选了带隐藏弱点的曲线"这类说法留出了空间。研究人员并没有拿出针对这些曲线的实际攻击,只是缺少一个清楚的选型说明。前NSA数学家Jerry Solinas回忆过"Give Bob and Jerry a raise"这类短语,早年的搜索因此被引向了可能的哈希输入。
影响不止于学术讨论。Apple的PQ3 iMessage协议用ECDSA配P-256做消息认证,理解这些共享参数的来历,有助于说明曲线选型上的信任为什么在广泛使用的服务里如此要紧。
Claude没有沿着短语理论走,而是去查1990年代软件里常见的生成器。它搭了一个扫描器,覆盖生成器与输出切片的34种组合,在已公布的种子里找规律。
部分二进制曲线的种子露出了明显线索:它们的32位字最高位 consistently 是零,这与lrand48吻合——它从48位内部状态里返回31位。Claude通过测试那17个隐藏位、核对后续输出,恢复了候选状态。
素数曲线的种子要多走一步,因为它们只保留了每次生成器输出的8位。Claude用Lenstra–Lenstra–Lovász格基约简算法(LLL),从这些不完整的值里恢复内部状态。五组NIST种子和五组ANSI X9.62示例种子,匹配上了同一套构造方式。
把生成器倒着跑,得到的初始化值对应1997年5月到1998年4月之间的日期。以P-256为例,公布的种子是某次运行的第1842个候选,那次运行初始化于1997年8月16日01:52:34 UTC,每个候选含20字节。
四组二进制曲线的种子也对上了生成器。它们的值看起来像时钟值除以二,不过研究人员把这个解释称为一种可能性,而非已确认的事实。
Anthropic强调,这不是密码学破解,不是新攻击,也不是新发现的ECDSA弱点。这些是公开的曲线生成种子,不是私钥签名密钥。重建它们并不能让攻击者伪造签名。研究人员说,这套过程简单、可重复,反而让刻意操纵显得不太可能。
Claude还把P-192和五条ANSI示例曲线的基点生成,追溯到了FreeLIP——一个长整数运算包。基点是计算公钥时用的固定起点,它们的来历与曲线种子是两回事。
这份说明并不完整。B-163的种子仍无解释,若干基点也一样。研究人员还发现了一些被跳过的候选,其中有的看起来是合适的,包括P-256的第876号候选,但不知道为什么被排除。所以这些发现增强了信心,却没有证明每一次选择都无害。
Anthropic公开了复现代码,供其他人核对匹配结果。互联网安全研究小组(Internet Security Research Group)将获得36864美元的赏金。报告明确表示,仅凭这一发现,不需要对已部署的系统做任何改动。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.