{"id":"mb-20261017-b51ebe","kind":"deep","title":"破解 25 年 NSA 加密疑云：P-256 曲线种子不是军方后门，只是时钟随机数","summary":"全网加密通信依赖的 NIST P-256 曲线种子，曾因来自 NSA 且毫无来源说明而引发长达 25 年的后门恐慌。近日 Anthropic 的 Claude 模型在半小时内完成逆向工程，通过 LLL 格算法证明该种子仅由 1990 年代标准 C 库函数读取 1997 年系统时间戳生成。此项发现彻底排除了针对性后门的可能性，也为长久以来的密码学公案画上句号。","body":"全世界的浏览器和手机芯片里，都埋着一个谁也说不清来源的神秘数字。\n它叫 P-256 曲线的种子。\n长度 160 位，由一串十六进制字符组成。\n每天全球几百亿次网页加密访问，底层都在靠它做数字签名。\n但这串数字从哪里来的？\n2000 年，美国国家安全局把它塞进标准文档的时候，连半句解释都没给。\n密码学界整整紧张了 25 年。\n大家最担心的事情只有一个：\n军方是不是在数字里动了手脚，悄悄埋下了后门？\n后来，当年参与制定的工程师 Jerry Solinas 在 2015 年出来打圆场。\n他说大家别瞎猜了，没搞什么阴谋。\n当时写代码的同事 Bob Reiter 随手拿了一句办公室玩笑话，比如给鲍勃和杰里涨工资。\n然后拿哈希算法算出了这串数字，只是具体的底稿找不到了。\n这番话把全世界的密码学家带进了一条长达十年的死胡同。\n无数人用超级计算机去穷举英文笑话、流行语录、人名组合，试图撞出同样的哈希值。\n密码学家 Filippo Valsorda 甚至在网上发起了公开悬赏。\n奖金一路累积到 36,864 美元，谁能还原出这个种子的来源，钱就归谁。\n整整 25 年，谁也没撞出来。\n直到最近，Anthropic 的研究员决定让内部的 Claude 模型试一试。\n他们给了 Claude 这串原始数字，同时交代了一句：\n忘掉那个办公室笑话的传闻，你自己从头看。\nClaude 花了多长时间？\n不到半小时。\n它不仅找到了来源，而且彻底把答案翻了个底朝天。\n根本没有英文笑话，也根本没用哈希算法。\n这串数字，是当年 NSA 工程师直接用 C 语言自带的随机数函数，拿系统时间戳随手跑出来的。\nClaude 是怎么抓到破绽的？\n它没去猜文字，它把自己当成一个 1997 年的程序员。\n在那个年代写 C 语言代码，想图省事生成一串伪随机数，最顺手的方法是什么？\n调用系统库自带的 lrand48。\n这是一种很老、很弱的线性同余随机数生成器。\n它的数学结构相当原始，每一步只是简单的乘法和加法取模。\nClaude 写了一个检测程序，把种子的二进制切片拿去对照 90 年代常见算法的特征。\n结果一眼扫过去，破绽就露出来了。\n把 160 位的种子切成 32 位的块，好几个种子的最高位全是零。\n如果真是均匀随机的数字，发生这种事的概率低于五千分之一。\n为什么最高位会是零？\n因为老版 C 语言的 lrand48 生成器，内部虽然是 48 位状态，吐出来的数字却只有 31 位。\n它的第 32 位永远锁死为零。\n这就等于在数字表面盖了一个带年代的防伪钢印。\n顺着这个线索往下查，麻烦接踵而至。\n当时生成这些曲线的时候，工程师只截取了随机数的一部分位，剩下的位全被扔掉了。\n缺少了一大半信息，怎么反推当时的内部状态？\n在密码学里，这是一个经典的格密码问题。\nClaude 直接调出了数学界著名的 LLL 格基规约算法。\n它通过已知的那些碎片，把高维格空间里的向量基底一步步缩小。\n仅仅用了几分钟，就精确还原出了那个 48 位的内部状态。\n既然内部状态拿到手了，接下来就好办了。\n线性同余生成器往前算很简单，倒着往回倒推同样很容易。\nClaude 把状态一步一步往回倒退，寻找这个随机数发生器刚启动时的初始状态。\n在 C 语言的 srand48 规范里，初始状态的后 16 位有一个固定的常数标记。\n当 Claude 倒退到这个标记的时候，前面那个 32 位的输入种子跳了出来。\n那根本不是什么秘密短语。\n那是一个 Unix 时间戳。\n它精确记录了这台电脑当时的时钟。\nP-256 曲线的诞生时刻，被定格在 1997 年 8 月 16 日凌晨 1 点 52 分 34 秒。\n工程师敲下回车，程序开始运行。\n当跑到第 1,842 次迭代时，生成出来的数字正好满足标准要求。\n工程师把它复制出来，直接交了差。\n整整五套标准曲线，每一个都严丝合缝地对应上了 1997 年到 1998 年的真实工作时间。\n在 Anthropic 公布的内部思考日志里，最戏剧性的一幕出现了。\n当算出来的结果和官方数字一个字符不差地对上时，Claude 突然开始怀疑自己。\n它在后台逻辑里写道：\n等等，我是不是处在某种模拟测试环境里？\n这个答案太简单了，如果是真的，为什么全世界顶尖专家找了 25 年都没发现？\n随后它自己做了一遍概率验算：\n从一个 32 位的时间戳和一个几千的小计数器，撞出 160 位的完全匹配，偶合概率接近于零。\n这是真实的历史。\n折腾了四分之一世纪的悬案，最后被证明不是精妙绝伦的数学陷阱，只是一个工程师不想费脑子。\n这下全网的密码学团队反而松了一口气。\n为什么？\n如果军方想在算法里预埋后门，必须拥有巨大的搜索空间，反复挑选出那条有致命缺陷的特殊曲线。\n但现在证据摆在眼前，工程师只是随手读了电脑的时间，跑了个基础循环，挑了第一个能用的参数。\n他的搜索自由度只有区区 32 位的时间戳。\n在这么狭窄的空间里，根本不可能精心设计出一套后门。\n困扰了整个互联网 25 年的阴谋论，到这一刻彻底烟消云散。\n那笔 36,864 美元的悬赏金，也被转交给了支持全网免费加密证书的非营利机构。\n折腾了 25 年的技术谜案，背后没有深不可测的算计。\n只是当年那个写代码的人，赶着下班而已。","topic":"破解 25 年 NSA 加密疑云：P-256 曲线种子不是军方后门，只是时钟随机数","frame_type":["机制"],"citations":[],"channel_note":"","identity_notice":"","source_type":"generated","status":"published","generated_at":"2026-10-17 08:16:56","legal_anchor_count":0,"transcript_citation_count":0}