|
|
发表于 前天 15:40
|
查看: 9 |
回复: 0
一位密码工程师对量子计算时间表的看法

原文:https://words.filippo.io/crqc-timeline/
作者:Filippo Valsorda
译者:Kurt Pan
新进展使量子计算机时代前所未有地临近
与几个月前相比,我对部署抗量子密码学之紧迫性的看法已经改变。过去几周你或许已经在私下从我这里听到过这一点,但现在是时候公开表明并解释这一转变了。
关于"具备密码学相关性的量子计算机"(CRQC)方面预期之内或意料之外的进展,传闻已经流传了一段时间,而仅在过去一周里,我们就公开看到了两个实例。
首先,谷歌发表了一篇论文,大幅下调了破解 256 位椭圆曲线(如 NIST P-256 与 secp256k1)所需逻辑量子比特数与门数的估计值,这使得在像超导量子比特这样的快速时钟架构上,攻击可在几分钟之内完成。他们以一种颇为奇怪的方式^1把这件事框定在密码货币、内存池以及"打捞所得物品"之类的话题上,但远为重要的含义其实是针对 WebPKI 的实际中间人攻击。
https://research.google/blog/safeguarding-cryptocurrency-by-disclosing-quantum-vulnerabilities-responsibly/
紧接着,Oratomic 又发表了另一篇论文,表明若拥有非局部连接性——例如中性原子方案似乎可以提供的那种——再借助更优的纠错,破解 256 位椭圆曲线所需的物理量子比特可少至一万个左右。这种攻击速度会慢一些,但即便每月只能破解出一把密钥,也可能是灾难性的。
https://arxiv.org/abs/2603.28627
他们在论文第 2 页有一张极佳的图(其中的 Babbush et al. 即谷歌那篇论文,他们想必事先获得了预览权限):
总体看来,一切都在推进:硬件越来越好,算法越来越省,纠错的需求门槛越来越低。
老实说,那些论文里的物理学究竟意味着什么,我并不真的全懂。那不是我的工作,也不是我的专长。我的工作之一,是为那些把自身安全托付给我的用户进行风险评估。我所知道的,是至少一部分真正的专家正在告诉我们的事情。
Heather Adkins 与 Sophie Schmieg 告诉我们:"量子的边疆,可能比看上去更近",并把 2029 年定为他们的最后期限。那是 33 个月以后的事,而在本月之前,从未有人设定过如此激进的时间表。
https://blog.google/innovation-and-ai/technology/safety-security/cryptography-migration-timeline/
Scott Aaronson 告诉我们,"目前我能在公开场合给出的、关于迁移至后量子密码体制之紧迫性的最清晰警告",是用一个含蓄的类比:1939 至 1940 年间,核裂变研究是如何从公开领域消失的。
https://scottaaronson.blog/?p=9425
仅仅几周前在 RWPQC 2026 上呈现的时间表,已经比两年前所讲的要紧迫得多,而如今其中一部分又已经过时了。过去常有一句玩笑:量子计算机已经"距今十年"了三十年。如今,这话不再成立——时间表确实开始向前推进了。
如果你心里在想"嗯,这事可能很糟,也可能什么都不是",那么我需要你认识到,这种想法本身就已经决定了答案。这场赌局并不是"你是否 100% 确信 2030 年会出现 CRQC?",而是"你是否 100% 确信 2030 年不会出现 CRQC?"我实在看不出,一个非专家如何能够审视专家们正在说的话,然后断言"我比他们更懂,事实上发生概率小于 1%"。请记住,你正用你用户的身家性命下注^2。
换种说法:即便最有可能的结果是我们有生之年都不会出现 CRQC,那也完全无关紧要,因为我们的用户想要的并不只是"略高于一半"[^3]的安全胜率。
诚然,关于"算盘和狗"的论文很有趣,能让你在论坛上看起来聪明而特立独行。但那并不是我们的工作,那些论调也暴露出对该领域的不熟悉。正如 Scott Aaronson 所说:
https://bas.westerbaan.name/notes/2026/04/02/factoring.html
一旦你理解了量子容错,再去问"那你打算什么时候用 Shor 算法把 35 分解掉?",就有点像在 1943 年问曼哈顿计划的物理学家:"那你们打算什么时候至少先弄出一次小型核爆?"
我们的工作并不是去怀疑那些自己不擅长的领域,而是去缓解可信的威胁;而现在,确实有可信的专家正告诉我们:威胁迫在眉睫。
总而言之,十年后这些预测也许会被证明是错的,但在此刻,它们也可能很快就被证明是对的,而这种风险如今已经不可接受了。
那么,现在该怎么办
具体来说,这意味着什么?意味着我们必须把东西交付出去。
很遗憾,我们只能拿现有的工具去推[^4]。这意味着要把硕大的 ML-DSA 签名硬塞进那些为短小 ECDSA 签名设计的位置,比如 X.509;唯一的例外是用于 WebPKI 的 Merkle Tree Certificates,所幸它已经推进得足够远。
https://security.googleblog.com/2026/02/cultivating-robust-and-efficient.html 这并不是我原本想写的那篇文章。我的草稿箱里已经躺了好几个月一篇待发的文稿,主张我们应该现在就部署后量子密钥交换,但利用我们尚有的时间去调整协议以适应更大的签名——因为这些协议当初都是基于"签名很便宜"的假设设计的。可惜那篇文章如今已经过时了:如果我们必须在 2029 年而不是 2035 年完成迁移,那我们就没有那么多时间了。
在密钥交换方面,向 ML-KEM 的迁移进行得还算顺利,但是:
任何非后量子的密钥交换,从现在起都应被视为一种潜在的"主动失陷",值得像 OpenSSH 那样向用户发出警告——因为要确保经由该连接传输或在文件中加密的所有秘密的"保鲜期"都短于三年,是非常困难的。
https://www.openssh.org/pq.html
OpenSSH 默认使用后量子密码学
我们暂时得忘掉 非交互式密钥交换(NIKE) 这种东西;后量子工具箱里目前只有 KEM,而 KEM 在没有交互的情况下只能做到单向认证。
部署任何非后量子的新方案都不再有意义了。我知道,配对很美。我知道,所有 PQ 方案都大得令人厌烦。我知道,我们好不容易才把 P-256 上的 ECDSA 安全实现搞清楚。我知道,对于门限签名或基于身份的加密,目前可能还没有实用的 PQ 等价物。相信我,我懂这有多扎心。但事情就是这样。
混合的"经典 + 后量子"认证在我看来已经完全不再合理,只会拖慢进度;我们应当直接走向纯粹的 ML-DSA-44[^6]。混合密钥交换相对容易,临时密钥甚至不需要为复合私钥定义类型或线格式,几年前用它做对冲是说得通的。但认证不是这种情形:即便已经接近发布的 draft-ietf-lamps-pq-composite-sigs-15 列出了 18 种复合密钥类型,我们仍会浪费宝贵的时间去集体琢磨这些复合密钥该如何处理、如何向用户呈现。况且,自 Kyber 混合方案问世以来已经过去两年,我们对模格方案已经积累了相当的信心。混合签名要消耗时间和复杂度的预算[^5],而其唯一的好处是:在 CRQC 到来之前,万一 ML-DSA 在经典意义上被攻破,它能提供保护。在当前这个时点,这看起来是个糟糕的取舍。
https://www.ietf.org/archive/id/draft-ietf-lamps-pq-composite-sigs-15.html
在对称加密方面,所幸我们什么都不需要做。有一个常见的误解,认为防御 Grover 算法需要 256 位密钥,但这建立在对该算法过度简化的理解之上。更准确的描述是:如果电路深度被限制在 个逻辑门以内(这大约相当于当前经典计算架构在十年时间里能串行执行的门数),那么在 128 位密钥空间上跑 Grover 将需要约 大小的电路。据我所知,这方面并没有任何新进展,而且早有证明指出 Grover 是最优的,其量子加速也无法被并行化。把"非必要的 256 位密钥"要求与真正紧迫的 PQ 要求捆绑在一起是有害的,因为这会让互操作目标变得混乱,并有可能拖慢非对称后量子密码学的部署。
https://words.filippo.io/post-quantum-age/#128-bits-are-enough
https://arxiv.org/abs/quant-ph/9711070 在我所处的小天地里,我们将不得不开始思考:当 Go 标准库中半数密码学包突然变得不再安全时,意味着什么?又如何在降级攻击的风险与向后兼容之间求得平衡?这是我们职业生涯中第一次面对这样的事:从 SHA-1 迁移到 SHA-256 的破坏性远不及此[^7],而即便是那次迁移也耗时极久,期间还时不时冒出意料之外的降级攻击。
诸如 Intel SGX、AMD SEV-SNP 这样的可信执行环境(TEE),以及一般意义上的硬件认证,可以说是彻底完蛋了。它们的所有密钥与根都不是后量子的,而且我没听说有任何关于部署后量子根的进展;考虑到硬件层面的速度,我们只能接受它们可能赶不上趟,从而不能再依赖它们。我已经因此重新评估了一整个项目,并且可能会把它们在我的工具箱里降格为勉强的"纵深防御"。
那些拥有"密码学身份"的生态(比如 atproto,以及——是的——密码货币)需要尽快开始迁移。因为如果在它们完成迁移之前 CRQC 就来了,它们将不得不做出极其艰难的决定:要么任由用户被攻陷,要么把用户彻底"砖化"。
https://atproto.com/
文件加密尤其容易受"先存储后解密"攻击的伤害,所以我们大概很快就得开始对非后量子的 age 接收方类型发出警告,再到后来直接报错。可惜的是,我们引入 PQ 接收方至今也才几个月,那是在 1.3.0 版本里[^8]。
https://github.com/FiloSottile/age/releases/tag/v1.3.0
最后,本周我开始在博洛尼亚大学讲授一门博士阶段的密码学课程,而我打算只把 RSA、ECDSA 与 ECDH 当作"遗留算法"来提及,因为这些学生在职业生涯中正是会以这种身份遇见它们。我知道,这感觉很怪。但事情就是这样。
[^1] 整篇论文都有点滑稽:它为一个量子电路给出了零知识证明,而能实际运行该电路的硬件出现之前,这套证明几乎肯定会被重新推导并改进。他们似乎觉得这是出于"负责任披露"的考虑,所以我就当这只是物理学家不熟悉我们这个领域,正如我们也不熟悉他们的领域一样。
[^2] 这里的"你"承担了相当多的含义,不过这篇文章的目标读者对我来说有点不寻常:我是在向我的同行,以及那些手握"是否部署后量子密码学"决策权的人喊话。
[^3]: 曾有一位审稿人对"经过 次工作量后攻击者成功概率为 1/536,870,912(约 0.0000002%, )"提出过反对意见,他是对的,因为在密码学中我们通常以 为目标。
[^4]: 那么,为什么要信任这些新东西呢?其中有两部分:数学和实现。数学也不是我的本行,我同样信赖 Sophie Schmieg 这样的专家——她告诉我们她对格密码非常有信心;以及 NSA,他们已经批准 ML-KEM 与 ML-DSA 用于所有"绝密"级别的国家安全用途。它也已经比椭圆曲线密码学首次部署时还要"年长"。("NSA 难道不会为了破解我们的加密而撒谎吗?"不会,NSA 从未故意以非 NOBUS 后门来危害美国国家安全,而且 ML-KEM 与 ML-DSA 的结构里也没有藏匿 NOBUS 后门的余地。)至于实现层面,我倒确实有资格发表意见——我把密码学实现与测试当作了自己的细分领域。ML-KEM 与 ML-DSA 比起它们的经典对应物要容易安全实现得多,而且凭借我们如今更完善的测试基础设施,我预计在它们的实现中将极少出现 bug。
https://keymaterial.net/2025/12/13/a-very-unscientific-guide-to-the-security-of-various-pqc-algorithms/
https://en.wikipedia.org/wiki/NOBUS
https://keymaterial.net/2025/11/27/ml-kem-mythbusting/
https://github.com/C2SP/wycheproof
[^5]: 一个小例外是:如果你的协议本来就具备从多个公钥传递多份签名的能力,那么搞一种"穷人的混合签名"是有意义的——只需强制要求来自一个经典公钥与一个纯 PQ 公钥的"二选二"签名即可。tlog 生态中的某些部分可能会走这条路,但那只是因为既有的 n-of-m 嵌套签名群组支持已经把成本拉得相当低了。
[^6]: 为什么用 ML-DSA-44,而我们通常用的是 ML-KEM-768 而不是 ML-KEM-512?因为 ML-KEM-512 属于 Level 1,而 ML-DSA-44 属于 Level 2,所以它对于轻微的密码分析改进已经预留了一些余量。
[^7]: 因为 SHA-256 是 SHA-1 更直接的"插件式"替代品;因为 SHA-1 所占据的攻击面比整个 RSA 与 ECC 要小得多;也因为 SHA-1 当时并没有那么彻底地被攻破:它仍然保有原像抗性,仍可用于 HMAC 与 HKDF。
[^8]: 这次延迟在很大程度上要归因于我一个不幸的决定:把进度阻塞在了"HPKE 混合接收方的可用性"上,而后者又被阻塞在 CFRG 那边——他们花了将近两年时间为 X-Wing(2024 年 1 月)配上 ML-KEM(2024 年 8 月)选定一个稳定的标签字符串,尽管期间对设计本身没有作出任何改动。IETF 应该就此做一次内部事后复盘,但我怀疑我们大概是看不到了。 |
|