---
id: "mb-20261018-cadcd6"
kind: "deep"
title: "Claude破解25年密码学冷案：NIST核心曲线种子源于1997年系统时钟"
topic: "Claude破解25年密码学冷案：NIST核心曲线种子源于1997年系统时钟"
source_type: "generated"
status: "published"
generated_at: "2026-10-18 14:04:56"
frame_type: ["机制"]
legal_anchor_count: 0
transcript_citation_count: 0
---

# 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。
一场充斥着阴谋论与技术焦虑的漫长猜想，就这么在三十年前一段朴实无华的时钟代码里，平静地落下了帷幕。

_Rendered by mubei-terminal._
