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