签名值输出及验证方法、装置、计算机设备、存储介质制造方法及图纸

技术编号:33780738 阅读:35 留言:0更新日期:2022-06-12 14:35
本申请涉及一种签名值输出方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取初始签名值;若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值;输出所述目标签名值。本申请根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于保证区块链交易顺利完成。有利于保证区块链交易顺利完成。有利于保证区块链交易顺利完成。

【技术实现步骤摘要】
签名值输出及验证方法、装置、计算机设备、存储介质


[0001]本申请涉及区块链
,特别是涉及一种签名值输出及验证方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]数字签名,即附加在某电子文档中的一组特定符号或代码,是利用数学方法对该文档进行关键信息提取并与用户的私有信息进行混合运算而成的,能够标识用户信息以及用户对该文档的认可,并能验证其文档是否被篡改或者伪造。在区块链中,现有的数字签名方法有RSA加密算法(RSA algorithm)、DSA(Digital Signature Algorithm)加密算法、ECC(椭圆加密算法)、国密SM2签名算法、ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)等。其中,ECDSA签名算法是由DSA算法与ECC算法结合形成的,相对于其他的签名算法来说,ECDSA签名算法的计算参数更小、密钥更短、运算速度更快、签名值更加短小等优点,因此,成为区块链系统中普遍使用的数字签名算法。
[0003]ECDSA签名算法在使用过程中容易出现延展性问题,即恶意方能将一个有效签名值修改为另一个有效的签名值,修改后的签名值能够正常通过签名验证的流程,但是修改后的签名值参与到交易哈希的计算时,致使交易哈希发生变化,从而出现查询不到已有交易记录的问题。因此,在将签名值发送至区块链验证之前,签名值的准确性需要重点把控。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够避免签名延展性问题的签名值输出及验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种签名值输出方法。所述方法包括:
[0006]获取初始签名值;
[0007]若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
[0008]若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
[0009]输出所述目标签名值。
[0010]在其中一个实施例中,所述预设条件为第一类别数,所述第一类别数为奇数或偶数中的一个;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
[0011]若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;
[0012]所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值,包括:
[0013]若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
[0014]在其中一个实施例中,确定所述初始签名值为第一类别数的方式,包括:
[0015]若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,
若所述取余结果不为0,则确定所述初始签名值为第一类别数;
[0016]若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。
[0017]在其中一个实施例中,所述预设条件为大于预设阈值,所述预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
[0018]若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;
[0019]所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定所述目标签名值,包括:
[0020]若所述初始签名值小于所述预设阈值,则根据所述初始签名值确定所述目标签名值。
[0021]在其中一个实施例中,所述根据所述初始签名值确定所述目标签名值,包括:
[0022]获取椭圆曲线参数基点的阶数;
[0023]根据所述初始签名值和所述椭圆曲线参数基点的阶数,确定所述目标签名值。
[0024]第二方面,本申请提供了一种签名值输出装置。所述装置包括:
[0025]获取模块,用于获取初始签名值;
[0026]第一模块,用于若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
[0027]第二模块,用于若所述初始签名值不满足预设条件,则根据所述初始签名值确定所述目标签名值;
[0028]输出模块,用于输出所述目标签名值。
[0029]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0030]获取初始签名值;
[0031]若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
[0032]若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
[0033]输出所述目标签名值。
[0034]第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法的步骤:
[0035]获取初始签名值;
[0036]若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
[0037]若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
[0038]输出所述目标签名值。
[0039]第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0040]获取初始签名值;
[0041]若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
[0042]若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
[0043]输出所述目标签名值。
[0044]上述签名值输出方法、装置、计算机设备、存储介质和计算机程序产品,通过获取初始签名值;若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;输出所述目标签名值。本申请根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于后续利用目标签名值的顺利验证。
[0045]第六方面,本申请提供了一种签名值验证方法。所述方法包括:
[0046]接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
[0047]若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
[0048]若所述目标签名值不满足所述预设条件,则判定所述目标签名值无本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种签名值输出方法,其特征在于,所述方法包括:获取初始签名值;若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;输出所述目标签名值。2.根据权利要求1所述的方法,其特征在于,所述预设条件为第一类别数,所述第一类别数为奇数或偶数中的一个;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值,包括:若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。3.根据权利要求2所述的方法,其特征在于,确定所述初始签名值为第一类别数的方式,包括:若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果不为0,则确定所述初始签名值为第一类别数;若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。4.根据权利要求1所述的方法,其特征在于,所述预设条件为大于预设阈值,所述预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;所述若所述初始签名值不满足预设条件,则根据初始签名值确定所述目标签名值,包括:若所述初始...

【专利技术属性】
技术研发人员:胡勇银闫核心
申请(专利权)人:深圳市名竹科技有限公司
类型:发明
国别省市:

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

1