签名值输出及验证方法、装置、计算机设备、存储介质与流程

文档序号:30379170发布日期:2022-06-11 03:04阅读:125来源:国知局
签名值输出及验证方法、装置、计算机设备、存储介质与流程

1.本技术涉及区块链技术领域,特别是涉及一种签名值输出及验证方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

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


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够避免签名延展性问题的签名值输出及验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种签名值输出方法。所述方法包括:
6.获取初始签名值;
7.若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
8.若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
9.输出所述目标签名值。
10.在其中一个实施例中,所述预设条件为第一类别数,所述第一类别数为奇数或偶数中的一个;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
11.若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;
12.所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值,包括:
13.若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
14.在其中一个实施例中,确定所述初始签名值为第一类别数的方式,包括:
15.若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,
若所述取余结果不为0,则确定所述初始签名值为第一类别数;
16.若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。
17.在其中一个实施例中,所述预设条件为大于预设阈值,所述预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;所述若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值,包括:
18.若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;
19.所述若所述初始签名值不满足预设条件,则根据所述初始签名值确定所述目标签名值,包括:
20.若所述初始签名值小于所述预设阈值,则根据所述初始签名值确定所述目标签名值。
21.在其中一个实施例中,所述根据所述初始签名值确定所述目标签名值,包括:
22.获取椭圆曲线参数基点的阶数;
23.根据所述初始签名值和所述椭圆曲线参数基点的阶数,确定所述目标签名值。
24.第二方面,本技术提供了一种签名值输出装置。所述装置包括:
25.获取模块,用于获取初始签名值;
26.第一模块,用于若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
27.第二模块,用于若所述初始签名值不满足预设条件,则根据所述初始签名值确定所述目标签名值;
28.输出模块,用于输出所述目标签名值。
29.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
30.获取初始签名值;
31.若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
32.若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
33.输出所述目标签名值。
34.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法的步骤:
35.获取初始签名值;
36.若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
37.若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
38.输出所述目标签名值。
39.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40.获取初始签名值;
41.若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
42.若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
43.输出所述目标签名值。
44.上述签名值输出方法、装置、计算机设备、存储介质和计算机程序产品,通过获取初始签名值;若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;输出所述目标签名值。本技术根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于后续利用目标签名值的顺利验证。
45.第六方面,本技术提供了一种签名值验证方法。所述方法包括:
46.接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
47.若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
48.若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
49.第七方面,本技术提供了一种签名值验证装置。所述装置包括:
50.接收模块,用于接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
51.第三模块,用于若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
52.第四模块,用于若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
53.第八方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
54.接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
55.若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
56.若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
57.第九方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法的步骤:
58.接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
59.若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
60.若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
61.第十方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
62.接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
63.若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
64.若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。
65.上述签名值验证方法、装置、计算机设备、存储介质和计算机程序产品,通过接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定目标签名值;若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;若所述目标签名值不满足所述预设条件,则判定所述目标签名值无效。本技术在接收到目标签名值后,判断目标签名值是否满足预设条件,在目标签名值满足预设条件后,再进行后续的验证流程,如果目标签名值不满足预设条件,则判定目标签名值无效,中止后续的验证流程,这样可以避免将恶意修改的签名值也验证为有效,防止后续交易哈希值发生改变带来的交易问题,即避免了签名延展性问题。
附图说明
66.图1为一个实施例中签名值输出方法及验证方法的应用环境图;
67.图2为一个实施例中签名值输出方法的流程示意图;
68.图3为另一个实施例中签名值输出方法的流程示意图;
69.图4为另一个实施例中签名值输出方法的流程示意图;
70.图5为另一个实施例中签名值输出方法的流程示意图;
71.图6为一个实施例中签名值验证方法的流程示意图;
72.图7为另一个实施例中签名值验证方法的流程示意图;
73.图8为一个实施例中签名值输出及验证方法的流程示意图;
74.图9为一个实施例中签名值输出装置的结构框图;
75.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
76.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
77.本技术实施例提供的签名值输出方法及验证方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与区块链节点104进行通信。数据存储系统可以存储区块链节点104需要处理的数据。数据存储系统可以集成在区块链节点104上,也可以放在云上或其他网络服务器上。终端102根据签名算法获取初始签名值,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值后输出目标签名值,并将目标签名值发送至区块链节点进行签名值验证。区块链节点接收到目标签名值后,再次判断目标签名值是否满足预设条件,如果目标签名值满足预设条件,则继续执行后续的签名验证流程;若目标签名值不满足预设条件,则判定目标签名值无效。
78.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能
车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。区块链节点104相当于区块链中的服务器,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
79.在一个实施例中,如图2所示,提供了一种签名值输出方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
80.步骤202,获取初始签名值。
81.根据签名算法获取初始签名值。其中,签名算法例如可以是rsa算法、dsa算法、ecdsa算法等中的任一种。根据签名算法得到的签名值一般包括两部分,第一部分和第二部分,也称为r部分和s部分,例如签名值(r,s)中第一部分为r,第二部分为s。由于在传输过程中,签名值的第一部分一般不会发生变化,本技术实施例中描述的初始签名值主要是指第二部分的值,即s部分的值。
82.步骤204,若初始签名值满足预设条件,则将初始签名值作为目标签名值。
83.若初始签名值满足预设条件,则将初始签名值的s部分作为目标签名值的s部分。其中,预设条件可以根据初始签名值的数值特性进行设定,包括签名值的s部分的奇偶性或者与预设阈值之间的大小关系。
84.步骤206,若初始签名值不满足预设条件,则根据初始签名值确定目标签名值。
85.若初始签名值不满足预设条件,则根据初始签名值重新确定目标签名值,需要说明的是,本实施例中,根据初始签名值重新确定目标签名值,排除了直接将初始签名值作为目标签名值的情形。
86.步骤208,输出目标签名值。
87.得到目标签名值后,将目标签名值输出并发送至区块链节点进行签名值验证。
88.上述实施例中的签名值输出方法,通过获取初始签名值;若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值;输出所述目标签名值。本技术实施例根据预设条件对初始签名值进行判断,在初始签名值满足预设条件和不满足预设条件时,分别输出相应的目标签名值,使得最终输出的目标签名值都是满足相应预设条件的,保证了目标签名值的准确性,有利于保证区块链交易顺利完成。
89.在一个实施例中,预设条件为第一类别数,其中,第一类别数为奇数或偶数中的一个;若初始签名值满足预设条件,则将初始签名值作为目标签名值的步骤204,包括:
90.若初始签名值为第一类别数,则将初始签名值作为目标签名值;
91.第一类别数为奇数或偶数中的一个,当第一类别数为奇数,即预设条件为奇数时,若初始签名值判定为奇数,则直接将初始签名值作为目标签名值。同理,当第一类别数为偶数,即预设条件为偶数时,若判定初始签名值为偶数,则直接将初始签名值作为目标签名值。
92.若初始签名值不满足预设条件,则根据初始签名值确定目标签名值的步骤206,包括:
93.若初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
94.本实施例中,当第一类别数为奇数时,则第二类别数为偶数;当第一类别数为偶数时,则第二类别数为奇数。预设条件为第一类别数,当第一类别数为奇数时,第二类别数为
偶数,此时,若初始签名值为第二类别数,即初始签名值为偶数时,则根据初始签名值重新确定目标签名值。同理,预设条件为第一类别数,当第一类别数为偶数时,第二类别数为奇数,此时,若初始签名值为第二类别数,即初始签名值为奇数时,则根据初始签名值重新确定目标签名值。
95.在一个实施例中,确定初始签名值为第一类别数的方式,包括:
96.若第一类别数为奇数,将初始签名值与2进行取余运算,得到取余结果,若取余结果不为0,则确定初始签名值为第一类别数;
97.若第一类别数为偶数,将初始签名值与2进行取余运算,得到取余结果,若取余结果为0,则确定初始签名值为第一类别数。
98.在一个实施例中,预设条件为大于预设阈值,其中,预设阈值基于椭圆曲线参数基点的阶数的二分之一确定;若初始签名值满足预设条件,则将所述初始签名值作为目标签名值的步骤204,包括:
99.若初始签名值大于预设阈值,则将初始签名值作为目标签名值;
100.若初始签名值不满足预设条件,则根据初始签名值确定目标签名值的步骤206,包括:
101.若初始签名值小于预设阈值,则根据初始签名值确定目标签名值。
102.本实施例中,预设条件为大于预设阈值,其中,预设阈值基于椭圆曲线参数基点的阶数的二分一确定,具体地,预设阈值可以是椭圆曲线参数基点的阶数的二分之一,或者是椭圆曲线参数基点的阶数的二分之一进行取整后的值。例如,假设椭圆曲线参数基点的阶数为n,那么,预设阈值可以是n/2,或者是[n/2],其中,[]为取整符号。
[0103]
若初始签名值的s部分的值大于预设阈值,则将初始签名值作为目标签名值;若初始签名值的s部分的值小于预设阈值,则根据初始签名值重新确定目标签名值。
[0104]
在一个实施例中,步骤206中根据初始签名值确定目标签名值,包括:
[0105]
获取椭圆曲线参数基点的阶数;
[0106]
根据初始签名值和椭圆曲线参数基点的阶数,确定目标签名值。
[0107]
本实施例中,通过获取椭圆曲线参数基点的阶数,可根据椭圆曲线参数基点的阶数和初始签名值的s部分的值,来确定目标签名值。在一个可能的实现方式中,目标签名值为-s mod n,其中,s代表初始签名值的s部分的值,n代表椭圆曲线参数基点的阶数,mod为取模运算。
[0108]
在一个实施例中,如图3所示,签名值输出方法包括:
[0109]
步骤302,获取初始签名值s。
[0110]
步骤304,预设条件为奇数,若初始签名值s为奇数,则将初始签名值s作为目标签名值。
[0111]
步骤306,若初始签名值s为偶数,则将-s mod n作为目标签名值,其中,n为椭圆曲线参数基点的阶数。
[0112]
步骤308,将目标签名值发送至区块链节点。
[0113]
在一个实施例中,如图4所示,签名值输出方法包括:
[0114]
步骤402,获取初始签名值s。
[0115]
步骤404,预设条件为偶数,若初始签名值s为偶数,则将初始签名值s作为目标签
名值。
[0116]
步骤406,若初始签名值s为奇数,则将-s mod n作为目标签名值,其中,n为椭圆曲线参数基点的阶数。
[0117]
步骤408,将目标签名值发送至区块链节点。
[0118]
在一个实施例中,如图5所示,签名值输出方法包括:
[0119]
步骤502,获取初始签名值s。
[0120]
步骤504,预设条件为大于预设阈值,其中,预设阈值为n/2,若初始签名值s大于n/2,则将初始签名值s作为目标签名值。
[0121]
步骤506,若初始签名值s小于n/2,则将-s mod n作为目标签名值。
[0122]
步骤508,将目标签名值发送至区块链节点。
[0123]
在一个实施例中,如图6所示,提供了一种签名值验证方法,以该方法应用于图1中的区块链节点104为例进行说明,包括以下步骤:
[0124]
步骤602,接收目标签名值;其中,目标签名值基于初始签名值得到,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值。
[0125]
本实施例中,区块链节点接收从终端发送的目标签名值,其中,目标签名值是基于初始签名值得到,初始签名值可根据签名算法得到。根据签名算法得到的签名值通常包括两部分,r部分和s部分,由于在传输过程中,签名值的r部分一般不会发生变化,因此本技术实施例中描述的初始签名值主要指的是s部分的值。具体得到目标签名值的过程可参考签名值输出方法中的步骤202至步骤208的说明。
[0126]
步骤604,若目标签名值满足预设条件,则继续执行后续的签名验证流程。
[0127]
预设条件,可以根据初始签名值的数值特性进行设定,包括签名值的s部分的奇偶性或者与预设阈值之间的大小关系。若目标签名值满足预设条件,则区块链节点判定当前的目标签名值有效,则继续执行后续的签名验证流程。其中,后续的签名验证流程可以是公钥验证流程和/或签名文件验证流程。
[0128]
步骤606,若目标签名值不满足预设条件,则判定目标签名值无效。
[0129]
若目标签名值不满足预设条件,则判定目标签名值无效,同时该目标签名值对应的交易无效。
[0130]
本实施例中的签名值验证方法,通过接收目标签名值;其中,目标签名值基于初始签名值得到,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足预设条件,则根据初始签名值确定目标签名值;若目标签名值满足预设条件,则判定目标签名值有效;若目标签名值不满足预设条件,则判定目标签名值无效。本技术实施例在接收到目标签名值后,判断目标签名值是否满足预设条件,在目标签名值满足预设条件后,再进行后续的其他流程,如果目标签名值不满足预设条件,则判定目标签名值无效,中止后续的其他签名验证流程,即判定该目标签名值对应的交易无效,这样可以避免将恶意修改的签名值也验证为有效,防止后续交易哈希值发生改变带来的交易问题,即避免了签名延展性问题,有利于区块链交易的正常进行。
[0131]
在一个实施例中,如图7所示,签名值验证方法,包括:
[0132]
步骤702,接收终端发送的目标签名值。
[0133]
步骤704,预设条件为奇数,若目标签名值为奇数,则继续执行后续的签名验证流程。
[0134]
步骤706,若目标签名值为偶数,则判定目标签名值无效。
[0135]
当预设条件为偶数或者预设条件为大于预设阈值时,同理,签名验证方法根据上述步骤702至步骤706实现,只是根据相应预设条件变化作相应的调整。
[0136]
在一个实施例中,如图8所示,提供了一种签名值输出及验证方法,包括:
[0137]
步骤802,获取初始签名值。
[0138]
终端获取由签名算法得到的初始签名值。
[0139]
步骤804,若初始签名值满足预设条件,则将初始签名值作为目标签名值。
[0140]
预设条件根据初始签名值的数值特性进行设定,例如可以是初始签名值的奇偶性或者是与预设阈值之间的大小关系。若初始签名值满足预设条件,则终端将初始签名值作为目标签名值。
[0141]
步骤806,若初始签名值不满足预设条件,则根据初始签名值确定目标签名值。
[0142]
若初始签名值不满足预设条件,终端根据初始签名值重新确定目标签名值。
[0143]
步骤808,将目标签名值发送至区块链节点。
[0144]
得到目标签名值后,终端将目标签名值发送至区块链节点。
[0145]
步骤810,接收终端发送的目标签名值。
[0146]
区块链节点接收终端发送的目标签名值,其中,目标签名值基于初始签名值得到,若初始签名值满足预设条件,则将初始签名值作为目标签名值;若初始签名值不满足所述预设条件,则根据初始签名值确定目标签名值。
[0147]
步骤812,若目标签名值满足预设条件,则继续执行后续的签名验证流程。
[0148]
若目标签名值满足预设条件,区块链节点判定目标签名值有效。其中,预设条件根据初始签名值的数值特性进行设定,例如可以是初始签名值的奇偶性或者是与预设阈值之间的大小关系。
[0149]
步骤814,若目标签名值不满足预设条件,则判定目标签名值无效。
[0150]
若目标签名值不满足预设条件,区块链节点判定目标签名值无效。
[0151]
上述实施例中的签名值输出及验证方法,在终端保证输出的目标签名值准确的前提下,将目标签名值发送至区块链节点,根据预设条件进行验证,若目标签名值满足预设条件,则继续进行后续的验证流程;若不满足预设条件,则判定目标签名值无效,中止后续的验证流程,这样可以避免将恶意修改的签名值也验证为有效,防止后续交易哈希值发生改变带来的交易问题,即避免了签名延展性问题。
[0152]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0153]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的签名值
输出方法的签名值输出装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个签名值输出装置实施例中的具体限定可以参见上文中对于签名值输出方法的限定,在此不再赘述。
[0154]
在一个实施例中,如图9所示,提供了一种签名值输出装置,包括:获取模块902、第一模块904、第二模块906和输出模块908,其中:
[0155]
获取模块902,用于获取初始签名值;
[0156]
第一模块904,用于若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;
[0157]
第二模块906,用于若所述初始签名值不满足预设条件,则根据所述初始签名值确定目标签名值;
[0158]
输出模块908,用于输出所述目标签名值。
[0159]
在一个实施例中,第一模块904,还用于若所述初始签名值为所述第一类别数,则将所述初始签名值作为目标签名值;
[0160]
第二模块906,还用于若所述初始签名值为第二类别数,则根据所述初始签名值确定目标签名值,所述第二类别数为奇数或偶数中的另一个。
[0161]
在一个实施例中,签名值输出装置还包括确定模块,用于确定所述初始签名值为第一类别数的方式,包括:
[0162]
若所述第一类别数为奇数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果不为0,则确定所述初始签名值为第一类别数;
[0163]
若所述第一类别数为偶数,将所述初始签名值与2进行取余运算,得到取余结果,若所述取余结果为0,则确定所述初始签名值为第一类别数。
[0164]
在一个实施例中,第一模块904,还用于若所述初始签名值大于所述预设阈值,则将所述初始签名值作为目标签名值;
[0165]
第二模块906,还用于若所述初始签名值小于所述预设阈值,则根据所述初始签名值确定所述目标签名值。
[0166]
在一个实施例中,第二模块906,还用于:
[0167]
获取椭圆曲线参数基点的阶数;
[0168]
根据所述初始签名值和所述椭圆曲线参数基点的阶数,确定所述目标签名值。
[0169]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的签名值验证方法的签名值验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的签名值验证装置实施例中的具体限定可以参见上文中对于签名值验证方法的限定,在此不再赘述。
[0170]
在一个实施例中,提供了一种签名值验证装置,包括:
[0171]
接收模块,用于接收目标签名值;所述目标签名值基于初始签名值得到,其中,若所述初始签名值满足预设条件,则将所述初始签名值作为目标签名值;若所述初始签名值不满足所述预设条件,则根据所述初始签名值确定所述目标签名值;
[0172]
第三模块,用于若所述目标签名值满足所述预设条件,则继续执行后续的签名验证流程;
[0173]
第四模块,用于若所述目标签名值不满足所述预设条件,则判定所述目标签名值
无效。
[0174]
上述签名值输出装置或签名值验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0175]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种签名值输出方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0176]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0177]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中签名值输出方法的步骤。
[0178]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中签名值输出方法的步骤。
[0179]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例中签名值输出方法的步骤。
[0180]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中签名值验证方法的步骤。
[0181]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中签名值验证方法的步骤。
[0182]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例中签名值验证方法的步骤。
[0183]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,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 random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0184]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0185]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1