引言
2024年8月,美国国家标准与技术研究院(NIST)正式发布了首批后量子密码学(Post-Quantum Cryptography, PQC)标准,标志着密码学领域的历史性转折。其中,CRYSTALS-Kyber(FIPS 203)被选为密钥封装机制标准,CRYSTALS-Dilithium(FIPS 204)被选为数字签名标准,而FALCON(FIPS 206)则作为备选签名方案发布。这三大标准全部基于格(Lattice)问题的困难性。本文将深入探讨格基加密的数学基础、算法设计和工程实现。
第一部分:格的数学基础
1.1 格的定义与几何直观
在m维实数空间中,格是一组离散点的集合,由n个线性无关的基向量b₁, b₂, ..., bₙ的整数线性组合构成:
L = {∑zᵢbᵢ | zᵢ ∈ ℤ}
格的特殊困难问题为密码构造提供了数学基础:
- 最短向量问题(SVP):找到格中长度最短的非零向量
- 最近向量问题(CVP):给定空间中一点,找到距离它最近的格点
- 最短独立向量问题(SIVP):找到n个足够短且线性无关的格向量
1.2 理想格与NTTRU结构
如果格对应的矩阵具有循环/反循环结构,且可以由一个n维向量生成,则称为循环格。循环格的结构带来两个关键优势:
- 矩阵-向量乘法可以通过数论变换(NTT)加速到O(n log n)
- 密钥/公钥表示只需一个向量而非完整矩阵,极大减少传输开销
第二部分:CRYSTALS-Kyber 密钥封装机制
2.1 核心构造:ML-KEM
Kyber(Module Lattice-based Key Encapsulation Mechanism)基于Module-LWE问题的困难性:
ML-KEM封装过程:
- 密钥生成:生成随机种子,扩展生成公钥(t, A)和私钥(s, e)
- 封装:发送方用公钥封装得到共享密钥K和密文c
- 解封装:发送方用私钥从密文c恢复共享密钥K'
2.2 Kyber的三种安全级别
Kyber提供三个参数集,对应不同安全强度:
- ML-KEM-512:等效AES-128安全级别,适用于小内存设备
- ML-KEM-768:等效AES-192安全级别,为默认推荐配置
- ML-KEM-1024:等效AES-256安全级别,适用于极度敏感场景
第三部分:CRYSTALS-Dilithium 数字签名
3.1 基于模块格的签名构造
Dilithium(Module Lattice-based Digital Signature Algorithm,ML-DSA)基于Module-SIS和Module-LWE双重困难假设。其核心思想是"哈希与拒绝采样":
- 签名者用私钥生成一个短向量y,计算w = Ay
- 用承诺值μ对w进行哈希得到挑战c = H(μ || w₁)
- 输出签名z = y + c·s(需确保z足够短以通过拒绝采样)
3.2 拒绝采样的安全意义
拒绝采样(Rejection Sampling)在Dilithium中承担关键安全功能:通过反复采样直到z的范数小于某个界,确保签名分布独立于私钥,从而抵抗侧信道攻击。
第四部分:同态加密:格密码的皇冠明珠
4.1 部分同态加密(PHE)
允许在密文上执行一类运算。Paillier加密支持密文上的加法,ElGamal支持密文上的乘法。
4.2 完全同态加密(FHE)
Gentry于2009年提出的理想格构造开启了同态加密的新时代。主流方案基于RLWE(Ring Learning With Errors):
- BFV/BGV:整数运算,适用于数据库加密计算
- CKKS:近似浮点运算,适用于机器学习推理
- TFHE:二进制门电路,适用于通用计算
4.3 GPU加速工程实践
FHE的运算量极大,NIST正在推进的硬件加速项目利用GPU并行化NTT运算。NVIDIA cuFHE库已实现比CPU快100-1000倍的FHE吞吐量。
第五部分:工程迁移与混合部署
5.1 混合TLS 1.3
Cloudflare和Google已在Chrome浏览器实现混合密钥交换:ECDHE + Kyber-768,确保在量子计算威胁出现前和出现后都能提供安全性。
5.2 X.509证书的PQC迁移
证书体系需要支持PQC签名,但PQC公钥(Dilithium = 1.3-2.5KB)和签名(2.4-4.6KB)远大于ECDSA(公钥65字节,签名70字节),给网络传输和CRL管理带来挑战。
5.3 密码敏捷性(Crypto-Agility)设计
系统应在设计时考虑算法可替换性,避免硬编码特定算法。IETF正在制定的draft-ietf-tls-hybrid-design提供了实施框架。
结语
后量子密码学的标准化标志着信息安全的新纪元。基于格的密码方案因其理论优雅性、工程可行性和效率平衡,成为NIST首选。过渡期可能持续10-20年,但尽早规划PQC迁移是每个基础设施团队不可回避的责任。算法可以更迭,但对隐私和安全的坚守将永远持续。

发表评论 取消回复