SM2(椭圆曲线公钥密码算法)
SM2 椭圆曲线公钥密码算法
设计者
中国国家密码管理局
首次发布
2010年
类别
非对称公钥密码
数学基础
椭圆曲线离散对数难题
曲线
SM2 P-256 (256 位素数域)
功能
数字签名 / 密钥交换 / 公钥加密
标准
GM/T 0003-2012
GB/T 32918-2016
ISO/IEC 14888-3:2018
GB/T 32918-2016
ISO/IEC 14888-3:2018
安全状态
安全
SM2是中国国家密码管理局发布的椭圆曲线公钥密码算法标准(GM/T 0003-2012),涵盖三个功能模块:数字签名、密钥交换和公钥加密。SM2 使用一条 256 位的专用椭圆曲线,对标 ECDSA/ECDH 等国际标准。
SM2 椭圆曲线参数
SM2 曲线方程: y² = x³ + ax + b (mod p)
p = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
a = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
b = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93
n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123
G = (32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7,
BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0)
三个功能模块
| 模块 | 功能 | 对标国际标准 | 说明 |
|---|---|---|---|
| SM2-1 | 数字签名 | ECDSA | 生成/验证数字签名,用于身份认证和不可否认性 |
| SM2-2 | 密钥交换 | ECDH | 双方协商共享密钥,支持前向保密 |
| SM2-3 | 公钥加密 | ECIES | 使用对方公钥加密消息,配合 SM3 和 SM4 |
与 ECDSA 对比
| 特性 | SM2 | ECDSA (P-256) |
|---|---|---|
| 曲线 | SM2 P-256 (专用) | NIST P-256 |
| 密钥长度 | 256 bit | 256 bit |
| 签名长度 | ~512 bit (r, s) | ~512 bit (r, s) |
| 签名速度 | 相当 | 相当 |
| 曲线选择 | 中国自主 | NIST (受 NSA 信任度争议) |
| 标准 | SCA / ISO | NIST / ISO |
应用
- 电子政务:政务 CA 证书、电子签章
- 金融:银联卡、网上银行(替代 RSA)
- 国密 TLS:GM/T 0024 SSL VPN
- 身份认证:eID 电子身份证
- 区块链:合规链使用 SM2 签名
参考文献
- 国家密码管理局 (2012). "SM2 椭圆曲线公钥密码算法". GM/T 0003-2012.
- 国家标准委 (2016). "信息安全技术 SM2椭圆曲线公钥密码算法". GB/T 32918-2016.
- ISO/IEC 14888-3:2018. "Digital signatures with appendix — Part 3: Discrete logarithm based mechanisms."