混合密钥交换 (Hybrid Key Exchange,混合后量子密钥交换)
定义
混合密钥交换把 X25519 等经典算法与 ML-KEM 等后量子 KEM 组合使用,只要其中一个未被攻破,得到的会话密钥就仍然安全。
混合密钥交换同时执行一次经典密钥建立和一次后量子密钥建立,再由两者的结果共同派生会话密钥。在 TLS 1.3 中,每种混合方案就是一个新的命名群:key_share 中依次拼接经典部分和后量子部分,两个共享秘密拼接后进入 HKDF 密钥调度。已注册的例子有 X25519MLKEM768、SecP256r1MLKEM768 和 SecP384r1MLKEM1024。
为什么重要
后量子算法还很年轻,对它们的密码分析远不如椭圆曲线成熟。NIST 征集过程中的候选算法 SIKE,就在 2022 年被一台普通计算机上运行的攻击攻破。混合方案两头兜底:经典部分(ECDHE)防范后量子算法或其实现中尚未发现的缺陷,ML-KEM 部分防范未来的量子计算机。代价是握手消息增大一千多字节,外加少量计算开销。对于需要满足国内密码合规要求的系统,算法选择还要另行评估,这里只讨论国际标准的 TLS 方案。
例子
TLS 1.3 中使用混合群协商的示意:
ClientHello
supported_groups: X25519MLKEM768, X25519, secp256r1
key_share: X25519MLKEM768 (1,216 bytes), X25519 (32 bytes)
ServerHello
key_share: X25519MLKEM768 (1,120 bytes)
shared secret = ML-KEM-768 secret || X25519 secret -> TLS 1.3 key schedule
常见误区
- 混合方案不如纯后量子方案安全。 它的设计要求攻击者同时攻破两个组件,强度不低于其中较强的那个。
- 用了混合密钥交换,证书也就抗量子了。 它只覆盖密钥建立,签名迁移是另一项工作。
- 启用它需要所有客户端同时切换。 客户端会同时提供混合群和经典群,不支持混合方案的服务器照常协商 X25519 或 P-256。