Skip to content

按 GM/T 标准组织:逐算法拆解 SM2/SM3/SM4/SM9,再串国密协议与合规。

SM2 椭圆曲线公钥密码

标准:GM/T 0003.1–0003.5(2012)

  • 基于推荐曲线参数 sm2p256v1;与 RSA/ECC 平行但曲线与 OID 不同
  • 数字签名:GM/T 0003.2;用户身份绑定 ZA 值参与哈希
  • 密钥交换:GM/T 0003.3;两方/三方协商
  • 公钥加密:GM/T 0003.4;C1||C3||C2 格式
  • 强度对标 ECC P-256 量级;具体安全级别参照国家密码管理局评估

SM3 密码杂凑算法

标准:GM/T 0004-2012

  • 输出 256 bit;Merkle-Damgård 结构,消息扩展与压缩函数为国密定制
  • 用途:数字签名预处理、HMAC-SM3、数据完整性校验
  • 与 SHA-256 输出长度相同但算法不兼容

SM4 分组密码

标准:GM/T 0002-2012

  • 分组 128 bit,密钥 128 bit,32 轮非平衡 Feistel 变体
  • S 盒、线性变换 L 与轮密钥扩展为国密定制
  • 工作模式参照 GM/T 0006 应用规范;常见 CBC、CTR、GCM 组合

SM9 与 ZUC

SM9 标识密码(IBC)

标准:GM/T 0044-2016

  • 基于身份的密码:公钥可由用户标识(如邮箱)派生
  • 需 PKG(私钥生成中心)分发私钥;信任模型与 PKI 不同
  • 覆盖签名、加密、密钥交换

ZUC 祖冲之序列密码

标准:GM/T 0001-2012

  • 用于 4G/5G 机密性保护;LFSR + 非线性函数
  • 与 SM4 分组密码互补,面向流式场景

国密协议标准

标准内容
GM/T 0010SM2 消息语法(加密/签名数据结构)
GM/T 0015基于 SM2 的数字证书格式
GM/T 0024SSL VPN 技术规范(国密 TLS 变体)
GM/T 0022IPsec VPN 技术规范
GM/T 0034基于 SM2 的证书认证系统
GM/T 0006密码应用标识规范
<ul>
  <li>国密 SSL 与标准 TLS 在 cipher suite、证书 OID、握手流程上有差异</li>
  <li>双证书体系(签名证书 + 加密证书)在政务/金融常见</li>
</ul>
<p class="kb-note-inline">练习:对比 SM2 证书与 RSA 证书的 ASN.1 结构差异。</p>

合规与工程

标准:GM/T 0028(密码模块安全要求)

  • 密码模块安全等级 1–4;涉密项目须选用通过检测的产品
  • 密钥管理流程(生成、存储、分发、销毁)往往比算法实现更耗时间
  • Rust 尚无成熟国密 crate;通常 FFI 调 GmSSL 或厂商 SDK
语言库说明
CGmSSLOpenSSL 风格 API
Pythongmssl-pythonSM2/SM3/SM4 试验
<p class="kb-note-inline">练习:GmSSL 完成 SM4 加解密 + SM2 签名验签。本站笔记 <span class="crypto-pending">待撰写</span>。</p>

WIZARD