对公银行账号/支付宝 中国标准英文版 技术翻译  数据库收录: 159759 更新: 2020-12-31  
现货的,9秒内发货  

GB/T 32918.3-2016

标准搜索结果: 'GB/T 32918.3-2016'
标准号码内文价格美元第2步交付天数标准名称状态
GB/T 32918.3-2016 英文版 150 购买 3分钟内自动发货[PDF],有增值税发票。 信息安全技术 SM2椭圆曲线公钥密码算法 第3部分:密钥交换协议 有效

   
基本信息
标准编号 GB/T 32918.3-2016 (GB/T32918.3-2016)
中文名称 信息安全技术 SM2椭圆曲线公钥密码算法 第3部分:密钥交换协议
英文名称 Information security technology. Public key cryptographic algorithm SM2 based on elliptic curves. Part 3: Key exchange protocol
行业 国家标准 (推荐)
中标分类 L80
字数估计 17,180
发布日期 2016-08-29
实施日期 2017-03-01
引用标准 GB/T 32918.1-2016; GB/T 32905-2016
标准依据 National Standard Announcement 2016 No.14
提出机构 国家密码管理局
发布机构 中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会
范围 GB/T 32918的本部分规定了SM2椭圆曲线公钥密码算法的密钥交换协议,并给出了密钥交换与验证示例及其相应的流程。本部分适用于商用密码应用中的密钥交换,可满足通信双方经过两次或可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥(会话密钥)。

GB/T 32918.3-2016
Information security technology.Public key cryptographic algorithm SM2 based on elliptic curves.Part 3: Key exchange protocol
ICS 35.040
L80
中华人民共和国国家标准
信息安全技术 SM2椭圆曲线公钥
密码算法 第3部分:密钥交换协议
2016-08-29发布
2017-03-01实施
中华人民共和国国家质量监督检验检疫总局
中国国家标准化管理委员会发布
目次
前言 Ⅲ
引言 Ⅳ
1 范围 1
2 规范性引用文件 1
3 术语和定义 1
4 符号和缩略语 1
5 算法参数与辅助函数 2
5.1 综述 2
5.2 椭圆曲线系统参数 2
5.3 用户密钥对 3
5.4 辅助函数 3
5.5 用户其他信息 3
6 密钥交换协议及流程 4
6.1 密钥交换协议 4
6.2 密钥交换协议流程 5
附录A(资料性附录) 密钥交换及验证示例 6
A.1 综述 6
A.2 Fp 上椭圆曲线密钥交换协议 6
A.3 F2m上椭圆曲线密钥交换协议 9
参考文献 13
前言
GB/T 32918《信息安全技术 SM2椭圆曲线公钥密码算法》分为5个部分:
---第1部分:总则;
---第2部分:数字签名算法;
---第3部分:密钥交换协议;
---第4部分:公钥加密算法;
---第5部分:参数定义。
本部分为GB/T 32918的第3部分。
本部分按照GB/T 1.1-2009给出的规则起草。
本部分由国家密码管理局提出。
本部分由全国信息安全标准化技术委员会(SAC/TC260)归口。
本部分起草单位:北京华大信安科技有限公司、中国人民解放军信息工程大学、中国科学院数据与
通信保护研究教育中心。
本部分主要起草人:陈建华、祝跃飞、叶顶峰、胡磊、裴定一、彭国华、张亚娟、张振峰。
引 言
N.Koblitz和V.Miler在1985年各自独立地提出将椭圆曲线应用于公钥密码系统。椭圆曲线公
钥密码所基于的曲线性质如下:
---有限域上椭圆曲线在点加运算下构成有限交换群,且其阶与基域规模相近;
---类似于有限域乘法群中的乘幂运算,椭圆曲线多倍点运算构成一个单向函数。
在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。对于一般椭圆
曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对
数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密
码较其他公钥密码所需的密钥规模要小得多。
SM2是国家密码管理局组织制定并提出的椭圆曲线密码算法标准。GB/T 32918的主要目标
如下:
---GB/T 32918.1定义和描述了SM2椭圆曲线密码算法的相关概念及数学基础知识,并概述了
该部分同其他部分的关系。
---GB/T 32918.2描述了一种基于椭圆曲线的签名算法,即SM2签名算法。
---GB/T 32918.3描述了一种基于椭圆曲线的密钥交换协议,即SM2密钥交换协议。
---GB/T 32918.4描述了一种基于椭圆曲线的公钥加密算法,即SM2加密算法,该算法需使用
GB/T 32905-2016定义的SM3密码杂凑算法。
---GB/T 32918.5给出了SM2算法使用的椭圆曲线参数,以及使用椭圆曲线参数进行SM2运算
的示例结果。
本部分为GB/T 32918的第3部分,规定了SM2椭圆曲线密码系统的密钥交换过程。
信息安全技术 SM2椭圆曲线公钥
密码算法 第3部分:密钥交换协议
1 范围
GB/T 32918的本部分规定了SM2椭圆曲线公钥密码算法的密钥交换协议,并给出了密钥交换与
验证示例及其相应的流程。
本部分适用于商用密码应用中的密钥交换,可满足通信双方经过两次或可选三次信息传递过程,计
算获取一个由双方共同决定的共享秘密密钥(会话密钥)。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 32918.1-2016 信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则
GB/T 32905-2016 信息安全技术 SM3密码杂凑算法
3 术语和定义
下列术语和定义适用于本文件。
3.1
从A到B的密钥确认 keyconfirmationfromAtoB
使用户B确信用户A拥有特定秘密密钥的保证。
3.2
密钥派生函数 keyderivationfunction
通过作用于共享秘密和双方都知道的其他参数,产生一个或多个共享秘密密钥的函数。
3.3
发起方 initiator
在一个协议的操作过程中发送首轮交换信息的用户。
3.4
响应方 responder
在一个协议的操作过程中不是发送首轮交换信息的用户。
3.5
可辨别标识 distinguishingidentifier
可以无歧义辨别某一实体身份的信息。
4 符号和缩略语
下列符号适用于本文件
A,B 使用公钥密码系统的两个用户。
dA 用户A的私钥。
dB 用户B的私钥。
E(Fq) Fq 上椭圆曲线E 的所有有理点(包括无穷远点O)组成的集合。
Fq 包含q个元素的有限域。
G 椭圆曲线的一个基点,其阶为素数。
Hash() 密码杂凑算法。
Hv() 消息摘要长度为v比特的密码杂凑算法。
h 余因子,h=#E(Fq)/n,其中n是基点G 的阶。
IDA,IDB 用户A和用户B的可辨别标识。
K,KA,KB 密钥交换协议商定的共享秘密密钥。
KDF() 密钥派生函数。
modn 模n运算。例如,23mod7=2。
n 基点G 的阶(n是#E(Fq)的素因子)。
O 椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
PA 用户A的公钥。
PB 用户B的公钥。
q 有限域Fq 中元素的数目。
a,b Fq 中的元素,它们定义Fq 上的一条椭圆曲线E。
rA 密钥交换中用户A产生的临时密钥值。
rB 密钥交换中用户B产生的临时密钥值。
x‖y x与y的拼接,其中x、y可以是比特串或字节串。
ZA 关于用户A的可辨别标识、部分椭圆曲线系统参数和用户A公钥的杂凑值。
ZB 关于用户B的可辨别标识、部分椭圆曲线系统参数和用户B公钥的杂凑值。
#E(Fq) E(Fq)上点的数目,称为椭圆曲线E(Fq)的阶。
[k]P 椭圆曲线上点P 的k倍点,即,[k]P=P+P++P
,k是正整数。
[x,y] 大于或等于x且小于或等于y的整数的集合。
x 顶函数,大于或等于x的最小整数。例如,7=7,8.3 =9。
⌊x 底函数,小于或等于x的最大整数。例如,⌊7 =7,⌊8.3 =8。
& 两个整数的按比特与运算。
5 算法参数与辅助函数
5.1 综述
密钥交换协议是两个用户A和B通过交互的信息传递,用各自的私钥和对方的公钥来商定一个只
有他们知道的秘密密钥。这个共享的秘密密钥通常用在某个对称密码算法中。该密钥交换协议能够用
于密钥管理和协商。
5.2 椭圆曲线系统参数
椭圆曲线系统参数包括有限域Fq 的规模q(当q=2m 时,还包括元素表示法的标识和约化多项
式);定义椭圆曲线E(Fq)的方程的两个元素a、b∈Fq;E(Fq)上的基点G=(xG,yG)(G≠O),其中
xG 和yG 是Fq 中的两个元素;G 的阶n及其他可选项(如n的余因子h等)。
椭圆曲线系统参数及其验证应符合GB/T 32918.1-2016第5章的规定。
5.3 用户密钥对
用户A的密钥对包括其私钥dA 和公钥PA=[dA]G=(xA,yA),用户B的密钥对包括其私钥dB
和公钥PB=[dB]G=(xB,yB)。
用户密钥对的生成算法与公钥验证算法应符合GB/T 32918.1-2016第6章的规定。
5.4 辅助函数
5.4.1 概述
在本部分规定的椭圆曲线密钥交换协议中,涉及三类辅助函数:密码杂凑算法,密钥派生函数与随
机数发生器。这三类辅助函数的强弱直接影响密钥交换协议的安全性。
5.4.2 密码杂凑算法
本部分规定使用国家密码管理局批准的密码杂凑算法,如SM3密码杂凑算法。
5.4.3 密钥派生函数
密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。在密钥协商过程中,密钥派
生函数作用在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥
数据。
密钥派生函数需要调用密码杂凑算法。
设密码杂凑算法为Hv(),其输出是长度恰为v比特的杂凑值。
密钥派生函数KDF(Z,klen):
输入:比特串Z,整数klen[表示要获得的密钥数据的比特长度,要求该值小于(232-1)v]。
输出:长度为klen的密钥数据比特串K。
a) 初始化一个32比特构成的计数器ct=0x00000001;
b) 对i从1到klen/v 执行:
1) 计算Hai=Hv(Z‖ct);
2)ct++;
c) 若klen/v是整数,令Ha klen/v =Ha klen/v,
否则令Ha klen/v 为Ha klen/v 最左边的(klen-(v×⌊klen/v))比特;
d) 令K=Ha1‖Ha2‖‖Ha klen/v -1‖Ha klen/v 。
5.4.4 随机数发生器
本部分规定使用国家密码管理局批准的随机数发生器。
5.5 用户其他信息
用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个
字节;用户B具有长度为entlenB比特的可辨别标识IDB,记ENTLB是由整数entlenB转换而成的两个
字节。在本部分规定的椭圆曲线密钥交换协议中,参与密钥协商的A、B双方都需要用密码杂凑算法求
得用户A的杂凑值ZA和用户B的杂凑值ZB。按GB/T 32918.1-2016中4.2.5和4.2.6给出的方法,
将椭圆曲线方程参数a、b、G 的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串,ZA=H256
(ENTLA‖IDA‖a‖b‖xG‖yG‖xA‖yA);按GB/T 32918.1-2016中4.2.5和4.2.6给出的方法,
将椭圆曲线方程参数a、b、G 的坐标xG、yG和PB的坐标xB、yB的数据类型转换为比特串,ZB= H256
(ENTLB‖IDB‖a‖b‖xG‖yG‖xB‖yB)。
6 密钥交换协议及流程
6.1 密钥交换协议
设用户A和B协商获得密钥数据的长度为klen比特,用户A为发起方,用户B为响应方。
用户A和B双方为了获得相同的密钥,应实现如下运算步骤:
记w= (log2(n)/2)-1。
用户A:
A1:用随机数发生器产生随机数rA∈[1,n-1];
A2:计算椭圆曲线点RA= [rA]G=(x1,y1);
A3:将RA发送给用户B;
用户B:
B1:用随机数发生器产生随机数rB∈[1,n-1];
B2:计算椭圆曲线点RB= [rB]G=(x2,y2);
B3:从RB中取出域元素x2,按GB/T 32918.1-2016中4.2.8给出的方法将x2的数据类型转换为
整数,计算􀭺x2=2w+(x2&(2w-1));
B4:计算tB=(dB+􀭺x2·rB)modn;
B5:验证RA是否满足椭圆曲线方程,若不满足则协商失败;否则从RA中取出域元素x1,按
GB/T 32918.1-2016中4.2.8给出的方法将x1的数据类型转换为整数,计算􀭺x1=2w+(x1&
(2w-1));
B6:计算椭圆曲线点V=[h·tB](PA+[􀭺x1]RA)=(xV,yV),若V 是无穷远点,则B协商失败;否
则按GB/T 32918.1-2016中4.2.6和4.2.5给出的方法将xV、yV的数据类型转换为比特串;
B7:计算KB=KDF(xV‖yV‖ZA‖ZB,klen);
B8:(选项)按GB/T 32918.1-2016中4.2.6和4.2.5给出的方法将RA的坐标x1、y1和RB的坐标
x2、y2的数据类型转换为比特串,计算SB=Hash(0x02‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖
x2‖y2));
B9:将RB、(选项SB)发送给用户A;
用户A:
A4:从RA中取出域元素x1,按GB/T 32918.1-2016中4.2.8给出的方法将x1的数据类型转换为
整数,计算􀭺x1=2w+(x1&(2w-1));
A5:计算tA=(dA+􀭺x1·rA)modn;
A6:验证RB是否满足椭圆曲线方程,若不满足则协商失败;否则从RB中取出域元素x2,按
GB/T 32918.1-2016中4.2.8给出的方法将x2的数据类型转换为整数,计算􀭺x2=2w+(x2&
(2w-1));
A7:计算椭圆曲线点U=[h·tA](PB+[􀭺x2]RB)=(xU,yU),若U 是无穷远点,则A协商失败;否
则按GB/T 32918.1-2016中4.2.6和4.2.5给出的方法将xU、yU的数据类型转换为比特串;
A8:计算KA=KDF(xU‖yU‖ZA‖ZB,klen);
A9:(选项)按GB/T 32918.1-2016中4.2.6和4.2.5给出的方法将RA的坐标x1、y1和RB的坐标
x2、y2的数据类型转换为比特串,计算S1=Hash(0x02‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖
x2‖y2)),并检验S1=SB是否成立,若等式不成立则从B到A的密钥确认失败;
A10:(选项)计算SA=Hash(0x03‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2)),并将SA发送
给用户B。
用户B:
B10:(选项)计算S2=Hash(0x03‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2)),并检验S2=
SA是否成立,若等式不成立则从A到B的密钥确认失败。
注:如果ZA、ZB不是用户A和B所对应的杂凑值,则自然不能达成一致的共享秘密值。密钥交换协议过程的示例
参见附录A。
6.2 密钥交换协议流程
密钥交换协议流程见图1。
图1 密钥交换协议流程
附 录 A
(资料性附录)
密钥交换及验证示例
A.1 综述
本附录选用GB/T 32905-2016给出的密码杂凑算法,其输入是长度小于264的消息比特串,输出
是长度为256比特的杂凑值,记为H256()。
本附录中,所有用16进制表示的数,左边为高位,右边为低位。
设用户A的身份是:ALICE123@YAHOO.COM。用GB/T 1988编码记IDA:414C 49434531
32334059 41484F4F 2E434F4D。ENTLA=0090。
设用户B的身份是:BILL456@YAHOO.COM。用 GB/T 1988编码记IDB:42 494C4C34
35364059 41484F4F 2E434F4D。ENTLB=0088。
A.2 Fp上椭圆曲线密钥交换协议
椭圆曲线方程为:y2=x3+ax+b
示例1:Fp-256
素数p:8542D69E 4C044F18 E8B92435 BF6FF7DE 45728391 5C45517D 722EDB8B 08F1DFC3
系数a:787968B4 FA32C3FD 2417842E 73BBFEFF 2F3C848B 6831D7E0 EC65228B 3937E498
系数b:63E4C6D3 B23B0C84 9CF84241 484BFE48 F61D59A5 B16BA06E 6E12D1DA 27C5249A
余因子h:1
基点G=(xG,yG),其阶记为n。
坐标xG:421DEBD6 1B62EAB6 746434EB C3CC315E 32220B3B ADD50BDC 4C4E6C14 7FEDD43D
坐标yG:0680512B CBB42C07 D47349D2 153B70C4 E5D7FDFC BFA36EA1 A85841B9 E46E09A2
阶n:8542D69E 4C044F18 E8B92435 BF6FF7DD 29772063 0485628D 5AE74EE7 C32E79B7
用户A的私钥dA:6FCBA2EF 9AE0AB90 2BC3BDE3 FF915D44 BA4CC78F 88E2F8E7 F8996D3B
8CCEEDEE
用户A的公钥PA=(xA,yA):
坐标xA:3099093B F3C137D8 FCBBCDF4 A2AE50F3 B0F216C3 122D7942 5FE03A45 DBFE1655
坐标yA:3DF79E8D AC1CF0EC BAA2F2B4 9D51A4B3 87F2EFAF 48233908 6A27A8E0 5BAED98B
用户B的私钥dB:5E35D7D3 F3C54DBA C72E6181 9E730B01 9A84208C A3A35E4C 2E353DFC
CB2A3B53
用户B的公钥PB=(xB,yB):
坐标xB:245493D4 46C38D8C C0F11837 4690E7DF 633A8A4B FB3329B5 ECE604B2 B4F37F43
坐标yB:53C0869F 4B9E1777 3DE68FEC 45E14904 E0DEA45B F6CECF99 18C85EA0 47C60A4C
杂凑值ZA=H256(ENTLA‖IDA‖a‖b‖xG‖yG‖xA‖yA)。
ZA:E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31
杂凑值ZB=H256(ENTLB‖IDB‖a‖b‖xG‖yG‖xB‖yB)。
ZB:6B4B6D0E 276691BD 4A11BF72 F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67
密钥交换A1~A3 步骤中的有关值:
产生随机数rA:83A2C9C8 B96E5AF7 0BD480B4 72409A9A 327257F1 EBB73F5B 073354B2 48668563
计算椭圆曲线点RA=[rA]G=(x1,y1):
坐标x1:6CB56338 16F4DD56 0B1DEC45 8310CBCC 6856C095 05324A6D 23150C40 8F162BF0
坐标y1:0D6FCF62 F1036C0A 1B6DACCF 57399223 A65F7D7B F2D9637E 5BBBEB85 7961BF1A
密钥交换B1~B9 步骤中的有关值:
产生随机数rB:33FE2194 0342161C 55619C4A 0C060293 D543C80A F19748CE 176D8347 7DE71C80
计算椭圆曲线点RB=[rB]G=(x2,y2):
坐标x2:1799B2A2 C7782953 00D9A232 5C686129 B8F2B533 7B3DCF45 14E8BBC1 9D900EE5
坐标y2:54C9288C 82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7 D8740A91 D0DB3CF4
取􀭺x2=2127+(x2&(2127-1)):B8F2B533 7B3DCF45 14E8BBC1 9D900EE5
计算tB=(dB+􀭺x2·rB) modn:
2B2E11CB F03641FC 3D939262 FC0B652A 70ACAA25 B5369AD3 8B375C02 65490C9F
取􀭺x1=2127+(x1&(2127-1)):E856C095 05324A6D 23150C40 8F162BF0
计算椭圆曲线点[􀭺x1]RA=(xA0,yA0):
坐标xA0:2079015F 1A2A3C13 2B67CA90 75BB2803 1D6F2239 8DD8331E 72529555 204B495B
坐标yA0:6B3FE6FB 0F5D5664 DCA16128 B5E7FCFD AFA5456C 1E5A914D 1300DB61 F37888ED
计算椭圆曲线点PA+[􀭺x1]RA=(xA1,yA1):
坐标xA1:1C006A3B FF97C651 B7F70D0D E0FC09D2 3AA2BE7A 8E9FF7DA F32673B4 16349B92
坐标yA1:5DC74F8A CC114FC6 F1A75CB2 86864F34 7F9B2CF2 9326A270 79B7D37A FC1C145B
计算V=[h·tB](PA+[􀭺x1]RA)=(xV,yV):
坐标xV:47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905
坐标yV:2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295
计算KB=KDF(xV‖yV‖ZA‖ZB,klen):
xV‖yV‖ZA‖ZB:
47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905 2AF86EFE
732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295 E4D1D0C3 CA4C7F11
BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31 6B4B6D0E 276691BD 4A11BF72
F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67
klen=128
共享密钥KB:55B0AC62 A6B927BA 23703832 C853DED4
计算选项SB=Hash(0x02‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xV‖ZA‖ZB‖x1‖y1‖x2‖y2:
47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905 E4D1D0C3
CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31 6B4B6D0E 276691BD
4A11BF72 F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45
8310CBCC 6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF 57399223
A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C7782953 00D9A232 5C686129 B8F2B533
7B3DCF45 14E8BBC1 9D900EE5 54C9288C 82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7
D8740A91 D0DB3CF4
Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2):
FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1 54D1DE43 79D97647
0x02‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2):
02 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295
FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1 54D1DE43 79D97647
选项SB:284C8F19 8F141B50 2E81250F 1581C7E9 EEB4CA69 90F9E02D F388B454 71F5BC5C
密钥交换A4~A10步骤中的有关值:
取􀭺x1=2127+(x1&(2127-1)):E856C095 05324A6D 23150C40 8F162BF0
计算tA=(dA+􀭺x1·rA) modn:236CF0C7 A177C65C 7D55E12D 361F7A6C 174A7869 8AC099C0
874AD065 8A4743DC
取􀭺x2=2127+(x2&(2127-1)):B8F2B533 7B3DCF45 14E8BBC1 9D900EE5
计算椭圆曲线点[􀭺x2]RB=(xB0,yB0):
坐标xB0:66864274 6BFC066A 1E731ECF FF51131B DC81CF60 9701CB8C 657B25BF 55B7015D
坐标yB0:1988A7C6 81CE1B50 9AC69F49 D72AE60E 8B71DB6C E087AF84 99FEEF4C CD523064
计算椭圆曲线点PB+[􀭺x2]RB=(xB1,yB1):
坐标xB1:7D2B4435 10886AD7 CA3911CF 2019EC07 078AFF11 6E0FC409 A9F75A39 01F306CD
坐标yB1:331F0C6C 0FE08D40 5FFEDB30 7BC255D6 8198653B DCA68B9C BA100E73 197E5D24
计算U=[h·tA](PB+[􀭺x2]RB)=(xU,yU):
坐标xU:47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905
坐标yU:2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295
计算KA=KDF(xU‖yU‖ZA‖ZB,klen):
xU‖yU‖ZA‖ZB:
47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905 2AF86EFE
732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295 E4D1D0C3 CA4C7F11
BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31 6B4B6D0E 276691BD 4A11BF72
F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67
klen=128
共享密钥KA:55B0AC62 A6B927BA 23703832 C853DED4
计算选项S1=Hash(0x02‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xU‖ZA‖ZB‖x1‖y1‖x2‖y2:
47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905 E4D1D0C3
CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31 6B4B6D0E 276691BD
4A11BF72 F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45
8310CBCC 6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF 57399223
A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C7782953 00D9A232 5C686129 B8F2B533
7B3DCF45 14E8BBC1 9D900EE5 54C9288C 82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7
D8740A91 D0DB3CF4
Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2):FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944
42916BD1 54D1DE43 79D97647
0x02‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2):
02 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295
FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1 54D1DE43 79D97647
选项S1:284C8F19 8F141B50 2E81250F 1581C7E9 EEB4CA69 90F9E02D F388B454 71F5BC5C
计算选项SA=Hash(0x03‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xU‖ZA‖ZB‖x1‖y1‖x2‖y2:
47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905 E4D1D0C3
CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31 6B4B6D0E 276691BD
4A11BF72 F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45
8310CBCC 6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF 57399223
A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C7782953 00D9A232 5C686129 B8F2B533
7B3DCF45 14E8BBC1 9D900EE5 54C9288C 82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7
D8740A91 D0DB3CF4
Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2):FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1
54D1DE43 79D97647
0x03‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2):
03 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295
FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1 54D1DE43 79D97647
选项SA:23444DAF 8ED75343 66CB901C 84B3BDBB 63504F40 65C1116C 91A4C006 97E6CF7A
密钥交换B10步骤中的有关值:
计算选项S2=Hash(0x03‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xV‖ZA‖ZB‖x1‖y1‖x2‖y2:
47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F5 66E40905 E4D1D0C3
CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A66 8487240F 75E20F31 6B4B6D0E 276691BD
4A11BF72 F4FB501A E309FDAC B72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45
8310CBCC 6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF 57399223
A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C7782953 00D9A232 5C686129 B8F2B533
7B3DCF45 14E8BBC1 9D900EE5 54C9288C 82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7
D8740A91 D0DB3CF4
Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2):FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1
54D1DE43 79D97647
0x03‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2):
03 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866B BB5C6846 A4C4A295
FF49D95B D45FCE99 ED54A8AD 7A709110 9F513944 42916BD1 54D1DE43 79D97647
选项S2:23444DAF 8ED75343 66CB901C 84B3BDBB 63504F40 65C1116C 91A4C006 97E6CF7A
A.3 F2m上椭圆曲线密钥交换协议
椭圆曲线方程为:y2+xy=x3+ax2+b
示例2:F2m-257
基域生成多项式:x257+x12+1
系数a:0
系数b:00 E78BCD09 746C2023 78A7E72B 12BCE002 66B9627E CB0B5A25 367AD1AD 4CC6242B
余因子h:4
基点G=(xG,yG),其阶记为n。
坐标xG:00 CDB9CA7F 1E6B0441 F658343F 4B10297C 0EF9B649 1082400A 62E7A748 5735FADD
坐标yG:01 3DE74DA6 5951C4D7 6DC89220 D5F7777A 611B1C38 BAE260B1 75951DC8 060C2B3E
阶n:7FFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF BC972CF7 E6B6F900 945B3C6A 0CF6161D
用户A的私钥dA:4813903D 254F2C20 A94BC570 42384969 54BB5279 F861952E F2C5298E
84D2CEAA
用户A的公钥PA=(xA,yA):
坐标xA:00 8E3BDB2E 11F91933 88F1F901 CCC857BF 49CFC065 FB38B906 9CAAE6D5 AFC3592F
坐标yA:00 4555122A AC0075F4 2E0A8BBD 2C0665C7 89120DF1 9D77B4E3 EE4712F5 98040415
用户B的私钥dB:08F41BAE 0922F47C 212803FE 681AD52B 9BF28A35 E1CD0EC2 73A2CF81
3E8FD1DC
用户B的公钥PB=(xB,yB):
坐标xB:00 34297DD8 3AB14D5B 393B6712 F32B2F2E 938D4690 B095424B 89DA880C 52D4A7D9
坐标yB:01 99BBF11A C95A0EA3 4BBD00CA 50B93EC2 4ACB6833 5D20BA5D CFE3B33B DBD2B62D
杂凑值ZA=H256(ENTLA‖IDA‖a‖b‖xG‖yG‖xA‖yA)。
ZA:ECF00802 15977B2E 5D6D61B9 8A99442F 03E8803D C39E349F 8DCA5621 A9ACDF2B
杂凑值ZB=H256(ENTLB‖IDB‖a‖b‖xG‖yG‖xB‖yB)。
ZB:557BAD30 E183559A EEC3B225 6E1C7C11 F870D22B 165D015A CF9465B0 9B87B527
密钥交换A1~A3 步骤中的有关值:
产生随机数rA:54A3D667 3FF3A6BD 6B02EBB1 64C2A3AF 6D4A4906 229D9BFC E68CC366
A2E64BA4
计算椭圆曲线点RA=[rA]G=(x1,y1):
坐标x1:01 81076543 ED19058C 38B313D7 39921D46 B80094D9 61A13673 D4A5CF8C 7159E304
坐标y1:01 D8CFFF7C A27A01A2 E88C1867 3748FDE9 A74C1F9B 45646ECA 0997293C 15C34DD8
密钥交换B1~B9 步骤中的有关值:
产生随机数rB:1F219333 87BEF781 D0A8F7FD 708C5AE0 A56EE3F4 23DBC2FE 5BDF6F06
8C53F7AD
计算椭圆曲线点RB=[rB]G=(x2,y2):
坐标x2:00 2A4832B4 DCD399BA AB3FFFE7 DD6CE6ED 68CC43FF A5F2623B 9BD04E46 8D322A2A
坐标y2:00 16599BB5 2ED9EAFA D01CFA45 3CF3052E D60184D2 EECFD42B 52DB7411 0B984C23
取􀭺x2=2127+(x2&(2127-1)):E8CC43FF A5F2623B 9BD04E46 8D322A2A
计算tB=(dB+􀭺x2·rB) modn:3D51D331 14A453A0 5791DB63 5B45F8DB C54686D7 E2212D49
E4A717C6 B10DEDB0
计算h·tB modn:75474CC4 52914E81 5E476D8D 6D17E36F 5882EE67 A1CDBC26 FE4122B0
B741A0A3
取􀭺x1=2127+(x1&(2127-1)):B80094D9 61A13673 D4A5CF8C 7159E304
计算椭圆曲线点[􀭺x1]RA=(xA0,yA0):
坐标xA0:01 98AB5F14 349B6A46 F77FBFCB DDBFCD34 320DC1F4 C546D13C 3A9F0E83 0C39B579
坐标yA0:00 BFB49224 ACCE2E51 04CD4519 C0CBE3AD 0C19BF11 805BE108 59069AA6 9317A2B7
计算椭圆曲线点PA+[􀭺x1]RA=(xA1,yA1):
坐标xA1:00 24A92F64 66A37C5C 12A2C68D 58BFB0F0 32F2B976 60957CB0 5E63F961 F160FE57
坐标yA1:00 F74A4F17 DC560A55 FDE0F1AB 168BCBF7 6502E240 BA2D6BD6 BE6E5D79
16B288FC
计算V=[h·tB](PA+[􀭺x1]RA)=(xV,yV):
坐标xV:00 DADD0874 06221D65 7BC3FA79 FF329BB0 22E9CB7D DFCFCCFE 277BE8CD
4AE9B954
坐标yV:01 F0464B1E 81684E5E D6EF281B 55624EF4 6CAA3B2D 37484372 D91610B6 98252CC9
计算KB=KDF(xV‖yV‖ZA‖ZB,klen):
xV‖yV‖ZA‖ZB:
00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCC FE277BE8 CD4AE9B9 5401F046
4B1E8168 4E5ED6EF 281B5562 4EF46CAA 3B2D3748 4372D916 10B69825 2CC9ECF0 08021597
7B2E5D6D 61B98A99 442F03E8 803DC39E 349F8DCA 5621A9AC DF2B557B AD30E183 559AEEC3
B2256E1C 7C11F870 D22B165D 015ACF94 65B09B87 B527
klen=128
共享密钥KB:4E587E5C 66634F22 D973A7D9 8BF8BE23
计算选项SB=Hash(0x02‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xV‖ZA‖ZB‖x1‖y1‖x2‖y2:
00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCC FE277BE8 CD4AE9B9 54ECF008
0215977B 2E5D6D61 B98A9944 2F03E880 3DC39E34 9F8DCA56 21A9ACDF 2B557BAD 30E18355
9AEEC3B2 256E1C7C 11F870D2 2B165D01 5ACF9465 B09B87B5 27018107 6543ED19 058C38B3
13D73992 1D46B800 94D961A1 3673D4A5 CF8C7159 E30401D8 CFFF7CA2 7A01A2E8 8C186737
48FDE9A7 4C1F9B45 646ECA09 97293C15 C34DD800 2A4832B4 DCD399BA AB3FFFE7 DD6CE6ED
68CC43FF A5F2623B 9BD04E46 8D322A2A 0016599B B52ED9EA FAD01CFA 453CF305 2ED60184
D2EECFD4 2B52DB74 110B984C 23
Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2):
E05FE287 B73B0CE6 639524CD 86694311 562914F4 F6A34241 01D885F8 8B05369C
0x02‖yV‖Hash(xV‖ZA‖ZB‖x1‖y1‖x2‖y2):
02 01F0464B 1E81684E 5ED6EF28 1B55624E F46CAA3B 2D374843 72D91610 B698252C
C9E05FE2 87B73B0C E6639524 CD866943 11562914 F4F6A342 4101D885 F88B0536 9C
选项SB:4EB47D28 AD3906D6 244D01E0 F6AEC73B 0B51DE15 74C13798 184E4833 DBAE295A
密钥交换A4~A10步骤中的有关值:
取􀭺x1=2127+(x1&(2127-1)): B80094D9 61A13673 D4A5CF8C 7159E304
计算tA=(dA+􀭺x1·rA) modn:18A1C649 B94044DF 16DC8634 993F1A4A EE3F6426 DFE14AC1
3644306A A5A94187
计算h·tA modn:62871926 E501137C 5B7218D2 64FC692B B8FD909B 7F852B04 D910C1AA
96A5061C
取􀭺x2=2127+(x2&(2127-1)):E8CC43FF A5F2623B 9BD04E46 8D322A2A
计算椭圆曲线点[􀭺x2]RB=(xB0,yB0):
坐标xB0:01 0AA3BAC9 7786B629 22F93414 57AC64F7 2552AA15 D9321677 A10C7021 33B16735
坐标yB0:00 C10837F4 8F53C46B 714BCFBF AA1AD627 11FCB03C 0C25B366 BF176A2D C7B8E62E
计算椭圆曲线点PB+[􀭺x2]RB=(xB1,yB1):
坐标xB1:00 C7A446E1 98DB4278 60C3BB50 ED2197DE B8161973 9141CA61 03745035 9FAD9A99
坐标yB1:00 602E5A42 17427EAB C5E3917D E81BFFA1 D806591A F949DD7C 97EF90FD
4CF0A42D
计算U=[h·tA](PB+[􀭺x2]RB)=(xU,yU):
坐标xU:00 DADD0874 06221D65 7BC3FA79 FF329BB0 22E9CB7D DFCFCCFE 277BE8CD
4AE9B954
坐标yU:01 F0464B1E 81684E5E D6EF281B 55624EF4 6CAA3B2D 37484372 D91610B6 98252CC9
计算KA=KDF(xU‖yU‖ZA‖ZB,klen):
xU‖yU‖ZA‖ZB:
00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCC FE277BE8 CD4AE9B9 5401F046
4B1E8168 4E5ED6EF 281B5562 4EF46CAA 3B2D3748 4372D916 10B69825 2CC9ECF0 08021597
7B2E5D6D 61B98A99 442F03E8 803DC39E 349F8DCA 5621A9AC DF2B557B AD30E183 559AEEC3
B2256E1C 7C11F870 D22B165D 015ACF94 65B09B87 B527
klen=128
共享密钥KA:4E587E5C 66634F22 D973A7D9 8BF8BE23
计算选项S1=Hash(0x02‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xU‖ZA‖ZB‖x1‖y1‖x2‖y2:
00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCC FE277BE8 CD4AE9B9 54ECF008
0215977B 2E5D6D61 B98A9944 2F03E880 3DC39E34 9F8DCA56 21A9ACDF 2B557BAD 30E18355
9AEEC3B2 256E1C7C 11F870D2 2B165D01 5ACF9465 B09B87B5 27018107 6543ED19 058C38B3
13D73992 1D46B800 94D961A1 3673D4A5 CF8C7159 E30401D8 CFFF7CA2 7A01A2E8 8C186737
48FDE9A7 4C1F9B45 646ECA09 97293C15 C34DD800 2A4832B4 DCD399BA AB3FFFE7 DD6CE6ED
68CC43FF A5F2623B 9BD04E46 8D322A2A 0016599B B52ED9EA FAD01CFA 453CF305 2ED60184
D2EECFD4 2B52DB74 110B984C 23
Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2):
E05FE287 B73B0CE6 639524CD 86694311 562914F4 F6A34241 01D885F8 8B05369C
0x02‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2):
02 01F0464B 1E81684E 5ED6EF28 1B55624E F46CAA3B 2D374843 72D91610 B698252C
C9E05FE2 87B73B0C E6639524 CD866943 11562914 F4F6A342 4101D885 F88B0536 9C
选项S1:4EB47D28 AD3906D6 244D01E0 F6AEC73B 0B51DE15 74C13798 184E4833 DBAE295A
计算选项SA=Hash(0x03‖yU‖Hash(xU‖ZA‖ZB‖x1‖y1‖x2‖y2)):
xU‖ZA‖ZB‖x1‖y1‖x2‖y2:
00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCC FE277BE8 CD4AE9B9 54ECF008
0215977B 2E5D6D61 B......
   
       隐私   ·  优质产品   ·  退款政策   ·  公平交易   ·  关于我们
宁德梧三商贸有限公司 (营业执照期限:2019-2049年. 纳税人识别号:91350900MA32WE2Q2X)
对公账号开户银行:中国建设银行 | 账户名称:宁德梧三商贸有限公司 | 账户号码:35050168730700000955
本公司专职于中国国家标准行业标准英文版