国密算法体系是什么
国密算法指中国商用密码标准中的算法集合,包含公开算法(SM2 公钥、SM3 杂凑、SM4 分组、SM9 标识密码、ZUC 序列密码)与以硬件形态提供的 SM1。它们与对应的国际算法在角色上相似但参数与标准不同:金融、政务、电信领域的合规改造通常同时要求算法替换、协议升级与产品认证。
基本信息
| SM2 | 公钥算法(签名、加密、密钥交换),GB/T 32918 系列 |
|---|---|
| SM3 | 密码杂凑算法,GB/T 32905-2016 |
| SM4 | 分组密码,GB/T 32907-2016 |
| SM9 | 标识密码,GM/T 0044 |
| ZUC | 序列密码,GM/T 0001-2012 |
| SM1 | 对称算法,未公开,以硬件形态提供 |
| 协议层 | TLCP(GB/T 38636)承载国密套件 |
典型使用场景
- 政务与金融系统改造:按监管要求完成国密算法替换
- 国密 HTTPS:站点与网关使用 SM2 证书配合 TLCP
- 设备与终端认证:安全芯片内置国密算法完成双向认证
- 移动通信空口加密:ZUC 用于特定通信场景
- 标识密码应用:SM9 用于基于身份标识的认证与加密
典型套件与标识
典型套件与标识
TLCP 套件示例:ECC_SM4_GCM_SM3、ECC_SM4_CBC_SM3、ECDHE_SM4_GCM_SM3
证书签名算法:SM2-with-SM3
摘要与消息认证:SM3、HMAC-SM3
# 对照关系:SM2 对应 RSA/ECDSA 角色,SM3 对应 SHA-2,SM4 对应 AES确认工具链能力
确认工具链能力
# 查看 OpenSSL 支持的国密算法
openssl list -cipher-algorithms | grep -i sm4
openssl list -digest-algorithms | grep -i sm3
openssl ecparam -list_curves | grep -i sm2
# 查看版本,评估国密相关能力是否满足要求
openssl version -a | head -2算法对照
| 算法 | 类型 | 主要标准 | 典型用途 |
|---|---|---|---|
| SM2 | 公钥(签名、加密、交换) | GB/T 32918 系列 | TLCP、国密证书 |
| SM3 | 密码杂凑 | GB/T 32905-2016 | 签名摘要、HMAC、密钥派生 |
| SM4 | 分组密码 | GB/T 32907-2016 | 传输与存储加密 |
| SM9 | 标识密码 | GM/T 0044 | 标识认证、邮件加密 |
| ZUC | 序列密码 | GM/T 0001-2012 | 移动通信空口加密 |
| SM1 | 对称(未公开) | 硬件形态提供 | 金融 IC 卡与安全模块 |
落地国密项目时,除算法本身还要评估三件事:协议版本(TLCP 与相关行业标准)、密码产品认证情况、以及设备与浏览器的兼容矩阵。多数互通问题出在这些外围环节,而不是算法实现本身。
混用不同年份或不同来源的标准版本(如既有草案又有正式版)会造成互通故障。项目启动阶段就应把采用的标准号与版本写进对接文档,并要求各方提供自检的测试向量结果。