后量子时代的密码安全 - 量子计算机将改变什么
本文约需 14 分钟阅读
量子计算不会破解你的密码 - 至少不是大多数人想象的那样。大部分媒体报道遗漏的关键区别是: Shor 算法摧毁的是公钥加密 (RSA、ECC、Diffie-Hellman),而密码哈希算法如 bcrypt 和 Argon2 仅面临 Grover 算法带来的二次加速,将 128 位搜索空间降低到有效的 64 位。IBM 的量子路线图 目标是到 2033 年达到 100,000 量子比特,但对正确加盐的 Argon2 哈希运行 Grover 算法 需要数百万个纠错逻辑量子比特 - 远超任何预计时间线。与此同时,NIST 于 2024 年最终确定了 三个后量子加密标准 (ML-KEM、ML-DSA、SLH-DSA),并建议在 2035 年前完成从脆弱算法的迁移。真正且紧迫的威胁是 「现在收集,以后解密」- 对手今天收集加密数据,等量子计算机成熟后再解密。 本文将事实与炒作分开,解释量子计算实际上对密码安全改变了什么, 并概述个人和组织现在应该做什么。
Shor 算法与 Grover 算法 - 准确梳理影响范围
要准确理解量子计算对安全的影响,必须明确区分两种量子算法。Shor 算法可以在多项式时间内解决大整数分解和离散对数问题。这从根本上破坏了 RSA 加密 (依赖于分解的困难性)、椭圆曲线加密 (依赖于离散对数问题) 和 Diffie-Hellman 密钥交换。当前互联网的几乎所有加密通信 (TLS/SSL)、数字签名和 PKI 基础设施都会受到影响。
另一方面,Grover 算法为非结构化搜索问题提供二次加速。应用于密码暴力攻击时,将搜索 N 个候选的计算量从 N 降低到 √N。具体来说,对于具有 128 位安全强度的哈希,Grover 算法有效地将其降低到 64 位强度。虽然这听起来很严重,但实际上 2^64 的计算量仍然是巨大的,即使在当前的经典计算机上也需要数十年。更重要的是,bcrypt 和 Argon2 等密码哈希函数被有意设计为高计算成本,这个成本适用于 Grover 算法的每次迭代。
对密码哈希的实际影响 - 冷静评估
让我们冷静评估量子计算对密码哈希的威胁。考虑一个用 Argon2id (OWASP 推荐设置:内存 19 MiB、迭代 2 次、并行度 1) 哈希的 16 字符随机密码。在经典计算机上暴力破解需要约 2^95 的计算量。即使应用 Grover 算法,也需要约 2^47.5 的量子运算,每次运算都要乘以 Argon2 的计算成本 (包括 19 MiB 的内存访问)。考虑到当前量子计算机的运行速度 (微秒级的门操作),这个计算需要天文数字的时间。
换句话说,设计良好的密码哈希系统即使面对量子计算机也具有相当的抗性。对策很简单:确保足够的密码长度 (推荐 16 个字符以上),使用 Argon2id 等现代哈希函数并设置适当的参数,密码哈希的安全性在量子时代也能得到维护。但这仅限于密码哈希,用于 TLS 通信加密和数字签名的公钥加密将被 Shor 算法完全破坏,因此那方面的迁移是紧迫的。
NIST 后量子密码标准化的现状
NIST (美国国家标准与技术研究院) 于 2016 年启动了后量子密码标准化进程,并于 2024 年 8 月最终确定了前三个标准。ML-KEM (基于模格的密钥封装机制,原名 CRYSTALS-Kyber) 是密钥封装机制,用于 TLS 握手等密钥交换。ML-DSA (基于模格的数字签名算法,原名 CRYSTALS-Dilithium) 是数字签名算法,用于代码签名和证书验证。SLH-DSA (无状态基于哈希的数字签名算法,原名 SPHINCS+) 是基于哈希的签名算法,作为具有不同于格密码数学基础的备份。
这些标准已经开始被采用。Google Chrome 从版本 131 (2024 年 11 月) 开始在 TLS 1.3 中 支持 ML-KEM,Signal 协议于 2023 年 9 月集成了 PQXDH (后量子扩展 Diffie-Hellman)。 要深入了解密码学基础,我们的加密基础文章和PKI 术语表条目提供了关于为什么公钥基础设施是主要目标的重要背景。
「现在收集,以后解密」- 当前存在的威胁
后量子密码讨论中最容易被忽视的是「现在收集,以后解密」(HNDL) 攻击。国家级攻击者正在大量拦截和存储当前的加密通信。虽然这些数据目前无法解密,但这是一种预见未来量子计算机能够解密的长期战略。外交通信、军事情报、企业知识产权和医疗记录等长期保持价值的数据是主要目标。
HNDL 攻击对密码安全的影响是间接但重要的。虽然密码哈希本身具有量子抗性,但如果通过 TLS 加密传输密码的过程被拦截,未来可能恢复密码的明文。这对长期不更改密码的用户来说风险尤其大。此外,如果会话令牌或认证令牌被拦截和存储,未来可能被解密并用于重放攻击。
个人用户现在应该做什么
面对量子计算威胁,个人用户现在应该采取的措施很明确。第一,确保密码长度至少 16 个字符。即使考虑 Grover 算法的加速,16 个字符以上的随机密码对量子计算机仍有足够的安全余量。使用密码管理器可以轻松管理长而复杂的密码。第二,积极推进向通行密钥的迁移。通行密钥是基于 FIDO2/WebAuthn 的认证方式,通过消除密码本身,从根本上解决所有与密码相关的风险,包括钓鱼、暴力破解和量子攻击。
第三,保持软件和浏览器更新。随着后量子密码被集成到 TLS 1.3 和其他协议中, 保持更新可以确保自动受益于这些保护。我们的通行密钥指南和通行密钥迁移挑战文章详细介绍了从密码过渡的实际步骤。想要了解更广泛的认证格局,通行密钥术语表条目提供了简洁的概述。
组织应采取的对策和时间线
对组织来说最重要的是确保密码敏捷性 (Crypto Agility) - 即在系统设计中能够快速切换加密算法的能力。加密算法被硬编码的系统在迁移到后量子密码时将需要巨大的时间和成本。首先,创建组织内使用的所有加密算法的清单。识别使用加密的所有位置:TLS 证书、VPN、数据库加密、代码签名、API 认证等。然后识别 NIST 建议在 2035 年前迁移的脆弱算法,如 RSA-2048 和 ECC P-256,并制定迁移计划。
引入零信任架构也是为后量子时代做准备的有效措施。在零信任中,认证和授权是针对每个单独请求而非网络边界进行的,因此即使部分加密被破解,损害也可以被局部化。此外,组织性地部署通行密钥和硬件安全密钥是减少对密码依赖、从根本上消除量子计算机密码攻击风险的最有效长期策略。
想要深入了解密码学基础和量子抗性策略的人,密码学参考书籍 (Amazon)提供了从经典到后量子算法的全面覆盖。
常见问题
- 量子计算机实用化后,现在的密码都会被破解吗?
- 不,这是一个误解。量子计算机直接破坏的是 RSA 和 ECC 等公钥加密,对密码哈希 (bcrypt、Argon2 等) 的影响是有限的。虽然 Grover 算法将暴力搜索空间缩小到平方根,但用 Argon2id 哈希的 16 个字符以上的随机密码,即使用量子计算机也难以在实际时间内破解。但是,如果通过 TLS 传输密码的过程被拦截,未来可能被解密。
- 通行密钥对量子计算机安全吗?
- 当前的通行密钥基于 ECDSA (椭圆曲线加密),理论上可能被 Shor 算法破解。但是,FIDO 联盟已经在考虑向后量子密码迁移,通行密钥底层的 FIDO2 协议设计为可以替换加密算法。在量子计算机实用化之前,通行密钥的加密基础预计将更新为后量子算法。与密码相比,通行密钥更有可能顺利过渡到量子时代。
- 如何保护自己免受「现在收集,以后解密」攻击?
- 在个人层面,优先使用支持后量子密码的服务和应用。Signal 已经实现了后量子密钥交换 (PQXDH),Chrome 也在 TLS 1.3 中支持 ML-KEM。保持浏览器和应用最新可以自动享受这些保护。对于需要长期保持机密性的数据 (医疗记录、法律文件、财务信息等),也请考虑在静态加密中采用后量子算法。