CN114614992A - 签名值输出及验证方法、装置、计算机设备、存储介质 - Google Patents
签名值输出及验证方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN114614992A CN114614992A CN202210241280.XA CN202210241280A CN114614992A CN 114614992 A CN114614992 A CN 114614992A CN 202210241280 A CN202210241280 A CN 202210241280A CN 114614992 A CN114614992 A CN 114614992A
- Authority
- CN
- China
- Prior art keywords
- signature value
- initial
- target
- preset condition
- initial signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种签名值输出方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取初始签名值;若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值;输出所述目标签名值。本申请根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于保证区块链交易顺利完成。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种签名值输出及验证方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
数字签名,即附加在某电子文档中的一组特定符号或代码,是利用数学方法对该文档进行关键信息提取并与用户的私有信息进行混合运算而成的,能够标识用户信息以及用户对该文档的认可,并能验证其文档是否被篡改或者伪造。在区块链中,现有的数字签名方法有RSA加密算法(RSA algorithm)、DSA(Digital Signature Algorithm)加密算法、ECC(椭圆加密算法)、国密SM2签名算法、ECDSA(Elliptic Curve Digital SignatureAlgorithm,椭圆曲线数字签名算法)等。其中,ECDSA签名算法是由DSA算法与ECC算法结合形成的,相对于其他的签名算法来说,ECDSA签名算法的计算参数更小、密钥更短、运算速度更快、签名值更加短小等优点,因此,成为区块链系统中普遍使用的数字签名算法。
ECDSA签名算法在使用过程中容易出现延展性问题,即恶意方能将一个有效签名值修改为另一个有效的签名值,修改后的签名值能够正常通过签名验证的流程,但是修改后的签名值参与到交易哈希的计算时,致使交易哈希发生变化,从而出现查询不到已有交易记录的问题。因此,在将签名值发送至区块链验证之前,签名值的准确性需要重点把控。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免签名延展性问题的签名值输出及验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种签名值输出方法。所述方法包括:
获取初始签名值;
若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出所述目标签名值。
在其中一个实施例中,所述预设条件为第一类别数,所述第一类别数为奇数或偶数中的一个;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;
所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值,包括:
若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
在其中一个实施例中,确定所述初始签名值为第一类别数的方式,包括:
若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果不为0,则确定所述初始签名值为第一类别数;
若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。
在其中一个实施例中,所述预设条件为大于预设阈值,所述预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;
所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定所述目标签名值,包括:
若所述初始签名值小于所述预设阈值,则根据所述初始签名值确定所述目标签名值。
在其中一个实施例中,所述根据所述初始签名值确定所述目标签名值,包括:
获取椭圆曲线参数基点的阶数;
根据所述初始签名值和所述椭圆曲线参数基点的阶数,确定所述目标签名值。
第二方面,本申请提供了一种签名值输出装置。所述装置包括:
获取模块,用于获取初始签名值;
第一模块,用于若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
第二模块,用于若所述初始签名值不满足预设条件,则根据所述初始签名值确定所述目标签名值;
输出模块,用于输出所述目标签名值。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取初始签名值;
若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出所述目标签名值。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法的步骤:
获取初始签名值;
若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出所述目标签名值。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取初始签名值;
若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出所述目标签名值。
上述签名值输出方法、装置、计算机设备、存储介质和计算机程序产品,通过获取初始签名值;若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;输出所述目标签名值。本申请根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于后续利用目标签名值的顺利验证。
第六方面,本申请提供了一种签名值验证方法。所述方法包括:
接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
第七方面,本申请提供了一种签名值验证装置。所述装置包括:
接收模块,用于接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
第三模块,用于若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
第四模块,用于若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
第八方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
第九方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法的步骤:
接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
第十方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
上述签名值验证方法、装置、计算机设备、存储介质和计算机程序产品,通过接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定目标签名值;若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。本申请在接收到目标签名值后,判断目标签名值是否满足预设条件,在目标签名值满足预设条件后,再进行后续的验证流程,如果目标签名值不满足预设条件,则判定目标签名值无效,中止后续的验证流程,这样可以避免将恶意修改的签名值也验证为有效,防止后续交易哈希值发生改变带来的交易问题,即避免了签名延展性问题。
附图说明
图1为一个实施例中签名值输出方法及验证方法的应用环境图;
图2为一个实施例中签名值输出方法的流程示意图;
图3为另一个实施例中签名值输出方法的流程示意图;
图4为另一个实施例中签名值输出方法的流程示意图;
图5为另一个实施例中签名值输出方法的流程示意图;
图6为一个实施例中签名值验证方法的流程示意图;
图7为另一个实施例中签名值验证方法的流程示意图;
图8为一个实施例中签名值输出及验证方法的流程示意图;
图9为一个实施例中签名值输出装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的签名值输出方法及验证方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与区块链节点104进行通信。数据存储系统可以存储区块链节点104需要处理的数据。数据存储系统可以集成在区块链节点104上,也可以放在云上或其他网络服务器上。终端102根据签名算法获取初始签名值,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值后输出目标签名值,并将目标签名值发送至区块链节点进行签名值验证。区块链节点接收到目标签名值后,再次判断目标签名值是否满足预设条件,如果目标签名值满足预设条件,则继续执行后续的签名验证流程;若目标签名值不满足预设条件,则判定目标签名值无效。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。区块链节点104相当于区块链中的服务器,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种签名值输出方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,获取初始签名值。
根据签名算法获取初始签名值。其中,签名算法例如可以是RSA算法、DSA算法、ECDSA算法等中的任一种。根据签名算法得到的签名值一般包括两部分,第一部分和第二部分,也称为r部分和s部分,例如签名值(r,s)中第一部分为r,第二部分为s。由于在传输过程中,签名值的第一部分一般不会发生变化,本申请实施例中描述的初始签名值主要是指第二部分的值,即s部分的值。
步骤204,若初始签名值满足预设条件,则将初始签名值作为目标签名值。
若初始签名值满足预设条件,则将初始签名值的s部分作为目标签名值的s部分。其中,预设条件可以根据初始签名值的数值特性进行设定,包括签名值的s部分的奇偶性或者与预设阈值之间的大小关系。
步骤206,若初始签名值不满足预设条件,则根据初始签名值确定目标签名值。
若初始签名值不满足预设条件,则根据初始签名值重新确定目标签名值,需要说明的是,本实施例中,根据初始签名值重新确定目标签名值,排除了直接将初始签名值作为目标签名值的情形。
步骤208,输出目标签名值。
得到目标签名值后,将目标签名值输出并发送至区块链节点进行签名值验证。
上述实施例中的签名值输出方法,通过获取初始签名值;若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值;输出所述目标签名值。本申请实施例根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于保证区块链交易顺利完成。
在一个实施例中,预设条件为第一类别数,其中,第一类别数为奇数或偶数中的一个;若初始签名值满足预设条件,则将初始签名值作为目标签名值的步骤204,包括:
若初始签名值为第一类别数,则将初始签名值作为目标签名值;
第一类别数为奇数或偶数中的一个,当第一类别数为奇数,即预设条件为奇数时,若初始签名值判定为奇数,则直接将初始签名值作为目标签名值。同理,当第一类别数为偶数,即预设条件为偶数时,若判定初始签名值为偶数,则直接将初始签名值作为目标签名值。
若初始签名值不满足预设条件,则根据初始签名值确定目标签名值的步骤206,包括:
若初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
本实施例中,当第一类别数为奇数时,则第二类别数为偶数;当第一类别数为偶数时,则第二类别数为奇数。预设条件为第一类别数,当第一类别数为奇数时,第二类别数为偶数,此时,若初始签名值为第二类别数,即初始签名值为偶数时,则根据初始签名值重新确定目标签名值。同理,预设条件为第一类别数,当第一类别数为偶数时,第二类别数为奇数,此时,若初始签名值为第二类别数,即初始签名值为奇数时,则根据初始签名值重新确定目标签名值。
在一个实施例中,确定初始签名值为第一类别数的方式,包括:
若第一类别数为奇数,将初始签名值与2进行取余运算,得到取余结果,若取余结果不为0,则确定初始签名值为第一类别数;
若第一类别数为偶数,将初始签名值与2进行取余运算,得到取余结果,若取余结果为0,则确定初始签名值为第一类别数。
在一个实施例中,预设条件为大于预设阈值,其中,预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;若初始签名值满足预设条件,则将所述初始签名值作为目标签名值的步骤204,包括:
若初始签名值大于预设阈值,则将初始签名值作为目标签名值;
若初始签名值不满足预设条件,则根据初始签名值确定目标签名值的步骤206,包括:
若初始签名值小于预设阈值,则根据初始签名值确定目标签名值。
本实施例中,预设条件为大于预设阈值,其中,预设阈值基于椭圆曲线参数基点的阶数的二分一确定,具体地,预设阈值可以是椭圆曲线参数基点的阶数的二分之一,或者是椭圆曲线参数基点的阶数的二分之一进行取整后的值。例如,假设椭圆曲线参数基点的阶数为n,那么,预设阈值可以是n/2,或者是[n/2],其中,[]为取整符号。
若初始签名值的s部分的值大于预设阈值,则将初始签名值作为目标签名值;若初始签名值的s部分的值小于预设阈值,则根据初始签名值重新确定目标签名值。
在一个实施例中,步骤206中根据初始签名值确定目标签名值,包括:
获取椭圆曲线参数基点的阶数;
根据初始签名值和椭圆曲线参数基点的阶数,确定目标签名值。
本实施例中,通过获取椭圆曲线参数基点的阶数,可根据椭圆曲线参数基点的阶数和初始签名值的s部分的值,来确定目标签名值。在一个可能的实现方式中,目标签名值为-s mod n,其中,s代表初始签名值的s部分的值,n代表椭圆曲线参数基点的阶数,mod为取模运算。
在一个实施例中,如图3所示,签名值输出方法包括:
步骤302,获取初始签名值s。
步骤304,预设条件为奇数,若初始签名值s为奇数,则将初始签名值s作为目标签名值。
步骤306,若初始签名值s为偶数,则将-s mod n作为目标签名值,其中,n为椭圆曲线参数基点的阶数。
步骤308,将目标签名值发送至区块链节点。
在一个实施例中,如图4所示,签名值输出方法包括:
步骤402,获取初始签名值s。
步骤404,预设条件为偶数,若初始签名值s为偶数,则将初始签名值s作为目标签名值。
步骤406,若初始签名值s为奇数,则将-s mod n作为目标签名值,其中,n为椭圆曲线参数基点的阶数。
步骤408,将目标签名值发送至区块链节点。
在一个实施例中,如图5所示,签名值输出方法包括:
步骤502,获取初始签名值s。
步骤504,预设条件为大于预设阈值,其中,预设阈值为n/2,若初始签名值s大于n/2,则将初始签名值s作为目标签名值。
步骤506,若初始签名值s小于n/2,则将-s mod n作为目标签名值。
步骤508,将目标签名值发送至区块链节点。
在一个实施例中,如图6所示,提供了一种签名值验证方法,以该方法应用于图1中的区块链节点104为例进行说明,包括以下步骤:
步骤602,接收目标签名值;其中,目标签名值基于初始签名值得到,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值。
本实施例中,区块链节点接收从终端发送的目标签名值,其中,目标签名值是基于初始签名值得到,初始签名值可根据签名算法得到。根据签名算法得到的签名值通常包括两部分,r部分和s部分,由于在传输过程中,签名值的r部分一般不会发生变化,因此本申请实施例中描述的初始签名值主要指的是s部分的值。具体得到目标签名值的过程可参考签名值输出方法中的步骤202至步骤208的说明。
步骤604,若目标签名值满足预设条件,则继续执行后续的签名验证流程。
预设条件,可以根据初始签名值的数值特性进行设定,包括签名值的s部分的奇偶性或者与预设阈值之间的大小关系。若目标签名值满足预设条件,则区块链节点判定当前的目标签名值有效,则继续执行后续的签名验证流程。其中,后续的签名验证流程可以是公钥验证流程和/或签名文件验证流程。
步骤606,若目标签名值不满足预设条件,则判定目标签名值无效。
若目标签名值不满足预设条件,则判定目标签名值无效,同时该目标签名值对应的交易无效。
本实施例中的签名值验证方法,通过接收目标签名值;其中,目标签名值基于初始签名值得到,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值;若目标签名值满足预设条件,则判定目标签名值有效;若目标签名值不满足预设条件,则判定目标签名值无效。本申请实施例在接收到目标签名值后,判断目标签名值是否满足预设条件,在目标签名值满足预设条件后,再进行后续的其他流程,如果目标签名值不满足预设条件,则判定目标签名值无效,中止后续的其他签名验证流程,即判定该目标签名值对应的交易无效,这样可以避免将恶意修改的签名值也验证为有效,防止后续交易哈希值发生改变带来的交易问题,即避免了签名延展性问题,有利于区块链交易的正常进行。
在一个实施例中,如图7所示,签名值验证方法,包括:
步骤702,接收终端发送的目标签名值。
步骤704,预设条件为奇数,若目标签名值为奇数,则继续执行后续的签名验证流程。
步骤706,若目标签名值为偶数,则判定目标签名值无效。
当预设条件为偶数或者预设条件为大于预设阈值时,同理,签名验证方法根据上述步骤702至步骤706实现,只是根据相应预设条件变化作相应的调整。
在一个实施例中,如图8所示,提供了一种签名值输出及验证方法,包括:
步骤802,获取初始签名值。
终端获取由签名算法得到的初始签名值。
步骤804,若初始签名值满足预设条件,则将初始签名值作为目标签名值。
预设条件根据初始签名值的数值特性进行设定,例如可以是初始签名值的奇偶性或者是与预设阈值之间的大小关系。若初始签名值满足预设条件,则终端将初始签名值作为目标签名值。
步骤806,若初始签名值不满足预设条件,则根据初始签名值确定目标签名值。
若初始签名值不满足预设条件,终端根据初始签名值重新确定目标签名值。
步骤808,将目标签名值发送至区块链节点。
得到目标签名值后,终端将目标签名值发送至区块链节点。
步骤810,接收终端发送的目标签名值。
区块链节点接收终端发送的目标签名值,其中,目标签名值基于初始签名值得到,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足所述预设条件,则根据初始签名值确定目标签名值。
步骤812,若目标签名值满足预设条件,则继续执行后续的签名验证流程。
若目标签名值满足预设条件,区块链节点判定目标签名值有效。其中,预设条件根据初始签名值的数值特性进行设定,例如可以是初始签名值的奇偶性或者是与预设阈值之间的大小关系。
步骤814,若目标签名值不满足预设条件,则判定目标签名值无效。
若目标签名值不满足预设条件,区块链节点判定目标签名值无效。
上述实施例中的签名值输出及验证方法,在终端保证输出的目标签名值准确的前提下,将目标签名值发送至区块链节点,根据预设条件进行验证,若目标签名值满足预设条件,则继续进行后续的验证流程;若不满足预设条件,则判定目标签名值无效,中止后续的验证流程,这样可以避免将恶意修改的签名值也验证为有效,防止后续交易哈希值发生改变带来的交易问题,即避免了签名延展性问题。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的签名值输出方法的签名值输出装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个签名值输出装置实施例中的具体限定可以参见上文中对于签名值输出方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种签名值输出装置,包括:获取模块902、第一模块904、第二模块906和输出模块908,其中:
获取模块902,用于获取初始签名值;
第一模块904,用于若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
第二模块906,用于若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出模块908,用于输出所述目标签名值。
在一个实施例中,第一模块904,还用于若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;
第二模块906,还用于若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
在一个实施例中,签名值输出装置还包括确定模块,用于确定所述初始签名值为第一类别数的方式,包括:
若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果不为0,则确定所述初始签名值为第一类别数;
若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。
在一个实施例中,第一模块904,还用于若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;
第二模块906,还用于若所述初始签名值小于所述预设阈值,则根据所述初始签名值确定所述目标签名值。
在一个实施例中,第二模块906,还用于:
获取椭圆曲线参数基点的阶数;
根据所述初始签名值和所述椭圆曲线参数基点的阶数,确定所述目标签名值。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的签名值验证方法的签名值验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的签名值验证装置实施例中的具体限定可以参见上文中对于签名值验证方法的限定,在此不再赘述。
在一个实施例中,提供了一种签名值验证装置,包括:
接收模块,用于接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
第三模块,用于若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
第四模块,用于若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
上述签名值输出装置或签名值验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种签名值输出方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中签名值输出方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中签名值输出方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例中签名值输出方法的步骤。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中签名值验证方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中签名值验证方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例中签名值验证方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种签名值输出方法,其特征在于,所述方法包括:
获取初始签名值;
若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出所述目标签名值。
2.根据权利要求1所述的方法,其特征在于,所述预设条件为第一类别数,所述第一类别数为奇数或偶数中的一个;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;
所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值,包括:
若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
3.根据权利要求2所述的方法,其特征在于,确定所述初始签名值为第一类别数的方式,包括:
若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果不为0,则确定所述初始签名值为第一类别数;
若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。
4.根据权利要求1所述的方法,其特征在于,所述预设条件为大于预设阈值,所述预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;
所述若所述初始签名值不满足预设条件,则根据初始签名值确定所述目标签名值,包括:
若所述初始签名值小于所述预设阈值,则根据所述初始签名值确定所述目标签名值。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述初始签名值确定所述目标签名值,包括:
获取椭圆曲线参数基点的阶数;
根据所述初始签名值和所述椭圆曲线参数基点的阶数,确定所述目标签名值。
6.一种签名值验证方法,其特征在于,所述方法包括:
接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定目标签名值;
若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
7.一种签名值输出装置,其特征在于,所述装置包括:
获取模块,用于获取初始签名值;
第一模块,用于若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
第二模块,用于若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
输出模块,用于输出所述目标签名值。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210241280.XA CN114614992B (zh) | 2022-03-11 | 2022-03-11 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210241280.XA CN114614992B (zh) | 2022-03-11 | 2022-03-11 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114614992A true CN114614992A (zh) | 2022-06-10 |
CN114614992B CN114614992B (zh) | 2023-10-13 |
Family
ID=81862899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210241280.XA Active CN114614992B (zh) | 2022-03-11 | 2022-03-11 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114614992B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243680A1 (en) * | 2011-03-23 | 2012-09-27 | Research In Motion Limited | Incorporating data into an ecdsa signature component |
CN105025474A (zh) * | 2015-06-26 | 2015-11-04 | 安徽大学 | 一种面向无线传感网的轻量级数字签名方法 |
US20160098591A1 (en) * | 2013-05-07 | 2016-04-07 | Zienon Llc | Method and device for matching signatures on the basis of motion signature information |
CN106712937A (zh) * | 2016-12-22 | 2017-05-24 | 北京海泰方圆科技股份有限公司 | 数据的签名方法、装置及系统 |
CN108964916A (zh) * | 2018-08-03 | 2018-12-07 | 元科技控股有限公司 | 签名生成方法、生成装置、签名验证方法和验证装置 |
CN110233736A (zh) * | 2019-06-19 | 2019-09-13 | 核芯互联(北京)科技有限公司 | 一种数字签名生成方法、验证方法、装置、设备、介质 |
CN110351089A (zh) * | 2019-05-23 | 2019-10-18 | 西安电子科技大学 | 一种数据签名认证方法及装置 |
CN111523889A (zh) * | 2020-04-17 | 2020-08-11 | 昆明大棒客科技有限公司 | 多重签名实现方法、装置、设备和存储介质 |
CN111628868A (zh) * | 2020-05-26 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
US10778428B1 (en) * | 2019-05-31 | 2020-09-15 | Allibaba Group Holding Limited | Method for restoring public key based on SM2 signature |
CN112380584A (zh) * | 2021-01-13 | 2021-02-19 | 北京笔新互联网科技有限公司 | 区块链数据更新方法、装置、电子设备和存储介质 |
CN113221133A (zh) * | 2021-04-09 | 2021-08-06 | 联想(北京)有限公司 | 数据传输方法以及装置 |
CN113300846A (zh) * | 2020-02-24 | 2021-08-24 | 华为技术有限公司 | 签名方法、终端设备及网络设备 |
CN113573304A (zh) * | 2020-04-28 | 2021-10-29 | 刘琦 | 签名实现、验签方法以及签名终端、验签终端和存储介质 |
-
2022
- 2022-03-11 CN CN202210241280.XA patent/CN114614992B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243680A1 (en) * | 2011-03-23 | 2012-09-27 | Research In Motion Limited | Incorporating data into an ecdsa signature component |
US20160098591A1 (en) * | 2013-05-07 | 2016-04-07 | Zienon Llc | Method and device for matching signatures on the basis of motion signature information |
CN105025474A (zh) * | 2015-06-26 | 2015-11-04 | 安徽大学 | 一种面向无线传感网的轻量级数字签名方法 |
CN106712937A (zh) * | 2016-12-22 | 2017-05-24 | 北京海泰方圆科技股份有限公司 | 数据的签名方法、装置及系统 |
CN108964916A (zh) * | 2018-08-03 | 2018-12-07 | 元科技控股有限公司 | 签名生成方法、生成装置、签名验证方法和验证装置 |
CN110351089A (zh) * | 2019-05-23 | 2019-10-18 | 西安电子科技大学 | 一种数据签名认证方法及装置 |
US10778428B1 (en) * | 2019-05-31 | 2020-09-15 | Allibaba Group Holding Limited | Method for restoring public key based on SM2 signature |
CN110233736A (zh) * | 2019-06-19 | 2019-09-13 | 核芯互联(北京)科技有限公司 | 一种数字签名生成方法、验证方法、装置、设备、介质 |
CN113300846A (zh) * | 2020-02-24 | 2021-08-24 | 华为技术有限公司 | 签名方法、终端设备及网络设备 |
CN111523889A (zh) * | 2020-04-17 | 2020-08-11 | 昆明大棒客科技有限公司 | 多重签名实现方法、装置、设备和存储介质 |
CN113573304A (zh) * | 2020-04-28 | 2021-10-29 | 刘琦 | 签名实现、验签方法以及签名终端、验签终端和存储介质 |
CN111628868A (zh) * | 2020-05-26 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
CN112380584A (zh) * | 2021-01-13 | 2021-02-19 | 北京笔新互联网科技有限公司 | 区块链数据更新方法、装置、电子设备和存储介质 |
CN113221133A (zh) * | 2021-04-09 | 2021-08-06 | 联想(北京)有限公司 | 数据传输方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114614992B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10367645B2 (en) | Proof-of-work for smart contracts on a blockchain | |
CN110750810A (zh) | 数据脱敏方法、装置、计算机设备和存储介质 | |
CN109145651B (zh) | 一种数据处理方法及装置 | |
CN112989411A (zh) | 隐私预算计算方法、装置、存储介质以及终端 | |
US20100146296A1 (en) | Apparatus and method for hash cryptography | |
CN114422226A (zh) | 令牌处理方法、装置、计算机设备、存储介质 | |
CN114089921A (zh) | 电力系统数据存储方法、装置、计算机设备和存储介质 | |
CN114553556B (zh) | 数据加密方法、装置、计算机设备和存储介质 | |
CN114614992B (zh) | 签名值输出及验证方法、装置、计算机设备、存储介质 | |
CN112165383A (zh) | 基于共享根密钥的加密方法、装置、设备及介质 | |
CN114006705B (zh) | 数字签名处理方法、装置、计算机设备和存储介质 | |
CN114745173A (zh) | 登陆验证方法、装置、计算机设备、存储介质和程序产品 | |
CN112632080B (zh) | 基于区块链的数据存储方法、装置及设备 | |
WO2021052033A1 (zh) | 数据调用方法、装置、设备及计算机可读存储介质 | |
CN110995437B (zh) | 基于etc系统的用户信息录入方法、装置、设备和存储介质 | |
CN117149739A (zh) | 数据转移验证方法、装置、设备、存储介质和程序产品 | |
CN117390490A (zh) | 用电信用报告的生成方法、装置、设备、存储介质和产品 | |
CN116245637A (zh) | 变量生成方法、装置、计算机设备和存储介质 | |
CN117792684A (zh) | 数据验证方法、装置、计算机设备、存储介质 | |
CN114170014A (zh) | 区块链交易的处理方法、装置、计算机设备和存储介质 | |
CN116910115A (zh) | 客群查询方法、装置、计算机设备和存储介质 | |
CN117914466A (zh) | 区块链的上链认证方法、装置、计算机设备和存储介质 | |
CN117436888A (zh) | 支付服务处理方法、装置、计算机设备和存储介质 | |
CN116012982A (zh) | 数字钥匙的认证方法、装置、计算机设备和存储介质 | |
CN115905340A (zh) | 用户画像验证方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |