SM2 标准体系的构成
SM2 不是一个孤立的算法,而是由 GB/T 32918 系列五个部分构成:总则、数字签名算法、密钥交换协议、公钥加密算法与参数定义。实施与验收时需要按用途对照相应部分:做签名就对齐签名部分,做密钥交换就对齐密钥交换部分。它与 SM3(GB/T 32905)和 SM4(GB/T 32907)组合使用,构成国密基础算法套件。
基本信息
| 标准体系 | GB/T 32918.1 至 32918.5 |
|---|---|
| 配套算法 | GB/T 32905(SM3 摘要)、GB/T 32907(SM4 分组密码) |
| 常见用途 | 数字签名、密钥交换、公钥加密与参数选择 |
| 实施要点 | 签名与加密用途分离,参数与实现保持一致 |
| 验收方式 | 按用途对照对应部分的功能与测试向量 |
典型使用场景
- 方案编制:按业务场景选择签名、加密或密钥交换部分
- 产品验收:核对实现是否声明支持相应部分
- 互操作测试:确认双方参数与编码方式一致
- 代码评审:检查是否误用同一密钥对承担多种用途
- 培训宣贯:用一张表讲清五个部分的分工
标准分工
| 部分 | 名称 | 用途 |
|---|---|---|
| 32918.1 | 总则 | 数学基础与总体描述 |
| 32918.2 | 数字签名算法 | 签名与验签 |
| 32918.3 | 密钥交换协议 | 双方协商会话密钥 |
| 32918.4 | 公钥加密算法 | 数据加密 |
| 32918.5 | 参数定义 | 推荐曲线与参数 |
算法组合示例
算法组合示例
# 数字签名场景:SM3 摘要 + SM2 签名
# 数据加密场景:SM2 公钥加密 + SM3 摘要校验
# 传输通道场景:SM2 密钥交换协商会话密钥 + SM4 加密数据
# 完整性场景:SM3 生成摘要,必要时配合 SM2 签名实施与验收要点
- 按用途对照:签名类需求对应 32918.2,密钥交换对应 32918.3,加密对应 32918.4
- 参数一致性:双方使用同一套推荐曲线与编码方式,避免联调阶段才发现差异
- 密钥用途分离:签名密钥与加密密钥分开管理,便于审计与轮换
- 实现验证:用标准测试向量核对实现结果,而不是只看产品声明
- 文档留痕:把选用的部分、版本与测试结论写入方案与验收记录
实施时通常把签名与加密的密钥对分开使用:用途分离便于密钥管理与审计,也能避免单一密钥泄露造成的影响面扩大。