消息的盲签名算法、装置及电子设备的制作方法
未命名
08-03
阅读:109
评论:0
1.本公开涉及人工智能技术领域,尤其涉及自然语言处理、云计算等技术领域,可应用于电子投票、匿名投票等场景,尤其涉及一种消息的盲签名算法、装置及电子设备。
背景技术:
2.目前,盲签名算法主要为,消息者对待签名的消息进行盲化处理,
3.得到盲化消息,并提供给签名者;签名者对盲化消息进行签名,得到签名后盲化消息,并提供给消息者;消息者对签名后盲化消息进行去盲处理,得到签名消息。
4.上述方案中,盲化处理以及签名处理时采用的密钥是普通密钥,导致签名消息较长,计算量较大;且结合签名消息以及盲化消息等,容易恢复出待签名的消息,不可追踪性难以确保。
技术实现要素:
5.本公开提供了一种消息的盲签名算法、装置及电子设备。
6.根据本公开的一方面,提供了一种消息的盲签名算法,应用于提供消息的第一设备,所述方法包括:接收第二设备的签名临时变量;根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到所述消息对应的消息哈希变量;根据所述消息哈希变量、所述第一设备的第一临时变量、所述签名临时变量、所述第一密码学哈希函数、所述椭圆曲线算法中的基点、以及基于所述椭圆曲线算法确定得到的公钥,确定所述消息对应的盲化消息;将所述盲化消息发送至所述第二设备,并接收所述第二设备返回的签名后盲化消息;采用所述第一临时变量对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。
7.根据本公开的另一方面,提供了一种消息的盲签名算法,应用于签名处理的第二设备,所述方法包括:向提供消息的第一设备发送签名临时变量;接收所述第一设备返回的盲化消息;所述盲化消息,由所述第一设备结合待签名的消息、所述第一设备的第一临时变量、所述签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于所述椭圆曲线算法确定得到的公钥,确定得到;对所述盲化消息进行签名处理,得到签名后盲化消息;将所述签名后盲化消息发送至所述第一设备,以指示所述第一设备对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。
8.根据本公开的另一方面,提供了一种消息的盲签名装置,应用于提供消息的第一设备,所述装置包括:第一接收模块,用于接收第二设备的签名临时变量;消息哈希处理模块,用于根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到所述消息对应的消息哈希变量;盲化处理模块,用于根据所述消息哈希变量、所述第一设备的第一临时变量、所述签名临时变量、所述第一密码学哈希函数、所述椭圆曲线算法中的基点、以及基于所述椭圆曲线算法确定得到的公钥,确定所述消息对应的盲化消息;第二接收模块,用于将所述盲化消息发送至所述第二设备,并接收所述第二设备返回
的签名后盲化消息;去盲处理模块,用于采用所述第一临时变量对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。
9.根据本公开的另一方面,提供了一种消息的盲签名装置,应用于签名处理的第二设备,所述装置包括:第一发送模块,用于向提供消息的第一设备发送签名临时变量;接收模块,用于接收所述第一设备返回的盲化消息;所述盲化消息,由所述第一设备结合待签名的消息、所述第一设备的第一临时变量、所述签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于所述椭圆曲线算法确定得到的公钥,确定得到;签名处理模块,用于对所述盲化消息进行签名处理,得到签名后盲化消息;第二发送模块,用于将所述签名后盲化消息发送至所述第一设备,以指示所述第一设备对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。
10.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开上述提出的消息的盲签名算法。
11.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行本公开上述提出的消息的盲签名算法。
12.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开上述提出的消息的盲签名算法的步骤。
13.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
14.附图用于更好地理解本方案,不构成对本公开的限定。其中:
15.图1是根据本公开第一实施例的示意图;
16.图2是根据本公开第二实施例的示意图;
17.图3是根据本公开第三实施例的示意图;
18.图4是根据本公开第四实施例的示意图;
19.图5是根据本公开第五实施例的示意图;
20.图6是用来实现本公开实施例的消息的盲签名算法的电子设备的框图。
具体实施方式
21.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
22.目前,盲签名算法主要为,消息者对待签名的消息进行盲化处理,得到盲化消息,并提供给签名者;签名者对盲化消息进行签名,得到签名后盲化消息,并提供给消息者;消息者对签名后盲化消息进行去盲处理,得到签名消息。
23.上述方案中,盲化处理以及签名处理时采用的密钥是普通密钥,导致签名消息较
长,计算量较大;且结合签名消息以及盲化消息等,容易恢复出待签名的消息,不可追踪性难以确保。
24.针对上述问题,本公开提出一种消息的盲签名算法、装置及电子设备。
25.图1是根据本公开第一实施例的示意图,需要说明的是,本公开实施例的消息的盲签名算法可应用于消息的盲签名装置,该装置可以设置在电子设备中,以使电子设备可以执行消息的盲签名功能。
26.其中,电子设备可以为任一具有计算能力的设备,例如可以为个人电脑(personal computer,简称pc)、移动终端、服务器等,移动终端例如可以为车载设备、手机、平板电脑、个人数字助理、穿戴式设备、智能音箱等具有各种操作系统、触摸屏和/或显示屏的硬件设备。以下实施例中,以执行主体为提供消息的第一设备为例进行说明。
27.如图1所示,该消息的盲签名算法可以包括如下步骤:
28.步骤101,接收第二设备的签名临时变量。
29.在本公开实施例中,签名临时变量根据第二设备的第二临时变量以及椭圆曲线算法中的基点,确定得到;第二临时变量,根据第二设备选择的第二随机数值以及第一密码学哈希函数确定得到。
30.其中,椭圆曲线算法,例如,爱德华椭圆曲线算法、hyperledger fabric椭圆曲线算法等。其中,爱德华椭圆曲线算法,是指,基于爱德华椭圆曲线(edwards25519)的确定性算法,例如,爱德华兹曲线数字签名算法(edwards-curve digital signature algorithm,eddsa)。
31.其中,hyperledger fabric椭圆曲线算法,是指,基于hyperledger fabric椭圆曲线的算法,例如,椭圆曲线数字签名算法(elliptic curve digital signature algorithm,ecdsa)等。
32.其中,椭圆曲线算法为爱德华椭圆曲线算法时,爱德华曲线算法的计算速度较快,使得基于爱德华曲线算法的盲签名过程的执行速度较快,盲签名的效率较高。
33.其中,以基于爱德华椭圆曲线的确定性算法eddsa为例,爱德华曲线的基本参数记为e=(q,fq,c,d,g,n,h1,h2)。其中,q=2
255-19,为质数;fq,为有限域中的特征;参数c,d∈fq,确定了爱德华椭圆曲线e
c,q
:cx2+y2=1+dx2y2;定义点g为爱德华椭圆曲线的基点g∈e
c,q
(fq);素数n表示基点g的阶数,其满足ng=0且23·
n=#e
c,d
;令h1:{0,1}k→
{0,1}n与h2:{0,1}
*
→zn
为密码学哈希函数。任意选取参数b
′
使其满足2b′‑1》q,其中edwards25519曲线中的b
′
固定取值为256。其中,h1表示第二密码学哈希函数;h2表示第一密码学哈希函数。
34.其中,第二设备可以随机选择k1←
{0,1}b′‑1,得到第二随机数值k1;然后计算第二设备的第二临时变量r1=h2(b,k1);然后计算第二设备的签名临时变量r1=r1·
g。
35.其中,b的确定过程例如可以为,任意选取b
′
位的随机字符串d
′
作为私钥,计算h1(d
′
)=(h0,h1,
…
,h
2b
′‑1),令a=(h0,h1,
…
,hb′‑1),b=(hb′
,hb′
+1
,
…
,b
2b
′‑1)。
36.其中,第二设备选择第二随机数值,并结合第二随机数值、第一密码学哈希函数以及椭圆曲线算法中的基点,来确定签名临时变量,能够确保签名临时变量的随机性,从而进一步确保签名消息的不可追踪性。
37.步骤102,根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息对应的消息哈希变量。
38.在本公开实施例中,第一设备确定消息对应的消息哈希变量的过程例如可以为,将第一设备中待签名的消息输入第一密码学哈希函数,获取第一密码学哈希函数输出的消息哈希变量e=h2(m)。其中,e表示消息哈希变量,m表示待签名的消息。
39.其中,对待签名的消息进行哈希处理,基于消息哈希变量进行后续签名计算,由于哈希处理得到的消息哈希变量的位数较小,从而能够有效减少后续盲签名时的计算量,提高盲签名的处理效率。
40.在本公开实施例中,待签名的消息,例如可以为电子投票系统中的投票消息、匿名投票信息等;待签名的消息,例如还可以为待签名的文件,例如合同、协议等。
41.其中,以待签名的消息为投票消息为例,第一设备可以与第二设备进行交互,完成对投票消息的签名后,将签名消息附带在投票消息中以进行投票处理。
42.其中,以待签名的消息为合同为例,第一设备可以与第二设备进行交互,完成对合同的签名后,将签名消息附带在合同中进行保存处理。
43.步骤103,根据消息哈希变量、第一设备的第一临时变量、签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定消息对应的盲化消息。
44.在本公开实施例中,第一设备确定第一临时变量的方式例如可以包括以下步骤:获取第一设备选择的第一随机数值;将第一随机数值以及消息哈希变量输入第一密码学哈希函数,获取第一密码学哈希函数输出的第一临时变量。
45.其中,第一设备可以随机选择k2←
{0,1}b′‑1,得到第一随机数值k2;然后获取消息哈希变量e;然后计算第一设备的第一临时变量r2=h2(k2,e)。
46.其中,第一设备选择第一随机数值,并结合第一随机数值以及消息哈希变量,来确定第一临时变量,能够确保第一临时变量的随机性,进而确保盲化消息的随机性,从而进一步确保签名消息的不可追踪性。
47.在本公开实施例中,第一设备执行步骤103的过程例如可以为,获取第一设备选择的第三随机数值,第三随机数值大于或者等于1且小于或者等于n,n表示基点的阶数;对签名临时变量、第一临时变量与基点的乘积、第三随机数值与公钥的乘积,进行加和处理,得到中间变量;将中间变量、公钥以及消息哈希变量输入第一密码学哈希函数,获取第一密码学哈希函数的第一输出结果;将第一输出结果与第三随机数值的加和结果,作为盲化消息。
48.其中,第一设备可以随机选择α∈[1,n],得到第三随机数值α;然后第一设备可以计算中间变量r=r1+r2·
g+α
·
a,其中,a表示公钥;然后第一设备可以计算第一输出结果h=h2(r,a,e);然后第一设备可以计算盲化消息r=h+α。
[0049]
其中,第一设备结合第一临时变量、第三随机数值、签名临时变量、公钥以及消息哈希变量等,来确定盲化消息,其中的第一临时变量、第三随机数值、签名临时变量等,随机性强,且来自于不同的设备,避免其他设备同时获取上述几个变量或者数值的可能性,进而进一步确保盲化消息的随机性以及不可追踪性。
[0050]
步骤104,将盲化消息发送至第二设备,并接收第二设备返回的签名后盲化消息。
[0051]
在本公开实施例中,第二设备对盲化消息进行签名处理的过程例如可以为,对盲化消息以及密钥生成过程中的签名辅助私钥进行乘积处理,并将乘积处理得到的结果与第二设备的第二临时变量进行加和处理,得到签名后盲化消息;第二临时变量,根据第二设备
选择的第二随机数值以及第一密码学哈希函数,确定得到。
[0052]
其中,第二设备收到盲化消息r之后,可以计算签名后盲化消息s
′
=r1+r
·
x。其中,x表示密钥生成过程中的签名辅助私钥。r1表示第二设备的第二临时变量。
[0053]
步骤105,采用第一临时变量对签名后盲化消息进行去盲处理,得到消息对应的签名消息。
[0054]
在本公开实施例中,第一设备接收到签名后盲化消息s
′
后,可以计算签名消息s=s
′
+r2。其中,s表示签名消息;r2表示第一设备的第一临时变量。
[0055]
本公开实施例的消息的盲签名算法,提供消息的第一设备可以接收第二设备的签名临时变量;根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息对应的消息哈希变量;根据消息哈希变量、第一设备的第一临时变量、签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定消息对应的盲化消息;将盲化消息发送至第二设备,并接收第二设备返回的签名后盲化消息;采用第一临时变量对签名后盲化消息进行去盲处理,得到消息对应的签名消息,其中,签名临时变量以及第一临时变量的随机性强,且来自于不同的设备,避免其他设备同时获取到上述两个变量,从而避免其他设备通过已知的签名消息、盲化消息、公钥等恢复出待签名的消息,确保签名消息的不可追踪性;且第一密码学哈希函数的使用,使得签名消息计算过程中各参数或者变量的位数较小,能够有效减少盲签名的计算量,提高盲签名的处理效率。
[0056]
其中,确定签名消息后,还需要对签名消息进行验证,确定是否签名验证成功,以在签名验证失败时重新进行盲签名处理,确保签名验证成功。如图2所示,图2是根据本公开第二实施例的示意图,图2所示实施例可以包括以下步骤:
[0057]
步骤201,接收第二设备的签名临时变量。
[0058]
步骤202,根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息对应的消息哈希变量。
[0059]
步骤203,根据消息哈希变量、第一设备的第一临时变量、签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定消息对应的盲化消息。
[0060]
步骤204,将盲化消息发送至第二设备,并接收第二设备返回的签名后盲化消息。
[0061]
步骤205,采用第一临时变量对签名后盲化消息进行去盲处理,得到消息对应的签名消息。
[0062]
步骤206,获取消息盲化过程中的中间变量;中间变量,根据签名临时变量、第一临时变量、基点以及公钥确定得到。
[0063]
在本公开实施例中,第一设备可以在消息盲化过程中,存储计算得到的中间变量r;然后在去盲时,根据需要提取中间变量r的数值。其中,中间变量r的确定过程,可以参考图1所示实施例的中间变量r的计算过程,此处不再进行详细描述。
[0064]
步骤207,将中间变量、公钥以及消息哈希变量输入第一密码学哈希函数,获取第一密码学哈希函数的第二输出结果。
[0065]
步骤208,对第二输出结果与n进行取模运算,得到取模运算结果;n表示基点的阶数。
[0066]
在本公开实施例中,第一设备可以计算取模运算结果h=h2(r,a,e)mod n。其中,mod表示取模运算;h2(r,a,e)表示第二输出结果。
[0067]
步骤209,对取模运算结果与公钥进行乘积处理,并将乘积处理得到的乘积结果与中间变量进行加和处理,得到第一处理结果。
[0068]
在本公开实施例中,第一设备可以计算第一处理结果r+ha。其中,r表示中间变量;h表示取模运算结果。
[0069]
步骤210,对签名消息与基点进行乘积处理,得到第二处理结果。
[0070]
在本公开实施例中,第一设备可以计算第二处理结果sg。其中,s表示签名消息。
[0071]
步骤211,在第一处理结果与第二处理结果一致的情况下,确定签名信息的验证结果为签名验证成功。
[0072]
在本公开实施例中,若签名消息是第二设备授权签名得到的,则第一处理结果与第二处理结果会一致;若签名消息不是第二设备授权签名得到的,则第一处理结果与第二处理结果会不一致。因此,通过比较第一处理结果和第二处理结果,可以确定签名消息是否是第二设备授权签名得到的,是否是真实的签名消息。
[0073]
步骤212,在第一处理结果与第二处理结果不一致的情况下,确定签名信息的验证结果为签名验证失败。
[0074]
在本公开实施例中,在验证结果为签名验证失败的情况下,第一设备可以重新与第二设备进行交互,以获取真实的签名消息。
[0075]
其中,需要说明的是,步骤201至步骤205的详细内容,可以参考图1所示实施例中的步骤101至步骤105,此处不再进行详细说明。
[0076]
本公开实施例的消息的盲签名算法,提供消息的第一设备接收第二设备的签名临时变量;根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息对应的消息哈希变量;根据消息哈希变量、第一设备的第一临时变量、签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定消息对应的盲化消息;将盲化消息发送至第二设备,并接收第二设备返回的签名后盲化消息;采用第一临时变量对签名后盲化消息进行去盲处理,得到消息对应的签名消息;获取消息盲化过程中的中间变量;中间变量,根据签名临时变量、第一临时变量、基点以及公钥确定得到;将中间变量、公钥以及消息哈希变量输入第一密码学哈希函数,获取第一密码学哈希函数的第二输出结果;对第二输出结果与n进行取模运算,得到取模运算结果;所述n表示基点的阶数;对取模运算结果与公钥进行乘积处理,并将乘积处理得到的乘积结果与中间变量进行加和处理,得到第一处理结果;对签名消息与基点进行乘积处理,得到第二处理结果;在第一处理结果与第二处理结果一致的情况下,确定签名信息的验证结果为签名验证成功;在第一处理结果与第二处理结果不一致的情况下,确定签名信息的验证结果为签名验证失败,从而能够在签名验证失败的情况下,确定签名消息为未经过第二设备授权签名的消息,使得第一设备能够及时与第二设备重新进行交互,以获取真实的签名消息,确保签名消息的真实性,进而提高盲签名效率。
[0077]
图3是根据本公开第三实施例的示意图。需要说明的是,本公开实施例的消息的盲签名算法可应用于消息的盲签名装置,该装置可以设置在电子设备中,以使电子设备可以执行消息的盲签名功能。
[0078]
其中,电子设备可以为任一具有计算能力的设备,例如可以为个人电脑(personal computer,简称pc)、移动终端、服务器等,移动终端例如可以为车载设备、手机、平板电脑、个人数字助理、穿戴式设备、智能音箱等具有各种操作系统、触摸屏和/或显示屏的硬件设备。以下实施例中,以执行主体为签名处理的第二设备为例进行说明。
[0079]
如图3所示,该消息的盲签名算法可以包括如下步骤:
[0080]
步骤301,向提供消息的第一设备发送签名临时变量。
[0081]
在本公开实施例中,在步骤301之前,第二设备还可以执行以下过程:获取第二设备选择的第二随机数值;获取密钥生成过程中的第三临时变量;第三临时变量,为将私钥输入椭圆曲线算法的第二密码学哈希函数后得到的输出结果中靠后部分的数字串;将第二随机数值以及第三临时变量输入第一密码学哈希函数,获取第一密码学哈希函数输出的第二临时变量;根据第二临时变量以及基点,确定签名临时变量。
[0082]
在本公开实施例中,椭圆曲线算法,例如,爱德华椭圆曲线算法、hyperledger fabric椭圆曲线算法等。其中,爱德华椭圆曲线算法,是指,基于爱德华椭圆曲线(edwards25519)的确定性算法,例如,爱德华兹曲线数字签名算法(edwards-curve digital signature algorithm,eddsa)。
[0083]
其中,hyperledger fabric椭圆曲线算法,是指,基于hyperledger fabric椭圆曲线的算法,例如,椭圆曲线数字签名算法(elliptic curve digital signature algorithm,ecdsa)等。
[0084]
其中,椭圆曲线算法为爱德华椭圆曲线算法时,爱德华曲线算法的计算速度较快,使得基于爱德华曲线算法的盲签名过程的执行速度较快,盲签名的效率较高。
[0085]
其中,第二设备可以随机选择k1←
{0,1}b′‑1,得到第二随机数值k1;然后计算第二设备的第二临时变量r1=h2(b,k1);然后计算第二设备的签名临时变量r1=r1·
g。
[0086]
其中,b的确定过程例如可以为,任意选取b
′
位的随机字符串d
′
作为私钥,计算h1(d
′
)=(h0,h1,
…
,h
2b
′‑1),令a=(h0,h1,
…
,hb′‑1),b=(hb′
,hb′
+1
,
…
,b
2b
′‑1)。
[0087]
第二设备选择第二随机数值,并结合第二随机数值、第一密码学哈希函数以及椭圆曲线算法中的基点,来确定签名临时变量,能够确保签名临时变量的随机性,从而进一步确保签名消息的不可追踪性。
[0088]
在本公开实施例中,步骤301之前,第二设备还可以执行密钥生成过程,以获取盲签名过程中需要的公钥以及签名辅助私钥等。其中,第二设备执行的密钥生成过程例如可以包括以下步骤:获取椭圆曲线算法中指定位数的随机数值;将指定位数的随机数值,作为椭圆曲线算法中的私钥;将私钥输入椭圆曲线算法中的第二密码学哈希函数,获取第二密码学哈希函数的输出结果,输出结果包括靠前部分的数字串以及靠后部分的数字串;根据靠前部分的数字串以及指定位数,确定签名辅助私钥;对签名辅助私钥以及椭圆曲线算法中的基点进行乘积处理,获取公钥。
[0089]
其中,第二设备可以任意选取b
′
位的随机字符串d
′
作为私钥;然后计算第二密码学哈希函数的输出结果h1(d
′
)=(h0,h1,
…
,h
2b
′‑1),令a=(h0,h1,
…
,hb′‑1),b=(hb′
,hb′
+1
,
…
,b
2b
′‑1);然后第二设备可以采用a=(h0,h1,
…
,hb′‑1)计算整数作为签名辅助私钥;其中,x表示签名辅助私钥;然后
第二设备可以计算公钥a=x
·
g;其中,g表示椭圆曲线的基点。
[0090]
其中,第二设备基于第二密码学哈希函数,确定公钥以及签名辅助私钥,能够减少公钥以及签名辅助私钥的位数,减少盲签名的计算量;且随机字符串的选择,能够确保不同的设备采用椭圆曲线算法,能够计算得到不同的公钥以及不同的签名辅助私钥,确保公钥以及签名辅助私钥的不可追踪性,进而确保后续签名消息的不可追踪性。
[0091]
步骤302,接收第一设备返回的盲化消息;盲化消息,由第一设备结合待签名的消息、第一设备的第一临时变量、签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于椭圆曲线算法确定得到的公钥,确定得到。
[0092]
在本公开实施例中,第一临时变量,根据第一设备选择的第一随机数值、将消息输入第一密码学哈希函数后得到的消息哈希变量、以及第一密码学哈希函数,确定得到。
[0093]
其中,第一设备可以随机选择k2←
{0,1}b′‑1,得到第一随机数值k2;然后获取消息哈希变量e;然后计算第一设备的第一临时变量r2=h2(k2,e)。
[0094]
其中,第一设备选择第一随机数值,并结合第一随机数值以及消息哈希变量,来确定第一临时变量,能够确保第一临时变量的随机性,进而确保盲化消息的随机性,从而进一步确保签名消息的不可追踪性。
[0095]
其中,具体的,第一设备确定盲化消息的过程例如可以为,可以先根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息对应的消息哈希变量;然后根据消息哈希变量、第一设备的第一临时变量、签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定消息对应的盲化消息。
[0096]
其中,盲化消息的详细确定过程可以参考图1所述实施例,此处不再进行详细说明。
[0097]
步骤303,对盲化消息进行签名处理,得到签名后盲化消息。
[0098]
在本公开实施例中,第二设备执行步骤303的过程例如可以为,对盲化消息以及密钥生成过程中的签名辅助私钥进行乘积处理,并将乘积处理得到的结果与第二设备的第二临时变量进行加和处理,得到签名后盲化消息;第二临时变量,根据第二设备选择的第二随机数值以及第一密码学哈希函数,确定得到。
[0099]
其中,第二设备收到盲化消息r之后,可以计算签名后盲化消息s
′
=r1+r
·
x。其中,x表示密钥生成过程中的签名辅助私钥。r1表示第二设备的第二临时变量。
[0100]
其中,第二设备结合签名辅助私钥,对盲化消息进行签名处理,能够确保签名后盲化消息的真实性,方便第一设备通过签名验证处理来验证签名消息的真实性。
[0101]
步骤304,将签名后盲化消息发送至第一设备,以指示第一设备对签名后盲化消息进行去盲处理,得到消息对应的签名消息。
[0102]
本公开实施例的消息的盲签名算法,签名处理的第二设备向提供消息的第一设备发送签名临时变量;接收第一设备返回的盲化消息;盲化消息,由第一设备结合待签名的消息、第一设备的第一临时变量、签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于椭圆曲线算法确定得到的公钥,确定得到;对盲化消息进行签名处理,得到签名后盲化消息;将签名后盲化消息发送至第一设备,以指示第一设备对签名后盲化消息进行去盲处理,得到消息对应的签名消息,其中,签名临时变量以及第一临时变量的随机性
强,且来自于不同的设备,避免其他设备同时获取到上述两个变量,从而避免其他设备通过已知的签名消息、盲化消息、公钥等恢复出待签名的消息,确保签名消息的不可追踪性;且第一密码学哈希函数的使用,使得签名消息计算过程中各参数或者变量的位数较小,能够有效减少盲签名的计算量,提高盲签名的处理效率。
[0103]
为了实现上述实施例,本公开还提供一种消息的盲签名装置。如图4所示,图4是根据本公开第四实施例的示意图。该消息的盲签名装置40,应用于提供消息的第一设备,可以包括:第一接收模块401、消息哈希处理模块402、盲化处理模块403、第二接收模块404、去盲处理模块405。
[0104]
其中,第一接收模块401,用于接收第二设备的签名临时变量;消息哈希处理模块402,用于根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到所述消息对应的消息哈希变量;盲化处理模块403,用于根据所述消息哈希变量、所述第一设备的第一临时变量、所述签名临时变量、所述第一密码学哈希函数、所述椭圆曲线算法中的基点、以及基于所述椭圆曲线算法确定得到的公钥,确定所述消息对应的盲化消息;第二接收模块404,用于将所述盲化消息发送至所述第二设备,并接收所述第二设备返回的签名后盲化消息;去盲处理模块405,用于采用所述第一临时变量对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。
[0105]
作为本公开实施例的一种可能实现方式,所述第一临时变量的确定方式,包括:获取所述第一设备选择的第一随机数值;将所述第一随机数值以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数输出的所述第一临时变量。
[0106]
作为本公开实施例的一种可能实现方式,所述签名临时变量根据所述第二设备的第二临时变量以及所述基点,确定得到;所述第二临时变量,根据所述第二设备选择的第二随机数值以及所述第一密码学哈希函数确定得到。
[0107]
作为本公开实施例的一种可能实现方式,所述盲化处理模块403具体用于,获取所述第一设备选择的第三随机数值,所述第三随机数值大于或者等于1且小于或者等于n,所述n表示所述基点的阶数;对所述签名临时变量、所述第一临时变量与所述基点的乘积、所述第三随机数值与所述公钥的乘积,进行加和处理,得到中间变量;将所述中间变量、所述公钥以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数的第一输出结果;将所述第一输出结果与所述第三随机数值的加和结果,作为所述盲化消息。
[0108]
作为本公开实施例的一种可能实现方式,所述装置还包括:获取模块、取模运算模块、运算处理模块和确定模块;所述获取模块,用于获取消息盲化过程中的中间变量;所述中间变量,根据所述签名临时变量、所述第一临时变量、所述基点以及所述公钥确定得到;所述获取模块,还用于将所述中间变量、所述公钥以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数的第二输出结果;所述取模运算模块,用于对所述第二输出结果与n进行取模运算,得到取模运算结果;所述n表示所述基点的阶数;所述运算处理模块,用于对所述取模运算结果与所述公钥进行乘积处理,并将乘积处理得到的乘积结果与所述中间变量进行加和处理,得到第一处理结果;所述运算处理模块,还用于对所述签名消息与所述基点进行乘积处理,得到第二处理结果;所述确定模块,用于在所述第一处理结果与所述第二处理结果一致的情况下,确定所述签名信息的验证结果为签名验证
成功;所述确定模块,还用于在所述第一处理结果与所述第二处理结果不一致的情况下,确定所述签名信息的验证结果为签名验证失败。
[0109]
作为本公开实施例的一种可能实现方式,所述椭圆曲线算法包括,爱德华椭圆曲线算法。
[0110]
本公开实施例的消息的盲签名装置,提供消息的第一设备可以接收第二设备的签名临时变量;根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息对应的消息哈希变量;根据消息哈希变量、第一设备的第一临时变量、签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定消息对应的盲化消息;将盲化消息发送至第二设备,并接收第二设备返回的签名后盲化消息;采用第一临时变量对签名后盲化消息进行去盲处理,得到消息对应的签名消息,其中,签名临时变量以及第一临时变量的随机性强,且来自于不同的设备,避免其他设备同时获取到上述两个变量,从而避免其他设备通过已知的签名消息、盲化消息、公钥等恢复出待签名的消息,确保签名消息的不可追踪性;且第一密码学哈希函数的使用,使得签名消息计算过程中各参数或者变量的位数较小,能够有效减少盲签名的计算量,提高盲签名的处理效率。
[0111]
为了实现上述实施例,本公开还提供另一种消息的盲签名装置。如图5所示,图5是根据本公开第五实施例的示意图。该消息的盲签名装置50,应用于签名处理的第二设备,可以包括:第一发送模块501、接收模块502、签名处理模块503和第二发送模块504。
[0112]
其中,第一发送模块501,用于向提供消息的第一设备发送签名临时变量;接收模块502,用于接收所述第一设备返回的盲化消息;所述盲化消息,由所述第一设备结合待签名的消息、所述第一设备的第一临时变量、所述签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于所述椭圆曲线算法确定得到的公钥,确定得到;签名处理模块503,用于对所述盲化消息进行签名处理,得到签名后盲化消息;第二发送模块504,用于将所述签名后盲化消息发送至所述第一设备,以指示所述第一设备对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。
[0113]
作为本公开实施例的一种可能实现方式,所述第一临时变量,根据所述第一设备选择的第一随机数值、将所述消息输入所述第一密码学哈希函数后得到的消息哈希变量、以及所述第一密码学哈希函数,确定得到。
[0114]
作为本公开实施例的一种可能实现方式,所述装置还包括:第一获取模块和第一确定模块;所述第一获取模块,用于获取所述第二设备选择的第二随机数值;所述第一获取模块,还用于获取密钥生成过程中的第三临时变量;所述第三临时变量,为将私钥输入第二密码学哈希函数后得到的输出结果中靠后部分的数字串;所述第一获取模块,还用于将所述第二随机数值以及所述第三临时变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数输出的所述第二临时变量;所述第一确定模块,用于根据所述第二临时变量以及所述基点,确定所述签名临时变量。
[0115]
作为本公开实施例的一种可能实现方式,所述签名处理模块503具体用于,对所述盲化消息以及密钥生成过程中的签名辅助私钥进行乘积处理,并将乘积处理得到的结果与所述第二设备的第二临时变量进行加和处理,得到所述签名后盲化消息;所述第二临时变量,根据所述第二设备选择的第二随机数值以及所述第一密码学哈希函数,确定得到。
[0116]
作为本公开实施例的一种可能实现方式,所述装置还包括:第二获取模块和第二确定模块;所述第二获取模块,用于获取所述椭圆曲线算法中指定位数的随机数值;所述第二获取模块,还用于将所述指定位数的随机数值,作为所述椭圆曲线算法中的私钥;所述第二获取模块,还用于将所述私钥输入所述椭圆曲线算法中的第二密码学哈希函数,获取所述第二密码学哈希函数的输出结果,所述输出结果包括靠前部分的数字串以及靠后部分的数字串;所述第二确定模块,用于根据所述靠前部分的数字串以及所述指定位数,确定签名辅助私钥;所述第二获取模块,还用于对所述签名辅助私钥以及所述椭圆曲线算法中的基点进行乘积处理,获取所述公钥。
[0117]
作为本公开实施例的一种可能实现方式,所述椭圆曲线算法包括,爱德华椭圆曲线算法。
[0118]
本公开实施例的消息的盲签名装置,签名处理的第二设备向提供消息的第一设备发送签名临时变量;接收第一设备返回的盲化消息;盲化消息,由第一设备结合待签名的消息、第一设备的第一临时变量、签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于椭圆曲线算法确定得到的公钥,确定得到;对盲化消息进行签名处理,得到签名后盲化消息;将签名后盲化消息发送至第一设备,以指示第一设备对签名后盲化消息进行去盲处理,得到消息对应的签名消息,其中,签名临时变量以及第一临时变量的随机性强,且来自于不同的设备,避免其他设备同时获取到上述两个变量,从而避免其他设备通过已知的签名消息、盲化消息、公钥等恢复出待签名的消息,确保签名消息的不可追踪性;且第一密码学哈希函数的使用,使得签名消息计算过程中各参数或者变量的位数较小,能够有效减少盲签名的计算量,提高盲签名的处理效率。
[0119]
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均在征得用户同意的前提下进行,并且均符合相关法律法规的规定,且不违背公序良俗。
[0120]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0121]
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0122]
如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储电子设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0123]
电子设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600
通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0124]
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如消息的盲签名算法。例如,在一些实施例中,消息的盲签名算法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的消息的盲签名算法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行消息的盲签名算法。
[0125]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0126]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0127]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0128]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0129]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据
服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0130]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0131]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0132]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
技术特征:
1.一种消息的盲签名方法,应用于提供消息的第一设备,所述方法包括:接收第二设备的签名临时变量;根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到所述消息对应的消息哈希变量;根据所述消息哈希变量、所述第一设备的第一临时变量、所述签名临时变量、所述第一密码学哈希函数、所述椭圆曲线算法中的基点、以及基于所述椭圆曲线算法确定得到的公钥,确定所述消息对应的盲化消息;将所述盲化消息发送至所述第二设备,并接收所述第二设备返回的签名后盲化消息;采用所述第一临时变量对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。2.根据权利要求1所述的方法,其中,所述第一临时变量的确定方式,包括:获取所述第一设备选择的第一随机数值;将所述第一随机数值以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数输出的所述第一临时变量。3.根据权利要求1所述的方法,其中,所述签名临时变量根据所述第二设备的第二临时变量以及所述基点,确定得到;所述第二临时变量,根据所述第二设备选择的第二随机数值以及所述第一密码学哈希函数确定得到。4.根据权利要求1所述的方法,其中,所述根据所述消息哈希变量、所述第一设备的第一临时变量、所述签名临时变量、所述第一密码学哈希函数、所述椭圆曲线算法中的基点、以及基于所述椭圆曲线算法确定得到的公钥,确定所述消息对应的盲化消息,包括:获取所述第一设备选择的第三随机数值,所述第三随机数值大于或者等于1且小于或者等于n,所述n表示所述基点的阶数;对所述签名临时变量、所述第一临时变量与所述基点的乘积、所述第三随机数值与所述公钥的乘积,进行加和处理,得到中间变量;将所述中间变量、所述公钥以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数的第一输出结果;将所述第一输出结果与所述第三随机数值的加和结果,作为所述盲化消息。5.根据权利要求1所述的方法,其中,所述方法还包括:获取消息盲化过程中的中间变量;所述中间变量,根据所述签名临时变量、所述第一临时变量、所述基点以及所述公钥确定得到;将所述中间变量、所述公钥以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数的第二输出结果;对所述第二输出结果与n进行取模运算,得到取模运算结果;所述n表示所述基点的阶数;对所述取模运算结果与所述公钥进行乘积处理,并将乘积处理得到的乘积结果与所述中间变量进行加和处理,得到第一处理结果;对所述签名消息与所述基点进行乘积处理,得到第二处理结果;在所述第一处理结果与所述第二处理结果一致的情况下,确定所述签名信息的验证结
果为签名验证成功;在所述第一处理结果与所述第二处理结果不一致的情况下,确定所述签名信息的验证结果为签名验证失败。6.根据权利要求1至5中任一项所述的方法,其中,所述椭圆曲线算法包括,爱德华椭圆曲线算法。7.一种消息的盲签名方法,应用于签名处理的第二设备,所述方法包括:向提供消息的第一设备发送签名临时变量;接收所述第一设备返回的盲化消息;所述盲化消息,由所述第一设备结合待签名的消息、所述第一设备的第一临时变量、所述签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于所述椭圆曲线算法确定得到的公钥,确定得到;对所述盲化消息进行签名处理,得到签名后盲化消息;将所述签名后盲化消息发送至所述第一设备,以指示所述第一设备对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。8.根据权利要求7所述的方法,其中,所述第一临时变量,根据所述第一设备选择的第一随机数值、将所述消息输入所述第一密码学哈希函数后得到的消息哈希变量、以及所述第一密码学哈希函数,确定得到。9.根据权利要求7所述的方法,其中,所述方法还包括:获取所述第二设备选择的第二随机数值;获取密钥生成过程中的第三临时变量;所述第三临时变量,为将私钥输入第二密码学哈希函数后得到的输出结果中靠后部分的数字串;将所述第二随机数值以及所述第三临时变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数输出的所述第二临时变量;根据所述第二临时变量以及所述基点,确定所述签名临时变量。10.根据权利要求7所述的方法,其中,所述对所述盲化消息进行签名处理,得到签名后盲化消息,包括:对所述盲化消息以及密钥生成过程中的签名辅助私钥进行乘积处理,并将乘积处理得到的结果与所述第二设备的第二临时变量进行加和处理,得到所述签名后盲化消息;所述第二临时变量,根据所述第二设备选择的第二随机数值以及所述第一密码学哈希函数,确定得到。11.根据权利要求7所述的方法,其中,所述方法还包括:获取所述椭圆曲线算法中指定位数的随机数值;将所述指定位数的随机数值,作为所述椭圆曲线算法中的私钥;将所述私钥输入所述椭圆曲线算法中的第二密码学哈希函数,获取所述第二密码学哈希函数的输出结果,所述输出结果包括靠前部分的数字串以及靠后部分的数字串;根据所述靠前部分的数字串以及所述指定位数,确定签名辅助私钥;对所述签名辅助私钥以及所述椭圆曲线算法中的基点进行乘积处理,获取所述公钥。12.根据权利要求7至11中任一项所述的方法,其中,所述椭圆曲线算法包括,爱德华椭圆曲线算法。13.一种消息的盲签名装置,应用于提供消息的第一设备,所述装置包括:
第一接收模块,用于接收第二设备的签名临时变量;消息哈希处理模块,用于根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到所述消息对应的消息哈希变量;盲化处理模块,用于根据所述消息哈希变量、所述第一设备的第一临时变量、所述签名临时变量、所述第一密码学哈希函数、所述椭圆曲线算法中的基点、以及基于所述椭圆曲线算法确定得到的公钥,确定所述消息对应的盲化消息;第二接收模块,用于将所述盲化消息发送至所述第二设备,并接收所述第二设备返回的签名后盲化消息;去盲处理模块,用于采用所述第一临时变量对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。14.根据权利要求13所述的装置,其中,所述第一临时变量的确定方式,包括:获取所述第一设备选择的第一随机数值;将所述第一随机数值以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数输出的所述第一临时变量。15.根据权利要求13所述的装置,其中,所述签名临时变量根据所述第二设备的第二临时变量以及所述基点,确定得到;所述第二临时变量,根据所述第二设备选择的第二随机数值以及所述第一密码学哈希函数确定得到。16.根据权利要求13所述的装置,其中,所述盲化处理模块具体用于,获取所述第一设备选择的第三随机数值,所述第三随机数值大于或者等于1且小于或者等于n,所述n表示所述基点的阶数;对所述签名临时变量、所述第一临时变量与所述基点的乘积、所述第三随机数值与所述公钥的乘积,进行加和处理,得到中间变量;将所述中间变量、所述公钥以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数的第一输出结果;将所述第一输出结果与所述第三随机数值的加和结果,作为所述盲化消息。17.根据权利要求13所述的装置,其中,所述装置还包括:获取模块、取模运算模块、运算处理模块和确定模块;所述获取模块,用于获取消息盲化过程中的中间变量;所述中间变量,根据所述签名临时变量、所述第一临时变量、所述基点以及所述公钥确定得到;所述获取模块,还用于将所述中间变量、所述公钥以及所述消息哈希变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数的第二输出结果;所述取模运算模块,用于对所述第二输出结果与n进行取模运算,得到取模运算结果;所述n表示所述基点的阶数;所述运算处理模块,用于对所述取模运算结果与所述公钥进行乘积处理,并将乘积处理得到的乘积结果与所述中间变量进行加和处理,得到第一处理结果;所述运算处理模块,还用于对所述签名消息与所述基点进行乘积处理,得到第二处理结果;所述确定模块,用于在所述第一处理结果与所述第二处理结果一致的情况下,确定所
述签名信息的验证结果为签名验证成功;所述确定模块,还用于在所述第一处理结果与所述第二处理结果不一致的情况下,确定所述签名信息的验证结果为签名验证失败。18.根据权利要求13至17中任一项所述的装置,其中,所述椭圆曲线算法包括,爱德华椭圆曲线算法。19.一种消息的盲签名装置,应用于签名处理的第二设备,所述装置包括:第一发送模块,用于向提供消息的第一设备发送签名临时变量;接收模块,用于接收所述第一设备返回的盲化消息;所述盲化消息,由所述第一设备结合待签名的消息、所述第一设备的第一临时变量、所述签名临时变量、椭圆曲线算法中的基点以及第一密码学哈希函数、以及基于所述椭圆曲线算法确定得到的公钥,确定得到;签名处理模块,用于对所述盲化消息进行签名处理,得到签名后盲化消息;第二发送模块,用于将所述签名后盲化消息发送至所述第一设备,以指示所述第一设备对所述签名后盲化消息进行去盲处理,得到所述消息对应的签名消息。20.根据权利要求19所述的装置,其中,所述第一临时变量,根据所述第一设备选择的第一随机数值、将所述消息输入所述第一密码学哈希函数后得到的消息哈希变量、以及所述第一密码学哈希函数,确定得到。21.根据权利要求19所述的装置,其中,所述装置还包括:第一获取模块和第一确定模块;所述第一获取模块,用于获取所述第二设备选择的第二随机数值;所述第一获取模块,还用于获取密钥生成过程中的第三临时变量;所述第三临时变量,为将私钥输入第二密码学哈希函数后得到的输出结果中靠后部分的数字串;所述第一获取模块,还用于将所述第二随机数值以及所述第三临时变量输入所述第一密码学哈希函数,获取所述第一密码学哈希函数输出的所述第二临时变量;所述第一确定模块,用于根据所述第二临时变量以及所述基点,确定所述签名临时变量。22.根据权利要求19所述的装置,其中,所述签名处理模块具体用于,对所述盲化消息以及密钥生成过程中的签名辅助私钥进行乘积处理,并将乘积处理得到的结果与所述第二设备的第二临时变量进行加和处理,得到所述签名后盲化消息;所述第二临时变量,根据所述第二设备选择的第二随机数值以及所述第一密码学哈希函数,确定得到。23.根据权利要求19所述的装置,其中,所述装置还包括:第二获取模块和第二确定模块;所述第二获取模块,用于获取所述椭圆曲线算法中指定位数的随机数值;所述第二获取模块,还用于将所述指定位数的随机数值,作为所述椭圆曲线算法中的私钥;所述第二获取模块,还用于将所述私钥输入所述椭圆曲线算法中的第二密码学哈希函数,获取所述第二密码学哈希函数的输出结果,所述输出结果包括靠前部分的数字串以及靠后部分的数字串;所述第二确定模块,用于根据所述靠前部分的数字串以及所述指定位数,确定签名辅
助私钥;所述第二获取模块,还用于对所述签名辅助私钥以及所述椭圆曲线算法中的基点进行乘积处理,获取所述公钥。24.根据权利要求19至23中任一项所述的装置,其中,所述椭圆曲线算法包括,爱德华椭圆曲线算法。25.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至6中任一项所述的方法;或者,执行权利要求7至12中任一项所述的方法。26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至6中任一项所述的方法;或者,执行根据权利要求7至12中任一项所述的方法。27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至6中任一项所述的方法;或者,实现根据权利要求7至12中任一项所述的方法。
技术总结
本公开提供了消息的盲签名算法、装置及电子设备,涉及人工智能技术领域,尤其涉及自然语言处理、云计算等技术领域,可应用于电子投票、匿名投票等场景。具体实现方案为:提供消息的第一设备根据椭圆曲线算法中的第一密码学哈希函数,对第一设备中待签名的消息进行哈希处理,得到消息哈希变量;进而结合第一设备的第一临时变量、第二设备的签名临时变量、第一密码学哈希函数、椭圆曲线算法中的基点、以及基于椭圆曲线算法确定得到的公钥,确定盲化消息;以便进行签名处理以及去盲处理,其中,签名临时变量以及第一临时变量的随机性强,确保签名消息的不可追踪性;且第一密码学哈希函数的使用,能够有效减少盲签名的计算量,提高盲签名的处理效率。名的处理效率。名的处理效率。
技术研发人员:叶文威
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2023.05.26
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种农用拖拉机悬挂结构及其控制系统的制作方法 下一篇:一种装配系统的制作方法
