国密SM2推荐椭圆曲线算法参数

1193人浏览 / 0人评论

本文主要列举国密SM2推荐的椭圆曲线参数,并简要说明各参数项的意义。

一、椭圆曲线参数说明

通常将Fp(有限域)上的一条椭圆曲线描述为T=(p,a,b,G,n,h),其中:

  1. p为大于3的素数。
  2. a,b定义了Fq上的一条椭圆曲线。
  3. G为基点,可表示为(Xg,Yg)。
  4. n为基点G的阶。
  5. h为协因子,是椭圆曲线上所有点的个数m与n相除的商的整数部分。

注:基于以上个人理解是通过不同参数得到不同的椭圆曲线,不同曲线的加解密计算强度、存储空间、破解难度等有所不同。(如有不对请指正!!!)

ECPoint = 0x04 + Gx + Gy 表示非压缩格式。

二、国密SM2推荐的椭圆曲线参数

p = FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF
a = FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC
b = 28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93
Gx= 32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7
Gy= BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0
n = FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123
h = 00000001

BC库中定义为:sm2p256v1

三、比特币系统选用的椭圆曲线参数

p = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
a = 0000000000000000000000000000000000000000000000000000000000000000
b = 0000000000000000000000000000000000000000000000000000000000000007
Gx= 79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
Gy= 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
n = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
h = 00000001

BC库中定义为:secp256k1

 

参考资料

[1] IETF draft-shen-sm2-ecdsa-02 #appendix-D

[2] SM2国密标准文档

[3] 椭圆曲线算法(ECC)学习(一)

[4] 椭圆曲线算法(ECC)学习(二)

[5] ECC椭圆曲线详解

[6] 有趣的椭圆曲线加密

全部评论