主页 购物车 询价 关于我们
www.GB-GBT.com
收录标准: 222635 (2026-05-28) 搜索

GB/T 32918.3-2016 相关标准英文版PDF, 自动发货

标准号码价格美元第2步(购买)交付天数标准名称
GB/T 32918.3-2016 145 GB/T 32918.3-2016 3秒自动 信息安全技术 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,133
发布日期 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 使用户B确信用户A拥有特定秘密密钥的保证。 3.2 通过作用于共享秘密和双方都知道的其他参数,产生一个或多个共享秘密密钥的函数。 3.3 发起方 initiator 在一个协议的操作过程中发送首轮交换信息的用户。 3.4 响应方 responder 在一个协议的操作过程中不是发送首轮交换信息的用户。 3.5 可以无歧义辨别某一实体身份的信息。 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 1......