基于SM2签名的公钥解析方法、装置、设备及存储介质制造方法及图纸

技术编号:29401728 阅读:14 留言:0更新日期:2021-07-23 22:39
本发明专利技术公开了一种基于SM2签名的公钥解析方法、装置、设备及存储介质,该方法包括S1:输入标准SM2签名值(r',s')、被执行数字签名的消息M'、签名者的杂凑值

【技术实现步骤摘要】
基于SM2签名的公钥解析方法、装置、设备及存储介质
本专利技术属于信息安全领域,尤其涉及基于SM2签名的公钥解析方法、装置、设备及存储介质。
技术介绍
密码学家NealKoblitz和VictorMiller在1985年分别提出了椭圆曲线密码学(EllipticcurveCryptography,ECC)的思想,使其成为构造公钥密码体制的一个有力工具。我国国家标准GB/T32918《信息安全技术SM2椭圆曲线公钥密码算法》规定的SM2算法就是一种特定的ECC密码算法,主要包括数字签名算法、密钥交换协议和公钥加密算法三个部分。GB/T32918.2规定了SM2椭圆曲线公钥密码算法的数字签名算法,包括数字签名生成算法和验证算法及相应的流程,可以满足多种密码应用中的身份鉴别和数据完整性、信息来源真实性的安全需求。数字签名算法由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。在签名的生成过程之前和签名的验证过程之前,都分别要用密码杂凑函数对签名用户的可辨别标识ID、部分椭圆曲线系统参数和签名用户的公钥杂凑值以及待签名消息进行压缩得到该用户的杂凑值。在云计算、大数据、物联网、移动互联网、工业控制系统、区块链等众多领域都在使用SM2进行数据签名来保证数据真实性、完整性,为了验证签名的正确性,需要验证公钥,并使用公钥执行SM2签名验证功能。为了解决当公钥未及时送到或公钥数据异常等情况下如何获取公钥的问题,以便为后续执行SM2签名验证功能,阿里巴巴的王尧等提供了SM2签名恢复公钥的方法(王尧,雷浩,林立.基于SM2签名恢复公钥的方法[P].开曼群岛:CN111066285A,2020-04-24.),中国网安的王震等针对区块链的应用场景提供了一种SM2签名恢复公钥的方案(王震,姜孟杉,白健,李亚荣.一种区块链中基于sm2签名恢复公钥及地址的方法[P].四川省:CN112152814A,2020-12-29)。这两个方案都解决了从SM2签名恢复公钥的问题。这两个方案虽然能恢复出公钥,但存在如下问题。(1)这两个方案都完全改变了SM2的签名算法:改变了SM2签名算法的输入参数、输出结果和执行流程。(2)这两个方案不兼容现有SM2签名算法和验签算法:一方面,标准的SM2签名值不能使用这两个方案恢复出公钥,另一方面,这两个算法计算得到的签名值也不能被标准的SM2签名验证算法识别。(3)这两个方案导致SM2软硬件实现模块必须做改动,特别不利于硬件实现。(4)这两个方案或许存在降低SM2算法签名安全性的风险:从SM2签名算法内部引出额外的输出参数v,这是否会降低SM2签名算法的安全性,这两个方案都未给出明确的安全性分析评估。
技术实现思路
本专利技术的目的在于,为克服现有技术缺陷,提供了一种基于SM2签名的公钥解析方法、装置、设备及存储介质,在不改变SM2签名算法且不降低SM2签名算法安全性的情况下,以与传统方法基本相当的执行效率实现了SM2签名的公钥解析。本专利技术目的通过下述技术方案来实现:本专利技术所用记号、缩写或符号如下:A和B:SM2公钥密码系统的两个用户,A为签名者,B为验证签名者。q:有限域Fq中元素的数目。Fq:包含q个元素的有限域。a,b:Fq中的元素,它们定义Fq上的一条椭圆曲线E。E(Fq):Fq上椭圆曲线E的所有有理点组成的集合。O:椭圆曲线E上的无穷远点(或零点),是椭圆曲线加法群的单位元。G:椭圆曲线的一个基点,其阶n为素数。#E(Fq):E(Fq)上的点的数目,称为椭圆曲线E(Fq)的阶。n:基点G的阶。[k]P:椭圆曲线上点P的k倍点。dA,dB:分别为用户A和用户B的私钥。PA,PB:分别为用户A和用户B的公钥。Hash():密码杂凑函数。:消息摘要长度为v比特的密码杂凑函数。IDA,IDB:分别是用户A的长度为entlenA比特的可辨别标识IDA和用户B的长度为entlenB比特的可辨别标识IDB。ENTLA,ENTLB:分别是用户A的可辨别标识IDA的比特长度entlenA转换而成的两个字节ENTLA,和用户B的可辨别标识IDB的比特长度entlenB转换而成的两个字节ENTLB。ZA,ZB:分别为关于用户A/用户B的杂凑值。以用户A的杂凑值ZA为例,首先按GB/T32918.1的第4.2.5节和第4.2.4节给出的算法将椭圆曲线方程参数a、b、G的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串,再计算。modn:模n运算。例如,23mod7=2。x||y:x与y的拼接,其中x、y是比特串或字节串。基于SM2签名的公钥解析方法,包括:S1:输入标准SM2签名值(r',s')、被执行数字签名的消息M'、签名者的杂凑值、签名者的可辨别标识和椭圆曲线系统参数,椭圆曲线系统参数包括椭圆曲线方程参数a、b、基点G=(xG,yG)和基点的阶n;S2:将r'、s'的数据类型转化为整数,置,计算,将e'的数据类型转化为整数;S3:通过将压缩点转换为椭圆曲线上的一个点来解析签名者的公钥;其中,为x与y的拼接,其中x、y是比特串或字节串,为消息摘要长度为v比特的密码杂凑函数。进一步的,还包括输入参数检验步骤:检验和是否都成立,若有一个不成立,则返回错误;其中,n为基点G的阶。进一步的,当采用一个中间临时变量时,步骤S3具体包括:S311:计算,;S312:置比特,将压缩点转换为SM2椭圆曲线上的一个点;S313:置ne=0,ne为错误次数计数器;S314:计算公钥,其中,[k]P:椭圆曲线上点P的k倍点。进一步的,所述方法还包括公钥正确性核验步骤:将a、b、xG、yG、、的数据类型转化为字节串;计算;检验是否成立,若成立,返回;否则计算ne=ne+1,检查ne≤1是否成立,若成立,置Q=-Q,执行步骤S314。进一步的,当采用两个中间临时变量时,步骤S3具体包括:S321:计算,,;S322:置比特,将压缩点转换为SM2椭圆曲线上的一个点;S323:置ne=0,ne为错误次数计数器;S324:计算公钥;其中,,;其中,[k]P:椭圆曲线上点P的k倍点。进一步的,所述方法还包括公钥正确性核验步骤:将a、b、xG、yG、、的数据类型转化为字节串;计算;检验是否成立,若成立,返回;否则计算ne=ne+1,检查ne≤1是否成立,若成立,置R1=-R1,执行步骤S324;其中,[k]P:椭圆曲线上点P的k倍点。进一步的,所述方法还包括公钥正确性核验步骤:将a、b、xG、yG、、的数据类型转化为字节串;本文档来自技高网
...

【技术保护点】
1.基于SM2签名的公钥解析方法,其特征在于,包括:/nS1:输入标准SM2签名值(r',s')、被执行数字签名的消息M'、签名者的杂凑值

【技术特征摘要】
1.基于SM2签名的公钥解析方法,其特征在于,包括:
S1:输入标准SM2签名值(r',s')、被执行数字签名的消息M'、签名者的杂凑值、签名者的可辨别标识和椭圆曲线系统参数,椭圆曲线系统参数包括椭圆曲线方程参数a、b、基点G=(xG,yG)和基点的阶n;
S2:将r'、s'的数据类型转化为整数,置,计算,将e'的数据类型转化为整数;
S3:通过中间临时变量,将压缩点转换为椭圆曲线上的一个点来解析签名者的公钥;
其中,为x与y的拼接,其中x、y是比特串或字节串,为消息摘要长度为v比特的密码杂凑函数。


2.如权利要求1所述的基于SM2签名的公钥解析方法,其特征在于,还包括输入参数检验步骤:检验和是否都成立,若有一个不成立,则返回错误;其中,n为基点G的阶。


3.如权利要求1所述的基于SM2签名的公钥解析方法,其特征在于,当采用一个中间临时变量时,步骤S3具体包括:
S311:计算,;
S312:置比特,将压缩点转换为SM2椭圆曲线上的一个点;
S313:置ne=0,ne为错误次数计数器;
S314:计算公钥,其中,[k]P:椭圆曲线上点P的k倍点。


4.如权利要求3所述的基于SM2签名的公钥解析方法,其特征在于,所述方法还包括公钥正确性核验步骤:
将a、b、xG、yG、、的数据类型转化为字节串;
计算;
检验是否成立,若成立,返回;
否则计算ne=ne+1,检查ne≤1是否成立,若成立,置Q=-Q,执行步骤S314。


5.如权利要求1所述的基于SM2签名的公钥解析方法,其特征在于,当采用两个中间临时...

【专利技术属性】
技术研发人员:罗影张文科郭晓玲敖麒刘红军
申请(专利权)人:工业信息安全四川创新中心有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1