SM2椭圆曲线公钥密码算法第5部分参数定义
密码学SM2,SM3,SM4加密标准

课外实践五SM2、SM3及SM4加密标准一、概述1.SM2椭圆曲线公钥密码算法加密标准SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。
SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。
SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
椭圆曲线算法公钥密码所基于的曲线性质:椭圆曲线多倍点运算构成一个单向函数。
在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。
对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。
与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。
因此,在相同安全程度要求下,椭圆曲线密码较其他公钥密码所需的秘钥规模要小得多。
2.SM3哈希算法加密标准SM3是一种密码散列函数标准。
密码散列函数是散列函数的一种。
它被认为是一种单向函数,也就是说极其难以由散列函数输出的结果,回推输入的数据是什么。
这种散列函数的输入数据,通常被称为消息,而它的输出结果,经常被称为消息摘要。
SM3适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如MD5输出128比特杂凑值,输出长度太短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于MD5算法和SHA-1算法。
一个理想的密码散列函数应该有这些特性:对于任何一个给定的消息,它都很容易就能运算出散列数值;难以由一个已知的散列数值,去推算出原始的消息;在不更动散列数值的前提下,修改消息内容是不可行的;对于两个不同的消息,它不能给与相同的散列数值。
信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法

算法参数与辅助函数 综述
1
公钥加密算法规定发送者用接收者的公钥将消息加密成密文, 接收者用自已的私钥对收到的密文进 行解密还原成原始消息。 3.2 椭圆曲线系统参数 椭圆曲线系统参数包括有限域 Fq 的规模 q(当 q = 2m 时,还包括元素表示法的标识和约化多项式); 定义椭圆曲线 E(Fq)的方程的两个元素 a、b ∈Fq;E(Fq)上的基点 G = (xG, yG) (G ≠ O),其中 xG 和 yG 是 Fq 中的两个元素;G 的阶 n 及其它可选项(如 n 的余因子 h 等)。 椭圆曲线系统参数及其验证应符合 SM2 椭圆曲线公钥密码算法第 1 部分第 4 章的规定。 3.3 用户密钥对 用户 B 的密钥对包括其私钥 dB 和公钥 PB=[dB]G。 用户密钥对的生成算法与公钥验证算法应符合 SM2 椭圆曲线公钥密码算法第 1 部分第 5 章的规定。 3.4 辅助函数 3.4.1 概述 本部分规定的椭圆曲线公钥加密算法涉及到三类辅助函数: 密码杂凑算法、 密钥派生函数和随机数 发生器。这三类辅助函数的强弱直接影响加密算法的安全性。 3.4.2 3.4.3 密码杂凑算法 密钥派生函数 本部分规定使用国家密码管理局批准的密码杂凑算法,如 SM3 密码杂凑算法。 密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。 在密钥协商过程中, 密钥派生 函数作用在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数 据。 密钥派生函数需要调用密码杂凑算法。 设密码杂凑算法为 Hv( ),其输出是长度恰为 v 比特的杂凑值。 密钥派生函数 KDF(Z, klen): 输入:比特串 Z,整数 klen(表示要获得的密钥数据的比特长度,要求该值小于(232-1)v)。 输出:长度为 klen 的密钥数据比特串 K。 a)初始化一个 32 比特构成的计数器 ct=0x00000001; b)对 i 从 1 到 ⎡klen / v ⎤ 执行: b.1)计算 Hai=Hv (Z || ct); b.2) ct++; c)若 klen/v 是整数,令 Ha!⎡klen / v ⎤ = Ha ⎡klen / v ⎤ , 否则令 Ha!⎡klen / v ⎤ 为 Ha ⎡klen / v ⎤ 最左边的 (klen d)令 K = Ha1 || Ha2 || ! || Ha ⎡klen / v ⎤−1 || Ha!⎡klen / v ⎤ 。 3.4.4 随机数发生器 本部分规定使用国家密码管理局批准的随机数发生器。 4 加密算法及流程
国产商用密码算法及其相关标准介绍

标准咨询国产商用密码算法及其相关标准介绍谢宗晓(中国金融认证中心)董坤祥(山东财经大学管理科学与工程学院)甄杰(重庆工商大学管理科学与工程学院)1 概述《中华人民共和国密码法》第六条中规定:密码分为核心密码、普通密码和商用密码。
同时,在第七条和第八条中规定:核心密码、普通密码属于国家秘密,商用密码用于保护不属于国家秘密的信息。
因此,在常见应用中,商用密码得到了大面积的推广,以至于,在实践中,提到“国密”,经常就被默认为国产商用密码算法。
在现代密码系统中,密码算法、密码协议和密钥管理是三个不可或缺的部分,而在这三者之中,最为核心的毫无疑问就是密码算法。
虽然实践证明,绝大部分的安全漏洞都产生于实现和部署过程中,但是,算法的安全与否,直接决定了一个密码系统的基础是否安全。
例如,选用SHA-1、MD4、MD5、RC4和密钥长度小于2048位的RSA 等不安全的算法,不可能实现安全的密码系统。
已经发布的国产商用密码算法,按照类别可以分为:1)对称密码算法,主要包括ZUC 和SM4;2)非对称密码算法,主要包括SM2和SM9;3)密码杂凑算法,主要包括SM3。
2 对称密码算法对称密码(symmetric cryptography)是用相同的密钥(或方法)进行加密解密,这在逻辑上非常清晰,也最直观,有时候也被称之为共享密钥密码,对称密码算法的基本过程如图1所示。
1) 注意,RC4算法已经证明不安全。
图1 对称密码的工作过程已经发布国产商用密码算法中属于对称密码算法的有ZUC 和SM4。
ZUC(祖冲之密码算法)属于序列密码,也称为“流密码”,与之类似的国外密码算法如RC41)。
ZUC 对应的国家标准、行业标准,如表1所示。
SM4属于分组密码,也称为“块密码”,与之类似的国外密码算法如DES(数据加密标准),TDEA/3DES(三重数据加密标准)以及AES(高级加密标准)等。
SM4对应的国家标准、行业标准,如表2所示。
密码学SM2,SM3,SM4加密标准

课外实践五SM2、SM3及SM4加密标准一、概述1.SM2椭圆曲线公钥密码算法加密标准SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH 等国际标准,而是采取了更为安全的机制.SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。
SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
椭圆曲线算法公钥密码所基于的曲线性质:椭圆曲线多倍点运算构成一个单向函数.在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。
对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。
与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。
因此,在相同安全程度要求下,椭圆曲线密码较其他公钥密码所需的秘钥规模要小得多。
2.SM3哈希算法加密标准SM3是一种密码散列函数标准.密码散列函数是散列函数的一种。
它被认为是一种单向函数,也就是说极其难以由散列函数输出的结果,回推输入的数据是什么。
这种散列函数的输入数据,通常被称为消息,而它的输出结果,经常被称为消息摘要。
SM3适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如MD5输出128比特杂凑值,输出长度太短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于MD5算法和SHA—1算法。
一个理想的密码散列函数应该有这些特性:对于任何一个给定的消息,它都很容易就能运算出散列数值;难以由一个已知的散列数值,去推算出原始的消息;在不更动散列数值的前提下,修改消息内容是不可行的;对于两个不同的消息,它不能给与相同的散列数值。
信息安全技术SM2椭圆曲线公钥密码算法

信息安全技术SM2椭圆曲线公钥密码算法1 范围GB/T XXXXX 的本部分规定了SM2椭圆曲线公钥密码算法涉及的必要数学基础知识与相关密码技术,以帮助实现其它各部分所规定的密码机制。
本部分适用于基域为素域和二元扩域的椭圆曲线公钥密码算法的设计、开发、使用。
2 符号和缩略语B MOV 阈。
正数B ,使得求取B q F 上的离散对数至少与求取q F 上的椭圆曲线离散对数一样困难。
deg ( f ) 多项式f (x )的次数。
E 有限域上由a 和b 定义的一条椭圆曲线。
E (F q ) q F 上椭圆曲线E 的所有有理点(包括无穷远点O )组成的集合。
ECDLP 椭圆曲线离散对数问题。
F p 包含p 个元素的素域。
F q 包含q 个元素的有限域。
F q * 由F q 中所有非零元构成的乘法群。
m 2F 包含m 2个元素的二元扩域。
G 椭圆曲线的一个基点,其阶为素数。
gcd(x , y ) x 和y 的最大公因子。
h 余因子,h=#E (F q )/n ,其中n 是基点G 的阶。
LeftRotate ( ) 循环左移运算。
l max 余因子h 的最大素因子的上界。
m 二元扩域F 2m 关于F 2的扩张次数。
mod f (x ) 模多项式f (x )的运算。
若f (x )是二元域上的多项式,则所有系数执行模2运算。
mod n 模n 运算。
例如,23 mod 7=2。
n 基点G 的阶(n 是#E (F q )的素因子)。
O 椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
P P = (x P , y P ) 是椭圆曲线上除O 之外的一个点,其坐标x P ,y P 满足椭圆曲线方程。
P 1+P 2 椭圆曲线E 上两个点P 1与P 2的和。
p 大于3的素数。
q 有限域F q 中元素的数目。
a, b q F 中的元素,它们定义q F 上的一条椭圆曲线E 。
r min 基点G 的阶n 的下界。
SM2椭圆曲线参数选取

关于SM2椭圆曲线参数选取的资料一.安全的椭圆曲线的选取1.椭圆曲线上的公钥密码体制的安全性是建立在椭圆曲线离散对数的基础上, 但并不是所有椭圆曲线都可以应用到公钥密码体制中, 为了保证其安全性, 必须选取安全椭圆曲线,即只有选到合适的有限域GF(p)和椭圆曲线(ECC),能够抵抗攻击ECDLP算法的攻击,才能保证所选ECC的安全性。
若某椭圆曲线存在优于n1/2级(n是基点阶次)计算复杂度的攻击方法,则称此曲线为弱椭圆曲线。
Fp上的超奇异椭圆曲线(有限域Fp的特征整除q+1-#E(Fp))和Fp上的异常曲线(#E(Fp)=p)都是弱椭圆曲线。
(国密局文档p4,p25A.4抗攻击椭圆曲线满足的条件)。
下面是选取曲线时应遵循的原则:(一种椭圆曲线参数生成的快速算法)(1)为了抗击Pollard-ρ攻击,所选取椭圆曲线的阶#E(GF(p))的分解式中应该包含一个大的素数因子,目前应不小于160bit;(2)为了抗击Weil对和Tate对的攻击,对于1≤k≤30,n不能除p k-1(不宜选取超奇异椭圆曲线);(3)为了抗击Semaev-Smart-Satoh-Araki的攻击所选曲线的阶不能等于该曲线所定义的有限域的阶,即#E(F P)≠p(不宜选取异常椭圆曲线);(4)对于二进制域GF(2m)的度m不宜为合数。
Gaudry,Hess和Smart提出,若m有小约数l(l=4),存在比Pollard's rho算法更快求解ECDLP的方法。
(5)选择GF(p)的子域H,满足它的阶|H| 是#E 的最大素因子n,并在H 上实现ECC。
2.一般来说有4 种寻找安全椭圆曲线的方法:(椭圆曲线密码体制及其参数生成的研究.2006.DR)(1) 有限域GF( p) 上随机生成一椭圆曲线, 直接计算其阶, 判断阶是否为大素数或含大素数因子, 若是即确定,否则继续选取曲线, 直至符合条件。
(2) 取具有一定特殊性椭圆曲线的系数, 计算该椭圆曲线的阶, 对该阶进行判断, 直至找到所需要的安全曲线。
SM2椭圆曲线公钥密码算法第5部分参数定义

SM2椭圆曲线公钥密码算法第5部分参数定义SM2椭圆曲线公钥密码算法第5部分:参数定义Public key cryptographic algorithm SM2 based on elliptic curves--Part 5: Parameter definitions目次1 符号缩略语 (1)2 参数定义 (1)附录 A 数字签名与验证示例 (2)A.1 综述 (2)A.2SM2椭圆曲线数字签名 (2)附录 B 密钥交换及验证示例 (4)B.1 一般要求 (4)B.2SM2椭圆曲线密钥交换协议 (4)附录 C 消息加解密示例 (8)C.1 一般要求 (8)C.2SM2椭圆曲线消息加解密 (8)SM2椭圆曲线公钥密码算法第5部分:参数定义1 符号缩略语p大于3的素数。
a, b F q中的元素,它们定义F q上的一条椭圆曲线E。
n基点G的阶(n是#E(F q)的素因子)。
x G 生成元的x坐标y G 生成元的y坐标2 参数定义SM2使用素数域256位椭圆曲线。
椭圆曲线方程:y2 = x3 + ax + b曲线参数:p = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFFa = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFCb = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123 x G= 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7 y G= BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0附录 A数字签名与验证示例A.1 综述本附录选用《SM3密码杂凑算法》给出的密码杂凑算法,其输入是长度小于264的消息比特串,输出是长度为256比特的杂凑值,记为H256( )。
中华人民共和国行业标准备案公告2012年第8号(总第152号)--依法备案行业标准112项的公告

文章属性
【制定机关】国家标准化管理委员会
【公布日期】2012.08.21
【文 号】中华人民共和国行业标准备案公告2012年第8号[总第152号]
【施行日期】2012.03.21
【效力等级】部门规范性文件
【时效性】现行有效
2012-05-24
2012-11-01
工业和信息化部
21
36842-2012
WJ 9075.3-2012
民用爆破器材企业安全检查方法 检查表法 第3部分:工业炸药及其制品生产线
2012-05-24
2012-11-01
工业和信息化部
22
36843-2012
WJ 9075.4-2012
民用爆破器材企业安全检查方法 检查表法 第4部分:工业雷管生产线
2012-11-01
工业和信息化部
58
36879-2012
HG 30008-2012
β-型酞菁蓝(C.I.颜料蓝15:3)生产安全技术规范
HG A084-1983
2012-05-24
2012-11-01
工业和信息化部
59
36880-2012
HG 30009-2012
分散蓝2BLN(C.I.分散蓝56)生产安全技术规范
36833-2012
GM/T 0002012-03-21
国家密码管理局
13
36834-2012
WJ/T 9069-2012
工业炸药药卷自动包装机技术条件
2012-05-24
2012-11-01
工业和信息化部
14
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SM2椭圆曲线公钥密码算法第5部分:参数定义Public key cryptographic algorithm SM2 based on elliptic curves--Part 5: Parameter definitions目次1 符号缩略语 (1)2 参数定义 (1)附 录 A 数字签名与验证示例 (2)A.1 综述 (2)A.2SM2椭圆曲线数字签名 (2)附 录 B 密钥交换及验证示例 (4)B.1 一般要求 (4)B.2SM2椭圆曲线密钥交换协议 (4)附 录 C 消息加解密示例 (8)C.1 一般要求 (8)C.2SM2椭圆曲线消息加解密 (8)SM2椭圆曲线公钥密码算法第5部分:参数定义1 符号缩略语p大于3的素数。
a, b F q中的元素,它们定义F q上的一条椭圆曲线E。
n基点G的阶(n是#E(F q)的素因子)。
x G 生成元的x坐标y G 生成元的y坐标2 参数定义SM2使用素数域256位椭圆曲线。
椭圆曲线方程:y2 = x3 + ax + b曲线参数:p = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFFa = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFCb = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123 x G= 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7 y G= BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0附 录 A数字签名与验证示例A.1 综述本附录选用《SM3密码杂凑算法》给出的密码杂凑算法,其输入是长度小于264的消息比特串,输出是长度为256比特的杂凑值,记为H256( )。
本附录使用SM2椭圆曲线公钥密码算法第2部分规定的数字签名算法计算得到各步骤中的相应数值。
本附录中,所有用16进制表示的数,左边为高位,右边为低位。
本附录中,消息采用GB/T1988编码。
设ID A的GB/T1988为: 31323334 35363738 31323334 35363738。
ENTL A=0080。
A.2 SM2椭圆曲线数字签名椭圆曲线方程为:y2 = x3 + ax + b示例1:F p-256素数p:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF系数a:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC系数b:28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93基点G =(x G , y G),其阶记为n。
坐标x G:32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7坐标y G:BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0阶n:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123待签名的消息M:message digestM的GB/T1988编码的16进制表示:6D65737361676520646967657374私钥d A:3945208F 7B2144B1 3F36E38A C6D39F95 88939369 2860B51A 42FB81EF 4DF7C5B8公钥P A=(x A ,y A):坐标x A:09F9DF31 1E5421A1 50DD7D16 1E4BC5C6 72179FAD 1833FC07 6BB08FF3 56F35020坐标y A:CCEA490C E26775A5 2DC6EA71 8CC1AA60 0AED05FB F35E084A 6632F607 2DA9AD13杂凑值Z A= H256(ENTL A||ID A||a||b||x G||y G||x A||y A)。
Z A:B2E14C5C 79C6DF5B 85F4FE7E D8DB7A26 2B9DA7E0 7CCB0EA9 F4747B8C CDA8A4F3签名各步骤中的有关值:M=Z A||M:B2E14C5C 79C6DF5B 85F4FE7E D8DB7A26 2B9DA7E0 7CCB0EA9 F4747B8C CDA8A4F36D657373 61676520 64696765 7374密码杂凑算法值e=H256(M):F0B43E94 BA45ACCA ACE692ED 534382EB 17E6AB5A 19CE7B31F4486FDF C0D28640产生随机数k:59276E27 D506861A 16680F3A D9C02DCC EF3CC1FA 3CDBE4CE 6D54B80D EAC1BC21计算椭圆曲线点(x1, y1)=[k]G:坐标x1:04EBFC71 8E8D1798 62043226 8E77FEB6 415E2EDE 0E073C0F 4F640ECD 2E149A73坐标y 1:E858F9D8 1E5430A5 7B36DAAB 8F950A3C 64E6EE6A 63094D99 283AFF76 7E124DF0计算r = (e +x 1) mod n :F5A03B06 48D2C463 0EEAC513 E1BB81A1 5944DA38 27D5B741 43AC7EAC EEE720B3 (1+d A )-1:4DFE9D9C 1F5901D4 E6F58E4E C3D04567 822D2550 F9B88E82 6D1B5B3A B9CD0FE0计算s = ((1+d A )-1⋅ (k - r ⋅d A )) mod n :B1B6AA29 DF212FD8 763182BC 0D421CA1 BB9038FD 1F7F42D4840B69C4 85BBC1AA消息M 的签名为 (r , s ):值r :F5A03B06 48D2C463 0EEAC513 E1BB81A1 5944DA38 27D5B741 43AC7EAC EEE720B3值s :B1B6AA29 DF212FD8 763182BC 0D421CA1 BB9038FD 1F7F42D4 840B69C4 85BBC1AA 验证各步骤中的有关值:密码杂凑算法值e ’=H 256(M ’): F0B43E94 BA45ACCA ACE692ED 534382EB 17E6AB5A 19CE7B31 F4486FDFC0D28640计算t = (r ’+ s ’) mod n :A756E531 27F3F43B 851C47CF EEFD9E43 A2D133CA 258EF4EA 73FBF468 3ACDA13A 计算椭圆曲线点(x 0’, y 0’) = [s ’]G :坐标x 0’:2B9CE14E 3C8D1FFC 46D693FA 0B54F2BD C4825A50 6607655D E22894B5 C99D3746坐标y 0’:277BFE04 D1E526B4 E1C32726 435761FB CE0997C2 6390919C 4417B3A0 A8639A59计算椭圆曲线点(x 0’0 , y 0’0 ) = [t ]P A :坐标x 0’0:FDAC1EFA A770E463 5885CA1B BFB360A5 84B238FB 2902ECF0 9DDC935F 60BF4F9B坐标y 0’0 :B89AA926 3D5632F6 EE82222E 4D63198E 78E095C2 4042CBE7 15C23F71 1422D74C计算椭圆曲线点(x 1’, y 1’) = [s ’]G +[t ]P A :坐标x 1’: 04EBFC71 8E8D1798 62043226 8E77FEB6 415E2EDE 0E073C0F 4F640ECD 2E149A73坐标y 1’: E858F9D8 1E5430A5 7B36DAAB 8F950A3C 64E6EE6A 63094D99 283AFF76 7E124DF0计算R = (e ’+ x 1’ ) mod n :F5A03B06 48D2C463 0EEAC513 E1BB81A1 5944DA38 27D5B741 43AC7EAC EEE720B3附 录 B密钥交换及验证示例B.1 一般要求本附录选用《SM3密码杂凑算法》给出的密码杂凑算法,其输入是长度小于264的消息比特串,输出是长度为256比特的杂凑值,记为H256( )。
本附录使用SM2椭圆曲线公钥密码算法第3部分规定的密钥交换协议计算得到各步骤中的相应数值。
本附录中,所有用16进制表示的数,左边为高位,右边为低位。
设ID A的GB/T1988编码为: 31323334 35363738 31323334 35363738。
ENTL A=0080。
设ID B的GB/T1988编码为: 31323334 35363738 31323334 35363738。
ENTL B=0080。
B.2 SM2椭圆曲线密钥交换协议椭圆曲线方程为:y2 = x3 + ax + b示例1:F p-256素数p:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF系数a:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC系数b:28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93余因子h:1基点G =(x G , y G),其阶记为n。