首页/安全/等保与合规速查/SM2 椭圆曲线公钥算法:用途与要点
密码与认证合规50 条

SM2 椭圆曲线公钥算法:用途与要点

SM2 是我国商用密码公钥算法(GB/T 32918 系列):用于数字签名、密钥交换与公钥加密,密钥长度 256 位,广泛用于证书、签名与加密场景。

等保与合规速查安全更新于 2026-10-13

SM2 是什么

SM2 是我国商用密码公钥算法,标准为 GB/T 32918 系列,包含总则、数字签名、密钥交换、公钥加密与参数定义五部分。它基于 256 位素数域椭圆曲线(sm2p256v1),用于签名验签、密钥交换与公钥加密,摘要运算配套使用 SM3,构成完整的国密套件。在密评与政务、金融系统中,SM2 通常出现在数字证书、电子签名与密钥协商环节。

基本信息

标准GB/T 32918.1 至 .5(总则、签名、密钥交换、公钥加密、参数)
曲线256 位素数域椭圆曲线(sm2p256v1)
用途签名验签、密钥交换、数据加密
配套摘要SM3
密钥长度256 位,属椭圆曲线体系
常见载体数字证书、USB Key、密码机、密码模块

典型使用场景

  • 电子签名与电子印章的算法选择
  • 政务与金融系统的证书体系国密改造
  • 与外部系统对接时的密钥协商
  • 密评整改中的算法合规替换
  • 密码机与 USB Key 的算法能力确认

OpenSSL 生成 SM2 密钥

OpenSSL 生成 SM2 密钥
# 生成 SM2 私钥
openssl ecparam -genkey -name SM2 -out sm2.key
# 从私钥导出公钥
openssl ec -in sm2.key -pubout -out sm2.pub
# 自签名证书(示意用法,参数按合规要求调整)
openssl req -new -x509 -key sm2.key -out sm2.crt -days 3650

用途与配套算法

用途算法说明
数字签名SM2 配 SM3签名值与证书绑定
密钥交换SM2协商会话密钥
数据加密SM2适合加密短数据或密钥
完整性校验SM3摘要与 HMAC 场景
SM2 与 RSA 是两套体系:密钥格式、密文结构与接口参数都不同,不能把 SM2 密钥当 RSA 密钥使用;迁移时要评估证书链与中间件兼容性。
国密套件内摘要通常要求使用 SM3;用 SHA-256 混配 SM2,在多数合规场景下会被质疑,除非标准或系统明确允许。

选型与合规证据

要点做法留证
算法合规选用 SM2 等商用密码算法算法与标准对照说明
模块合规使用通过检测的密码模块或密码机产品证书与型号清单
私钥保护私钥不出模块,调用留审计密钥调用与操作记录
证书体系签发、吊销与更新流程清晰证书台账与更新记录
签名与加密的密钥应分开使用:同一对密钥既签名又加密会放大泄露影响,也容易被密评追问用途隔离。

易错点

  • 用 RSA 的思维处理 SM2 数据:密钥格式与密文结构都不同
  • 签名摘要用 SHA-256 混配:国密套件内通常要求 SM3
  • 私钥明文落盘或硬编码在代码里:私钥应放在密码模块或 KMS 中
  • 忽略证书链与中间件的算法支持:改造后接口对接失败

数据来源与参考

  • GB/T 32918 系列标准
  • 中华人民共和国密码法
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌