标准搜索结果: 'GM/T 0003.1-2012'
标准编号 | GM/T 0003.1-2012 (GM/T0003.1-2012) | 中文名称 | SM2椭圆曲线公钥密码算法 第1部分:总则 | 英文名称 | Public key cryptographic algorithm SM2 based on elliptic curves - Part 1: General | 行业 | Chinese Industry Standard (推荐) | 中标分类 | L80 | 字数估计 | 47,459 | 发布日期 | 2012/3/21 | 实施日期 | 2012/3/21 |
GM/T 0003.1-2012: SM2椭圆曲线公钥密码算法 第1部分:总则
GM/T 0003.1-2012 英文名称: Public key cryptographic algorithm SM2 based on elliptic curves - Part 1: General
中华人民共和国密码行业标准
GM/ T 0003 .1-2012
SM2 椭圆曲线公钥密码算法
第 1 部分:总则
国家密码管理局 发布
前言
GM/T OOO3-2O12«SM2椭圆曲线公钥密码算法》分为5个部分:
——第1部分:总则;
——第2部分:数字签名算法;
——第3部分:密钥交换协议;
——第4部分:公钥加密算法;
——第5部分:参数定义。
本部分为GM/T 0003的第1部分。
本部分依据GB/T 1. 1—2009给出的规则起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。
本部分的附录A、附录B、附录C和附录D为资料性附录。
本部分由国家密码管理局提出并归口。
本部分起草单位:北京华大信安科技有限公司、中国人民解放军信息工程大学、中国科学院数据与 通信保护研究教育中心。
本部分主要起草人:陈建华、祝跃飞、叶顶峰、胡磊、裴定一、彭国华、张亚娟、张振峰。
引言
N. Koblitz和V. Miller在1985年各自独立地提出将椭圆曲线应用于公钥密码系统。椭圆曲线公钥密码所基于的曲线性质如下:
——有限域上椭圆曲线在点加运算下构成有限交换群,且其阶与基域规模相近;
——-类似于有限域乘法群中的乘幕运算,椭圆曲线多倍点运算构成一个单向函数。
在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。对于一般椭圆 曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对 数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密 码较其他公钥密码所需的密钥规模要小得多。
本部分描述必要的数学基础知识与-般技术•以帮助实现其他各部分所规定的密码机制。
1范围
GM/T 0003的本部分给出了 SM2椭圆曲线公钥密码算法涉及的必要数学基础知识与相关密码技 术,以帮助实现其他各部分所规定的密码机制。
本部分适用于基域为素域和二元扩域的椭圆曲线公钥密码算法。
3域和椭圆曲线
3. 1有限域
3. 1. 1概述
3. 1.2 素域 Fp
当q是奇素数p时,素域Fp中的元素用整数数 0,1,2 ,…, p-1 表示。
a)加法单位元是整数0;
b)乘法单位元是整数1;
c)域元素的加法是整数的模p加法,即若a,b∈Fp ,b,F。,则a+b=(a +b)mod p。
d)域元素的乘法是整数的模泊乘法,即若a,b∈Fp ,b,F。,则a•b=(a •b)mod p。
3. 1.3二元扩域F2m
当q是2的方幂2m时,二元扩域F2m“可以看成F2上的m维向量空间,其元素可用长度m的比特 串表示。
F2m中的元素有多种表示方法,其中最常用的两种方法是多项式基(PB)表示(参见附录A. 2. 1. 1) 和正规基(NB)表示(参见附录A. 2. 1.3)。基的选择原则是使得F2m中的运算效率尽可能高。本标准 并不规定基的选择。下面以多项式基表示为例说明二元扩域F2m。
3.2有限域上的椭圆曲线
有限域Fq上的椭圆曲线是由点组成的集合。在仿射坐标系下,椭圆曲线上点P(非无穷远点)的坐 标表示为P=(xp,yp),其中xp,yp为满足一定方程的域元素,分别称为点P的x坐标和y坐标。在本标准中,称Fq为基域。
关于椭圆曲线更多的背景知识,参见附录A的A. 1和A. 2。
在本标准中,如果不做特别说明,椭圆曲线上的点均釆用仿射坐标表示。
3.2.4椭圆曲线多倍点运算
3.2.5椭圆曲线离散对数问题(ECDLP)
已知椭圆曲线E(Fq)、阶为n的点G∈E(F„)及Q∈,椭圆曲线离散对数问题是指确定整数 l∈[0,n-1],
使得 Q=[l ]G成立。
椭圆曲线离散对数问题关系到椭圆曲线密码系统的安全,因此必须选择安全的椭圆曲线。关于如 何选择安全椭圆曲线,参见附录A的A. 4 ,
3.2.6弱椭圆曲线
4数据类型及其转换
4.1数据类型
在本标准中,数据类型包括比特串、字节串、域元素、椭圆曲线上的点和整数。
比特串:有序的0和1的序列。
字节串:有序的字节序列,其中8比特为1个字节。
域元素:有限域F“中的元素。
椭圆曲线上的点:椭圆曲线上的点P∈E(Fq) ,或者是一对域元素(xp,yp),其中域元素xp和yp力,满 足椭圆曲线方程,或者是无穷远点0。
点的字节串表示有多种形式,用一个字节PC加以标识。无穷远点0的字节串表示是单一的零字 节PC = 00。非无穷远点p=(xp,yp)有如下三种字节串表示形式:
a)压缩表示形式,pC= 02或03;
b)未压缩表示形式,pC=04;
c)混合表示形式,PC= 06或07。
注:混合表示形式既包含压缩表示形式又包含未压缩表示形式。在实现中,它允许转换到压缩表示形式或者未压 缩表示形式。
对于椭圆曲线上点的压缩表示形式和混合表示形式,本标准中定为可选形式。椭圆曲线上点的压 缩表示形式参见附录A的A.5。
4.2数据类型转换
4.2.1数据类型转换关系
图1提供了各种数据类型之间的转换关系,线上的标志是相应数据转换方法所在的条。
5椭圆曲线系统参数及其验证
5.1 —般要求
椭圆曲线系统参数是可以公开的,系统的安全性不依赖于对这些参数的保密。本标准不规定椭圆 曲线系统参数的生成方法,但规定了系统参数的验证方法。椭圆曲线阶的计算和基点的选取方法可参 见附录B的B. 3.曲线参数的生成方法可参见附录D。
椭圆曲线系统参数按照基域的不同可以分为两种情形:
——当基域是Fp(P为大于3的素数)时,Fp上的椭圆曲线系统参数;
——当基域是F2m时,F2m上的椭圆曲线系统参数。
5.2 Fp上椭圆曲线系统参数及其验证
5.2.1Fp上椭圆曲线系统参数
5.3.2 Fp欢上椭圆曲线系统参数的验证
椭圆曲线系统参数的生成者应验证下面的条件。椭圆曲线系统参数的用户可选择验证这些条件。
输入:F2m上椭圆曲线......
|