Claude半小时解开密码学悬案,学界集体走偏20年
谜底指向时间
刚刚,据Anthropic披露,Claude用不到半小时,查明了五条NIST标准椭圆曲线的种子生成方式。
这串业界用了二十多年的数字,一度被写进密码学标准,但最初是怎么选出来的,一直没人能说清。
人们甚至找到了当事人,线索指向一句“给Bob和Jerry加薪”的口令哈希运算。
它能让接收方检查,一份数据是否由声称的签署者签发,以及签署后有没有被修改。2000年,它被美国国家标准与技术研究院NIST纳入FIPS 186-2数字签名标准。
使用这套算法之前,还得先选定一些公共数学参数,包括曲线P-192、P-224、P-256、P-384和P-521。
可以把种子理解为生成曲线参数的起始材料:拿到种子,按照标准规定的步骤运算,就能检查后面的参数是否对得上。
就连当年提供种子的Jerry Solinas也已经记忆模糊,只大致记得,他们曾把一句可能是加薪的玩笑口令转换成数字,再加了计数器。
于是这二十多年来,大家都在往这个方向猜,密码学工程师Filippo Valsorda还发布了悬赏令,高调邀请大家寻找这五组种子的前身。
按照Anthropic的描述,员工在把问题交给内部研究模型时,并没有告知这条加薪口令的线索。
Claude于是自行猜测,这些数字也许来自90年代C语言库里的伪随机数生成器。
因为这类程序生成的数字看似杂乱,背后却遵循固定规律。只要认出规律,就有机会倒推出生成过程。
随后Claude写了一个扫描程序,把公开种子里的二进制数字一位位挪着检查,测试了34种生成器与输出截取方式的组合。
结果发现,四组种子分别拆成五个32位整数后,这20个整数的最高位,居然全是0。
lrand48内部保存着一个48位整数,每调用一次,它就把这个整数乘上固定常数,再加上另一个常数,最后只保留结果的低48位,作为下一轮状态。
但输出结果只有其中的高31位,如果放进32位里,剩下的则只能用0来补。
找到了机器后,Claude再借助LLL格基约简算法恢复种子被截取状态。
负责初始化的函数叫srand48,它会把输入值放进48位状态的高32位,再把低16位固定设为0x330E,再沿着递推关系往回算,目标指向Unix时间戳。
也就是说,把某一刻的时间变成整数,交给生成器,再按固定方式取出数字,就能重新得到标准里的种子。
以P-256为例,对应的初始化时刻是:1997年8月16日,UTC时间01:52:34。
从这个时间出发运行生成器,取第1842组候选,得到的正是那串以C49D开头的种子。另外四组也能一一对应上。
研究者发现,当年的程序跳过了一些看起来也符合条件的候选曲线,原因仍不明确;B-163的种子,以及部分曲线基点的生成方式,也尚未得到解释。
不过新结果也意味着这些曲线并不存在任何潜在的安全漏洞,可以放心食用。
https://www.anthropic.com/research/ecdsa-curve-origins
https://x.com/sweis/status/2111165738836717980
https://words.filippo.io/seeds-bounty/
谷歌Gemini 4突然发布!RSI加持,GPT和Opus都让让2026-10-01
OpenAI竞对再被谷歌加注!4.5亿美元新融资到位,累计已吸金14.5亿美元
首个混合推理模型Claude 3.7发布!编程能力全面领先,还能控制思考时间
Claude最强Fable 5.1发布!8项屠榜,最高降价45%,反蒸馏机制上线
无论你此前让Claude处理什么任务,Fable 5.1都能做更多,并且把最难的部分完成得更出色
Claude手搓3D建筑编辑器火爆GitHub!数万年费的专业软件瑟瑟发抖
新王Claude 3实测!各项能力给跪,打麻将也会,确实比GPT-4好用
DeepSeek服务器全球宕机!神秘Harness账号同时现身
超清双2亿,掌中电影机,荣耀Magic9 系列正式发布,售价4499元起
量子位 QbitAI 版权所有©北京极客伙伴科技有限公司 京ICP备17005886号-1