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 位即可。

“先存储、后解密”(harvest now, decrypt later)攻击意味着:今天被截获的长期敏感密文,可能在若干年后被量子计算机解密。因此对需要长期保密的数据,公钥算法的量子风险今天就已存在,不能等到量子计算机成熟才行动。

三、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/DHECC/SM2建议数据保密期
112 比特AES-128RSA-2048P-224≤2030 年
128 比特AES-128RSA-3072P-256 / SM2≤2035 年
192 比特AES-192RSA-7680P-384≤2050 年
256 比特AES-256RSA-15360P-521长期 / 抗量子对称

实际选型时,可按以下判断路径操作:

  1. 确定数据的保密期限 T(例如 20 年)与迁移窗口 M(例如 5 年)。
  2. 计算所需安全强度:一般场景取 128 比特;若 T+M 超过 2035 年,建议提升到 192 或 256 比特。
  3. 若系统涉及公钥交换或签名,评估是否需立即引入后量子算法(如 ML-KEM-768、ML-DSA-65)或采用混合模式。
  4. 对称部分统一提升到 AES-256,以同时覆盖经典与量子 Grover 威胁。
  5. 核对协议、硬件加速、证书链、国密合规等约束,确认所选长度可落地。
一个实用的记忆锚点:128 比特是当前基线,256 比特是长期与抗量子基线;公钥算法看曲线/模数,对称算法看密钥位数;量子威胁下,公钥要换算法,对称只需加长度。
安全强度换算与量子威胁影响 同一安全强度下,不同算法所需密钥长度差异巨大;量子威胁对公钥与对称算法影响不同 经典安全强度对照 128 比特强度 AES-128 RSA-3072 P-256 / SM2 192 比特强度 AES-192 RSA-7680 P-384 256 比特强度 AES-256 RSA-15360 P-521 密钥长度 ≠ 安全强度 256 位 ECC ≈ 3072 位 RSA ≈ 128 位 AES 对称算法:强度 ≈ 密钥位数 ECC:强度 ≈ 阶位数 ÷ 2 量子威胁影响 Shor 算法 · 公钥体系 多项式时间求解分解 / 离散对数 RSA DH / ECDH ECC / SM2 安全强度 → 0(无论密钥多长) Grover 算法 · 对称体系 无序搜索平方加速:2^k → 2^(k/2) AES-128 → 64 比特 AES-256 → 128 比特 对策:对称密钥加倍至 256 位

把上述关系落到工程决策上,可以形成一条清晰的选型主线:先确定数据保密期与合规要求,再据此锁定目标安全强度(128 比特为基线,长期或高敏感场景取 192/256 比特),然后分别选择对称算法、公钥算法与哈希算法,使三者的安全强度相互匹配、不出现短板。最后,针对公钥部分评估后量子迁移路径,针对对称部分确认密钥长度是否足以覆盖 Grover 加速。这样得到的方案,才是在经典与量子双重威胁下都站得住脚的密钥长度组合。