加密算法对照表
对称、非对称、哈希与国密算法的参数与用途速查,含工作模式选择和算法状态标注。
对称加密算法
| 算法 | 分组长度 | 密钥长度 | 状态 | 说明 |
|---|---|---|---|---|
| AES-128 | 128 位 | 128 位 | 推荐 | 国际通用主流算法,软硬件加速完善 |
| AES-192 | 128 位 | 192 位 | 可用 | 性能略低于 128,实际部署较少 |
| AES-256 | 128 位 | 256 位 | 推荐 | 高安全等级场景,等保三级以上常要求 |
| SM4 | 128 位 | 128 位 | 国密推荐 | 我国商用密码分组算法标准,密评要求场景使用 |
| 3DES | 64 位 | 112 / 168 位 | 逐步淘汰 | 分组短、性能低,新系统不建议使用 |
| DES | 64 位 | 56 位 | 禁止 | 密钥空间过小,可被暴力破解 |
| RC4 | 流密码 | 40–2048 位 | 禁止 | 存在多种统计偏差,TLS 已弃用 |
工作模式
分组算法需要配合模式使用。ECB 相同明文块产生相同密文,会泄露数据结构,不应使用;CBC 需要随机初始向量且不能重复;CTR 把分组算法变成流模式,可并行;GCM 属于认证加密,同时提供机密性和完整性校验,是目前推荐的默认选择。
非对称加密与签名算法
| 算法 | 密钥长度 | 用途 | 说明 |
|---|---|---|---|
| RSA-2048 | 2048 位 | 加密、签名 | 兼容性较好,证书体系的基础 |
| RSA-3072 / 4096 | 3072 / 4096 位 | 加密、签名 | 安全余量更大,运算开销明显上升 |
| ECC P-256 | 256 位 | 签名、密钥交换 | 同等安全强度下密钥更短,移动端友好 |
| Ed25519 | 256 位 | 签名 | 签名速度快,实现简单,抗侧信道 |
| SM2 | 256 位 | 加密、签名 | 我国商用密码椭圆曲线标准,密评场景使用 |
| DH / ECDH | 按曲线 | 密钥协商 | 用于建立会话密钥,本身不做加密 |
RSA 的安全强度取决于密钥长度和分解难度,2048 位目前仍属可用,但长期数据保护建议向 3072 位或椭圆曲线迁移。
哈希与口令派生
| 算法 | 输出长度 | 用途 | 说明 |
|---|---|---|---|
| MD5 | 128 位 | 校验 | 已有实用碰撞攻击,不得用于签名和口令 |
| SHA1 | 160 位 | 校验 | 已被证明可构造碰撞,逐步淘汰 |
| SHA256 | 256 位 | 校验、签名摘要 | 当前主流选择 |
| SHA512 | 512 位 | 校验、签名摘要 | 64 位平台性能好 |
| SHA3-256 | 256 位 | 校验 | 海绵结构,与 SHA2 设计路线不同 |
| SM3 | 256 位 | 校验、签名摘要 | 我国商用密码杂凑标准 |
| PBKDF2 | 可配置 | 口令派生 | 迭代次数需足够大,常见 10 万次以上 |
| bcrypt | 192 位 | 口令存储 | 内置盐值和 cost 参数,专为口令设计 |
| Argon2id | 可配置 | 口令存储 | 内存困难型,抗 GPU 破解能力强 |
国密算法对照
| 国密算法 | 对应国际算法 | 类型 | 典型应用 |
|---|---|---|---|
| SM1 | AES | 对称分组 | 硬件密码模块内部使用,不公开 |
| SM2 | ECC / RSA | 非对称 | 数字签名、密钥交换、加密 |
| SM3 | SHA256 | 哈希 | 完整性校验、签名摘要 |
| SM4 | AES | 对称分组 | 数据加密、无线局域网 |
| SM9 | IBE | 标识密码 | 基于身份的加密,减少证书管理 |
| ZUC | — | 流密码 | 移动通信加密 |
密评(商用密码应用安全性评估)会核查系统中密码算法的合规性,涉及身份鉴别、数据传输、数据存储等环节。具体到某个系统该用哪种组合,要看等保定级和行业要求。
常见问题
AES-128 和 AES-256 该怎么选?▼
看合规要求和性能预算。AES-256 密钥更长,理论上安全余量更大,但软件实现时性能约低 20% 到 40%。等保三级以上或涉及敏感数据的系统常被要求使用 256 位;一般业务 128 位已经足够。
为什么说 ECB 模式不能用?▼
ECB 对每个数据块独立加密,相同的明文块会产生完全相同的密文块。加密图片时轮廓会直接显现,加密结构化数据时字段规律也会暴露。应改用 CBC 或 GCM。
GCM 和 CBC 有什么区别?▼
CBC 只提供机密性,完整性要靠额外的 MAC 校验,且初始向量管理不当会出问题;GCM 是认证加密模式,一次运算同时给出密文和认证标签,实现正确的话更省事。新系统建议默认用 GCM。
国密改造必须全换吗?▼
不是全换。密评关注的是关键环节使用的算法是否合规,通常涉及身份鉴别、传输通道、存储加密、签名验签。已有系统可以按模块逐步替换,具体范围要看测评机构给出的整改建议和系统定级。
口令存储用哪个算法合适?▼
优先 Argon2id,其次 bcrypt。这两个都是专门为口令设计的慢哈希,能有效抵抗 GPU 批量破解。PBKDF2 也可用,但迭代次数要足够大。MD5、SHA1 以及任何未加盐的快速哈希都不应再用于口令存储。