GB/T 35276-2017 信息安全技术 SM2/SM3/SM4 密码算法应用规范
标准编号:GB/T 35276-2017
发布组织:国家市场监督管理总局 (SAMR) / 国家标准化管理委员会
发布时间:2017年12月29日
摘要:该标准规定了我国商用密码算法 SM2 椭圆曲线公钥算法、SM3 密码杂凑算法和 SM4 分组密码算法在密码产品、服务及应用系统中的使用要求,包括密钥管理、算法参数、安全强度、消息结构、接口规范等。它为国密算法在金融、政务、电信、物联网等领域的合规应用提供了统一的指导。
主要内容:
- SM2 算法应用:数字签名、密钥交换协议、公钥加密的密钥表示格式、数据格式、参数验证等。
- SM3 应用:消息摘要、HMAC、伪随机数生成时的使用规范。
- SM4 应用:分组密码工作模式(ECB, CBC, CFB, OFB, CTR),密钥初始化向量生成,填充方式等。
- 密钥生命周期管理:生成、分发、存储、使用、备份、恢复和销毁的安全要求。
- 算法互操作性:不同产品和系统间使用 SM2/SM3/SM4 时应遵循的数据与消息格式规范。
适用范围:密码设备厂商、应用开发商、测评机构和行业用户。遵照此规范可以确保基于国密算法的应用在各平台上实现互操作。
相关标准:GB/T 32905 (SM3), GB/T 32907 (SM4), GB/T 32918 (SM2) 为算法标准;GB/T 35276 是这些算法具体应用的配套规范。
官方资源: 国家标准全文公开系统 (搜索 GB/T 35276)
关联工具: SM4 加解密工具 | SM3 哈希工具 | SM2 密钥生成/签名工具
GB/T 35276-2017 详细说明
GB/T 35276-2017《信息安全技术 SM2 密码算法使用规范》由国家密码管理局发布,规定了 SM2 椭圆曲线公钥密码算法在数字签名、密钥交换和加密三种场景下的使用方法。该标准与 GB/T 32918(SM2 算法本身)配套使用。
数字签名
SM2 签名使用 GM/T 0006 定义的签名方案,与标准 ECDSA 不同。签名过程:计算 Z = SM3(ENTL || ID || a || b || Gx || Gy || PA),其中 Z 为用户身份标识的哈希;计算 e = SM3(Z || M);生成随机数 k,计算 (x1, y1) = [k]G;r = (e + x1) mod n,s = ((1 + d)^-1 * (k - r * d)) mod n;签名为 (r, s)。验签方使用公钥和 Z 值验证签名。默认用户 ID 为 1234567812345678。
加密
SM2 加密使用密文格式 C = C1 || C3 || C2,其中 C1 为椭圆曲线点(64 字节)、C3 为 SM3 哈希(32 字节)、C2 为密文。加密过程:生成随机数 k,计算 C1 = [k]G;计算 (x2, y2) = [k]PA(公钥);t = KDF(x2 || y2, Mlen);C2 = M XOR t;C3 = SM3(x2 || M || y2)。
密钥交换
SM2 密钥交换允许双方通过各自的密钥对协商出共享对称密钥,过程中引入随机临时公私钥对防止前向安全性。交换协议需要 3 轮交互完成。本站 SM2 工具 支持生成密钥对和签名/验签操作。国密智能卡系统中 SM2 通常与 SM3 配合使用,签名和加密密钥对可以分离管理。