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