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

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

标准号码价格美元第2步(购买)交付天数标准名称
GB/T 32918.4-2016 145 GB/T 32918.4-2016 3秒自动 信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法
   
基本信息
标准编号 GB/T 32918.4-2016 (GB/T32918.4-2016)
中文名称 信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法
英文名称 Information security technology - Public key cryptographic algorithm SM2 based on elliptic curves - Part 4: Public key encryption algorithm
行业 国家标准 (推荐)
中标分类 L80
字数估计 16,137
发布日期 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.4-2016 Information security technology--Public key cryptographic algorithm SM2 based on elliptic curves--Part 4: Public key encryption algorithm ICS 35.040 L80 中华人民共和国国家标准 信息安全技术 SM2椭圆曲线公钥密 码算法 第4部分:公钥加密算法 2016-08-29发布 2017-03-01实施 中华人民共和国国家质量监督检验检疫总局 中国国家标准化管理委员会发布 目次 前言 Ⅲ 引言 Ⅳ 1 范围 1 2 规范性引用文件 1 3 术语和定义 1 4 符号缩略语 1 5 算法参数与辅助函数 2 5.1 综述 2 5.2 椭圆曲线系统参数 2 5.3 用户密钥对 2 5.4 辅助函数 2 5.4.1 概述 2 5.4.2 密码杂凑算法 2 5.4.3 密钥派生函数 2 5.4.4 随机数发生器 3 6 加密算法及流程 3 6.1 加密算法 3 6.2 加密算法流程 3 7 解密算法及流程 4 7.1 解密算法 4 7.2 解密算法流程 5 附录A(资料性附录) 消息加解密示例 7 A.1 综述 7 A.2 Fp上椭圆曲线消息加解密 7 A.3 F2m上椭圆曲线消息加解密 9 参考文献 12 前言 GB/T 32918《信息安全技术 SM2椭圆曲线公钥密码算法》分为5个部分: ---第1部分:总则; ---第2部分:数字签名算法; ---第3部分:密钥交换协议; ---第4部分:公钥加密算法; ---第5部分:参数定义。 本部分为GB/T 32918的第4部分。 本部分按照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的第4部分,规定了SM2椭圆曲线密码系统的加密解密过程。 信息安全技术 SM2椭圆曲线公钥密 码算法 第4部分:公钥加密算法 1 范围 GB/T 32918的本部分规定了SM2椭圆曲线公钥密码算法的公钥加密算法,并给出了消息加解密 示例和相应的流程。 本部分适用于商用密码应用中的消息加解密,消息发送者可以利用接收者的公钥对消息进行加密, 接收者用对应的私钥进行解密,获取消息。 2 规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文 件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 GB/T 32918.1-2016 信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则 GB/T 32905-2016 信息安全技术 SM3密码杂凑算法 3 术语和定义 下列术语和定义适用于本文件。 3.1 秘密密钥 secretkey 在密码体制中收发双方共同拥有的、而第三方不知道的一种密钥。 3.2 消息 message 任意有限长度的比特串。 3.3 通过作用于共享秘密和双方都知道的其他参数,产生一个或多个共享秘密密钥的函数。 4 符号缩略语 下列符号和缩略语适用于本文件。 A,B 使用公钥密码系统的两个用户。 dB 用户B的私钥。 E(Fq) Fq上椭圆曲线E 的所有有理点(包括无穷远点O)组成的集合。 Fq 包含q个元素的有限域。 G 椭圆曲线的一个基点,其阶为素数。 Hash() 密码杂凑算法。 Hv() 消息摘要长度为v比特的密码杂凑算法。 KDF() 密钥派生函数。 h 余因子,h=#E(Fq)/n,其中n是基点G 的阶。 M 待加密的消息。 M' 解密得到的消息。 n 基点G 的阶(n是#E(Fq)的素因子)。 O 椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。 PB 用户B的公钥。 q 有限域Fq中元素的数目。 a,b Fq中的元素,它们定义Fq上的一条椭圆曲线E。 x|y x与y的拼接,x、y是比特串或字节串。 [k]P 椭圆曲线上点P 的k倍点,即,[k]P=P+P++P ,k是正整数。 [x,y] 大于或等于x且小于或等于y的整数的集合。 x 顶函数,大于或等于x的最小整数。例如,7=7,8.3=9。 y 底函数,小于或等于x的最大整数。例如,7=7,8.3=8。 #E(Fq) E(Fq)上点的数目,称为椭圆曲线E(Fq)的阶。 5 算法参数与辅助函数 5.1 综述 公钥加密算法规定发送者用接收者的公钥将消息加密成密文,接收者用自己的私钥对收到的密文 进行解密还原成原始消息。 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 用户密钥对 用户B的密钥对包括其私钥dB和公钥PB=[dB]G。 用户密钥对的生成算法与公钥验证算法应符合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 =Haklen/v, 否则令Ha klen/v 为Haklen/v 最左边的(klen-(v× klen/v)比特; d) 令K=Ha1|Ha2||Haklen/v-1|Ha klen/v 。 5.4.4 随机数发生器 本部分规定使用国家密码管理局批准的随机数发生器。 6 加密算法及流程 6.1 加密算法 设需要发送的消息为比特串M,klen为M 的比特长度。 为了对明文M 进行加密,作为加密者的用户A应实现以下运算步骤: A1:用随机数发生器产生随机数k∈[1,n-1]; A2:计算椭圆曲线点C1=[k]G=(x1,y1),按GB/T 32918.1-2016中4.2.9和4.2.5给出的方 法,将C1的数据类型转换为比特串; A3:计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错并退出; A4:计算椭圆曲线点[k]PB=(x2,y2),按GB/T 32918.1-2016中4.2.6和4.2.5给出的方法,将 坐标x2、y2的数据类型转换为比特串; A5:计算t=KDF(x2|y2,klen),若t为全0比特串,则返回A1; A6:计算C2=M⊕t; A7:计算C3=Hash (x2|M|y2); A8:输出密文C=C1|C3|C2。 注:加密过程的示例参见附录A。 6.2 加密算法流程 加密算法流程见图1。 图1 加密算法流程 7 解密算法及流程 7.1 解密算法 设klen为密文中C2的比特长度。 为了对密文C=C1|C3|C2进行解密,作为解密者的用户B应实现以下运算步骤: B1:从C 中取出比特串C1,按GB/T 32918.1-2016中4.2.4和4.2.10给出的方法,将C1的数据类 型转换为椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出; B2:计算椭圆曲线点S= [h]C1,若S是无穷远点,则报错并退出; B3:计算[dB]C1=(x2,y2),按GB/T 32918.1-2016中4.2.6和4.2.5给出的方法,将坐标x2、y2 的数据类型转换为比特串; B4:计算t=KDF(x2|y2,klen),若t为全0比特串,则报错并退出; B5:从C 中取出比特串C2,计算M=C2⊕t; B6:计算u=Hash(x2|M'|y2),从C 中取出比特串C3,若u≠C3,则报错并退出; B7:输出明文M'。 注:解密过程的示例参见附录A。 7.2 解密算法流程 解密算法流程见图2。 图2 解密算法流程 附 录 A (资料性附录) 消息加解密示例 A.1 综述 本附录选用GB/T 32905-2016给出的密码杂凑算法,其输入是长度小于264的消息比特串,输出 是长度为256比特的杂凑值,记为H256()。 本附录中,所有用16进制表示的数,左边为高位,右边为低位。 本附录中,明文采用GB/T 1988编码。 A.2 Fp 上椭圆曲线消息加解密 椭圆曲线方程为:y2=x3+ax+b 示例1:Fp-192 素数p:BDB6F4FE 3E8B1D9E 0DA8C0D4 6F4C318C EFE4AFE3 B6B8551F 系数a:BB8E5E8F BC115E13 9FE6A814 FE48AAA6 F0ADA1AA 5DF91985 系数b:1854BEBD C31B21B7 AEFC80AB 0ECD10D5 B1B3308E 6DBF11C1 基点G=(xG, yG),其阶记为n。 坐标xG:4AD5F704 8DE709AD 51236DE6 5E4D4B48 2C836DC6 E4106640 坐标yG:02BB3A02 D4AAADAC AE24817A 4CA3A1B0 14B52704 32DB27D2 阶n:BDB6F4FE 3E8B1D9E 0DA8C0D4 0FC96219 5DFAE76F 56564677 待加密的消息M:encryption standard 消息M 的16进制表示:656E63 72797074 696F6E20 7374616E 64617264 私钥dB:58892B80 7074F53F BF67288A 1DFAA1AC 313455FE 60355AFD 公钥PB=(xB,yB)为: 坐标xB:79F0A954 7AC6D100 531508B3 0D30A565 36BCFC81 49F4AF4A 坐标yB:AE38F2D8 890838DF 9C19935A 65A8BCC8 994BC792 4672F912 加密各步骤中的有关值: 产生随机数k:384F3035 3073AEEC E7A16543 30A96204 D37982A3 E15B2CB5 计算椭圆曲线点C1=[k]G=(x1, y1): 坐标x1:23FC680B 124294DF DF34DBE7 6E0C38D8 83DE4D41 FA0D4CF5 坐标y1:70CF14F2 0DAF0C4D 777F738D 16B16824 D31EEFB9 DE31EE1F 在此C1选用未压缩的表示形式,点转换成字节串的形式为PC|x1|y1,其中PC 为单一字节且PC=04,仍记为C1。 计算椭圆曲线点[k]PB=(x2,y2): 坐标x2:57E7B636 23FAE5F0 8CDA468E 872A20AF A03DED41 BF140377 坐标y2:0E040DC8 3AF31A67 991F2B01 EBF9EFD8 881F0A04 93000603 消息M 的比特长度klen=152 计算t=KDF(x2|y2,klen):046B04 A9ADF53B 389B9E2A AFB47D90 F4D08978 计算C2=M⊕t:610567 DBD4854F 51F4F00A DCC01CFE 90B1FB1C 计算C3=Hash(x2|M|y2): x2|M|y2: 57E7B636 23FAE5F0 8CDA468E 872A20AF A03DED41 BF140377 656E6372 79707469 6F6E2073 74616E64 6172640E 040DC83A F31A6799 1F2B01EB F9EFD888 1F0A0493 000603 C3:6AFB3BCE BD76F82B 252CE5EB 25B57996 86902B8C F2FD8753 6E55EF76 03B09E7C 输出密文M=C1|C3|C2: 04 23FC680B 124294DF DF34DBE7 6E0C38D8 83DE4D41 FA0D4CF5 70CF14F2 0DAF0C4D 777F738D 16B16824 D31EEFB9 DE31EE1F 6AFB3BCE BD76F82B 252CE5EB 25B57996 86902B8C F2FD8753 6E55EF76 03B09E7C 610567DB D4854F51 F4F00ADC C01CFE90 B1FB1C 解密各步骤中的有关值: 计算椭圆曲线点[dB]C1=(x2,y2): 坐标x2:57E7B636 23FAE5F0 8CDA468E 872A20AF A03DED41 BF140377 坐标y2:0E040DC8 3AF31A67 991F2B01 EBF9EFD8 881F0A04 93000603 计算t=KDF(x2|y2,klen):046B04 A9ADF53B 389B9E2A AFB47D90 F4D08978 计算M'=C2⊕t:656E63 72797074 696F6E20 7374616E 64617264 计算u=Hash(x2|M'|y2): 6AFB3BCE BD76F82B 252CE5EB 25B57996 86902B8C F2FD8753 6E55EF76 03B09E7C 明文M': 656E63 72797074 696F6E20 7374616E 64617264,即为:encryption standard 示例2: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 基点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 待加密的消息M:encryption standard 消息M 的16进制表示:656E63 72797074 696F6E20 7374616E 64617264 私钥dB:1649AB77 A00637BD 5E2EFE28 3FBF3535 34AA7F7C B89463F2 08DDBC29 20BB0DA0 公钥PB=(xB,yB): 坐标xB:435B39CC A8F3B508 C1488AFC 67BE491A 0F7BA07E 581A0E48 49A5CF70 628A7E0A 坐标yB:75DDBA78 F15FEECB 4C7895E2 C1CDF5FE 01DEBB2C DBADF453 99CCF77B BA076A42 加密各步骤中的有关值: 产生随机数k:4C62EEFD 6ECFC2B9 5B92FD6C 3D957514 8AFA1742 5546D490 18E5388D 49DD7B4F 计算椭圆曲线点C1=[k]G=(x1,y1): 坐标x1:245C26FB 68B1DDDD B12C4B6B F9F2B6D5 FE60A383 B0D18D1C 4144ABF1 7F6252E7 坐标y1:76CB9264 C2A7E88E 52B19903 FDC47378 F605E368 11F5C074 23A24B84 400F01B8 在此C1选用未压缩的表示形式,点转换成字节串的形式为PC|x1|y1,其中PC 为单一字节且PC=04,仍记为C1。 计算椭圆曲线点[k]PB=(x2,y2): 坐标x2:64D20D27 D0632957 F8028C1E 024F6B02 EDF23102 A566C932 AE8BD613 A8E865FE 坐标y2:58D225EC A784AE30 0A81A2D4 8281A828 E1CEDF11 C4219099 84026537 5077BF78 消息M 的比特长度klen=152 计算t=KDF(x2|y2,klen):006E30 DAE231B0 71DFAD8A A379E902 64491603 计算C2=M⊕t:650053 A89B41C4 18B0C3AA D00D886C 00286467 计算C3=Hash(x2|M|y2): x2|M|y2: 64D20D27 D0632957 F8028C1E 024F6B02 EDF23102 A566C932 AE8BD613 A8E865FE 656E6372 797074696 F6E2073 74616E64 61726458 D225ECA7 84AE300A 81A2D482 81A828E1 CEDF11C4 21909984 02653750 77BF78 C3:9C3D7360 C30156FA B7C80A02 76712DA9 D8094A63 4B766D3A 285E0748 0653426D 输出密文C=C1|C3|C2: 04 245C26FB 68B1DDDD B12C4B6B F9F2B6D5 FE60A383 B0D18D1C 4144ABF1 7F6252E7 76CB9264 C2A7E88E 52B19903 FDC47378 F605E368 11F5C074 23A24B84 400F01B8 9C3D7360 C30156FA B7C80A02 76712DA9 D8094A63 4B766D3A 285E0748 0653426D 650053A8 9B41C418 B0C3AAD0 0D886C00 286467 解密各步骤中的有关值: 计算椭圆曲线点[dB]C1=(x2,y2): 坐标x2:64D20D27 D0632957 F8028C1E 024F6B02 EDF23102 A566C932 AE8BD613 A8E865FE 坐标x2:58D225EC A784AE30 0A81A2D4 8281A828 E1CEDF11 C4219099 84026537 5077BF78 计算t=KDF(x2|y2,klen):006E30 DAE231B0 71DFAD8A A379E902 64491603 计算M'=C2⊕t:656E63 72797074 696F6E20 7374616E 64617264 计算u=Hash(x2|M'|y2): 9C3D7360 C30156FA B7C80A02 76712DA9 D8094A63 4B766D3A 285E0748 0653426D 明文M': 656E63 72797074 696F6E20 7374616E 64617264,即为:encryption standard A.3 F2m上椭圆曲线消息加解密 椭圆曲线方程为:y2+xy=x3+ax2+b 示例3:F2m-193 基域生成多项式为:y193+x15+1 系数a:0 系数b:00 2FE22037 B624DBEB C4C618E1 3FD998B1 A18E1EE0 D05C46FB 基点G=(xG,yG),其阶记为n。 坐标xG:D78D47E8 5C936440 71BC1C21 2CF994E4 D21293AA D8060A84 坐标yG:615B9E98 A31B7B2F DDEEECB7 6B5D8755 86293725 F9D2FC0C 阶n:80000000 00000000 00000000 43E9885C 46BF45D8 C5EBF3A1 待加密的消息M:encryption standard 消息M 的16进制表示:656E63 72797074 696F6E20 7374616E 64617264 私钥dB:6C205C15 89087376 C2FE5FEE E153D4AC 875D643E B8CAF6C5 公钥PB=(xB,yB): 坐标xB:00 E788F191 C5591636 FA992CE6 7CDC8D3B 16E4F4D4 6AF267B8 坐标yB:00 BD6E7E5E 4113D790 20ED5A10 287C14B7 A6767C4D 814ADBFD 加密各步骤中的有关值: 产生随机数k:6E51C537 3D5B4705 DC9B94FA 9BCF30A7 37ED8D69 1E76D9F0 计算椭圆曲线点C1=[k]G=(x1,y1): 坐标x1:00 95A8B866 7ACF097F 65CE96EB FE53422F CF15876D 16446B8A 坐标y1:01 7A1EC7C9 BAB0DE07 0522311E 75CD31C3 C4D74150 E84E0A95 在此C1选用未压缩的表示形式,点转换成字节串的形式为PC|x1|y1,其中PC 为单一字节且PC=04,仍记为C1。 计算椭圆曲线点[k]PB=(x2,y2): 坐标x2:01 C6271B31 F6BE396A 4166C061 6CF4A8AC DA5BEF4D CBF2DD42 坐标y2:01 47AF35DF A1BFE2F1 61521BCF 59BAB835 64868D92 95881735 消息M 的比特长度klen=152 计算t=KDF(x2|y2,klen):BC5F0D 50F2B2BC F2DC3027 0BAA5249 3B8A67A4 计算C2=M⊕t:D9316E 228BC2C8 9BB35E07 78DE3327 5FEB15C0 计算C3=Hash (x2|M|y2): x2|M|y2: 01C6271B 31F6BE39 6A4166C0 616CF4A8 ACDA5BEF 4DCBF2DD 42656E63 72797074 696F6E20 7374616E 64617264 0147AF35 DFA1BFE2 F161521B CF59BAB8 3564868D 92958817 35 C3:F0A41F6F 48AC723C ECFC4B76 7299A5E2 5C064167 9FBD2D4D 20E9FFD5 B9F0DAB8 输出密文C=C1|C3|C2: 04 0095A8B8 667ACF09 7F65CE96 EBFE53422FCF 15876D16 446B 8A017A1E C7C9BAB0 DE070522 311E75CD 31C3C4D7 4150E84E 0A95F0A4 1F6F48AC 723CECFC 4B767299 A5E25C06 41679FBD 2D4D20E9 FFD5B9F0 DAB8D931 6E228BC2 C89BB35E 0778DE33 275FEB15 C0 解密各步骤中的有关值: 计算椭圆曲线点[dB]C1=(x2,y2): 坐标x2:01 C6271B31 F6BE396A 4166C061 6CF4A8AC DA5BEF4D CBF2DD42 坐标y2:01 47AF35DF A1BFE2F1 61521BCF 59BAB835 64868D92 95881735 计算t=KDF(x2|y2,klen):BC5F0D 50F2B2BC F2DC3027 0BAA5249 3B8A67A4 计算M'=C2⊕t:656E63 72797074 696F6E20 7374616E 64617264 计算u=Hash(x2|M'|y2): F0A41F6F 48AC723C ECFC4B76 7299A5E2 5C064167 9FBD2D4D 20E9FFD5 B9F0DAB8 明文M':656E63 72797074 696F6E20 7374616E 64617264,即为:encryption standard 示例4:F2m-257 基域生成多项式为:y257+x12+1 系数a:0 系数b:00 E78BCD09 746C2023 78A7E72B 12BCE002 66B9627E CB0B5A25 367AD1AD 4CC6242B 基点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 待加密的消息M:encryption standard 消息M 的16进制表示:656E63 72797074 696F6E20 7374616E 64617264 私钥dB:56A270D1 7377AA9A 367CFA82 E46FA526 7713A9B9 1101D077 7B07FCE0 18C757EB 公钥PB=(xB,yB): 坐标xB:00 A67941E6 DE8A6180 5F7BCFF0 985BB3BE D986F1C2 97E4D888 0D82B821 C624EE57 坐标yB:01 93ED5A67 07B59087 81B86084 1085F52E EFA7FE32 9A5C8118 43533A87 4D027271 加密各步骤中的有关值: 产生随机数k:6D3B4971 53E3E925 24E5C122 682DBDC8 705062E2 0B917A5F 8FCDB8EE 4C66663D 计算椭圆曲线点C1=[k]G=(x1,y1): 坐标x1:01 9D236DDB 305009AD 52C51BB9 32709BD5 34D476FB B7B0DF95 42A8A4D8 90A3F2E1 坐标y1:00 B23B938D C0A94D1D F8F42CF4 5D2D6601 BF638C3D 7DE75A29 F02AFB7E 45E91771 在此C1选用未压缩的表示形式,点转换成字节串的形式为PC|x1|y1,其中PC 为单一字节且PC=04,仍记为C1。 计算椭圆曲线点[k]PB=(x2,y2): 坐标x2:00 83E628CF 701EE314 1E8873FE 55936ADF 24963F5D C9C64805 66C80F8A 1D8CC51B 坐标y2:01 524C647F 0C0412DE FD468BDA 3AE0E5A8 0FCC8F5C 990FEE11 60292923 2DCD9F36 消息M 的比特长度klen=152 计算t=KDF(x2|y2,klen):983BCF 106AB2DC C92F8AEA C6C60BF2 98BB0117 计算C2=M⊕t:FD55AC 6213C2A8 A040E4CA B5B26A9C FCDA7373 计算C3=Hash(x2|M|y2): x2|M|y2: 0083E628 CF701EE3 141E8873 FE55936A DF24963F 5DC9C648 0566C80F 8A1D8CC5 1B656E63 72797074 696F6......