2. 后量子密码算法选型与评估
在抗量子VPN方案中,算法选型不是“挑一个最强的”这么简单。VPN同时承载密钥交换、身份认证、数据加密三类密码学任务,而NIST PQC标准化的四类算法恰好覆盖了这些任务的不同环节:CRYSTALS-Kyber用于密钥封装(KEM),CRYSTALS-Dilithium与Falcon用于数字签名,SPHINCS+作为基于哈希的签名提供保守备选。选型的本质是在安全假设、密钥与签名尺寸、计算开销、带宽放大之间做工程权衡。
四类算法的定位与关键参数
Kyber基于模格上的MLWE问题,是KEM方案,用于IKEv2或TLS握手中的密钥协商,替代ECDH。Dilithium同样基于格问题,签名速度快、实现简单,是通用签名的主力。Falcon基于NTRU格,签名尺寸小但签名过程涉及浮点FFT采样,实现复杂、侧信道防护难度高。SPHINCS+基于哈希函数,安全假设最保守,但签名尺寸达KB级、签名速度慢,适合作为根信任或固件签名等低频场景。
下表给出NIST第三轮/标准化参数集的典型量级(以NIST安全级别1、3、5对应,数值为公开规格的近似值,用于工程估算):
| 算法(参数集) | 类型 | 公钥 | 私钥 | 密文/签名 | 安全级别 |
|---|---|---|---|---|---|
| Kyber-512 / 768 / 1024 | KEM | 800 / 1184 / 1568 B | 1632 / 2400 / 3168 B | 768 / 1088 / 1568 B | 1 / 3 / 5 |
| Dilithium2 / 3 / 5 | 签名 | 1312 / 1952 / 2592 B | 2528 / 4000 / 4864 B | 2420 / 3293 / 4595 B | 2 / 3 / 5 |
| Falcon-512 / 1024 | 签名 | 897 / 1793 B | 1281 / 2305 B | 约 666 / 1280 B | 1 / 5 |
| SPHINCS+-128s / 128f | 签名 | 32 / 32 B | 64 / 64 B | 7856 / 17088 B | 1 |
对比传统ECDH P-256(公钥64 B、共享密钥交换约64 B)和ECDSA(签名约64~72 B),PQC带来的尺寸膨胀是数量级的:Kyber-768密文约1 KB,Dilithium3签名约3.3 KB,SPHINCS+签名接近8~17 KB。这直接决定了VPN握手的报文大小和分片行为。
VPN场景下的带宽与开销影响
以IKEv2主模式为例,一次完整握手包含IKE_SA_INIT(含KE载荷与Nonce)和IKE_AUTH(含身份认证签名与证书)。若采用Kyber-768替代ECDH,KE载荷从约64 B增至约1.1 KB;若认证改用Dilithium3,签名从约72 B增至约3.3 KB,加上PQC证书链(假设两级CA,每级公钥约2 KB),IKE_AUTH报文可能从数百字节膨胀到8~12 KB。UDP默认MTU下极易触发IP分片,而分片在NAT和防火墙环境中丢包率高,会显著拖慢甚至阻断握手。
计算开销方面,Kyber的封装/解封装在通用CPU上为数十微秒量级,Dilithium签名/验签为百微秒量级,对每秒新建连接数(CPS)影响可控;Falcon验签快但签名端复杂;SPHINCS+签名可达毫秒到数十毫秒,不适合高频握手。因此工程上常见做法是:密钥交换用Kyber,签名用Dilithium,Falcon作为带宽敏感场景备选,SPHINCS+仅用于根证书或低频信任锚。
选型报告应包含的评估方法
一份可落地的选型报告不能只列参数,还要给出可复现的评估过程。建议按以下方式组织:
- 明确安全基线:VPN若保护的是长期敏感数据,应至少选择NIST安全级别3(Kyber-768、Dilithium3),避免级别1在长期保密场景下余量不足。
- 量化握手膨胀:按实际证书链长度计算IKE_AUTH报文大小,公式为“签名长度×链上证书数 + 公钥长度×证书数 + 协议开销”。例如两级链、Dilithium3时约 3.3×2 + 2×2 ≈ 10.6 KB,需评估是否超过路径MTU。
- 测量计算开销:在目标VPN网关硬件上跑基准,记录Kyber封装/解封装、Dilithium签名/验签的P50/P99时延,并换算为CPS上限。示例假设:单核Kyber-768解封装约60 μs、Dilithium3验签约250 μs,则单核理论CPS受验签约束约4000,需结合多核与连接复用评估。
- 验证互操作与降级:采用混合密钥交换(X25519 + Kyber-768)保证与不支持PQC的对端兼容,同时确保降级路径不会削弱整体安全性。
选型结论示例
综合上述评估,面向企业抗量子VPN的推荐组合为:密钥交换采用Kyber-768(混合X25519),身份认证采用Dilithium3,证书体系保留ECDSA双栈过渡;Falcon-512列为带宽受限场景的备选签名,SPHINCS+定位为根信任锚。该组合在安全级别3下兼顾了实现成熟度与握手开销,是当前工程可落地性最好的方案。报告还应附上目标硬件上的实测时延、握手报文尺寸测算表与互操作测试记录,作为选型决策的可追溯依据。