Claude破解25年密码学冷案:NIST核心曲线种子源于1997年系统时钟
全世界的加密网页和在线支付,过去二十五年一直被几个神秘数字悬在半空。 你每次打开 HTTPS 网站、在手机上刷卡支付,底层都在跑一套叫 ECDSA 的椭圆曲线数字签名。 这套标准在 2000 年由美国国家标准与技术研究院 NIST 正式发布。 里面的几条核心曲线,比如最著名的 P-256,支撑了现代互联网大半个江山。 椭圆曲线长什么样,取决于方程里的常数;而这些常数,全是由一段 160 位的初始种子算出来的。 问题就在这里:这几个初始种子到底是怎么来的? 当年的标准文件里,一句话都没解释。 大家只知道,这几个数字是美国国家安全局 NSA 在 1990 年代末直接递给 NIST 的。 这让全球密码学家足足提心吊胆了四分之一个世纪。
为什么大家会这么慌? 因为椭圆曲线有一个让人头疼的特性:如果有人故意挑选具有罕见数学缺陷的常数,就能给自己留一把万能钥匙。 他能轻而易举破解私钥,但在外人看来,所有参数都显得平平无奇。 后来斯诺登泄露的机密文件证实,NSA 确实在另一个随机数标准里偷偷塞过这种后门。 密码学界回头看着每天都在用的 P-256,冷汗直冒。 这串来历不明的种子,会不会是 NSA 用超级计算机跑了几百亿次挑选出来的特制后门? 因为猜忌太深,很多顶级黑客和开发者直接拒绝使用 NIST 曲线,宁可转头去用别的方案。
这二十五年里,就没人去问问当事人吗? 问过。 当年在 NSA 参与制定标准的传奇数学家杰里·索利纳斯(Jerry Solinas),在 2015 年透露过一点内情。 他说当时写代码的同事鲍勃·赖特(Bob Reiter)是为了好玩,拿一句英文笑话去算哈希值生成的,比如类似于“给鲍勃和杰里涨工资”。 但鲍勃早就忘了具体写了哪句话。 存代码的旧电脑硬盘也找不到了,杰里甚至调侃说那块硬盘大概被封存在存放约柜的神秘仓库里。 到了 2023 年,杰里去世,这条线索彻底成了死无对证的冷案。 知名密码学家菲利波·瓦尔索达(Filippo Valsorda)设立了三万六千多美元的悬赏,鼓励大家去找出种子的真正来源。 全球研究者用词典和段子库碰撞了无数次,全无结果。
到了 2026 年 10 月,Anthropic 的研究员突发奇想,把这个问题交给了自家的 Claude 模型。 研究员甚至故意没给它任何关于“英文笑话”的提示。 Claude 没有去大海捞针猜短语。 它换了一个程序员的朴素视角: 回到 1997 年,一个在办公室写代码的普通程序员,最自然的习惯是什么? 谁会为了跑个测试专门花心思编一句幽默短语? 九十年代写 C 语言代码,最顺手的方式,就是直接调用操作系统自带的伪随机数函数。 那个年代 Unix 系统自带的标配函数,叫 lrand48。 老旧的随机数算法非常粗糙,输出的数字会留下鲜明的数学指纹。
不到半个小时,Claude 真的在历史标准里抓到了破绽。 它把公布出来的种子按 32 位切成小块进行扫描。 结果在几条二进制曲线的种子里,发现了一个极其诡异的规律: 连续二十个 32 位数值的最高位,居然全都是 0。 如果这些数字是真正随机生成的,最高位全为 0 的概率只有五千八百分之一。 为什么最高位会整整齐齐空出来? 因为老版 C 语言库里的 lrand48 函数,虽然内部状态有 48 位,但每次吐出数字时只截取前 31 位。 它的第 32 位永远锁死为 0。 这就等于在所有种子上,盖上了一个无法伪造的出厂防伪码。
找到了具体的随机数函数,接下来怎么把它逆推回去? 这种线性同余生成器有一个特点:它不仅能往前算,还能完全倒着退回去。 不过 NIST 曲线里的种子只保留了部分片段,丢失了一半信息。 Claude 把这个还原问题转化成了一个经典的数学格点问题,调用了 LLL 格基约简算法,在几秒钟内解出了隐藏的 48 位内部状态。 既然内部状态拿到了,就能沿着数学公式一步一步往回倒带。 一直倒推到它最初被 srand48 初始化的时候。 那个隐藏了二十五年的源头数字终于跳了出来。 没有惊天动地的密语,也没有什么涨工资的笑话。 它就是一个纯粹的 Unix 时间戳。
具体的时间被精确还原到了秒: 1997 年 8 月 16 日,格林威治时间凌晨 1 点 52 分 34 秒。 大名鼎鼎的 P-256 曲线种子,就是那台工作站顺着这个时间点,跑了 1842 次循环吐出来的第 1842 号候选。 其他的几条核心曲线时间也全对上了: P-192 产生于 1997 年 5 月 18 日。 P-521 产生于 1997 年 8 月 8 日。 P-384 产生于 1997 年 8 月 30 日。 P-224 产生于 1998 年 4 月 3 日。
二十五年前的迷雾瞬间散得干干净净。 当时根本没有深谋远虑的复杂算计。 真实的过程平庸得甚至有些好笑: 1997 年夏天的某一天,NSA 的一位技术人员坐在工位前,写了个最普通的测试脚本。 他顺手抓取了当时的电脑系统时间作为种子,启动循环,按照行业规则滤掉不合格的数学图形,挑中了第 1842 号输出。 没有后门,没有精心编造的数学暗门,纯粹是二十九年前某台旧电脑的时钟读数。 困扰了全世界密码学家整整二十五年的世纪疑案,原来只是当年工程师随手敲下的系统当前时间。
这并没有发现密码系统的破绽,反倒给整个数字世界吃了一颗定心丸。 它证明守护着今天互联网安全的基础曲线,并没有隐藏的恶意后门,是安全可靠的。 那笔三万六千多美元的悬赏金,也被全额捐赠给了支撑全网免费安全证书的非营利机构 ISRG。 一场充斥着阴谋论与技术焦虑的漫长猜想,就这么在三十年前一段朴实无华的时钟代码里,平静地落下了帷幕。
同领域解读 / AI & LLMS
导出 / EXPORT
订阅 · SUBSCRIBE
每周一封独立、不受审查的科技与 AI 深度评论,周一发出。带出处,可核查。