睡前一句话,35 年的 RSA 纪录没了

cover

Hello,我是飞飞。

9 月 3 日,X 上冒出来一条很怪的帖子。没有标题,没有解释,就是一个 130 位的数字,后面缀了一句英文:divides RSA-260,意思是这个数除得尽 RSA-260。

你大概率没刷到过,我翻译一下这条帖子的分量。RSA-260 是 1991 年 RSA 实验室发出来的挑战数字,260 位十进制,由两个大素数乘在一起。悬了 35 年,没人能把它拆回两个素数。谁能拆开,谁就刷新公开口径里分解过的最大 RSA 数。上一笔纪录 RSA-250,还是 2020 年 2 月的事。

更怪的是后面六天。帖子发了,方法没发。Scientific American 跑去写报道,结论是这事「似乎没有用到 AI」。他同事开玩笑说 Eric 入职七个月以来一直在手工试素数,逐个往里代,聚合账号把玩笑当新闻发了。你知道 130 位的素数有多少个吗,3.3 乘以 10 的 127 次方个。逐个试,试到宇宙凉透也轮不到那个对的。而谜底揭晓后最反常的一点是,这次破纪录,靠的根本轮不到数学。

数学一点没动

GNFS 流水线:一句睡前指令,三段 GPU 流水线,最后乘回去验证

先说方法,因为方法本身就够反常。

发帖人是 Cognition 的工程师 Eric Lu,9 月 9 日他发了篇博客把整件事交代了。他在博客里主动承认,这次没有任何算法上的创新,原话是 essentially no algorithmic advancements。用的还是那个老算法,通用数域筛,说人话就是目前已知分解大数最快的路子,分三步走:先挑一组好用的多项式,再筛出海量的数学关系,最后解一个巨大的方程组。

这三步全世界都跑了十几年,跑到 RSA-250 就跑不动了,卡在算力太贵。这次的活儿,是把整条流水线搬上 GPU。开源参考实现叫 CADO-NFS,法国人写的,RSA-240 和 RSA-250 都是拿它破的。Eric 的 Devin 们把这套 CPU 代码里几乎每个部件都改出了 GPU 版,最难啃的是筛关系那步,得在一个巨大的数组里乱序读写,GPU 干这个长期被认为不划算。

结果他们做成了,比此前公开的最优方案便宜十倍。

睡前一句话的起点

故事的开头小到不成比例。

8 月 13 日凌晨 0 点 11 分,Eric 给 Devin 发了头一条指令:给 CADO-NFS 的 CPU 筛子写一个 GPU 替身,性能要超过原版,给你开一台测试用的 GPU,自己装环境,自己迭代。两个多小时后他补了一句,得能吃下 RSA-250 那一档的参数。然后他睡觉去了。

醒来的时候,Devin 已经又自己迭代了七个小时,做成了。

之后五天,他们顺着缩放阶梯往上爬。开局分解一个 157 位的数要三个多小时,五天后分解 190 位的数,用的时间还是三小时出头。真正对 RSA-260 的主攻从 8 月 18 日跑到 9 月 3 日,日历上翻过去 15.6 天;加上前面铺路,整场仗三周。

这里我得诚实拆一下标题:那句睡前的话没有直接破纪录,它只是把整条流水线点着了。但你也看到了,点着之后的事,Devin 基本自己跑完了。

这本账有多薄

数字摆出来,你才看得出这次有多离谱。

总开销约 4900 个 GPU 日,合 13.5 GPU 年,按市价折算约 40 万美元。对照上一笔纪录:RSA-250 用掉约 2700 个 CPU 核年,一支由六位数论权威组成的团队跑了好几个月,末了还发了一整篇论文。这次是一个人带着一队 agent,三周。

账本里还有两笔特别真实的浪费。多项式选择本该一天搞定,实际烧掉 643 个 GPU 日,Eric 把「操作不当」四个字直接写进了博客。线性求解阶段有 7% 的算力,因为崩溃或者被更重要的任务抢占,白跑了。破纪录的账本里带着这些,我反而更信这笔账。

顺带交代纪录的口径,免得你被标题党带偏。RSA 挑战赛早就收摊了,没有颁奖方,这个纪录是社区公认的口径。Wikipedia 几分钟内就更新了,但元老 Zimmermann 的记录页到我查的时候还停在 RSA-250。至于验证,这回最不麻烦,两个因子乘回去就行。RSA-250 团队的成员 Thomé 看完给了句评价:这结果可行,但不算低垂的果实。

人还剩什么活

这篇博客最值钱的部分,是 Eric 老老实实回答了一个问题:Devin 还需要他干什么。

先看编排规模。Eric 自己发了 3328 条消息,八万多字,这是整台机器里唯一的人肉方向盘。底下 233 个会话在跑,最多的时候 18 个并发,192 个直接干分解;Devin 自己又开了 101 个子会话,其中 36 个,从头到尾没人管。

他的答案原话是,仍然需要很多。具体是这些活:定目标的优先级,把跑偏的拉回来,指出重复的低效,补上没人试过的方向,在 Devin 过早放弃的时候把它拽回来。他还给自己最大的贡献排了个序:搭出一套统一的测量结果、基准和性能估算器。原话说,这些东西显然不会自己长出来。

这段我读得最慢,因为它精确砸中过我自己的坑。我开两个 Claude Code 会话改同一个文件,互相覆盖,回滚找原始版本花了 40 分钟。后来我才明白,并行干活最贵的成本不在算力,在谁也没有一把统一的尺子。我现在那条写作流水线,十几个 skill 敢串起来跑,靠的是那条一条条立起来的硬扫描矩阵和字数脚本,哪步过没过,机器说了算。那套东西,还真就不会自己长出来。

还有一层摆在明面上、却容易被略过的事。Eric 观察到,代码离上游 CADO-NFS 越远,agent 越困惑,他怀疑 CADO-NFS 本身就在预训练语料里。说白了,agent 表现出来的强大,底下垫着人类工程师搭好的脚手架,甚至垫着训练数据里见过的熟悉感。

RSA 要完了吗

每次 RSA 上新闻,评论区十有八九在刷同一个问题:我的加密还能用吗。

答案写在博客里,很干脆。你现役的 RSA-2048 密钥,分解难度是 RSA-260 的 912 亿倍,在这条技术路线上等于不可行。倒是 1024 位的密钥,估算 3000 万美元就能分解,不过这类密钥 2013 年就弃用了,Eric 的原话是,RSA-1024 不安全这件事本来就不是新闻。

真正值得你记下的是三个信号。成本塌了,凑 GPU 就行,不用造专用硬件;门槛塌了,能干这事的人从密码学家扩到了会指挥 agent 的工程师;还有一个是 Eric 自己那句倡议:能用编程解决的研究问题,都值得立刻让 agent 上去试。

有人会说,Cognition 自家工程师拿自家产品和算力刷纪录,这是广告吧。我理解这个怀疑,但两条把它抵消了:结果两个因子乘回去就能验,上一代纪录团队的成员也认了账;作者连自己浪费 643 个 GPU 日都写出来了,比大多数官宣体面。

没学到的那部分

博客结尾,Eric 写了一段让我坐直了的话。

他说这事发生得很奇怪,功劳署在他名下,但他不知道该怎么在自己、Devin、硬件和全世界之间分配。他打了个比方,自己像推着缝纫机走的人,没有他不行,可布也不是他一针一线缝的。然后是那句最扎的:他对数域筛和 GPU 编程学到的东西,比自己独立干要少。

三件事连起来看就有意思了。费马大定理那次,证明是编译器一行行验的,对错有硬门。Navier-Stokes 方程那次,Lean 验证过了,可全文没公开,为功劳先打了一架。到这篇,验证是乘法,免费,所以没有戏看,纪录安安静静落在工程上。三块拼图拼出来的形状是一样的:AI 往前拱的地方,全是「对错判得死」的地方。

那对你我这种天天让 agent 代写代码的人,剩下的问题就一个。当它连你攒了十年的看家本事都能代练的时候,你是继续放,还是留一块亲手干的活给自己?

评论区说说,你最近一次给 agent 布置大活,时间花在动手上,还是花在把「什么叫干好了」讲清楚上?