2. 经典密码在混合部署中的角色

在混合部署中,经典密码并不是“过渡期临时补丁”,而是承担着与后量子算法并行运行、互为备份、共同构成协议安全边界的核心角色。理解 RSA、ECC、AES、SHA-2/3 四类算法在混合架构中的分工,需要从算法特性、安全强度、性能基准和协议集成方式四个维度同时切入。本节先建立整体角色认知,再逐项展开可操作的判断依据。

一、四类算法在混合部署中的角色定位

混合部署的基本结构是:密钥封装/签名由经典算法与后量子算法并行承担,对称加密由 AES 承担,完整性校验与密钥派生由 SHA-2/3 承担。RSA 与 ECC 属于非对称算法,负责身份认证、密钥协商和数字签名;AES 属于对称算法,负责数据加密;SHA-2/3 属于哈希算法,负责消息摘要、HMAC 和 KDF。四者不是并列关系,而是分层协作关系。

在 TLS 1.3 混合握手中,典型组合是 X25519MLKEM768 或 SecP256r1MLKEM768:经典 ECDH 与后量子 KEM 并行执行,共享密钥由两路输出拼接后经 HKDF-SHA256 派生。签名侧则可能同时携带 ECDSA 与 ML-DSA 签名。AES-256-GCM 负责记录层加密,SHA-256/384 负责握手 transcript hash。这一结构决定了:经典算法一旦被移除,协议兼容性和过渡期安全性都会立即受损。

混合部署中经典密码的分层协作结构 非对称层负责身份与密钥,对称层负责数据,哈希层负责完整性与派生 非对称层 · 身份认证 / 密钥协商 / 数字签名 RSA-2048 / 3072 大整数分解困难性 签名慢、密钥大、兼容广 ≈112 / 128 bit 经典安全强度 ECC · P-256 / X25519 椭圆曲线离散对数困难性 密钥短、签名快、带宽省 ≈128 bit 经典安全强度 后量子 KEM / 签名 ML-KEM / ML-DSA 与经典算法并行运行 混合共享密钥来源之一 协商出共享密钥 / 验证身份 对称层 · 数据机密性 AES-128 / AES-256 分组 128 bit,密钥 128/256 bit,10/14 轮 GCM / CBC 工作模式 GCM 同时提供加密与认证,优先选用 密钥派生 / 完整性校验 哈希层 · 完整性 / 密钥派生 / 认证 SHA-256 / SHA-384 / SHA-512 SHA-3 / SHAKE128 / SHAKE256 HMAC / HKDF / transcript hash

二、算法特性与安全强度对照

RSA 的安全性建立在大整数分解困难性上。当前工程实践中,RSA-2048 提供约 112 bit 经典安全强度,RSA-3072 约 128 bit。RSA 的密钥长度远大于 ECC,2048 位模数对应约 256 字节公钥,签名长度也是 256 字节,在握手包中占用明显带宽。RSA 签名运算涉及大数模幂,私钥操作比公钥操作慢约一个数量级,因此服务端签名是性能瓶颈。

ECC 的安全性建立在椭圆曲线离散对数困难性上。P-256 提供约 128 bit 经典安全强度,公钥仅 64 字节(未压缩 65 字节),签名约 64~72 字节。X25519 密钥交换在同等安全强度下运算更快、实现更简洁,且天然具备常数时间特性,适合混合握手中与 ML-KEM 并行。ECC 的短板在于:一旦量子计算机可运行 Shor 算法,ECC 与 RSA 同样被攻破,因此两者在混合部署中都属于“必须被后量子算法覆盖”的对象。

AES 的安全性建立在分组密码设计上,不依赖数论难题,因此 Grover 算法只带来平方根级加速,AES-256 在后量子语境下仍被认为提供约 128 bit 量子安全强度。AES-128 在量子模型下约 64 bit,通常建议混合部署中优先使用 AES-256。AES-GCM 同时提供机密性与完整性,是 TLS 1.3 的推荐套件。

SHA-2 与 SHA-3 同属哈希函数,但结构不同:SHA-2 基于 Merkle–Damgård 结构,SHA-3 基于海绵结构。SHA-256 提供 128 bit 抗碰撞强度,SHA-384 提供 192 bit。SHA-3 的价值在于其结构与 SHA-2 不同,可作为算法多样性备份;SHAKE128/SHAKE256 是可扩展输出函数,适合 KDF 和随机数派生。混合部署中,HKDF 通常以 SHA-256 或 SHA-384 为底层哈希。

三、性能基准与工程取舍

以下数据为教学示例参数,用于说明数量级关系,并非特定硬件实测结果。在典型 x86 服务器单核环境下,可观察到如下相对关系:

算法操作典型量级主要成本来源混合部署中的影响
RSA-2048 签名约 1 ms 级大数模幂服务端握手 CPU 压力大
RSA-2048 验签约 0.03 ms 级小指数模幂客户端开销低
ECDSA P-256 签名约 0.05 ms 级标量乘明显优于 RSA 签名
X25519 密钥交换约 0.05 ms 级标量乘适合与 ML-KEM 并行
AES-256-GCMGB/s 级吞吐硬件 AES-NI通常不是瓶颈
SHA-256GB/s 级吞吐SHA 扩展指令握手哈希开销可忽略

从表中可以看出,混合部署的性能压力主要来自非对称层,尤其是签名操作。若在 TLS 握手中同时携带 ECDSA 与 ML-DSA 签名,签名验证次数翻倍,握手包体积也会显著增加。工程上常见的取舍是:密钥交换采用“经典 ECDH + 后量子 KEM”混合,签名在过渡期先保留经典 ECDSA,待后量子签名实现成熟后再切换为双签名或纯后量子签名。

四、现有协议集成方式

在 TLS 1.3 中,经典算法的集成点主要有三处。第一处是 supported_groups 扩展,客户端列出支持的命名组,如 x25519、secp256r1,混合组以 X25519MLKEM768 形式出现。第二处是 signature_algorithms 扩展,列出可接受的签名方案,如 ecdsa_secp256r1_sha256、rsa_pss_rsae_sha256。第三处是密码套件,如 TLS_AES_256_GCM_SHA384,其中 AES-256-GCM 负责记录层,SHA-384 负责 HKDF 和 transcript hash。

在 IPsec/IKEv2 中,经典算法集成在 IKE_SA_INIT 的 SA payload 中,包括加密算法(AES-CBC/GCM)、完整性算法(HMAC-SHA2-256/384)、PRF(HMAC-SHA2)和 DH 组(MODP 2048、ECP 256)。混合部署时,DH 组可扩展为经典 ECP 与后量子 KEM 的组合,PRF 仍由 SHA-2 承担。

在代码实现层面,OpenSSL 3.x 通过 provider 机制加载算法。以下示例展示如何查询当前 provider 中可用的经典算法名称,用于确认混合部署前的算法基线:

# 列出默认 provider 中可用的签名算法
openssl list -signature-algorithms

# 列出默认 provider 中可用的密钥交换算法
openssl list -key-exchange-algorithms

# 查看 TLS 1.3 密码套件
openssl ciphers -v -tls1_3

# 生成 P-256 密钥并自签名,验证 ECC 链路可用
openssl ecparam -name prime256v1 -genkey -noout -out ec.key
openssl req -new -x509 -key ec.key -sha256 -days 365 -out ec.crt

执行后应重点观察输出中是否包含 ECDSA、RSA-PSS、X25519、AES-256-GCM、SHA256 等条目。若混合部署目标要求同时支持经典与后量子算法,则还需确认 provider 是否加载了后量子算法模块,并检查 openssl list -kem-algorithms 是否出现 ML-KEM 相关名称。

在混合部署的算法基线核查中,建议固定一份“经典算法清单”:密钥交换至少保留 X25519 与 P-256,签名至少保留 ECDSA P-256 与 RSA-PSS 2048,对称加密固定 AES-256-GCM,哈希固定 SHA-256 与 SHA-384。任何后量子算法的引入都不应删除这些条目,而应在其旁边增加并行条目。

五、角色判断的实用准则

判断某个经典算法在混合部署中是否仍应保留,可以依据三条准则。第一,看它是否承担身份认证或密钥协商:RSA 和 ECC 承担这两项,必须保留到后量子算法完成互操作验证。第二,看它是否承担数据机密性:AES-256 在后量子模型下仍安全,应继续作为主力。第三,看它是否承担完整性或密钥派生:SHA-2/3 在后量子模型下仍安全,且 SHA-3 提供结构多样性,应同时保留 SHA-2 与 SHA-3 能力。