版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICS35.040
L80
中华人民共和国国家标准
GB/TXXXXX.2—XXXX
信息安全技术SM2椭圆曲线公钥密码算法
第2部分:数字签名算法
Informationsecuritytechnology-PublickeycryptographicalgorithmSM2basedon
ellipticcurves-
Part2:Digitalsignaturealgorithm
点击此处添加与国际标准一致性程度的标识
(征求意见稿)
在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上
XXXX-XX-XX发布XXXX-XX-XX实施
GB/TXXXXX.2—XXXX
目 次
前言.................................................................错误!未定义书签。
引言.................................................................................II
1范围................................................................................1
2规范性引用文件......................................................................1
3术语和定义..........................................................................1
4符号和缩略语........................................................................1
5数字签名算法........................................................................2
5.1总则...........................................................错误!未定义书签。
5.2椭圆曲线系统参数................................................................2
5.3用户密钥对......................................................................2
5.4辅助函数........................................................................2
5.5用户其它信息....................................................................3
6数字签名的生成算法及流程............................................................3
6.1数字签名的生成算法...............................................................3
6.2数字签名生成算法流程.............................................................3
7数字签名的验证算法及流程............................................................4
7.1数字签名的验证算法..............................................................4
7.2数字签名验证算法流程............................................................6
附录A(资料性附录)数字签名与验证示例...............................................7
A.1一般要求.........................................................错误!未定义书签。
A.2Fp上的椭圆曲线数字签名............................................................7
A.3上的椭圆曲线数字签名..........................................................8
F2m
I
GB/TXXXXX.2—XXXX
引言
N.Koblitz和V.Miller在1985年各自独立地提出将椭圆曲线应用于公钥密码系统。椭圆曲线公钥
密码所基于的曲线性质如下:
──有限域上椭圆曲线在点加运算下构成有限交换群,且其阶与基域规模相近;
──类似于有限域乘法群中的乘幂运算,椭圆曲线多倍点运算构成一个单向函数。
在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。对于一般椭圆
曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对数
问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密码
较其它公钥密码所需的密钥规模要小得多。
SM2是国家密码管理局组织制定并提出的椭圆曲线密码算法标准。GB/TXXXXX—XXXX的主要
目标如下:
——GB/TXXXXX.1—XXXX定义和描述了SM2椭圆曲线密码算法的相关概念及数学基础知识,
并概述了该部分同其它部分的关系。
——GB/TXXXXX.2—XXXX描述了一种基于椭圆曲线的签名算法,即SM2签名算法。
——GB/TXXXXX.3—XXXX描述了一种基于椭圆曲线的密钥交换协议,即SM2密钥交换协议。
——GB/TXXXXX.4—XXXX描述了一种基于椭圆曲线的公钥加密算法,即SM2加密算法,该算
法需使用GB/TAAAAA—AAAA定义的SM3密码杂凑算法。
——GB/TXXXXX.5—XXXX给出了SM2算法使用的椭圆曲线参数,以及使用椭圆曲线参数进行
SM2运算的示例结果。
本部分为为GB/TXXXXX—XXXX第二部分,描述了基于椭圆曲线的数字签名算法。
II
GB/TXXXXX.2—XXXX
SM2椭圆曲线公钥密码算法
第2部分:数字签名算法
1范围
GB/TXXXXX的本部分规定了SM2椭圆曲线公钥密码算法的数字签名算法,包括数字签名生成算
法和验证算法,并给出了数字签名与验证示例及其相应的流程。
本部分适用于商用密码应用中的数字签名和验证,可满足多种密码应用中的身份鉴别和数据完整
性、真实性的安全需求。
2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/TXXXXX信息安全技术SM2椭圆曲线公钥密码算法第1部分:总则
3术语和定义
下列术语和定义适用于本部分。
3.1
消息message
任意有限长度的比特串。
3.2
签名消息signedmessage
由消息以及该消息的签名部分所组成的一组数据项。
3.3
签名密钥signaturekey
在数字签名生成过程中由签名者专用的秘密数据项,即签名者的私钥。
3.4
签名生成过程signatureprocess
输入消息、签名密钥和椭圆曲线系统参数,并输出数字签名的过程。
3.5
可辨别标识distinguishingidentifier
可以无歧义辨别某一实体身份的信息。
4符号和缩略语
下列符号和缩略语适用于本文件。
A,B使用公钥密码系统的两个用户。
a,bFq中的元素,它们定义Fq上的一条椭圆曲线E。
1
GB/TXXXXX.2—XXXX
dA用户A的私钥。
E(Fq)Fq上椭圆曲线E的所有有理点(包括无穷远点O)组成的集合。
e密码杂凑算法作用于消息M的输出值。
e’密码杂凑算法作用于消息M’的输出值。
Fq包含q个元素的有限域。
G椭圆曲线的一个基点,其阶为素数。
Hv()消息摘要长度为v比特的密码杂凑算法。
IDA用户A的可辨别标识。
M待签名消息。
M’待验证消息。
modn模n运算。例如,23mod7=2。
n基点G的阶(n是#E(Fq)的素因子)。
O椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
PA用户A的公钥。
q有限域Fq中元素的数目。
x||yx与y的拼接,其中x、y可以是比特串或字节串。
ZA关于用户A的可辨别标识、部分椭圆曲线系统参数和用户A公钥的杂凑值。
(r,s)发送的签名。
(r’,s’)收到的签名。
椭圆曲线上点的倍点,即,,是正整数。
[k]PPk[k]PPP...Pk
k个
[x,y]大于或等于x且小于或等于y的整数的集合。
x顶函数,大于或等于x的最小整数。例如,77,8.39。
x底函数,小于或等于x的最大整数。例如,77,8.38。
#E(Fq)E(Fq)上点的数目,称为椭圆曲线E(Fq)的阶。
5数字签名算法
5.1综述
数字签名算法由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者
有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。在签名的生成过程
之前,要用密码杂凑算法对M(包含ZA和待签消息M)进行压缩;在验证过程之前,要用密码杂凑算法
对M’(包含ZA和待验证消息M’)进行压缩。
5.2椭圆曲线系统参数
m
椭圆曲线系统参数包括有限域Fq的规模q(当q=2时,还包括元素表示法的标识和约化多项式);
定义椭圆曲线E(Fq)的方程的两个元素a、bFq;E(Fq)上的基点G=(xG,yG)(G≠O),其中xG和yG是Fq
中的两个元素;G的阶n及其它可选项(如n的余因子h等)。
椭圆曲线系统参数及其验证应符合GB/TXXXXX.1-xxxx第5章的规定。
5.3用户密钥对
用户A的密钥对包括其私钥dA和公钥PA=[dA]G=(xA,yA)。
用户密钥对的生成算法与公钥验证算法应符合GB/TXXXXX.1-xxxx第6章的规定。
5.4辅助函数
5.4.1概述
2
GB/TXXXXX.2—XXXX
在本部分规定的椭圆曲线数字签名算法中,涉及到两类辅助函数:密码杂凑算法与随机数发生器。
5.4.2密码杂凑算法
本部分规定使用国家密码管理局批准的密码杂凑算法,如SM3密码杂凑算法。
5.4.3随机数发生器
本部分规定使用国家密码管理局批准的随机数发生器。
5.5用户其它信息
作为签名者的用户A具有长度为entlenA比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而
成的两个字节,在本部分规定的椭圆曲线数字签名算法中,签名者和验证者都需要用密码杂凑算法求得
用户A的杂凑值ZA。按GB/TXXXXX.1-XXX4.2.6和4.2.5给出的方法,将椭圆曲线方程参数a、b、G
的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串,ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。
6数字签名的生成算法及流程
6.1数字签名的生成算法
设待签名的消息为M,为了获取消息M的数字签名(r,s),作为签名者的用户A应实现以下运算步
骤:
A1:置M=ZA||M;
A2:计算e=Hv(M),按GB/TXXXXX.1-xxxx4.2.4和4.2.3给出的方法将e的数据类型转换为整
数;
A3:用随机数发生器产生随机数k∈[1,n-1];
A4:计算椭圆曲线点(x1,y1)=[k]G,按GB/TXXXXX.1-XXXX4.2.8给出的方法将x1的数据类型转
换为整数;
A5:计算r=(e+x1)modn,若r=0或r+k=n则返回A3;
-1
A6:计算s=((1+dA)(k-rdA))modn,若s=0则返回A3;
A7:按GB/TXXXXX.1-XXXX4.2.2给出的细节将r、s的数据类型转换为字节串,消息M的签
名为(r,s)。
注:数字签名生成过程的示例参见附录A。
6.2数字签名生成算法流程
数字签名生成算法流程见图1。
3
GB/TXXXXX.2—XXXX
用户A的原始数据
(椭圆曲线系统参数、ZA、M、PA、dA)
第1步:置M=ZA||M
第2步:计算e=Hv(M)
第3步:产生随机数k∈[1,n-1]
第4步:计算椭圆曲线点(x1,y1)=[k]G
第5步:计算r=(e+x1)modn
是
r=0或r+k=n?
否
-1
第6步:计算s=((1+dA)(k-rdA))modn
是
s=0?
否是
否
第7步:确定数字签名(r,s)
输出消息M及其数字签名(r,s)
图1数字签名生成算法流程
7数字签名的验证算法及流程
7.1数字签名的验证算法
为了检验收到的消息M’及其数字签名(r’,s’),作为验证者的用户B应实现以下运算步骤:
B1:检验r’∈[1,n-1]是否成立,若不成立则验证不通过;
B2:检验s’∈[1,n-1]是否成立,若不成立则验证不通过;
B3:置M’=ZA||M’;
B4:计算e’=Hv(M’),按GB/TXXXXX.1-XXXX4.2.4和4.2.3给出的方法将e’的数据类型转换
4
GB/TXXXXX.2—XXXX
为整数;
B5:按本GB/TXXXXX.1-XXXX4.2.3给出的方法将r’、s’的数据类型转换为整数,计算t=(r’+
s’)modn,若t=0,则验证不通过;
B6:计算椭圆曲线点(x1’,y1’)=[s’]G+[t]PA;
B7:按GB/TXXXXX.1-XXXX4.2.8给出的方法将x1’的数据类型转换为整数,计算R=(e’+x1’)
modn,检验R=r’是否成立,若成立则验证通过;否则验证不通过。
注:如果ZA不是用户A所对应的杂凑值,验证自然通不过。数字签名验证过程的示例参见附录A。
5
GB/TXXXXX.2—XXXX
7.2数字签名验证算法流程
数字签名验证算法流程见图2。
用户B的原始数据
(椭圆曲线系统参数、ZA、PA、M’、(r’,s’))
第1步:检验r’∈[1,n-1]是否成立
否
r’∈[1,n-1]?
是
第2步:检验s’∈[1,n-1]是否成立
否
s’∈[1,n-1]?
是
第3步:置M’=ZA||M’
第4步:计算e’=Hv(M’)
第5:计算t=(r’+s’)modn
否
是
t=0?否
否
第6步:计算椭圆曲线点
(x1’,y1’)=[s’]G+[t]PA
第7步:计算R=(e’+x1’)modn
否
R=r’?
是
验证通过验证不通过
图2数字签名验证算法流程
6
GB/TXXXXX.2—XXXX
附录A
(资料性附录)
数字签名与验证示例
A.1综述
本附录选用GB/TAAAAA-AAAA《信息安全技术SM3密码杂凑算法》给出的密码杂凑算法,其
64
输入是长度小于2的消息比特串,输出是长度为256比特的杂凑值,记为H256()。
本附录中,所有用16进制表示的数,左边为高位,右边为低位。
本附录中,消息采用GB/T1988给出的编码。
设用户A的身份是:ALICE123@YAHOO.COM。用GB/T1988给出的编码IDA:414C49434531
3233405941484F4F2E434F4D。ENTLA=0090。
A.2Fp上的椭圆曲线数字签名
椭圆曲线方程为:y2=x3+ax+b
示例1:Fp-256
素数p:8542D69E4C044F18E8B92435BF6FF7DE457283915C45517D722EDB8B08F1DFC3
系数a:787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E498
系数b:63E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A
基点G=(xG,yG),其阶记为n。
坐标xG:421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D
坐标yG:0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A2
阶n:8542D69E4C044F18E8B92435BF6FF7DD297720630485628D5AE74EE7C32E79B7
待签名的消息M:messagedigest
私钥dA:128B2FA8BD433C6C068C8D803DFF79792A519A55171B1B650C23661D15897263
公钥PA=(xA,yA):
坐标xA:0AE4C7798AA0F119471BEE11825BE46202BB79E2A5844495E97C04FF4DF2548A
坐标yA:7C0240F88F1CD4E16352A73C17B7F16F07353E53A176D684A9FE0C6BB798E857
杂凑值ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。
ZA:F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A
签名各步骤中的有关值:
M=ZA||M:
F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A
6D65737361676520646967657374
密码杂凑函数值e=H256(M):B524F552CD82B8B028476E005C377FB19A87E6FC682D48BB
5D42E3D9B9EFFE76
产生随机数k:6CB28D99385C175C94F94E934817663FC176D925DD72B727260DBAAE1FB2F96F
计算椭圆曲线点(x1,y1)=[k]G:
坐标x1:110FCDA57615705D5E7B9324AC4B856D23E6D9188B2AE47759514657CE25D112
坐标y1:1C65D68A4A08601DF24B431E0CAB4EBE084772B3817E85811A8510B2DF7ECA1A
7
GB/TXXXXX.2—XXXX
计算r=(e+x1)modn:40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA5
5BACDB49C4E755D1
-1
(1+dA):79BFCF3052C80DA7B939E0C6914A18CBB2D96D8555256E83122743A7D4F5F956
-1
计算s=((1+dA)(k-rdA))modn:6FC6DAC32C5D5CF10C77DFB20F7C2EB667A45787
2FB09EC56327A67EC7DEEBE7
消息M的签名为(r,s):
值r:40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA55BACDB49C4E755D1
值s:6FC6DAC32C5D5CF10C77DFB20F7C2EB667A457872FB09EC56327A67EC7DEEBE7
验证各步骤中的有关值:
密码杂凑算法值e’=H256(M’):B524F552CD82B8B028476E005C377FB19A87E6FC682D48BB
5D42E3D9B9EFFE76
计算t=(r’+s’)modn:2B75F07ED7ECE7CCC1C8986B991F441AD324D6D619FE06DD
63ED32E0C997C801
计算椭圆曲线点(x0’,y0’)=[s’]G:
坐标x0’:7DEACE5FD121BC385A3C6317249F413D28C17291A60DFD83B835A45392D22B0A
坐标y0’:2E49D5E5279E5FA91E71FD8F693A64A3C4A9461115A4FC9D79F34EDC8BDDEBD0
计算椭圆曲线点(x0’0,y0’0)=[t]PA:
坐标x0’0:1657FA75BF2ADCDC3C1F6CF05AB7B45E04D3ACBE8E4085CFA669CB2564F17A9F
坐标y0’0:19F0115F21E16D2F5C3A485F8575A128BBCDDF80296A62F6AC2EB842DD058E50
计算椭圆曲线点(x1’,y1’)=[s’]G+[t]PA:
坐标x1’:110FCDA57615705D5E7B9324AC4B856D23E6D9188B2AE47759514657CE25D112
坐标y1’:1C65D68A4A08601DF24B431E0CAB4EBE084772B3817E85811A8510B2DF7ECA1A
计算R=(e’+x1’)modn:40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA5
5BACDB49C4E755D1
A.3上的椭圆曲线数字签名
F2m
椭圆曲线方程为:y2+xy=x3+ax2+b
示例2:F2m-257
基域生成多项式:x257+x12+1
系数a:0
系数b:00E78BCD09746C202378A7E72B12BCE00266B9627ECB0B5A25367AD1AD4CC6242B
基点G=(xG,yG),其阶记为n。
坐标xG:00CDB9CA7F1E6B0441F658343F4B10297C0EF9B6491082400A62E7A7485735FADD
坐标yG:013DE74DA65951C4D76DC89220D5F7777A611B1C38BAE260B175951DC8060C2B3E
阶n:7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC972CF7E6B6F900945B3C6A0CF6161D
待签名的消息M:messagedigest
私钥dA:771EF3DBFF5F1CDC32B9C572930476191998B2BF7CB981D7F5B39202645F0931
公钥PA=(xA,yA):
坐标xA:0165961645281A8626607B917F657D7E9382F1EA5CD931F40F6627F357542653B2
坐标yA:01686522130D590FB8DE635D8FCA715CC6BF3D05BEF3F75DA5D543454448166612
杂凑值ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。
ZA:26352AF82EC19F207BBC6F9474E11E90CE0F7DDACE03B27F801817E897A81FD5
8
GB/TXXXXX.2—XXXX
签名各步骤中的有关值:
M=ZA||M:
26352AF82EC19F207BBC6F9474E11E90CE0F7DDACE03B27F801817E897A81FD5
6D65737361676520646967657374
密码杂凑算法值e=H256(M):AD673CBDA311417129A9EAA5F9AB1AA1633AD47718A84DFD
46C17C6FA0AA3B12
产生随机数k:36CD79FC8E24B7357A8A7B4A46D454C397703D6498158C605399B341ADA186D6
计算椭圆曲线点(x1,y1)=[k]G:
坐标x1:003FD87D6947A15F9425B32EDD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洛阳理工学院《VB语言程序设计》2023-2024学年第一学期期末试卷
- 单位人事管理制度范文选集
- 单位人力资源管理制度集粹选集
- 饮料生产降水施工合同
- 高端别墅区房屋转让租赁协议
- 2024年标准餐饮服务合同模板版
- 商务写字楼外墙改造合同
- 造纸工程分包协议
- 矿区生态恢复复垦承诺书
- 瑜伽馆门头施工合同
- MOOC 生物化学与分子生物学-中国药科大学 中国大学慕课答案
- 第2课+古代希腊罗马【中职专用】《世界历史》(高教版2023基础模块)
- 金属屋面工程防水技术规程
- 《福建省安全生产条例》考试复习题库45题(含答案)
- 人工智能增强战略规划
- 无机材料与功能化学
- 110kV变电站及110kV输电线路运维投标技术方案(第一部分)
- 消防设施安全检查表
- 餐厅用电安全承诺书
- 吉林省延边州2023-2024学年高一上学期期末学业质量检测数学试题(解析版)
- 2024年全国两会精神主要内容
评论
0/150
提交评论