4. 安全强度与密钥长度
在密码算法选型中,“密钥长度”是最容易被误读的参数。AES-128 的 128 位、RSA-2048 的 2048 位、ECC P-256 的 256 位,看起来数字差距巨大,但它们提供的安全强度却可能处于同一量级。原因在于:不同算法的密钥长度与攻击复杂度之间并非线性对应,必须统一换算到“比特安全强度”这一可比尺度上。
一、比特安全强度:把不同算法放到同一把尺子上
比特安全强度(bit security)指攻破一个密码系统所需的最少计算量,以 2 的幂次表示。若某算法的最佳已知攻击需要约 2n 次基本运算,则其安全强度约为 n 比特。这里的“基本运算”是抽象计数单位,用于横向比较,而非真实机器周期。
对称算法与公钥算法的换算逻辑完全不同:
- 对称加密(AES、SM4):穷举密钥攻击复杂度约为 2k,k 为密钥位数。因此 AES-128 的安全强度约为 128 比特,AES-256 约为 256 比特。这是最“诚实”的对应关系。
- RSA / 有限域 DH:依赖大整数分解或离散对数,最佳攻击为亚指数复杂度。RSA-2048 的安全强度约 112 比特,RSA-3072 约 128 比特,RSA-7680 约 192 比特,RSA-15360 约 256 比特。
- 椭圆曲线(ECC、SM2):依赖椭圆曲线离散对数,最佳攻击为 Pollard's rho,复杂度约 2n/2,n 为曲线阶位数。因此 P-256 的安全强度约 128 比特,P-384 约 192 比特,P-521 约 256 比特。
由此可得一条关键结论:256 位 ECC ≈ 3072 位 RSA ≈ 128 位 AES。选型时若把“密钥长度”直接当作安全强度比较,会得出严重错误结论。
二、经典威胁与量子威胁
经典计算模型下,上述安全强度是稳定的。但量子计算引入两类算法,改变了威胁格局:
- Shor 算法:可在多项式时间内求解大整数分解与离散对数问题。这意味着 RSA、DH、ECC、SM2 等所有基于这两类数学难题的公钥算法,在足够规模的容错量子计算机面前将完全失效——无论密钥多长,安全强度都归零。
- Grover 算法:对无序搜索提供平方加速。对对称算法,穷举复杂度从 2k 降为约 2k/2。因此 AES-128 的量子安全强度约 64 比特,AES-256 约 128 比特。对称算法不会“归零”,但需要加倍密钥长度来维持同等强度。
这带来一个重要的非对称结论:量子威胁对公钥算法是“结构性摧毁”,对对称算法只是“强度减半”。因此后量子迁移的重点是替换公钥体系(KEM 与签名),而对称部分通常只需提升到 256 位即可。
三、NIST 安全级别
NIST 在 FIPS 203/204/205 等后量子标准中定义了 5 个安全级别,为算法选型提供了统一标尺:
| 级别 | 对应经典强度 | 参考基准 | 典型用途 |
|---|---|---|---|
| Level 1 | ≥128 比特 | AES-128 穷举 | 一般商业数据 |
| Level 2 | ≥128 比特 | SHA-256 碰撞 | 需抗碰撞场景 |
| Level 3 | ≥192 比特 | AES-192 穷举 | 中高敏感数据 |
| Level 4 | ≥192 比特 | SHA-384 碰撞 | 高保障场景 |
| Level 5 | ≥256 比特 | AES-256 穷举 | 长期最高机密 |
注意:NIST 级别描述的是“攻破所需计算量不低于对应基准”,并非要求算法本身使用该长度密钥。例如 ML-KEM-768 属于 Level 3,其公钥尺寸远大于 AES-192,但安全强度对标 AES-192。
四、密钥长度与算法寿命的对应关系
算法寿命取决于“安全强度在当前与未来算力下能维持多久”。工程上常用经验规则:安全强度每 10 年应保留一定余量,且需覆盖数据保密期加迁移期。下表给出常见组合的推荐对应关系(示例性工程建议,非标准强制值):
| 目标安全强度 | 对称 | RSA/DH | ECC/SM2 | 建议数据保密期 |
|---|---|---|---|---|
| 112 比特 | AES-128 | RSA-2048 | P-224 | ≤2030 年 |
| 128 比特 | AES-128 | RSA-3072 | P-256 / SM2 | ≤2035 年 |
| 192 比特 | AES-192 | RSA-7680 | P-384 | ≤2050 年 |
| 256 比特 | AES-256 | RSA-15360 | P-521 | 长期 / 抗量子对称 |
实际选型时,可按以下判断路径操作:
- 确定数据的保密期限 T(例如 20 年)与迁移窗口 M(例如 5 年)。
- 计算所需安全强度:一般场景取 128 比特;若 T+M 超过 2035 年,建议提升到 192 或 256 比特。
- 若系统涉及公钥交换或签名,评估是否需立即引入后量子算法(如 ML-KEM-768、ML-DSA-65)或采用混合模式。
- 对称部分统一提升到 AES-256,以同时覆盖经典与量子 Grover 威胁。
- 核对协议、硬件加速、证书链、国密合规等约束,确认所选长度可落地。
把上述关系落到工程决策上,可以形成一条清晰的选型主线:先确定数据保密期与合规要求,再据此锁定目标安全强度(128 比特为基线,长期或高敏感场景取 192/256 比特),然后分别选择对称算法、公钥算法与哈希算法,使三者的安全强度相互匹配、不出现短板。最后,针对公钥部分评估后量子迁移路径,针对对称部分确认密钥长度是否足以覆盖 Grover 加速。这样得到的方案,才是在经典与量子双重威胁下都站得住脚的密钥长度组合。