后量子密码学:CRYSTALS-Kyber 与 Dilithium
概览 NIST 选定的后量子算法,了解其所依赖的格问题,并评估现有 PKI 基础设施的迁移挑战。
后量子密码学:CRYSTALS-Kyber 与 Dilithium 是 CoddyKit 上的免费 Security+ Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Security+ Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Security+ Academy 课程共包含 4 节课。
量子计算威胁
当前的公钥密码学——RSA、ECC 和 Diffie-Hellman——依赖于对经典计算机而言在计算上不可行的数学问题。RSA 的安全性依赖于分解大整数的困难性;ECC 的安全性依赖于椭圆曲线离散对数问题。足够强大的量子计算机运行Shor 算法后,可以在多项式时间内解决这两个问题,从而有效破解目前广泛部署的所有公钥密码学方案。虽然如今还不存在这样的量子计算机,但这一威胁已受到足够重视,因此 NIST 于 2016 年开始制定抗量子替代方案的标准。
先收集、后解密攻击
国家级对手可能正在收集今天的互联网加密流量,打算等量子计算机可用后再进行解密——这种策略称为“先收集、后解密”,也称为 SNDL (Store Now, Decrypt Later)。具有长期敏感性的数据(机密政府秘密、财务记录、医疗数据)风险尤其高,因为量子计算机出现时,这些数据可能仍然具有敏感性。因此,我们敦促各组织在量子计算机出现之前迁移到后量子密码学 (PQC),而不是等到出现之后,因为迁移过程复杂且耗时。
格罗弗算法与对称密码学
区分量子威胁对不同算法类别的影响非常重要。Shor 算法会破解 RSA 和 ECC 非对称密码学。Grover 算法能为搜索提供二次加速,使对称密码和哈希函数的有效密钥长度减半。这意味着 AES-128 面对量子攻击者时只有 64 位安全性——不够安全——而 AES-256 仍能保持 128 位的后量子安全性,这是可以接受的。SHA-256 的安全性同样会减半,但 SHA-256 仍然够用;对于更长期的安全性,建议使用 SHA-384 和 SHA-512。
NIST PQC 标准化流程
2016 年,NIST 发起了一项竞赛,用于选出后量子密码算法,共收到 82 份提交方案。经过多轮评估,NIST 于 2024 年确定了首批 PQC 标准:用于密钥封装的FIPS 203 (ML-KEM,源自 CRYSTALS-Kyber)、用于数字签名的FIPS 204 (ML-DSA,源自 CRYSTALS-Dilithium),以及作为基于哈希的签名替代方案的FIPS 205 (SLH-DSA,源自 SPHINCS+)。这些算法能够抵御来自经典计算机和量子计算机的攻击,旨在替代 PKI 系统中的 RSA 和 ECDSA。
基于格的密码学基础
CRYSTALS-Kyber 和 CRYSTALS-Dilithium 都是基于格的密码方案。格是高维空间中的规则点阵。这两种算法所依据的困难问题都是带误差学习 (LWE)问题:给定一组加入小型随机误差的线性方程,找出其中隐藏的秘密。目前还没有已知的量子算法能够高效求解 LWE。CRYSTALS 使用的 Module-LWE (MLWE) 变体在安全级别与密钥/密文大小之间取得了良好平衡。
CRYSTALS-Kyber:密钥封装
CRYSTALS-Kyber(现称 ML-KEM)是一种密钥封装机制 (KEM),允许双方通过不安全信道建立共享秘密,从而替代 Diffie-Hellman 和 RSA 密钥交换。Kyber 会生成一对公钥和私钥;发送方使用接收方的公钥封装随机会话密钥;接收方使用自己的私钥将其解封装。Kyber-768(NIST 安全级别 3,大致相当于 AES-192)的公钥约为 1,184 字节,密文约为 1,088 字节,远大于 256 字节的 RSA-2048 密钥。
CRYSTALS-Dilithium:数字签名
CRYSTALS-Dilithium(现称 ML-DSA)是一种数字签名算法,用于替代 ECDSA 和 RSA 签名。它利用格数学生成签名,验证过程高效。Dilithium3(安全级别 3)生成的签名约为 3,293 字节,明显大于 64 字节的 ECDSA 签名。这一尺寸增长是证书密集型 PKI 系统迁移时面临的主要挑战。尽管尺寸较大,Dilithium 在标准硬件上签名和验证的速度都很快,并且能够抵御所有已知的量子攻击。
SPHINCS+:基于哈希的签名
SPHINCS+(现称 SLH-DSA)是一种无状态的基于哈希的签名方案,被 NIST 选为 Dilithium 的替代方案。它的安全性只依赖底层哈希函数(SHA-256 或 SHAKE)的安全性,因此极为保守——即使格数学以某种方式被破解,SPHINCS+ 仍然安全。代价是签名尺寸较大:根据参数集不同,SPHINCS+ 签名大小从 8KB 到 50KB 不等,因此不适合 TLS 证书,但非常适合签名尺寸不太关键的代码签名。
混合密码学:迁移策略
推荐的迁移策略是混合密码学:将一种经典算法与一种后量子算法结合,只要其中任一算法尚未被破解,连接就仍然安全。例如,使用 X25519 + Kyber-768 进行密钥交换时,攻击者必须同时破解 ECDH 和 Kyber 才能解密流量。这种方案已经开始部署:Google 的 Chrome 浏览器于 2023 年为 TLS 1.3 的 X25519Kyber768 混合密钥交换增加了支持,Apple 也将其加入了 iMessage。混合方案可以实现平稳过渡,无需在某个指定日期突然完成切换。
PKI 迁移挑战
将 PKI 迁移到后量子算法会带来巨大的复杂性:证书大小会显著增加,影响 TLS 握手的大小和性能;硬件安全模块 (HSM)必须更新或替换,才能支持新算法;代码签名基础设施和证书颁发机构需要更新;此外,内存受限的物联网设备可能无法支持更大的后量子密钥。各组织应首先开展密码学清单盘点,列出所有使用 RSA 和 ECC 的位置,作为 PQC 迁移计划的第一步。
密码敏捷性:构建面向未来的系统
密码敏捷性指的是对系统进行设计,使其能够替换密码算法,而无需彻底重新设计整个系统。具备密码敏捷性的系统会将算法标识符与密钥和密文一同存储,从而可以通过更改配置参数来进行未来升级。TLS、SSH 和现代证书标准已经体现了密码敏捷性。各组织应审查自定义协议和应用中的硬编码算法选择,因为这些系统的迁移成本最高。现在采用密码库抽象层,可以让未来的 PQC 迁移变得容易许多。
快速检查
测试您对本课 CompTIA Security+ (SY0-701) 知识点的理解程度。
课程回顾
本课中您学到了:Shor 算法会威胁 RSA 和 ECC,而 Grover 算法只会使对称密钥的安全性减半,因此 AES-256 和 SHA-384 在后量子环境中仍然可用;CRYSTALS-Kyber (ML-KEM) 替代密钥交换,CRYSTALS-Dilithium (ML-DSA) 替代数字签名,成为 NIST 选定的后量子标准;在迁移逐步推进期间,结合经典算法和 PQC 算法的混合密码学是推荐的迁移策略。接下来,我们将探索云原生环境中的容器安全。
常见问题解答
「后量子密码学:CRYSTALS-Kyber 与 Dilithium」课时是免费的吗?
是的 — 「后量子密码学:CRYSTALS-Kyber 与 Dilithium」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Security+ Academy 课程的其余内容,请升级到 CoddyKit PRO。 Security+ Academy 课程共包含 4 节课。
「后量子密码学:CRYSTALS-Kyber 与 Dilithium」这节课中我会学到什么?
概览 NIST 选定的后量子算法,了解其所依赖的格问题,并评估现有 PKI 基础设施的迁移挑战。 你通过在浏览器中直接运行的动手代码来练习 Security+ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Security+ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Security+ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「后量子密码学:CRYSTALS-Kyber 与 Dilithium」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Security+ Academy 课中编写并运行代码吗?
能。每节 Security+ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- TLS 1.3 握手与 0-RTT 会话恢复
- 经身份验证的加密:AES-GCM 与 ChaCha20-Poly1305
- 密钥派生函数:PBKDF2、bcrypt 与 Argon2
- 后量子密码学:CRYSTALS-Kyber 与 Dilithium