ICS35.040 L80 备案号:36826-2012 GM 中华人民共和国密码行业标准 GM/T0003.1—2012 SM2椭圆曲线公钥密码算法 第1部分:总则 Public key cryptographic algorithm SM2 based on elliptic curves- Part 1:General 2012-03-21发布 2012-03-21实施 国家密码管理局发布 GM/T 0003.1-2012 目 次 前言 引言 1范围 2符号和缩略语 ] 3域和椭圆曲线 .2 3.1有限域 2 3.2有限域上的椭圆曲线 3 4数据类型及其转换 5 4.1数据类型 4.2数据类型转换 5 5椭圆曲线系统参数及其验证 8 5.1一般要求 .8 5.2F上椭圆曲线系统参数及其验证 8 5.3F上椭圆曲线系统参数及其验证 9 6密钥对的生成与公钥的验证 9 6.1密钥对的生成 9 6.2公钥的验证 9 附录A(资料性附录)关于椭圆曲线的背景知识11 A.1素城F .11 A.2二元扩域F 13 A.3椭圆曲线多倍点运算 23 A.4求解椭圆曲线离散对数问题的方法 .26 A.5椭圆曲线上点的压缩 27 附录B(资料性附录)数论算法29 B.1有限域和模运算 29 B.2有限域上的多项式 33 B.3椭圆曲线算法 35 附录C(资料性附录)曲线示例 37 C.1一般要求 37 C.2F上椭圆曲线 37 C.3F2=上椭圆曲线 37 附录D(资料性附录)椭圆曲线方程参数的拟随机生成及验证39 D.1椭圆曲线方程参数的拟随机生成 39 D.2椭圆曲线方程参数的验证 .40 参考文献 41 GM/T0003.1-2012 前言 GM/T0003-2012《SM2椭圆曲线公钥密码算法》分为5个部分: ——第1部分:总则; ——第2部分:数字签名算法; —第3部分:密钥交换协议; 一-第4部分:公钥加密算法; ——第5部分:参数定义. 本部分为GM/T0003的第1部分. 本部分依据GB/T1.1一2009给出的规则起草. 请注意本文件的某些内容可能涉及专利.本文件的发布机构不承担识别这些专利的责任. 本部分的附录A、附录B、附录C和附录D为资料性附录. 本部分由国家密码管理局提出并归口. 本部分起草单位:北京华大信安科技有限公司、中国人民解放军信息工程大学、中国科学院数据与 通信保护研究教育中心. 本部分主要起草人:陈建华、祝跃飞、叶顶峰、胡磊、裴定一、彭国华、张亚娟、张振峰. 1 GM/T0003.1-2012 引言 N.Koblitz和V.Miller在1985年各自独立地提出将椭圆曲线应用于公钥密码系统.椭圆曲线公 钥密码所基于的曲线性质如下: 一一有限域上椭圆曲线在点加运算下构成有限交换群,且其阶与基域规模相近; —一类似于有限域乘法群中的乘幂运算,椭圆曲线多倍点运算构成一个单向函数. 在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题.对于一般椭圆 曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法.与大数分解问题及有限域上离散对 数问题相比,椭圆曲线离散对数问题的求解难度要大得多.因此,在相同安全程度要求下,椭圆曲线密 码较其他公钥密码所需的密钥规模要小得多. 本部分描述必要的数学基础知识与一般技术,以帮助实现其他各部分所规定的密码机制. GM/T0003.1-2012 SM2椭圆曲线公钥密码算法 第1部分:总则 1范围 GM/T0003的本部分给出了SM2椭圆曲线公钥密码算法涉及的必要数学基础知识与相关密码技 术,以帮助实现其他各部分所规定的密码机制. 本部分适用于基域为素域和二元扩域的椭圆曲线公钥密码算法. 2符号和缩略语 下列符号和缩略语适用于本部分. u b:F中的元素,它们定义F上的一条椭圆曲线E. B:MOV闽.正数B 使得求取F上的离散对数至少与求取F上的椭圆曲线离散对数一样困难. deg(f):多项式f(r)的次数. E:有限域上由a和b定义的一条椭圆曲线. E(F ):F上椭圆曲线E的有理点(包括无穷远点O)组成的集合. ECDLP:椭圆曲线离散对数问题. F :包含p个元素的素域. F:包含q个元索的有限域. F:由F中非零元构成的乘法群. F2:包含2个元素的二元扩域. :椭圆曲线的一个基点,其阶为素数. gcd(x y):r和y的最大公因子....