{"id":"2111208516845261107","account":"mubei","brand":"@mubei","title":"困扰全球密码学界25年、悬赏3.6万美元的谜案，被破了。 全世界专家耗费无数算力猜了四分之一世纪，一无所获。 结果，Cl…","summary":"困扰全球密码学界25年、悬赏3.6万美元的谜案，被破了。 全世界专家耗费无数算力猜了四分之一世纪，一无所获。 结果，Claude只用了不到半小时，把底全抄了。 案子要从1997年说起。 美国国家标准与技术研究院（NIST）推行了一套加密标准，核心是P-256等椭圆曲线。 这些曲线…","body":"困扰全球密码学界25年、悬赏3.6万美元的谜案，被破了。\n全世界专家耗费无数算力猜了四分之一世纪，一无所获。\n结果，Claude只用了不到半小时，把底全抄了。\n\n案子要从1997年说起。\n美国国家标准与技术研究院（NIST）推行了一套加密标准，核心是P-256等椭圆曲线。\n这些曲线的安全基石，来自一串20字节长的神秘\"种子\"。\n负责生成这些种子的，是美国国家安全局（NSA）已故密码学家杰里·索利纳斯（Jerry Solinas）。\n\n索利纳斯生前回忆，当年他和同事拿一句内部冷笑话做了SHA-1哈希。\n大意是\"给鲍勃和杰里加薪\"，但他记不清确切的字句。\n就为了找出这句话，密码学界猜了25年。\n词库跑烂了，算力烧干了，没人能试出来。\n\nClaude接手后，直接把那句笑话扔到了一边。\n它问了一个反常识的问题：如果这根本不是哈希呢？\n上世纪90年代的老式伪随机数生成器，是会留下数字指纹的。\n\n它拿当年的常用随机数算法，去扫描公开的曲线种子。\n一扫，破绽立刻浮出水面。\n五条二进制曲线里，居然有四条种子藏着肉眼可见的规律。\n把这四条种子按32位一组切开，看开头的十六进制数字，最高位全都是0。\n如果真是哈希算出来的，这种概率只有百万分之一。\n\n什么样的算法会把最高位固定成0？\n老式Unix系统自带的伪随机函数lrand48。\n这个函数返回31位数字，内部状态有48位，底下藏着17位。\n17位只有13万种可能，暴力穷举几秒搞定，整条二进制曲线的种子瞬间吻合。\n\n二进制曲线搞定了，那支撑全球互联网加密的素数曲线P-256呢？\n它的表面看不出破绽。\n因为当年生成它时换了一种读法，每次只读一个字节，底下藏着整整40位。\n这要怎么解？\nClaude把它转成19维格基约化问题，用标准的LLL算法，几毫秒就锁定了内部状态。\n\n更绝的还在后头。\n这种线性生成器是可以沿时间倒带的。\nUnix启动该函数时，底层16位会写入一个固定特征，那就是它的出生起点。\nClaude一路往前倒推，发现P-256正是第1842号候选。\n\n那个被猜了25年的种子参数，终于被还原成了最初的状态值。\n转成世界协调时间的Unix时间戳，答案浮出水面。\n1997年8月16日。\n五条官方素数曲线全是一模一样的产物，生成时间横跨1997年5月到1998年4月。\n\n根本没有什么精心哈希的绝妙笑话。\n它只是一串1997年夏天带着时间戳、顺手跑出来的老式随机数。\n当然，老代码还留了悬念：第876号候选本来也能用，为何被弃至今未明；最小的B-163曲线也对不上这套规律。\n悬赏3.6万美元、争论了整整四分之一个世纪的密码学谜题，到这里彻底画上了句号。","category":"其它","score":null,"translated_x_url":"https://x.com/i/status/2111293320475341121","translated_status_id":"2111293320475341121","published_at":"2026-10-17 02:12:44","created_at":"2026-10-17 01:32:32"}