接触国密改造的团队常把问题理解成"要不要上国密",落地后才发现难点在下一层:五类算法各负责什么、参数多少、标准依据是哪份。混用往往意味着该用非对称的地方用了对称算法,或签名环节用错杂凑算法。
这篇按"分工—参数—对应关系—合规依据"的顺序,把五类国密算法梳理清楚。
一、五类算法的分工总览
国密算法体系由国家密码管理局组织制定,GB/T 国家标准与 GM/T 行业标准双轨并行。五类算法的分工:SM2 管身份与密钥,SM3 管摘要,SM4 管数据,SM9 管无证书场景,ZUC 管无线空口。
| 算法 | 类型 | 国家标准 | 关键参数 | 主要用途 |
|---|---|---|---|---|
| SM2 | 公钥密码(椭圆曲线) | GB/T 32918-2016 | 256 位素数域曲线,安全强度约 128 位 | 数字签名、密钥交换、公钥加密 |
| SM3 | 杂凑算法 | GB/T 32905-2016 | 输出 256 位摘要 | 摘要、签名、消息认证码 |
| SM4 | 分组密码算法 | GB/T 32907-2016 | 128 位分组与密钥,32 轮迭代 | 对称数据加密 |
| SM9 | 标识密码算法 | GB/T 38635-2020 | 以身份标识直接作为公钥 | 无证书签名、加密、密钥交换 |
| ZUC | 序列密码算法 | GB/T 33133-2016 | 128 位密钥,输出 32 位字序列 | 流式加密,无线空口保护 |

二、三大主力:SM2、SM3、SM4 的参数与机制
SM2 基于 256 位素数域椭圆曲线,安全强度约 128 位,与 ECDSA/ECDH(P-256)相当,提供数字签名、密钥交换、公钥加密三项能力。工程中公钥加密多为混合加密:SM2 加密对称密钥,SM4 加密业务数据。
SM3 输出固定 256 位摘要,常用于数字签名前的报文压缩、HMAC 消息认证码与密钥派生。改造项目里 SM3 通常作为默认配套出现:SM2 的签名算法即 SM2-with-SM3 组合。
SM4 分组与密钥长度均为 128 位,32 轮迭代,与 AES-128 接口形态一致但结构完全不同,不能互换。最初面向无线局域网设计,经 GB/T 32907-2016 标准化后成为数据加密主力。注意工作模式:ECB 只适合短随机数据,业务数据应用 CBC、GCM 等模式,IV 必须随机且不复用。
三、SM9 与 ZUC:补全密码版图的两个算法
SM9 是标识密码算法(IBC):公钥由身份标识(手机号、邮箱、设备编号)直接导出,私钥由密钥中心生成分发,不需要证书体系。适合终端量大、证书管理成本高的物联网场景与无证书加密的内部通信;代价是私钥托管在密钥中心,信任模型与 PKI 不同。
ZUC(祖冲之序列密码)是流式算法,128 位密钥驱动密钥流与明文异或完成加密,被 3GPP 采纳为 LTE 及 5G 的加密与完整性算法(EEA3/EIA3),也是唯一进入国际通信标准的国密算法。服务器端接触不多,无线通信模块联调中会直接遇到。

四、与国际算法的对应关系与迁移要点
迁移时注意三个要点:
一一对应,参数对齐。 SM2 对应 ECDSA/ECDH(P-256),SM3 对应 SHA-256,SM4 对应 AES-128。参数对齐才能保证安全强度不回退——例如 2048 位 RSA 迁到 SM2,安全强度从约 112 位升到 128 位,密钥长度反而缩短。
协议栈双轨运行。 传输层改造走 TLCP(国密传输层密码协议),与国际 TLS 是两套协议栈,需同时支持、按客户端协商;证书侧国密证书与国际证书并存,算法链与到期日分别管理。
工具链先行。 检查证书是否国密,需用支持国密的 OpenSSL 发行版(如 Tongsuo),标准版不识别 SM2 相关 OID:
openssl x509 -in sm2_cert.pem -noout -text | grep -A2 "Signature Algorithm"
输出中的签名算法应为 SM2-SM3 组合;标准 OpenSSL 执行同样命令会报 unknown algorithm,这不是证书有问题,是工具不支持。
五、标准依据与合规检查清单
密评对密码算法的要求是"正确、有效":算法符合标准、参数符合规范、密钥管理成体系。落查时对照三项:
- 算法是否在清单内:系统实际使用的密码算法,应能在 GB/T 32918/32905/32907、GB/T 38635、GB/T 33133 中找到对应标准;
- 参数是否达标:密钥长度、对称算法工作模式与 IV 管理、摘要长度是否符合 GM/T 0054-2018《信息系统密码应用基本要求》;
- 密钥是否受管:生成、存储、分发、轮换、销毁是否受控——以安当国密 HSM 为代表的密码硬件,核心机制是在硬件安全模块内完成国密算法的密钥生成、存储与运算,根密钥不离开硬件边界。
算法体系理清之后,改造项目的一半工作量就消失了。你的团队在国密算法选型上踩过哪些坑?评论区聊聊。
参考资料
- GB/T 32918-2016《信息安全技术 SM2 椭圆曲线公钥密码算法》
- GB/T 32905-2016《信息安全技术 SM3 杂凑算法》
- GB/T 32907-2016《信息安全技术 SM4 分组密码算法》
- GB/T 38635-2020《信息安全技术 SM9 标识密码算法》
- GB/T 33133-2016《信息安全技术 祖冲之序列密码算法》
- GM/T 0054-2018《信息系统密码应用基本要求》