密码算法安全功能对照表
Categories:
3 分钟阅读
密码算法安全功能对照表
为提升 Markdown 场景下的可读性,原始大表已按算法类别拆分为多张分组表。
覆盖范围: 密码杂凑函数、对称密码算法、非对称密码算法、组合机制/协议层
参考标准: GB/T 系列、NIST、IETF RFC
密码杂凑函数(SM3 / SHA 系列 / SHA-3 / KMAC)
| 算法原语 / 变体 | 数据机密性 | 数据完整性 | 消息源真实性 | 不可否认性 | 备注 |
|---|---|---|---|---|---|
| 纯杂凑算法 / (单次哈希) | — | √* | — | — | 仅防无意错误,无法抵御恶意篡改 |
| SHA-256 / SHA-512 | — | √* | — | — | NIST标准,广泛使用 |
| SHA-3 (Keccak) | — | √* | — | — | 吸收结构,抗长度扩展攻击 |
| SM3 | — | √* | — | — | 国密标准,256位输出 |
| HMAC / (哈希消息认证码) | — | √ | √ | — | 需共享密钥,提供来源认证 |
| HMAC-SHA256 | — | √ | √ | — | 最常用MAC方案 |
| HMAC-SHA512 | — | √ | √ | — | 更高安全级别 |
| HMAC-SM3 | — | √ | √ | — | 国密HMAC方案 |
| KMAC / (基于SHA-3) | — | √ | √ | — | NIST SP800-185,可变长密钥 |
| 泛杂凑函数 / (UHF/GHASH) | — | √ | √ | — | 用于GCM的GHASH认证组件 |
对称密码算法(SM4 / AES / 3DES / ChaCha20)
| 算法原语 / 变体 | 数据机密性 | 数据完整性 | 消息源真实性 | 不可否认性 | 备注 |
|---|---|---|---|---|---|
| ECB 模式 | √ | — | — | — | 不推荐:相同明文产生相同密文 |
| CBC 模式 | √ | — | — | — | 需IV,适合块数据加密 |
| CFB / OFB 模式 | √ | — | — | — | 流模式,无需填充 |
| CTR 模式 | √ | — | — | — | 可并行,需唯一计数器 |
| SM4-ECB/CBC/CTR/OFB | √ | — | — | — | 国密对称加密标准 |
| 3DES-CBC | √ | — | — | — | 已弱化,逐步淘汰 |
| CBC-MAC | — | √ | √ | — | 基于CBC的MAC,注意填充攻击 |
| CMAC | — | √ | √ | — | 改进CBC-MAC,NIST SP800-38B |
| GMAC / (GCM的MAC部分) | — | √ | √ | — | GCM去掉加密,仅做认证 |
| CCM 模式 / (CTR+CBC-MAC) | √ | √ | √ | — | AEAD,适合资源受限场景 |
| GCM 模式 / (CTR+GHASH) | √ | √ | √ | — | 推荐AEAD,高性能,硬件加速 |
| GCM-SIV | √ | √ | √ | — | 随机数重用安全,RFC 8452 |
| ChaCha20-Poly1305 | √ | √ | √ | — | 软件高效,TLS 1.3推荐套件 |
| SM4-GCM | √ | √ | √ | — | 国密AEAD方案 |
| SM4-CCM | √ | √ | √ | — | 国密AEAD,低资源场景 |
| XChaCha20-Poly1305 | √ | √ | √ | — | 超长nonce变体,减少碰撞风险 |
| AES-SIV | √ | √ | √ | — | 确定性AEAD,RFC 5297 |
非对称密码算法(SM2 / SM9 / RSA / ECDSA / EdDSA / ECIES)
| 算法原语 / 变体 | 数据机密性 | 数据完整性 | 消息源真实性 | 不可否认性 | 备注 |
|---|---|---|---|---|---|
| 数字签名 / (通用) | — | √ | √ | √ | 依赖私钥唯一性 |
| RSA-PSS 签名 | — | √ | √ | √ | 推荐RSA签名方案,随机填充 |
| RSA-PKCS#1v1.5 签名 | — | √ | √ | √ | 旧方案,存在填充oracle风险 |
| ECDSA (P-256/P-384) | — | √ | √ | √ | NIST标准,高效椭圆曲线签名 |
| EdDSA (Ed25519/Ed448) | — | √ | √ | √ | 确定性签名,抗侧信道,现代推荐 |
| SM2 数字签名 | — | √ | √ | √ | 国密椭圆曲线签名标准 |
| SM9 数字签名 / (基于身份) | — | √ | √ | √ | 无需证书,基于身份的签名 |
| 公钥加密 / (通用) | √ | √* | — | — | 数字信封可间接保护完整性 |
| RSA-OAEP 加密 | √ | √* | — | — | 推荐RSA加密方案 |
| ECIES | √ | √* | — | — | 椭圆曲线集成加密方案 |
| SM2 公钥加密 | √ | √* | — | — | 国密椭圆曲线加密 |
| SM9 加密 / (基于身份) | √ | √* | — | — | 无需证书的加密 |
| 密钥封装 KEM / (RSA-KEM) | — | — | — | — | 用于密钥协商,非直接加密 |
| ECDH / X25519 | — | — | — | — | 密钥协商,不直接提供CIA |
组合机制与协议层(TLS / SSH / IPsec / S/MIME / PGP)
| 算法原语 / 变体 | 数据机密性 | 数据完整性 | 消息源真实性 | 不可否认性 | 备注 |
|---|---|---|---|---|---|
| TLS 1.3 | √ | √ | √ | — | ECDHE+AEAD,前向保密 |
| TLS 1.2 | √ | √ | √ | — | 仍广泛使用,需配置强套件 |
| SSH v2 | √ | √ | √ | — | 远程管理标准协议 |
| IPsec (ESP) | √ | √ | √ | — | 网络层加密+认证 |
| IPsec (AH) | — | √ | √ | — | 仅认证,不加密 |
| S/MIME | √ | √ | √ | √ | 邮件加密与数字签名 |
| PGP / GPG | √ | √ | √ | √ | 非对称+对称混合加密 |
| TLCP / (GM/T 0024) | √ | √ | √ | — | 国密TLS,双证书机制 |
| 数字信封 | √ | √ | — | — | 非对称+对称混合,密钥保护 |
| JWT (HS256/RS256/ES256) | — | √ | √ | √* | 无状态令牌,签名可验真实性 |
| XML签名 / XML加密 | √ | √ | √ | √ | Web服务签名标准 |
图例说明
- √ 直接提供该安全功能
- √* 有条件提供(依赖具体使用方式或配合其他机制,见注释)
- √C 提供数据机密性(Confidentiality)
- √NR 提供不可否认性(Non-Repudiation),依赖私钥唯一性
- — 不提供该安全功能
注释
- 注 2:公钥加密(√*完整性):构成数字信封时,密文被篡改会导致解密失败,可间接检测到篡改,但这属于消极检测而非主动完整性验证机制。
- 注 3:AEAD模式(CCM/GCM/ChaCha20-Poly1305/SM4-GCM等):认证加密,单次操作同时提供机密性、完整性与消息源真实性,是当前推荐的现代加密方案。
- 注 4:不可否认性区别:对称算法的MAC(HMAC/CMAC)因密钥为双方共享,无法证明【具体是哪一方】发送,故不提供不可否认性。数字签名依赖私钥的唯一持有性,可提供不可否认性。
- 注 5:消息源真实性(MA)不等同于不可否认性(NR):HMAC证明【知道密钥的一方】发送;数字签名证明【私钥持有者】发送,后者才能在法律层面作为证据。
- 注 6:ECDH/X25519/密钥封装(KEM):属于密钥协商/密钥封装机制,本身不直接提供机密性/完整性/真实性,须配合对称加密算法使用(如TLS握手中的密钥协商阶段)。
- 注 7:ECB模式安全警告:ECB模式下相同明文块产生相同密文块,存在模式泄露风险,不建议在生产环境使用,应选用CBC/CTR/GCM等模式。
- 注 8:国密优先:在等级保护测评(GB/T 22239)及商用密码应用合规场景中,应优先选用SM2/SM3/SM4系列算法或TLCP协议。
依据:GB/T 15834、GB/T 32905、NIST SP 800-57、RFC 8446