GM/T 0003.3-2012 SM2椭圆曲线公钥密码算法 第3部分:密钥交换协议

GM/T 0003.3-2012 Public key cryptographic algorithm SM2 based on elliptic curves—Part 3:Key exchange protocol

行业标准-密码 中文简体 现行 页数:16页 | 格式:PDF

基本信息

标准号
GM/T 0003.3-2012
相关服务
标准类型
行业标准-密码
标准状态
现行
中国标准分类号(CCS)
国际标准分类号(ICS)
发布日期
2012-03-21
实施日期
2012-03-21
发布单位/组织
国家密码管理局
归口单位
国家密码管理局
适用范围
GM/T 0003的本部分规定了SM2椭圆曲线公钥密码算法的密钥交换协议,并给出了密钥交换与验证示例及其相应的流程。
本部分适用于商用密码应用中的密钥交换,可满足通信双方经过两次或可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥(会话密钥)。同时,本部分还可为安全产品生产商提供产品和技术的标准定位以及标准化的参考,提高安全产品的可信性与互操作性。

发布历史

研制信息

起草单位:
北京华大信安科技有限公司、中国人民解放军信息工程大学、中国科学院数据与通信保护研究教育中心
起草人:
陈建华、祝跃飞、叶顶峰、胡磊、裴定一、彭国华、张亚娟、张振峰
出版信息:
页数:16页 | 字数:27 千字 | 开本: 大16开

内容描述

ICs35,040

L80

备案号:36828—⒛12

中华人民共和国密码行业标准

GM/T0003.3-⒛12

SM2椭圆曲公钥密码法

线算

第3部分:密钥交换协议

Publickeycryptographicalgorithms⒈

Part3:Keyexchangeprotocol

⒛12-0S-21发布⒛12-03-21实施

国家密码管理局发布

GM/T0003.3-2012

目次

¨¨¨¨¨¨¨………………………¨¨………………

目刂舀Ⅲ

…………·………………

引言Ⅳ

…………………

1范围·…………………¨1

…………

·………………

规范性引用文件1

………………

术语和定义1

………………………

符号1

·……·……………·

算法参数与辅助函数2

·……………

¨………

¨…¨¨¨¨¨¨¨…………

¨¨¨

5.1`总贝刂2

5,2椭圆曲线系统参数…撺·…….………………………2

5.3…………………………·

用户密钥对3

5,4辅助函数……………3

………………………·

5.4,1概述……3

5.4.2密码杂凑函数…………………3

5.4.3密钥派生函数………·…………3

5.4,4随机数发生器…………………3

5.5用户其他信息………………………3

……………………·

密钥交换协议及流程4

6.1密钥交换协议…·……………………4

6,2密钥交换协议流程·………………·…………·……………………4

附录A(资料性附录)密钥交换及验证示例·……………6

A.1一般要求……………6

A,2F'上椭圆曲线密钥交换协议…¨…………………6

……………………·

A。3F2″上椭圆曲线密钥交换协议9

rllIl

GM/T0003.3-⒛12

刖曰

GM/T0003—2012《SM2椭码法》为5个部分:

圆曲线公钥密算分

——第1部分:总则;

——第2部分:数字签名算法;

——第3部分:密钥交换协议;

——第4部分:公钥加密算法;

——第5部分:参数定义。

本部分为GM/T0003的第3部分。

本部分依据GB/T1.1—⒛09给出的规则起草。

请注意本文件的某些内容可能涉及专利。本文仵的发布机构不承担识别这些专利的责任。

本部分的附录A为资料磴怖录。

本部分由国家密码管理局提出并归口。

、民工学、国学院数据与

匕有限公司中国人解放军信息程大中科

本部分起草单位川京华大信安科技

通信保护研究教育中心。

、、一、、亚、。

:陈、飞、磊彭国华张娟张振峰

本部分主要起草人建华祝跃叶顶峰胡裴定

GM/T0003.3-⒛12

引言

N.Koblitz和

V,Miller在1985年各自独立地提出将椭圆曲线应用于公钥密码系统。椭圆曲线公

钥密码所基于的曲线性质如下:

——有限域上椭圆曲线在点加运算下构成有限交换群,且其阶与基域规模相近;

——

类似于有限域乘法群中的乘幂运算,椭圆曲线多倍点运算构成一个单向函数。

在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。对于一般椭圆

曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对

数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密

码较其他公钥密码所需的密钥规模要小得多。

本部分描述了基于椭圆曲线的密钥交换协议。

GM/T0003.3-ˉ2012

SM2椭圆曲公码

线钥密算法

第3部分:密钥交换协议

1范围

GM/T0003的本部分规定了SM2椭圆曲线公钥密码算法的密钥交换协议,并给出了密钥交换与

验证示例及其相应的流程。

本部分适用于商用密码应用中的密钥交换,可满足通信双方经过两次或可选三次信息传递过程,计

算获取一个由双方共同决定的共享秘密密钥(会话密钥)。同时,本部分还可为安全产品生产商提供产

品和技术的标准定位以及标准化的参考,提高安全产品的可信性与互操作性。

2规范性引用文件

∷下列文件对于本文件的应用是必不可少的。凡是注日,仅日

期的引用文件注期的版本适用于本文

件。凡是不注日,其(包

言期的引用文件最新版本括所有的修改单)适用于本文件。

3·1~2012SM2椭1部

圆曲线公钥密码算法第分:总则

丨3i∶ltⅠ∶

下列术语和定义适用于本文件。

3,1

从A到B的密钥确认keyconfirmationfromAtoB

使用户B确信用户A拥有特定秘密密钥的保证。

3.2

密钥派生函数keyclerivationfunction

通过作用于共享秘密和双方都知道的其他参数,产生一个或多个共享秘密密钥的函数。

3.3

发起方mitiator

在一个协议的操作过程中发送首轮交换信息的用户。

3,4

口立

丿

向,|responder

在一个协议的操作过程中不是发送首轮交换信息的用户。

3.5

山stinguishmg

可辨别标识ⅡentiFier

可以无歧义辨别某一实体身份的信息。

4符号

下列符号适用于本部分。

A,B:使用公钥密码系统的两个用户。

GM/T0003.3-⒛12

ΩF〃

,乃:F〃中的元素,它们定义上的一条椭圆曲线E。

〃A的。

A:用户私钥

歹::用户B的私钥。

E(Fq):Fˇ上椭圆曲线E的所有有理点(包括无穷远点O)组成的集合。

Fq:包g个

含元素的有限域。

G:椭圆曲线的一个基点,其阶为素数。

HΩs凡():密码杂凑函数。

Hv():消息摘要长度为v比的码。

特密杂凑函数

无:余因子,九=#E(F¢)/″,其中刀是基点G的阶。·

rDΛ,ⅠD::用户A和用户B的可

Κ,ΚA,K::密钥交换协

KDF():密钥派生

mod″″

:模运算

″:基点G的(£g)的)。

素因子

O:椭圆曲特殊点,称为无穷远点或零点,是椭圆曲线加法

PΛ:用户

P⒔:用户

g:有元素的

rA:密用户A

r::密用户B

J‖y

zA:

z::关

#E(

P:

E乃彐

,t)`彐r且

EtR了:汗小于或等于丿的整数的集合。

rl:顶,J的71=7,「8,31=9。

「函数于最小整数。例如,「

[rJ:底函数,小的最大整数。例如,[7J=7,[8,3」=8。

⒏:两个整数的接

5算法参数与辅助函数

5.1总则

密钥交换协议是两个用户A和B通过交互的信息传递,用各自的私钥和对方的公钥来商定一个只

有他们知道的秘密密钥。这个共享的秘密密钥通常用在某个对称密码算法中。该密钥交换协议能够用

于密钥管理和协商。

5,2椭圆曲线系统参数

椭圆曲线系统参数包括有限域Fq的规模g(当g=2″时,还包括元素表示法的标识和约化多项式);

E(Fg)的夕乃FˇG=(=c,丿G≠O),其JG和yc是

定义椭圆曲线方程的两个元素、∈;E(Fq)上的基点G×中

FQ中的两个元素;G的阶″及其他可选项(如″的余因子无等)。

椭圆曲线系统参数及其验证应符合GM/TO003.1—⒛12第5章的规定。

2

GM/T0003.3-2012

5.3用户密钥对

用户A的密钥对包括私〃PA=E〃

其钥Λ和公钥A]G=(rA,丿B的d:和

A),用户密钥对包括其私钥

公钥P:=E〃:]G=(r:,y:)。

用户密钥对的生成算法与公钥验证算法应符合GM/TO003.1—2012第6章的规定。

5.4辅助函数'

5,4.1概述

在本部分规定的椭圆曲线密钥交换协议中,涉及三类辅助函数:密码杂凑函数,密钥派生函数与随

机数发生器。这三类辅助函数的强弱性。

5.4.2密码杂凑函数

本部分规定使用国批准的密码杂凑算法,如SM3

5.4.3密钥派生函

密钥派生函是丛≡程中,密钥派

生函数作用在所需的密钥

数据。

密钥派

设密码

密钥派

输人:比整数虑z'于(2Ⅱ

输出:长

a)初始化

b)对f从

b,1)

b.2)cr

c)若″c9z/v是!「〃

/vl=H曰勿m`vl,

否则令H夕!阳四最左(虑JP,l—(v×))比

/;边的kzP,,/v」

d)令rkˉ=Ff曰l‖H〃2FfΩ!lh/四

‖/vl。

5.4.4随机数发生器

本部分规定使用国家密码管理局批准的随

5.5用户其他信息

用户A具有长度为e刀r'c9aA比可rDA,记ENTLA是P9lrJe9zΛ

特的辨别标识由整数转换而成的两个字

节;用户B具有长度为cPz∠特的可辨别标识JD:,记ENTL:是cJzr'c9z:转

由整数换而成的两个字

'F,,a:比

节。在本部分规定的椭圆曲线密钥交换协议中,参与密钥协商的A、B双方都需要用密码杂凑函数求得

用户A的杂zA和B的zb。GM/T0003.1—20124.2.6和

凑值用户杂凑值按4.2.5给出的方法,将椭圆

@、莎G的Jc、PA的

曲线方程参数、坐标G和坐yA的型=Ff256(ENTLA

γ标n、数据类转换为比特串,ZΛ

DA‖夕乃yG‖

|Ⅰrc‖GM/T0003.1—20124,2,6和4.2,5给

‖A);按

丿出的法,将圆

=A‖方椭曲线

“‘G的rG、yc和

方程参数、、坐标P:的坐标J:、:的数据类型转换为比特,z:=H256(ENTL:

γ串

FD:‖勿宓yG‖r:‖y:)。

|D‖c‖

GM/T0003.3-2012

6密钥交换协议及流程

6.1密钥交换协议

设用户A和B协商获得密钥数据的长度为乃J‘″比特,用户A为发起方,用户B为响应方。

用户A和B双方为了获得相同的密钥,应实现如下运算步骤:

钯=「(「log2(″

记)l/2)l-1。

用户A:

A1:用随机数发生器产生随机数杠∈[1,饣-1];

A2:计RA=ErA彐

算椭圆曲线点G=(=l,丿

l);

A3:将RA发送给用户B;

用户B:

B1:用随机数发生器产生随机数Pˉ:∈E1,″-1];

B2:计R:=Er:彐

算椭圆曲线点G=(r2,丿

2);

B3:从R:中取出域元素J2,按GM/T0003,1—⒛124,2.8给出的方法将J2的数据类型转换为整

,计Ξ+(J2&(2v-1焉

数算2=2臼;

B4:计r:=(d:+ΞPI3)mod″

算2·;

B5:验证RΛ是否满足椭圆曲线方程,若不满足则协商失败;否则从RA中取出域元素rl,按

GM/T0003,1—~90124.2.8给出的方法将J1的型,计Ξ+(Jl&(2v-1));

数据类转换为整数算1=2贽

B6:计y=E凡.r:](PA+匚

算椭圆曲线点Ξ)=(Jv,为),若V是B协

1]RΛ无穷远点,则商失败;否则

按GM/T0003,1—⒛124.2,6和4.2.5给出的方法将rv、的数据类型转换为比

为特串;

B7:计算K:=KDF(Jv‖zA||Z:,乃Z纟饣);

为‖

B8:(选)按GM/T0003.1-20124.2.6和4.2.5给RA的yl和

项出的方法将坐标J1、R:的坐标

r2、y2的数据类型转换为比特串,计算S:=H曰s九(0x02‖Ff夕s九(Jv‖zA||民J1‖yl‖J2‖

为‖‖

2));

丿

B9:将R:、(选项S:)发送给用户A;

用户A:

A4:从RA中取出元r”GM/T0003.1—20124.2,8给Jl的

域素按出的方法将数据类型转换为整

Ξ1));

,计+(r1&(2v—

数算l=2肥

A5:计莎)mod″

算A=(dA+Ⅰl·气;

A6:验证R:是否满足椭圆曲线方程,若不满足则协商失败;否则从R:中取出域元素r2,按

GM/TO003.1—⒛124.2,8给

定制服务