消息的签名验证方法、装置、电子设备及存储介质与流程

未命名 08-02 阅读:73 评论:0


1.本公开涉及数据处理技术领域,尤其涉及一种消息的签名验证方法、装置、电子设备及存储介质。


背景技术:

2.区块链技术是一种基于去中心化的对等网络,其将密码学原理与共识机制相结合,来保障分布式各节点的数据连贯和持续,实现信息的即时验证、可追溯、难篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。
3.区块链共识算法中,为了保证交易可信和共识节点之间收发消息的确认,需要对消息的签名进行验证,以保证消息的安全性。现有的签名验证方法,验证效率较低,成本较高。


技术实现要素:

4.本公开提出一种消息的签名验证方法、装置、电子设备及存储介质。
5.本公开第一方面实施例提出了一种消息的签名验证方法,由第一设备执行,包括:生成私钥,并基于所述私钥生成公钥和伪随机点;
6.分别将所述公钥和所述伪随机点作为待验证点,对每个所述待验证点进行点验证,得到所述待验证点的点验证结果和验签参数;
7.在所述点验证结果指示所述点验证成功时,基于所述私钥和所述验签参数,对待传输消息进行签名,得到所述待传输消息的数字签名;
8.将所述待传输消息的密文和所述数字签名发送给第二设备进行签名验证。
9.本公开实施例中,生成私钥,并基于私钥生成公钥和伪随机点,分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数,在点验证结果指示点验证成功时,基于私钥和验签参数,对待传输消息进行签名,得到待传输消息的数字签名,将待传输消息的密文和数字签名发送给第二设备进行签名验证。
10.本公开实施例中,在对公钥和伪随机点进行点验证的过程中会计算验签参数,以通过验签参数对公钥和伪随机数的点验证,也即是说,在消息的签名生成阶段中会产生验签参数,而在对消息的签名验证阶段,需要再次计算验签参数对公钥进行点验证,本公开实施例将验签参数添加到数字签名中,在消息的签名验证阶段,可以直接从数字签名中获取验签参数对公钥进行点验证,而无需再次计算验签参数,避免了验签参数的重复计算,由此,提高签名验证的效率,降低了验签成本。
11.本公开第二方面实施例提出了一种消息的签名验证方法,由第二设备执行,包括:
12.接收第一设备发送的待传输消息的密文和所述待传输消息的数字签名;
13.对所述密文进行解密,得到所述待传输消息的明文;
14.基于所述数字签名携带的验签参数,对公钥进行点验证,生成点验证结果;
15.在所述点验证结果指示所述点验证成功时,基于所述公钥和所述明文对所述数字
签名进行签名验证,生成签名验证结果。
16.本公开实施例中,接收第一设备发送的待传输消息的密文和待传输业务消息的数字签名,对密文进行解密,得到待传输消息的明文,基于数字签名携带的验签参数,对公钥进行点验证,生成点验证结果,在点验证结果指示点验证成功时,基于公钥和明文对数字签名进行签名验证,生成签名验证结果。本公开实施例中,在消息的签名验证阶段,在对公钥进行点验证时可以直接从消息的数字签名中获取验签参数,而无需计算验签参数,节省了签名验证的时间,从而提高了签名验证的效率,节省了成本。
17.本公开第三方面实施例提出一种消息的签名验证装置,包括:生成模块,用于生成私钥,并基于所述私钥生成公钥和伪随机点;
18.点验证模块,用于分别将所述公钥和所述伪随机点作为待验证点,对每个所述待验证点进行点验证,得到所述待验证点的点验证结果和验签参数;
19.签名模块,用于在所述点验证结果指示所述点验证成功时,基于所述私钥和所述验签参数,对待传输消息进行签名,得到所述待传输消息的数字签名;
20.发送模块,用于将所述待传输消息的密文和所述数字签名发送给第二设备进行签名验证。
21.本公开第四方面实施例提出一种消息的签名验证装置,包括:接收模块,用于接收第一设备发送的待传输消息的密文和所述待传输消息的数字签名;
22.解密模块,用于对所述密文进行解密,得到所述待传输消息的明文;
23.点验证模块,用于基于所述数字签名携带的验签参数,对公钥进行点验证,生成点验证结果;
24.签名验证模块,用于在所述点验证结果指示所述点验证成功时,基于所述公钥和所述明文对所述数字签名进行签名验证,生成签名验证结果。
25.本公开第五方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面或第二方面的消息的签名验证方法。
26.本公开第六方面实施例提出了一种存储有计算机指令的计算机可读存储介质,所述计算机指令用于使所述计算机执行如上述第一方面或第二方面实施例的消息的签名验证方法。
27.本公开第七方面实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开第一方面或第二方面实施例的消息的签名验证方法。
28.本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
29.本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
30.图1为本公开一实施例提供的消息的签名验证方法的流程示意图;
31.图2为消息的签名原理示意图;
32.图3为本公开另一实施例提供的消息的签名验证方法的流程示意图;
33.图4为本公开另一实施例提供的消息的签名验证方法的流程示意图;
34.图5为本公开另一实施例提供的消息的签名验证方法的流程示意图;
35.图6为本公开另一实施例提供的消息的签名验证方法的流程示意图;
36.图7为本公开一实施例提供的消息的签名验证装置的结构示意图;
37.图8为本公开另一实施例提供的消息的签名验证装置的结构示意图;
38.图9为本公开一实施例提供的电子设备的框图。
具体实施方式
39.下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
40.下面参考附图描述本公开实施例的消息的签名验证方法、装置、电子设备及存储介质。
41.图1为本公开一实施例提供的消息的签名验证方法的流程示意图。如图1所示,该方法包含以下步骤:
42.s101,生成私钥,并基于私钥生成公钥和伪随机点。
43.需要说明的是,本公开实施例的消息的签名验证方法由第一设备执行,其中,第一设备可以为终端设备、服务器等,此处不做任何限定。
44.一些实施例中,可以生成一个位数为256位的随机数,并通过哈希函数sha512(secure hash standard,安全散列标准)函数将该随机数扩展为512为的随机数作为私钥:h0h1…h510h511

45.进一步地,如图2所示,可以对私钥:h0h1…h510h511
进行分割成左右两个部分,左半部分为lh:h0…h255
和右半部分为rh:h
256
…h511
,其中,lh:h0…h255
用于生成公钥,rh:h0…h255
用于生成伪随机点。
46.在得到lh:h0…h255
后,可以对lh:h0…h255
进行位运算,得到私钥标量a。具体的,可以将lh:h0…h255
中的h0、h1和h2置0,h
254
置1,h
255
置0,得到私钥标量a。
47.一些实施例中,可以随机选取椭圆曲线curve25519上非零点作为基点b,然后通过公式:a=a
×
b,计算得到公钥a。需要说明是,由计算公钥的公式可知,公钥为一个点。
48.一些实施例中,如图2所示,可以对待传输消息m进行哈希运算,得到消息预哈希mph,然后通过公式:r=hash(||h),对rh:h0…h255
和消息预哈希mph进行哈希运算,得到伪随机数r,其中,hash()表示哈希运算,在得到伪随机数r之后,可以通过公式:r=r
×
b,计算得到伪随机点r。
49.s102,分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数。
50.在获取公钥和伪随机点之后,可以分别将公钥和伪随机点作为待验证点,并对每个待验证点进行点验证,以确定公钥和伪随机点是否合法。
51.本公开实施例中,在对待验证点进行点验证之前,包括:获取待验证点的第一坐标参数和第二坐标参数,根据第一坐标参数和第二坐标参数,构建待验证的目标类结构点。
52.可选地,第一坐标参数为横坐标参数,第二坐标参数为纵坐标参数,或者,第一坐标参数为纵坐标参数,第二坐标参数为横坐标参数。
53.在获取待验证点的第一坐标参数和第二坐标参数后,可以按照目标类结构点的结构和设定点结构转换规则,将待验证点的点结构转换成对应的目标类结构点,然后按照设定点验证规则对目标类结构点进行点验证,生成点验证结果。
54.由于目标类结构点的结构特殊性,在按照设定点验证对目标类结构点进行点验证时,会得到相应的验签参数。其具体过程在下述实施例中进行解释说明。
55.s103,在点验证结果指示点验证成功时,基于私钥和验签参数,对待传输消息进行签名,得到待传输消息的数字签名。其中,待传输消息可以为待传输的业务消息,此处不做任何限定。
56.一些实施例中,在对待验证点进行点验证时,可以验证待验证点是否在椭圆曲线curve25519上,若是,则说明待验证点合法,相应地,点验证成功,若否,则说明待验证点非法,相应地,点验证失败。
57.s104,将待传输消息的密文和数字签名发送给第二设备进行签名验证。
58.可以采用对称加密算法生成密钥,并通过该密钥对待传输消息进行加密,得到该待传输消息的密文,并将该密文和待传输的数字签名发送给第二设备进行签名验证。
59.可选地,对称加密算法包括数据加密标准(des,data encryption standard)算法、国际数据加密(international data encryption algorithm,idea)算法和高级加密标准(advanced encryption standard,aes)算法等。
60.本公开实施例中,生成私钥,并基于私钥生成公钥和伪随机点,分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数,在点验证结果指示点验证成功时,基于私钥和验签参数,对待传输消息进行签名,得到待传输消息的数字签名,将待传输消息的密文和数字签名发送给第二设备进行签名验证。
61.本公开实施例中,在对公钥和伪随机点进行点验证的过程中会计算验签参数,以通过验签参数对公钥和伪随机数的点验证,也即是说,在消息的签名生成阶段中会产生验签参数,而在对消息的签名验证阶段,需要再次计算验签参数对公钥进行点验证,本公开实施例将验签参数添加到数字签名中,在消息的签名验证阶段,可以直接从数字签名中获取验签参数对公钥进行点验证,而无需再次计算验签参数,避免了验签参数的重复计算,由此,提高签名验证的效率,降低了验签成本。
62.图3为本公开一实施例提供的消息的签名验证方法的流程示意图,在上述实施例的基础上,进一步结合图3,对目标类结构点的构建过程进行解释说明,包含以下步骤:
63.s301,获取待验证点的第一坐标参数和第二坐标参数。
64.s302,基于第一坐标参数、第二坐标参数和预设点构建参数,生成待验证点的第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数。
65.本公开实施例中第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数用于验证待验证点是否在椭圆曲线curve25519上,因此,可以根据第一坐标参数、第二坐标参数、预设点构建参数和椭圆曲线curve25519,生成待验证点的第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数。
66.示例性的,假设椭圆曲线curve25519为-x2+y2=1+dx2y2,其中,d椭圆曲线
curve25519的参数,待验证点的第一坐标参数为x,第二坐标参数为y,预设构建参数为z,则第一点构建参数x=xz,第二点构建参数y=yz,第三点构建参数u=xy,第四点构建参数v=2dxy。
67.s303,将第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数进行组合,生成目标类结构点。
68.可选地,目标类结构点的点结构为(x,y,z,u,v)。
69.示例性的,若待验证点为(x,y),则可以按照步骤s302中的示例将该验证点构建成目标类结构点(x,y,z,u,v),其中,x=xz,y=yz,u=xy,v=2dxy。
70.本公开实施例中,基于第一坐标参数、第二坐标参数和预设点构建参数,生成待验证点的第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,将第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数进行组合,生成目标类结构点。本公开实施例中,由于目标类结构点的点结构具有特殊性,将待验证点构建成目标类结构点,可以提高点验证的速度。
71.图4为本公开一实施例提供的消息的签名验证方法的流程示意图,在上述实施例的基础上,进一步结合图4,对点验证的过程进行解释说明,包含以下步骤:
72.s401,对第一点构建参数和第二点构建参数进行第一组合运算,得到第一验证参数。
73.需要说明的是,本公开实施例以验证待验证点(x,y)是否在椭圆曲线curve25519:-x2+y2=1+dx2y2上为例进行解释说明。
74.假设目标结构点为(x,y,z,u,v),其中,x=xz,y=yz,u=xy,v=2dxy,在z=1时,可以通过下述公式计算第一验证参数:
75.b=(y-x)(y+x)+(y-x)(y+x)
76.其中,b为第一验证参数。
77.s402,对第二点构建参数和第三点构建参数进行第二组合运算,得到第二验证参数。
78.可以通过下述公式计算第二验证参数:
79.d=uv+2
80.s403,验证第一验证参数与第二验证参数是否相等,得到点验证结果。
81.在得到上述第一验证参数b和第二验证参数d后,可以验证第一验证验证参数b与第二验证参数d是否相等,若是,则待验证点(x,y)在椭圆曲线curve25519:-x2+y2=1+dx2y2上,相应地,点验证成功,若否,待验证点(x,y)不在椭圆曲线curve25519:-x2+y2=1+dx2y2上,相应地,点验证失败。
82.本公开实施例中,对第一点构建参数和第二点构建参数进行第一组合运算,得到第一验证参数,对第二点构建参数和第三点构建参数进行第二组合运算,得到第二验证参数,验证第一验证参数与第二验证参数是否相等,得到点验证结果。本公开实施中,通过验证参数对待验证点进行点验证,相比于传统的点验证方式,提高了运算效率,节省了运算的开销时间,提高了点验证的效率。
83.图5为本公开一实施例提供的消息的签名验证方法的流程示意图,如图5所示,该方法包含以下步骤:
84.s501,生成私钥,并基于私钥生成公钥和伪随机点。
85.s502,分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数。
86.其中,验签参数包括第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数。
87.关于步骤s501~s502的具体介绍可以参见上述相关实施例的介绍,此处不再赘述。
88.s503,在点验证结果指示点验证成功时,基于私钥,生成签名信息。
89.一些实施例中,可以通过下述公式计算得到签名信息:
90.s=(r+hash(r||||h)mod)amodl+r
91.其中,s为签名信息,r为伪随机数,r为伪随机点,a为公钥,mph为消息预哈希,a为私钥标量,l是一个质数,hash()表示哈希预算。
92.s504,基于签名信息、第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,对待传输消息进行签名,得到数字签名。
93.在获取签名信息s后,可以在将第一点构建参数x、第二点构建参数y、第三点构建参数u和第四点构建参数v添加到签名信息s中,得到目标签名信息s1,则传输消息的数字签名可以为(,s1)。
94.s505,将待传输消息的密文和数字签名发送给第二设备进行签名验证。
95.关于步骤s505的具体介绍可以参见上述相关实施例的介绍,此处不再赘述。
96.本公开实施例中,生成私钥,并基于私钥生成公钥和伪随机点,分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数,在点验证结果指示点验证成功时,基于私钥,生成签名信息,基于签名信息、第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,对待传输消息进行签名,得到数字签名,将待传输消息的密文和数字签名发送给第二设备进行签名验证。本公开实施例中,将验签参数添加到签名信息中,能够避免消息的签名验证阶段验签参数的重复计算,从而能够节省消息的签名验证时间,提高验证效率。
97.为了使得本领域技术人员更清晰地理解本公开,下面结合图2对签名过程进一步地进行解释说明,如图2所示,通过哈希运算将32bytes(即256位)的私钥sk扩展成64bytes,然后将64ytes的私钥sk划分成两个32ytes的部分:左半部分lh和右半部分rh。
98.对左半部分lh进行位运算得到私钥标量a,并通过公式:a=a
×
b计算得到公钥a,然后对公钥a进行点验证,并提取点验证过程中产生的中间参数(即验签参数):a.x,a.y,a.u=a.x
·
a.y,a.v=2d
·
a.u。其中,a.x为公钥a的第一点构建参数,a.y为公钥a的第二点构建参数,a.u为公钥a的第三点构建参数,a.v为公钥的第四点构建参数。
99.对右半部分rh进行哈希运算得到伪随机数r,然后通过公式:r=r
×
b,计算得到伪随机点b,对伪随机点r进行点验证,并提取点验证过程中产生的中间参数(即验签参数):r.x,r.y,r.u=r.x
·
r.y,r.v=2d
·
r.u。其中,r.x为伪随机点r的第一点构建参数,r.y为伪随机点r的第二点构建参数,r.u为伪随机点r的第三点构建参数,r.v为伪随机点r的第四点构建参数。
100.对消息m进行哈希运算得到消息预哈希mph,然后对公钥a、消息预哈希mph和伪随
机点r进行哈希运算,并进行取模运算,得到k,将k与a相乘并进行取模,得到ka,然后将ka与伪随机数r相加,得到签名信息s,并将已提取的中间参数添加的签名信息s中得到目标签名信息s1,最后根据目标签名信息s1和伪随机点r得到消息m的数字签名(,s )。
101.图6为本公开一实施例提供的消息的签名验证方法的流程示意图。如图6所示,该方法包含以下步骤:
102.s601,接收第一设备发送的待传输消息的密文和待传输消息的数字签名。
103.需要说明的是,本公开实施的消息的签名验证方法由第二设备执行,其中,第二设备可以为终端设备、服务器等,此处不做任何限定。
104.s602,对密文进行解密,得到待传输消息的明文。
105.可以采用对称加密算法生成密钥,通过密钥对待传输消息的密文进行解密,得到待传输消息的明文。
106.可选地,对称加密算法包括des算法、idea算法和aes算法等。
107.需要说明的是,第二设备与第二设备生成密钥的算法一致,即本公开实施例中的密钥与待传输消息的加密密钥一致,可以预先对第一设备和第二设备的对称加密算法进行约定。
108.s603,基于数字签名携带的验签参数,对公钥进行点验证,生成点验证结果。
109.其中,验签参数包括第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数。
110.可选地,对第一点构建参数和第二点构建参数进行第三组合运算,得到第三验证参数,对第二点构建参数和第三点构建参数进行第四组合运算,得到第四验证参数,验证第三验证参数和第四验证参数是否相等,得到点验证结果。
111.本公开实施例中,可以从数字签名(r,s1)的签名信息s1中提取第一点构建参数x、第二点构建参数y、第三点构建参数u和第四点构建参数v,然后根据第一点构建参数x和第二点构建参数y,获取第三验证参数e,以及根据第三点构建参数u和第四点构建参数v,获取第四验证参数c,最后验证第三验证参数e与第四验证参数c是否相等,得到点验证结果。
112.需要说明的是,本公开实施例中以验证公钥是否在椭圆曲线curve25519:-x2+y2=1+dx2y2上为例进行解释说明。
113.示例性的,可以采用下述公式计算第三验证参数:
114.e=(y-x)(y+x)
115.其中,e为第三验证参数,x为第一点构建参数,y为第二点构建参数。
116.可以采用下述公式计算第四验证参数:
117.c=uv
118.其中,c为第四验证参数,u为第三点构建参数,v为第四点构建参数。
119.进一步地,验证第三验证参数e与第四验证参数c是否相等,若是,则说明公钥在椭圆curve25519上,也即是说,公钥合法,相应地,点验证成功,若否,则说明公钥不在椭圆curve25519上,也即是说,公钥非法,相应地,点验证失败。
120.s604,在点验证结果指示点验证成功时,基于公钥和明文对数字签名进行签名验证,生成签名验证结果。
121.本公开实施例中,可以通过下述公式对数字签名进行验证:
122.s1×
b=r+hash(r||a||mph)
×a123.其中,s1为数字签名中的签名信息,r为伪随机点,b为椭圆curve25519的基点,a为公钥,mph为消息预哈希,hash()为哈希运算。其中,消息预哈希mph可以通过对明文m进行哈希运算得到。
124.本公开实施例中,接收第一设备发送的待传输消息的密文和待传输业务消息的数字签名,对密文进行解密,得到待传输消息的明文,基于数字签名携带的验签参数,对公钥对应的目标点进行点验证,生成点验证结果,在点验证结果指示点验证成功时,基于公钥和明文对数字签名进行签名验证,生成签名验证结果。本公开实施例中,在消息的签名验证阶段,在对公钥进行点验证时可以直接从消息的数字签名中获取验签参数,而无需计算验签参数,节省了签名验证的时间,从而提高了签名验证的效率,节省了成本。
125.为了实现上述第一方面实施例的消息的签名验证方法,本公开提出了一种消息的签名验证装置,图7为本公开一实施例的消息的签名验证装置的结构示意图。如图7所示,消息的签名验证装置700包括:
126.生成模块710,用于生成私钥,并基于私钥生成公钥和伪随机点;
127.点验证模块720,用于分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数;
128.签名模块730,用于在点验证结果指示点验证成功时,基于私钥和验签参数,对待传输消息进行签名,得到待传输消息的数字签名;
129.发送模块740,用于将待传输消息的密文和数字签名发送给第二设备进行签名验证。
130.在本公开的一个实施例中,点验证模块720,还用于:对待验证点进行点验证之前,获取待验证点的第一坐标参数和第二坐标参数,根据第一坐标参数和第二坐标参数,构建待验证点的目标类结构点。
131.在本公开的一个实施例中,点验证模块720,还用于:基于第一坐标参数、第二坐标参数和预设点构建参数,生成待验证点的第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数;将第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数进行组合,生成目标类结构点。
132.在本公开的一个实施例中,点验证模块720,还用于:对第一点构建参数和第二点构建参数进行第一组合运算,得到第一验证参数;对第二点构建参数和第三点构建参数进行第二组合运算,得到第二验证参数;验证第一验证参数和第二验证参数是否相等,得到点验证结果。
133.在本公开的一个实施例中,验签参数包括第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,签名模块730,还用于:基于私钥,生成签名信息;基于签名信息、第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,对待传输消息进行签名,得到数字签名。。
134.需要说明的是,上述对第一方面的消息的签名验证方法实施例的解释说明,也适用于本公开实施例的消息的签名验证装置,具体过程此处不再赘述。
135.本公开实施例中,生成私钥,并基于私钥生成公钥和伪随机点,分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数,
在点验证结果指示点验证成功时,基于私钥和验签参数,对待传输消息进行签名,得到待传输消息的数字签名,将待传输消息的密文和数字签名发送给第二设备进行签名验证。
136.本公开实施例中,在对公钥和伪随机点进行点验证的过程中会计算验签参数,以通过验签参数对公钥和伪随机数的点验证,也即是说,在消息的签名生成阶段中会产生验签参数,而在对消息的签名验证阶段,需要再次计算验签参数对公钥进行点验证,本公开实施例将验签参数添加到数字签名中,在消息的签名验证阶段,可以直接从数字签名中获取验签参数对公钥进行点验证,而无需再次计算验签参数,避免了验签参数的重复计算,由此,提高签名验证的效率,降低了验签成本。
137.为了实现上述第二方面实施例的消息的签名验证方法,本公开提出了一种消息的签名验证装置,图8为本公开一实施例的消息的签名验证装置的结构示意图。如图8所示,消息的签名验证装置800包括:
138.接收模块810,用于接收第一设备发送的待传输消息的密文和待传输消息的数字签名;
139.解密模块820,用于对密文进行解密,得到待传输消息的明文;
140.点验证模块830,用于基于数字签名携带的验签参数,对公钥进行点验证,生成点验证结果;
141.签名验证模块840,用于在点验证结果指示点验证成功时,基于公钥和明文对数字签名进行签名验证,生成签名验证结果。
142.在本公开的一个实施例中,验签参数包括第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,签名验证模块840,还用于:对第一点构建参数和第二点构建参数进行第三组合运算,得到第三验证参数;对第二点构建参数和第三点构建参数进行第四组合运算,得到第四验证参数;验证第三验证参数和第四验证参数是否相等,得到点验证结果。
143.需要说明的是,上述对第二方面的消息的签名验证方法实施例的解释说明,也适用于本公开实施例的消息的签名验证装置,具体过程此处不再赘述。
144.本公开实施例中,接收第一设备发送的待传输消息的密文和待传输业务消息的数字签名,对密文进行解密,得到待传输消息的明文,基于数字签名携带的验签参数,对公钥对应的目标点进行点验证,生成点验证结果,在点验证结果指示点验证成功时,基于公钥和明文对数字签名进行签名验证,生成签名验证结果。本公开实施例中,在消息的签名验证阶段,在对公钥进行点验证时可以直接从消息的数字签名中获取验签参数,而无需计算验签参数,节省了签名验证的时间,从而提高了签名验证的效率,节省了成本。
145.如图9所示,是根据本公开实施例的消息的签名验证方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,智能语音交互设备、个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
146.如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安
装在公共主板上或者根据需要以其它方式安装。处理器901可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
147.存储器902即为本公开所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本公开所提供的消息的签名验证方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的消息的签名验证方法。
148.存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的消息的签名验证方法对应的程序指令/模块。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的消息的签名验证方法。
149.存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据消息的签名验证方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至消息的签名验证方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
150.消息的签名验证方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
151.输入装置903可接收输入的数字或字符信息,以及产生与消息的签名验证方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
152.为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开前述实施例提出的消息的签名验证方法。
153.此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数
据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
154.这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
155.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
156.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
157.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。
158.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
159.在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
160.尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种消息的签名验证方法,其特征在于,由第一设备执行,包括:生成私钥,并基于所述私钥生成公钥和伪随机点;分别将所述公钥和所述伪随机点作为待验证点,对每个所述待验证点进行点验证,得到所述待验证点的点验证结果和验签参数;在所述点验证结果指示所述点验证成功时,基于所述私钥和所述验签参数,对待传输消息进行签名,得到所述待传输消息的数字签名;将所述待传输消息的密文和所述数字签名发送给第二设备进行签名验证。2.根据权利要求1所述的方法,其特征在于,所述对所述待验证点进行点验证之前,包括:获取所述待验证点的第一坐标参数和第二坐标参数;根据所述第一坐标参数和所述第二坐标参数,构建所述待验证点的目标类结构点。3.根据权利要求2所述的方法,其特征在于,所述目标类结构点的构建过程,包括:基于所述第一坐标参数、所述第二坐标参数和预设点构建参数,生成所述待验证点的第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数;将所述第一点构建参数、所述第二点构建参数、所述第三点构建参数和所述第四点构建参数进行组合,生成所述目标类结构点。4.根据权利要求3所述的方法,其特征在于,所述点验证的过程,包括:对所述第一点构建参数和所述第二点构建参数进行第一组合运算,得到第一验证参数;对所述第二点构建参数和所述第三点构建参数进行第二组合运算,得到第二验证参数;验证所述第一验证参数与所述第二验证参数是否相等,得到所述点验证结果。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述验签参数包括第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,基于所述私钥和所述验签参数,对待传输消息进行签名,得到所述待传输消息的数字签名,包括:基于所述私钥,生成签名信息;基于所述签名信息、所述第一点构建参数、所述第二点构建参数、所述第三点构建参数和所述第四点构建参数,对所述待传输消息进行签名,得到所述数字签名。6.一种签名验证方法,其特征在于,由第二设备执行,包括:接收第一设备发送的待传输消息的密文和所述待传输消息的数字签名;对所述密文进行解密,得到所述待传输消息的明文;基于所述数字签名携带的验签参数,对公钥进行点验证,生成点验证结果;在所述点验证结果指示所述点验证成功时,基于所述公钥和所述明文对所述数字签名进行签名验证,生成签名验证结果。7.根据权利要求6所述的方法,其特征在于,所述验签参数包括第一点构建参数、第二点构建参数、第三点构建参数和第四点构建参数,所述基于所述数字签名携带的验签参数,对公钥进行点验证,生成点验证结果,包括:对所述第一点构建参数和所述第二点构建参数进行第三组合运算,得到第三验证参数;
对所述第二点构建参数和所述第三点构建参数进行第四组合运算,得到第四验证参数;验证所述第三验证参数与所述第四验证参数是否相等,得到所述点验证结果。8.一种消息的签名验证装置,其特征在于,包括:生成模块,用于生成私钥,并基于所述私钥生成公钥和伪随机点;点验证模块,用于分别将所述公钥和所述伪随机点作为待验证点,对每个所述待验证点进行点验证,得到所述待验证点的点验证结果和验签参数;签名模块,用于在所述点验证结果指示所述点验证成功时,基于所述私钥和所述验签参数,对待传输消息进行签名,得到所述待传输消息的数字签名;发送模块,用于将所述待传输消息的密文和所述数字签名发送给第二设备进行签名验证。9.一种消息的签名验证装置,其特征在于,包括:接收模块,用于接收第一设备发送的待传输消息的密文和所述待传输消息的数字签名;解密模块,用于对所述密文进行解密,得到所述待传输消息的明文;点验证模块,用于基于所述数字签名携带的验签参数,对公钥进行点验证,生成点验证结果;签名验证模块,用于在所述点验证结果指示所述点验证成功时,基于所述公钥和所述明文对所述数字签名进行签名验证,生成签名验证结果。10.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-5或权利要求6-7中任一项所述的方法。11.一种存储有计算机指令的计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1-5或权利要求6-7中任一项所述的方法。12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-5或权利要求6-7中任一项所述的方法。

技术总结
本公开提出一种消息的签名验证方法、装置、电子设备及存储介质,其中,消息的签名验证方法包括:生成私钥,并基于私钥生成公钥和伪随机点;分别将公钥和伪随机点作为待验证点,对每个待验证点进行点验证,得到待验证点的点验证结果和验签参数;在点验证结果指示点验证成功时,基于私钥和验签参数,对待传输消息进行签名,得到待传输消息的数字签名;将待传输消息的密文和数字签名发送给第二设备进行签名验证。本公开将验签参数添加到数字签名中,在消息的签名验证阶段,可以直接从数字签名中获取验签参数对公钥进行点验证,而无需再次计算验签参数,避免了验签参数的重复计算,由此,提高签名验证的效率,降低了验签成本。降低了验签成本。降低了验签成本。


技术研发人员:杨孟青 刘元木 张爽 王义
受保护的技术使用者:京东科技控股股份有限公司
技术研发日:2023.05.16
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐