本文主要列举国密SM2推荐的椭圆曲线参数,并简要说明各参数项的意义。
一、椭圆曲线参数说明
通常将Fp(有限域)上的一条椭圆曲线描述为T=(p,a,b,G,n,h),其中:
注:基于以上个人理解是通过不同参数得到不同的椭圆曲线,不同曲线的加解密计算强度、存储空间、破解难度等有所不同。(如有不对请指正!!!)
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] 有趣的椭圆曲线加密
全部评论