网易首页 > 网易号 > 正文 申请入驻

P-256的种子藏了28年,答案是一台1997年的时钟

0
分享至

P-256这条曲线,撑起了每一枚JWT上的ES256签名。它的种子从哪来,这个问题悬了二十多年。答案不是某个秘密句子的哈希,而是一台1997年的时钟,加上C库里的lrand48。


Anthropic在10月16日的文章里给出了这个结论:这些种子来自C标准库的伪随机数生成器,用Unix时间戳做种子,运行时间落在1997年5月到1998年4月之间。Anthropic称,内部的一个研究模型"在半小时内"算出了这件事。

悬赏这笔问题的人叫Filippo Valsorda。他三年前挂出的赏金在同一天被认领,他写道自己"用Go重新实现了算法来验证这个结论"。

先别急着找补丁。Anthropic自己的文章写得很直白:"没有任何需要采取的行动,也没有需要改变的做法。"这个故事真正的价值,是给上世纪90年代的一桩争论画上句号,顺便提醒你去看一眼:你的会话令牌到底是谁生成的。

90年代的那道谜题

2000年,NIST在FIPS 186-2里标准化了ECDSA,P-192到P-521每条曲线都从一个种子推导而来。Anthropic的文章说,这些种子"由NSA提供,没有给出任何解释或理由"。

流传最广的说法是,它们是某个幽默口令的哈希,但没人找得到那个口令。这个空白滋生了怀疑:如果曲线的制定者能自由挑选种子,理论上他就可以不断试,直到试出一条只有他自己知道某种性质的曲线。Anthropic提到,人们长期怀疑这些种子"可能被刻意植入了后门"。没人拿出过后门的证据,但也没人能排除。

于是2023年,Valsorda和一群密码学家凑了12288美元悬赏原始句子,如果获奖者把钱捐给慈善机构,金额翻三倍到36864美元。

Claude找到的答案

答案根本不是一句话。按Anthropic的说法,"Claude猜测该软件使用了一个随1990年代C库一起发布的伪随机数生成器",然后从公开的种子里反推出这个生成器的内部状态,文章称之为"一个教科书式的格问题"。

文章给出的细节包括:

  • P-192、P-224、P-256、P-384、P-521的种子都是lrand48的输出,每次运行用Unix时间戳做种子。P-256那一次解码出来是1997年8月。
  • 四条二进制曲线种子(B-233、B-283、B-409、B-571)符合同一套方案,只是时钟似乎被减半了。
  • "对P-256来说,公开的种子是候选1842,但同一次运行里的候选876同样能给出素数阶曲线。"为什么跳过了876,目前未知。
  • P-192的基点,以及五条ANSI X9.62示例曲线,来自另一个生成器FreeLIP,用的是小整数种子。

Anthropic写的是lrand48,Valsorda的文章写的是drand48。两者同属一个POSIX家族,用"线性同余算法和48位整数运算"产生数字。同一台引擎,不同的输出格式。

种子来自一台时钟和一个48位生成器,不是一句藏起来的句子。Anthropic公开了两段Python脚本,可以复现这些种子和选定的基点,以CC0协议进入公有领域。团队认领了赏金,并选择把它捐给Internet Security Research Group,也就是Let's Encrypt背后的非营利组织,按Valsorda的说法,这笔钱翻三倍到了36864美元。

为什么"没有后门"现在是更强的解读

Valsorda用数字来论证。Bernstein和Lange在2017年提出过一个思路,需要在选择种子时拥有大约70比特的自由度,才能瞄准某一类弱曲线。Valsorda写道,在时间戳加生成器的约束下,即便NSA能挑1997到1998年间的任意时间戳,再从前16个素数阶候选中任选,他们"也仅仅拥有勉强30比特的自由度"。他说这些发现"完全排除了Bernstein和Lange所描述的技术"。

Anthropic的措辞更谨慎:这些发现让后门"变得远不那么可信"。文章也明确划了范围:"这不是密码学破解,不是新攻击,也不是ECDSA曲线的弱点。"

Valsorda走得更远。他说这"漂亮地补完了NIST椭圆曲线密码学的'平反弧线'",并且在现代确定性签名和经过验证的实现之下,称NIST曲线是"我现在个人会推荐、优先于Curve25519/Ed25519/X25519"的选择。

你的代码要改什么

对P-256本身:什么都不用改。不要轮换密钥,不要因为这个换曲线。Anthropic原话就是这么说的。

有用的教训在生成器上。一个1997年的程序,用时钟给非密码学PRNG做种子,几十年后它的输出能被追溯到运行的那一秒。POSIX明确说,drand48家族"在需要满足任何非平凡要求(包括安全)时都应避免使用"。Python的random文档和MDN的Math.random()页面写着同样的警告:不能用于安全场景。

如果你生成会话ID、重置令牌、API密钥或邀请码,去查清楚它们是谁产出的。git grep能给你一份需要阅读的位置清单:

  • srand(48)?\( 和 [dlm]rand48
  • Math\.random
  • "math/rand
  • import random 或 from random import

最后两条能抓到导入math/rand的Go文件和导入random的Python文件,哪怕代码里从没调用过种子函数。命中不等于bug。用Math.random()打乱测试数据完全没问题。真正要修的是那种最终流进令牌、密码或不该被猜到的URL的命中。

用时间做种子的PRNG,它的秘密程度等同于那个时间。修法是换用操作系统的密码学生成器,所有主流运行时都提供了入口。Python用secrets模块,Node.js用crypto.randomBytes,Go用crypto/rand而不是math/rand,浏览器里MDN指向crypto.getRandomValues()。

还没关上的部分

谜题没有完全解开。Anthropic写道,"第五个二进制种子B-163不符合Claude尝试过的任何方案,仍然无法解释",以及"我们不知道P-224、P-256、P-384、P-521的基点是如何生成的"。Valsorda补充说,两个额外的选择标准里,有一个"仍然躲着我们"。

关于AI那一侧,要精确区分哪些是公开的。Anthropic没有给出模型名字,只说"一个内部研究模型",半小时这个数字也是它自己对一次内部运行的描述。外部能核查的是结果,而结果确实被核查过了:脚本是公开的,Valsorda的Go重现在GitHub上。一个从90年代末站到今天的疑问,倒在了"猜一猜当年的C库"加上一个标准的格技术之下,人类专家在一天之内用代码确认了它。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

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.

相关推荐
热点推荐
太离谱了!婚期将近,男方亲戚两次致电让未过门的女生前去帮忙,男友就在身边没阻拦,女生选择推迟订婚

太离谱了!婚期将近,男方亲戚两次致电让未过门的女生前去帮忙,男友就在身边没阻拦,女生选择推迟订婚

火山詩话
2026-10-18 08:15:10
“养路费”卷土重来?人民日报一锤定音:油车电车车主,都别慌!

“养路费”卷土重来?人民日报一锤定音:油车电车车主,都别慌!

华庭讲美食
2026-10-19 04:30:48
14岁辍学,曾被骗负债240万,湖北00后小伙踩着自制飞行滑板,成功飞越长江,灵感来自《蜘蛛侠》中“绿魔”;网友:中国人会飞,不是吹牛

14岁辍学,曾被骗负债240万,湖北00后小伙踩着自制飞行滑板,成功飞越长江,灵感来自《蜘蛛侠》中“绿魔”;网友:中国人会飞,不是吹牛

扬子晚报
2026-10-19 08:00:43
“大闸蟹价格崩盘”频上热搜,有老板直言:比往年降了40%,价格为十年来最低;蟹农叹气:行情不好

“大闸蟹价格崩盘”频上热搜,有老板直言:比往年降了40%,价格为十年来最低;蟹农叹气:行情不好

大风新闻
2026-10-18 10:51:08
预计赛季报销!西蒙斯训练中遭遇跟腱撕裂 刚打出状态就传来噩耗

预计赛季报销!西蒙斯训练中遭遇跟腱撕裂 刚打出状态就传来噩耗

罗说NBA
2026-10-19 06:46:46
诺奖早已变味,中国科技无需西方盖章

诺奖早已变味,中国科技无需西方盖章

华山穹剑
2026-10-18 19:38:16
3000万元买不来一个茅台酒经销商资格:拆解千万元合同预付款纠纷背后的经销权真相

3000万元买不来一个茅台酒经销商资格:拆解千万元合同预付款纠纷背后的经销权真相

每日经济新闻
2026-10-18 21:13:40
特朗普公开表示:法国正在燃烧,来自不同世界、心中充满仇恨的移民,摧毁了这个曾经伟大的国家,马上关闭边境、控制局势,一切都还来得及

特朗普公开表示:法国正在燃烧,来自不同世界、心中充满仇恨的移民,摧毁了这个曾经伟大的国家,马上关闭边境、控制局势,一切都还来得及

吉刻新闻
2026-10-18 22:13:26
在俄大学课堂上披鬼子旗的南京留学生,被曝曾去日本神厕拜鬼

在俄大学课堂上披鬼子旗的南京留学生,被曝曾去日本神厕拜鬼

韬闻
2026-10-18 14:02:43
一张网图,曝出不交社保的理由,五花八门,让人哭笑不得

一张网图,曝出不交社保的理由,五花八门,让人哭笑不得

丫头舫
2026-10-18 21:39:26
中国留学生在课堂身披旭日旗,钧正平发声:无论身处哪个国家、哪所校园,为军国主义张目都是对人类良知的公然冒犯,为人所不齿

中国留学生在课堂身披旭日旗,钧正平发声:无论身处哪个国家、哪所校园,为军国主义张目都是对人类良知的公然冒犯,为人所不齿

扬子晚报
2026-10-19 07:23:07
徐浦大桥违规变道的小车司机,
这事尘埃落定之后要面临 4 个窘境

徐浦大桥违规变道的小车司机, 这事尘埃落定之后要面临 4 个窘境

皮蛋儿电影
2026-10-18 09:01:05
全是假的!出厂价仅1块钱,最高卖到一盒6000元;央视最新曝光,赶紧提醒家里人

全是假的!出厂价仅1块钱,最高卖到一盒6000元;央视最新曝光,赶紧提醒家里人

浙江卫视
2026-10-18 08:43:26
内塔尼亚胡:我已决心推翻伊朗政权,绝不会与拥有核武器的伊朗共存;如果我当选,下一届政府不会允许巴勒斯坦建国

内塔尼亚胡:我已决心推翻伊朗政权,绝不会与拥有核武器的伊朗共存;如果我当选,下一届政府不会允许巴勒斯坦建国

扬子晚报
2026-10-18 20:08:01
法国爆发严重暴力骚乱,香榭丽舍大街遭打砸、百年市政厅被焚,约1200人被捕,马克龙发声

法国爆发严重暴力骚乱,香榭丽舍大街遭打砸、百年市政厅被焚,约1200人被捕,马克龙发声

第一财经资讯
2026-10-18 13:26:26
为什么暴乱总发生在法国?

为什么暴乱总发生在法国?

西游日记
2026-10-19 08:49:07
马斯克遭踢馆!对手甩出飞行车飞越特斯拉视频:喊话遥遥领先11年

马斯克遭踢馆!对手甩出飞行车飞越特斯拉视频:喊话遥遥领先11年

快科技
2026-10-17 18:33:04
到处都在过紧日子,为什么税务招了近七成的国考编制?

到处都在过紧日子,为什么税务招了近七成的国考编制?

大何日拱一卒
2026-10-18 18:19:37
国家统计局:1—9月份,全国固定资产投资(不含农户)334115亿元,同比下降7.2%

国家统计局:1—9月份,全国固定资产投资(不含农户)334115亿元,同比下降7.2%

界面新闻
2026-10-19 10:04:39
刚润美国就被铁拳暴击!痛骂“垃圾国家”,昔日公知大V沦为全网最搞笑的电子宠物!

刚润美国就被铁拳暴击!痛骂“垃圾国家”,昔日公知大V沦为全网最搞笑的电子宠物!

军机不可泄漏
2026-10-17 17:58:09
2026-10-19 10:31:00
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
190文章数 98关注度
往期回顾 全部

科技要闻

王晟:近千亿资金涌入后 具身智能开始退烧

头条要闻

海南一村民称"祖辈百年古树被扣押后遭转赠" 官方通报

头条要闻

海南一村民称"祖辈百年古树被扣押后遭转赠" 官方通报

体育要闻

别在我的地盘夺冠!海港队史首次双杀蓉城

娱乐要闻

郭麒麟被传领证,女方戳破谣言

财经要闻

调查:四川多县用硫磺熏笋出售

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

房产
亲子
游戏
公开课
军事航空

房产要闻

利好密集落地+现房好房断档,广州楼市买入窗口,正在倒计时!

亲子要闻

乐高搭建挑战系列《乐高水坝破裂》

仅发售两个月后 《轮回之兽》不再有重大更新支持

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

乌克兰全国超15处重要能源设施遭俄袭击 泽连斯基发声

无障碍浏览 进入关怀版