面向群体的多重签名方法、系统、电子装置及存储介质

未命名 07-20 阅读:120 评论:0


1.本发明涉及数字签名领域,尤其涉及一种面向群体的多重签名方法、系统、电子装置及存储介质。


背景技术:

2.数字签名常用来认证数字数据,比如文件、报文、财务信息以及其它数据。当一块数据被数字签名,该数据的接收者可以验证该数据来自于特定的发送者,通称为签名者,以及该数据从其被签名后没有被修改。数字签名也可以在数据被创建时或数据被发送时进行验证。
3.随着对数字签名研究的不断深入以及计算机网络的快速发展,简单的模拟手写签名的一般数字签名已不能完全满足各种现实应用的需要。而多重签名(multisignature)就是一种特殊的数字签名体制。在一个多重签名体制中,多个签名人一起对同一个消息进行数字签名,从而使得一个数字签名就可以对多个签署该消息的签名人进行身份验证。
4.但是在面向群体的多重签名中,不能保障签名者的匿名性和可追踪性,并且签名会占用较多的存储空间计算与通信资源。


技术实现要素:

5.本发明的主要目的在于提供一种面向群体的多重签名方法、系统、电子装置及存储介质,旨在解决现有技术中的多重签名,不能保障签名者的匿名性和可追踪性,并且签名会占用较多的存储空间计算与通信资源的技术问题。
6.为实现上述目的,本发明第一方面提供一种面向群体的多重签名方法,包括:初始化θ个群gri,所述θ个群的成员数量不小于一,每个群有η个成员以及至少一个管理员;为每个群里的成员和管理员生成私钥,并计算和公布群的公钥;在签名时,每个群选取一个成员参与签名,使用m表示要签名的消息,验证该成员的签名是否成立,若不成立,则停止此次签名协议;若成立,则管理员将ri、管理员公钥mpki发送给智能合约;智能合约收到ri、管理员公钥mpki后,将(r1,mpk1),

,(r
θ
,mpk
θ
)发送给各个群的管理员,并记录当前时间戳t,计算将t发送给各个群的管理员;根据所有群管理员的签名公钥计算vi=h1(l,mpki),其中l是mpk1、

、mpk
θ
构成的列表,并计算
[0007][0008]
r=tn·
r1…rθ
[0009][0010]
si=ri+h0(t)+c
·
vi·
mski(modα)
[0011]
群管理员将计算出的si发送给智能合约;智能合约收到所有s1,

,s
θ
后,将s1,

,sθ
发送给各个群管理员;群gri的管理员计算s=s1+

+s
θ
(modα),将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)。
[0012]
进一步地,初始化θ个群gri的方法包括:根据预设的安全参数λ,所有群管理员选择一个阶数为素数α的乘法群其中α>2
1024
;选择一个群的生成元所述生成元需要求解离散对数问题在群中保持困难;选择三个密码哈希函数中保持困难;选择三个密码哈希函数其中,{0,1}
*
表示不定长的比特字符串,是小于α整数集合,表示θ个群元素组成的列表;公布所有群公开参数群gri的管理员选择两个大素数计算以及ni的欧拉函数随机选择一个数ei,其中且与互素,计算di,并使di满足群gri的管理员将di作为群私钥,秘密保存;将ni、ei作为群公钥的一部分公布出去。
[0013]
进一步地,为每个群里的成员和管理员生成私钥,并计算和公布群的公钥包括:群gri的成员选择一个随机数作为签名私钥,计算对应的签名公钥并将公钥x
i,j
和身份id
i,j
发送给群gri管理员;群gri管理员为选择一个大素数p
i,j
(p
i,j
>x
i,j
),且在群内不重复;群gri管理员把发送给成员保存(x
i,j
,id
i,j
);群成员检查检查是否成立,确保是由群gri管理员计算并发送;当群gri内的所有成员都生成了签名密钥之后,群gri的管理员选择一个随机数作为自己的签名私钥再计算得到群gri的管理员的签名公钥选择一个大素数p
i,0
,其中p
i,0
≠p
i,j
(j>0);管理员根据中国剩余定理计算同余方程组:
[0014][0015]
的解,得到:
[0016]ki
≡mpkip

i,0
p
i,0
+x
i,1
p

i,1
p
i,1
+

+x
i,η
p

i,η
p
i,η
(mod pi)
[0017]
其中,pi=p
i,0
p
i,1

p
i,η
,p
i,j
=pi/p
i,j
,p

i,j
是满足p
i,j
p

i,j
≡1(mod p
i,j
)的正整数解;将mpki、ki和ni、ei一起作为群gri的群公钥公布出去。
[0018]
进一步地,所述验证该成员的签名是否成立的方法包括:群成员选择一个随机数计算s

i,j
=r

i,j
+x
i,j
·
h3(r

i,j
,m)(modα);该群成员将r′
i,j
、s

i,j
、p
i,j
、发送给群gri的管理员;
[0019]
群gri的管理员用群公钥计算以及该成员的签名公钥x
i,j
≡ki(mod p
i,j
),验证等式是否成立,若成立则该成员的签名成立,若不成立则该成员的签名不成立。
[0020]
进一步地,面向群体的多重签名方法还包括:若有新成员加入群,则重新计算群公钥,计算方法包括:若此时有新成员申请加入群gri,新成员选择一个签名私钥和签名公钥后,将公钥x
i,η+1
和身份id
i,η+1
发送给群gri管理员;群管理员根据所述为每个群里的成员和管理员生成私钥,并计算和公布群的公钥的方法选择p
i,η+1
,并将告知即将加入的新成员重新计算ki。
[0021]
进一步地,面向群体的多重签名方法还包括:若需要撤销群成员,则重新计算群公钥,计算方法包括:需要撤销的群成员的id
i,η
查找该成员的公钥,将其公钥x
i,η
替换为另一个不同的随机数,重新计算ki。
[0022]
进一步地,面向群体的多重签名方法还包括签名验证和签名打开;签名验证包括:对于签名σ=(r,s)和消息签名的消息m,验证者根据各群的群公钥得到所有群管理员的签名公钥列表l=(mpk1、

、mpk
θ
),计算聚合公钥以及检查等式是否成立,如果成立,则输出为1,表示接受签名,否则输出0,表示签名无效;签名打开包括:当需要打开签名σ=(r,s),各群管理根据签名s和保存的(s,p
i,j
,r

i,j
,s

i,j
)查询找到其中,j1,

,j
θ
分别表示各群参与签名的成员在群内的索引;各群管理员分别计算群内参与签名成员的公钥找到对应的身份
[0023]
本发明第二方面提供一种面向群体的多重签名系统,其特征在于,包括:初始化模块,用于初始化θ个群gri,所述θ个群的成员数量不小于一,每个群有η个成员以及至少一个管理员;密钥生成模块,用于为每个群里的成员和管理员生成私钥,并计算和公布群的公钥;签名模块,用于在签名时,每个群选取一个成员参与签名,使用m表示要签名的消息,验证该成员的签名是否成立,若不成立,则停止此次签名协议;若成立,则管理员将ri、管理员公钥mpki发送给智能合约;智能合约收到ri、管理员公钥mpki后,将(r1,mpk1),

,(r
θ
,mpk
θ
)发送给各个群的管理员,并记录当前时间戳t,计算将t发送给各个群的管理员;根据所有群管理员的签名公钥计算vi=h1(l,mpki),其中l是mpk1、

、mpk
θ
构成的列表,并计算
[0024]
[0025]
r=tn·
r1…rθ
[0026][0027]
si=ri+h0(t)+c
·
vi·
mski(modα)
[0028]
群管理员将计算出的si发送给智能合约;智能合约收到所有s1,

,s
θ
后,将s1,

,s
θ
发送给各个群管理员;群gri的管理员计算s=s1+

+s
θ
(modα),将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)。
[0029]
本发明第三方面提供一种电子装置,包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现上述中的任意一项所述面向群体的多重签名方法。
[0030]
本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述中的任意一项所述面向群体的多重签名方法。
[0031]
本发明提供一种面向群体的多重签名方法、系统、电子装置及存储介质,有益效果在于:通过引入智能合约的方法,本发明中的协议在聚合不同群的签名时具有较高的效率,签名的长度固定,不随群数量和成员数量增加,极其节省存储空间。另外,本发明中的协议通过引入防篡改、自动运行的智能合约作为一个公共第三方,负责交换中间数据和记录时间戳的功能,在保持两轮通信的同时,能够应对签名伪造攻击。协议中没有使用双线性映射,只使用了少量的指数运算,签名计算简单,效率高。
附图说明
[0032]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]
图1为本发明实施例面向群体的多重签名方法的流程图;
[0034]
图2为本发明实施例面向群体的多重签名系统的结构示意框图;
[0035]
图3为本发明实施例电子装置的结构示意框图。
具体实施方式
[0036]
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]
本发明提出一种面向群体的多重签名,其区别于多重签名表达签名间的“与”关系,以及群签名表达签名间的“或”关系,能聚合来自不同群体的群签名,既在群体内部保障了签名者的匿名性和可追踪性,又在群体间改善了签名所占用的存储空间、计算与通信资源。该发明的创新点在于:1)支持更加灵活的签名关系表达;2)基于智能合约最优化签名者负载。
[0038]
假设面向群体的多重签名协议中共有θ个群,用gri表示,1≤i≤θ,每个群的成员
数量不小于1,数量可以不一致,为了方便表示,设每个群有η个成员基于陈泽文等人和maxwell等人的签名协议,提出的面向群体的多重签名协议包括初始化、密钥生成、成员加入、成员撤销、签名、验证、签名打开七个算法,详细描述如下:
[0039]
请参阅图1,为一种面向群体的多重签名方法,包括:
[0040]
s101、初始化θ个群gri;
[0041]
s102、为每个群里的成员和管理员生成私钥,并计算和公布群的公钥;
[0042]
s103、在签名时,每个群选取一个成员参与签名,验证该成员的签名是否成立,若成立,则管理员将ri、管理员公钥mpki发送给智能合约;
[0043]
s104、智能合约收到ri、管理员公钥mpki后,将(r1,mpk1),

,(r
θ
,mpk
θ
)发送给各群的管理员,计算t,将t发送给各群的管理员;
[0044]
s105、根据所有群管理员的签名公钥计算vi=h1(l,mpki),并计算si;
[0045]
s106、群管理员将计算出的si发送给智能合约;
[0046]
s107、智能合约收到所有s1,

,s
θ
后,将s1,

,s
θ
发送给各个群管理员;
[0047]
s108、群gri的管理员计算s,将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)。
[0048]
群gri的管理员计算s,将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)
[0049]
在本实施例中,使用m表示要签名的消息,
[0050]
步骤s103中,若验证不成立,则停止此次签名协议;
[0051]
在步骤104中,智能合约还记录了时间戳t,t的计算为
[0052]
步骤s105中l是mpk1、

、mpk
θ
构成的列表,si计算如下:
[0053][0054]
r=tn·
r1…rθ
[0055][0056]
si=ri+h0(t)+c
·
vi·
mski(modα)
[0057]
在步骤s108中,s的计算如下:
[0058]
s=s1+

+s
θ
(modα)
[0059]
在一个实施例中,初始化θ个群gri的方法包括:根据预设的安全参数λ,所有群管理员选择一个阶数为素数α的乘法群其中α>2
1024
;选择一个群的生成元所述生成元需要求解离散对数问题在群g中保持困难;选择三个密码哈希函数成元需要求解离散对数问题在群g中保持困难;选择三个密码哈希函数其中,{0,1}
*
表示不定长的比特字符串,是小于α整数集合,表示θ个群元素组成的列表;公布所有群公开参数群gri的管理员选择两个大素数计算以及ni的欧拉函数
随机选择一个数ei,其中且与互素,计算di,并使di满足群gri的管理员将di作为群私钥,秘密保存;将ni、ei作为群公钥的一部分公布出去。
[0060]
在一个实施例中,为每个群里的成员和管理员生成私钥,并计算和公布群的公钥包括:群gri的成员选择一个随机数作为签名私钥,计算对应的签名公钥并将公钥x
i,j
和身份id
i,j
发送给群gri管理员;群gri管理员为选择一个大素数p
i,j
(p
i,j
>x
i,j
),且在群内不重复;群gri管理员把发送给成员保存(x
i,j
,id
i,j
);群成员检查是否成立,确保是由群gri管理员计算并发送;当群gri内的所有成员都生成了签名密钥之后,群gri的管理员选择一个随机数作为自己的签名私钥再计算得到群gri的管理员的签名公钥选择一个大素数p
i,0
,其中p
i,0
≠p
i,j
(j>0);管理员根据中国剩余定理计算同余方程组:
[0061][0062]
的解,得到:
[0063]ki
≡mpkip

i,0
p
i,0
+x
i,1
p

i,1
p
i,1
+

+x
i,η
p

i,η
p
i,η
(mod pi)
[0064]
其中,pi=p
i,0
p
i,1

p
i,η
,p
i,j
=pi/p
i,j
,p

i,j
是满足p
i,j
p

i,j
≡1(mod p
i,j
)的正整数解;将mpki、ki和ni、ei一起作为群gri的群公钥公布出去。
[0065]
在一个实施例中,所述验证该成员的签名是否成立的方法包括:群成员选择一个随机数计算该群成员将r

i,j
、s

i,j
、p
i,j
、发送给群gri的管理员;
[0066]
群gri的管理员用群公钥计算以及该成员的签名公钥x
i,j
≡ki(mod p
i,j
),验证等式是否成立,若成立则该成员的签名成立,若不成立则该成员的签名不成立。
[0067]
在一个实施例中,面向群体的多重签名方法还包括:若有新成员加入群,则重新计算群公钥,计算方法包括:若此时有新成员申请加入群gri,新成员选择一
个签名私钥和签名公钥后,将公钥x
i,η+1
和身份id
i,η+1
发送给群gri管理员;群管理员根据所述为每个群里的成员和管理员生成私钥,并计算和公布群的公钥的方法选择p
i,η+1
,并将告知即将加入的新成员重新计算ki。
[0068]
在本实施例中,通过重新计算ki,能够及时让每位新增的成员参与到数字签名的过程中。
[0069]
在一个实施例中,面向群体的多重签名方法还包括:若需要撤销群成员,则重新计算群公钥,计算方法包括:需要撤销的群成员的id
i,η
查找该成员的公钥,将其公钥x
i,η
替换为另一个不同的随机数,重新计算ki。
[0070]
在本实施例中,通过重新计算ki,能够及时让每位撤销的成员不能参与到数字签名的过程中,防止信息泄露。
[0071]
在一个实施例中,面向群体的多重签名方法还包括签名验证;签名验证包括:对于签名σ=(r,s)和消息签名的消息m,验证者根据各群的群公钥得到所有群管理员的签名公钥列表l=(mpk1、

、mpk
θ
),计算聚合公钥以及检查等式是否成立,如果成立,则输出为1,表示接受签名,否则输出0,表示签名无效。
[0072]
在一个实施例中,面向群体的多重签名方法还包括签名打开,签名打开包括:当需要打开签名σ=(r,s),各群管理根据签名s和保存的(s,p
i,j
,r

i,j
,s

i,j
)查询找到其中,j1,

,j
θ
分别表示各群参与签名的成员在群内的索引;各群管理员分别计算群内参与签名成员的公钥找到对应的身份
[0073]
上述面向群体的多重签名协议在涉及多个组织联合签名时,能够支持灵活的签名关系,同时验证十分简单。例如,有两个组织gr1和gr2,gr1包含成员和gr2包含成员和每个组织内的任一成员都能和其它组织内的任一成员代表各自的组织合作签名,因此,在这个例子中,有合作签名,因此,在这个例子中,有四个签名关系。当要验证一个签名是否由两个组织内的合法成员合作产生时,验证者不用判断签名对应四个中哪一个,这意味着验证者不用了解任何成员的个人公钥,在成员数量大的情况下,这是极大的优势。验证者只需用两个组织的群公钥就能判断签名是否有效。
[0074]
此外,通过引入智能合约的方法,本发明中的协议在聚合不同群的签名时具有较高的效率,签名的长度固定,不随群数量和成员数量增加,极其节省存储空间。签名协议是基于maxwell等人的多重签名协议进行改进。在maxwell等人的签名协议中,签名者之间需要三轮通信才能聚合签名,如果减少到两轮通信,就会可能遭受基于广义生日问题的签名伪造攻击。本发明中的协议通过引入防篡改、自动运行的智能合约作为一个公共第三方,负责交换中间数据和记录时间戳的功能,在保持两轮通信的同时,能够应对签名伪造攻击。协议中没有使用双线性映射,只使用了少量的指数运算,签名计算简单,效率高。
[0075]
请参阅图2,本发明实施例还提供一种面向群体的多重签名系统,包括:初始化模
块1、密钥生成模块2和签名模块3;
[0076]
初始化模块1用于初始化θ个群gri,所述θ个群的成员数量不小于一,每个群有η个成员以及至少一个管理员;
[0077]
密钥生成模块2用于为每个群里的成员和管理员生成私钥,并计算和公布群的公钥;
[0078]
签名模块3用于在签名时,每个群选取一个成员参与签名,使用m表示要签名的消息,验证该成员的签名是否成立,若不成立,则停止此次签名协议;若成立,则管理员将ri、管理员公钥mpki发送给智能合约;智能合约收到ri、管理员公钥mpki后,将(r1,mpk1),

,(r
θ
,mpk
θ
)发送给各个群的管理员,并记录当前时间戳t,计算将t发送给各个群的管理员;根据所有群管理员的签名公钥计算vi=h1(l,mpki),其中l是mpk1、

、mpk
θ
构成的列表,并计算
[0079][0080]
r=tn·
r1…rθ
[0081][0082]
si=ri+h0(t)+c
·
vi·
mski(modα)
[0083]
群管理员将计算出的si发送给智能合约;智能合约收到所有s1,

,s
θ
后,将s1,

,s
θ
发送给各个群管理员;群gri的管理员计算s=s1+

+s
θ
(modα),将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)。
[0084]
初始化模块1包括:第一选择单元、第二选择单元、第三选择单元、第一公布单元、第四选择单元、第五选择单元、第二公布单元;
[0085]
第一选择单元用于根据预设的安全参数λ,所有群管理员选择一个阶数为素数α的乘法群其中α>2
1024

[0086]
第二选择单元用于选择一个群的生成元所述生成元需要求解离散对数问题在群中保持困难;
[0087]
第三选择单元用于选择三个密码哈希函数第三选择单元用于选择三个密码哈希函数其中,{0,1}
*
表示不定长的比特字符串,是小于α整数集合,表示θ个群元素组成的列表;
[0088]
第一公布单元用于公布所有群公开参数
[0089]
第四选择单元用于群gri的管理员选择两个大素数计算以及ni的欧拉函数
[0090]
第五选择单元用于随机选择一个数ei,其中且与互素,计算di,并使di满足
[0091]
第二公布单元用于群gri的管理员将di作为群私钥,秘密保存;将ni、ei作为群公钥的一部分公布出去。
[0092]
在一个实施例中,密钥生成模块2包括:第六选择单元、第七选择单元、第一发送单元、第二发送单元、第八选择单元、公布单元;
[0093]
第六选择单元用于群gri的成员选择一个随机数作为签名私钥,计算对应的签名公钥并将公钥x
i,j
和身份id
i,j
发送给群gri管理员;
[0094]
第七选择单元用于群gri管理员为选择一个大素数p
i,j
(p
i,j
>x
i,j
),且在群内不重复;
[0095]
第一发送单元用于群gri管理员把发送给成员保存(x
i,j
,id
i,j
);
[0096]
第二发送单元用于群成员检查是否成立,确保是由群gri管理员计算并发送;
[0097]
第八选择单元用于当群gri内的所有成员都生成了签名密钥之后,群gri的管理员选择一个随机数作为自己的签名私钥再计算得到群gri的管理员的签名公钥选择一个大素数p
i,0
,其中p
i,0
≠p
i,j
(j>0);
[0098][0099]ki
≡mpkip

i,0
p
i,0
+x
i,1
p

i,1
p
i,1
+

+x
i,η
p

i,η
p
i,η
(mod pi)
[0100]
其中,pi=p
i,0
p
i,1

p
i,η
,p
i,j
=pi/p
i,j
,p

i,j
是满足p
i,j
p

i,j
≡1(mod p
i,j
)的正整数解;
[0101]
公布单元用于将mpki、ki和ni、ei一起作为群gri的群公钥公布出去。
[0102]
在一个实施例中,签名模块3包括:随机数选择单元、第三发送单元、验证单元;
[0103]
随机数选择单元用于群成员选择一个随机数计算s

i,j
=r

i,j
+x
i,j
·
h3(r

i,j
,m)(modα);
[0104]
第三发送单元用于该群成员将r

i,j
、s

i,j
、p
i,j
、发送给群gri的管理员;
[0105]
验证单元用于群gri的管理员用群公钥计算以及该成员的签名公钥x
i,j
≡ki(mod p
i,j
),验证等式是否成立,若成立则该成员的签名成立,若不成立则该成员的签名不成立。
[0106]
在一个实施例中,面向群体的多重签名系统还包括第一更新模块,用于若有新成员加入群,则重新计算群公钥,计算方法包括:若此时有新成员申请加入群gri,新成员选择一个签名私钥和签名公钥后,将公钥x
i,η+1
和身份id
i,η+1
发送给群gri管理员;群管理员根据所述为每个群里的成员和管理员生成私钥,并计算和公布群的公钥的方法选择p
i,η+1
,并将告知即将加入的新成员重新计算ki。
[0107]
在一个实施例中,面向群体的多重签名系统还包括第二更新模块,若需要撤销群成员,则重新计算群公钥,计算方法包括:需要撤销的群成员的id
i,η
查找该成员的公钥,将其公钥x
i,η
替换为另一个不同的随机数,重新计算ki。
[0108]
在一个实施例中,面向群体的多重签名系统还包括签名验证模块,用于对于签名σ=(r,s)和消息签名的消息m,验证者根据各群的群公钥得到所有群管理员的签名公钥列表l=(mpk1、

、mpk
θ
),计算聚合公钥以及以及检查等式是否成立,如果成立,则输出为1,表示接受签名,否则输出0,表示签名无效。
[0109]
在一个实施例中,面向群体的多重签名系统还包括签名打开模块,用于当需要打开签名σ=(r,s),各群管理根据签名s和保存的(s,p
i,j
,r

i,j
,s

i,j
)查询找到其中,j1,

,j
θ
分别表示各群参与签名的成员在群内的索引;各群管理员分别计算群内参与签名成员的公钥找到对应的身份
[0110]
本实施例提供的面向群体的多重签名系统,通过引入智能合约的方法,本发明中的协议在聚合不同群的签名时具有较高的效率,签名的长度固定,不随群数量和成员数量增加,极其节省存储空间。另外,本发明中的协议通过引入防篡改、自动运行的智能合约作为一个公共第三方,负责交换中间数据和记录时间戳的功能,在保持两轮通信的同时,能够应对签名伪造攻击。协议中没有使用双线性映射,只使用了少量的指数运算,签名计算简单,效率高。
[0111]
本技术实施例提供一种电子装置,请参阅图3,该电子装置包括:存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行该计算机程序时,实现前述中描述的面向群体的多重签名方法。
[0112]
进一步的,该电子装置还包括:至少一个输入设备603以及至少一个输出设备604。
[0113]
上述存储器601、处理器602、输入设备603以及输出设备604,通过总线605连接。
[0114]
其中,输入设备603具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备604具体可为显示屏。
[0115]
存储器601可以是高速随机存取记忆体(ram,random access memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器601用于存储一组可执行程序代码,处理器602与存储器601耦合。
[0116]
进一步的,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述中的
存储器601。该计算机可读存储介质上存储有计算机程序,该程序被处理器602执行时实现前述实施例中描述的面向群体的多重签名方法。
[0117]
进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器601(rom,read-only memory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0118]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0119]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0120]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0121]
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0122]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
[0123]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0124]
以上为对本发明所提供的一种面向群体的多重签名方法、系统、电子装置及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种面向群体的多重签名方法,其特征在于,包括:初始化θ个群gr
i
,所述θ个群的成员数量不小于一,每个群有η个成员以及至少一个管理员;为每个群里的成员和管理员生成私钥,并计算和公布群的公钥;在签名时,每个群选取一个成员参与签名,使用m表示要签名的消息,验证该成员的签名是否成立,若不成立,则停止此次签名协议;若成立,则管理员将r
i
、管理员公钥mpk
i
发送给智能合约;智能合约收到r
i
、管理员公钥mpk
i
后,将(r1,mpk1),

,(r
θ
,mpk
θ
)发送给各个群的管理员,并记录当前时间戳t,计算将t发送给各个群的管理员;根据所有群管理员的签名公钥计算r
i
=h1(l,mpk
i
),其中l是mpk1、

、mpk
θ
构成的列表,并计算r=t
n
·
r1…
r
θ
s
i
=r
i
+h0(t)+c
·
v
i
·
msk
i
(modα)群管理员将计算出的s
i
发送给智能合约;智能合约收到所有s1,

,s
θ
后,将s1,

,s
θ
发送给各个群管理员;群gr
i
的管理员计算s=s1+

+s
θ
(modα),将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)。2.根据权利要求1所述的面向群体的多重签名方法,其特征在于,初始化θ个群gr
i
的方法包括:根据预设的安全参数λ,所有群管理员选择一个阶数为素数α的乘法群其中α>2
1024
;选择一个群的生成元所述生成元需要求解离散对数问题在群中保持困难;选择三个密码哈希函数h0:h1:h2:h3:其中,{0,1}
*
表示不定长的比特字符串,是小于α整数集合,表示θ个群元素组成的列表;公布所有群公开参数群gr
i
的管理员选择两个大素数计算以及n
i
的欧拉函数随机选择一个数e
i
,其中且与互素,计算d
i
,并使d
i
满足群gr
i
的管理员将d
i
作为群私钥,秘密保存;将n
i
、e
i
作为群公钥的一部分公布出去。3.根据权利要求1所述的面向群体的多重签名方法,其特征在于,
为每个群里的成员和管理员生成私钥,并计算和公布群的公钥包括:群gr
i
的成员选择一个随机数作为签名私钥,计算对应的签名公钥并将公钥x
i,j
和身份id
i,j
发送给群gr
i
管理员;群gr
i
管理员为选择一个大素数p
i,j
(p
i,j
>x
i,j
),且在群内不重复;群gr
i
管理员把发送给成员保存(x
i,j
,id
i,j
);群成员检查是否成立,确保是由群gr
i
管理员计算并发送;当群gr
i
内的所有成员都生成了签名密钥之后,群gr
i
的管理员选择一个随机数作为自己的签名私钥再计算得到群gr
i
的管理员的签名公钥选择一个大素数p
i,0
,其中p
i,0
≠p
i,j
(j>0);管理员根据中国剩余定理计算同余方程组:的解,得到:k
i
≡mpk
i
p

i,0
p
i,0
+x
i,1
p

i,1
p
i,1
+

+x
i,η
p

i,η
p
i,η
(mod p
i
)其中,p
i
=p
i,0
p
i,1

p
i,η
,p
i,j
=p
i
/p
i,j
,p

i,j
是满足p
i,j
p

i,j
≡1(mod p
i,j
)的正整数解;将mpk
i
、k
i
和n
i
、e
i
一起作为群gr
i
的群公钥公布出去。4.根据权利要求1所述的面向群体的多重签名方法,其特征在于,所述验证该成员的签名是否成立的方法包括:群成员选择一个随机数计算s

i,j
=r

i,j
+x
i,j
·
h3(r

i,j
,m)(modα);该群成员将r

i,j
、s

i,j
、p
i,j
、发送给群gr
i
的管理员;群gr
i
的管理员用群公钥计算以及该成员的签名公钥x
i,j
≡k
i
(mod p
i,j
),验证等式是否成立,若成立则该成员的签名成立,若不成立则该成员的签名不成立。5.根据权利要求1所述的面向群体的多重签名方法,其特征在于,面向群体的多重签名方法还包括:若有新成员加入群,则重新计算群公钥,计算方法包括:若此时有新成员申请加入群gr
i
,新成员选择一个签名私钥和签名公钥后,将公钥x
i,η+1
和身份id
i,η+1
发送给群gr
i
管理员;群管理员根据所述为每个群里的成员和管理员生成私钥,并计算和公布群的公钥的方法选择p
i,η+1
,并
将告知即将加入的新成员重新计算k
i
。6.根据权利要求1所述的面向群体的多重签名方法,其特征在于,面向群体的多重签名方法还包括:若需要撤销群成员,则重新计算群公钥,计算方法包括:需要撤销的群成员的id
i,η
查找该成员的公钥,将其公钥x
i,η
替换为另一个不同的随机数,重新计算k
i
。7.根据权利要求1所述的面向群体的多重签名方法,其特征在于,面向群体的多重签名方法还包括签名验证和签名打开;签名验证包括:对于签名σ=(r,s)和消息签名的消息m,验证者根据各群的群公钥得到所有群管理员的签名公钥列表l=(mpk1、

、mpk
θ
),计算聚合公钥以及检查等式是否成立,如果成立,则输出为1,表示接受签名,否则输出0,表示签名无效;签名打开包括:当需要打开签名σ=(r,s),各群管理根据签名s和保存的(s,p
i,j
,r

i,j
,s

i,j
)查询找到其中,j1,

,j
θ
分别表示各群参与签名的成员在群内的索引;各群管理员分别计算群内参与签名成员的公钥找到对应的身份8.一种面向群体的多重签名系统,其特征在于,包括:初始化模块,用于初始化θ个群gr
i
,所述θ个群的成员数量不小于一,每个群有η个成员以及至少一个管理员;密钥生成模块,用于为每个群里的成员和管理员生成私钥,并计算和公布群的公钥;签名模块,用于在签名时,每个群选取一个成员参与签名,使用m表示要签名的消息,验证该成员的签名是否成立,若不成立,则停止此次签名协议;若成立,则管理员将r
i
、管理员公钥mpk
i
发送给智能合约;智能合约收到r
i
、管理员公钥mpk
i
后,将(r1,mpk1),

,(r
θ
,mpk
θ
)发送给各个群的管理员,并记录当前时间戳t,计算将t发送给各个群的管理员;根据所有群管理员的签名公钥计算v
i
=h1(l,mpk
i
),其中l是mpk1、

、mpk
θ
构成的列表,并计算r=t
n
·
r1…
r
θ
s
i
=r
i
+h0(t)+c
·
v
i
·
msk
i
(modα)群管理员将计算出的s
i
发送给智能合约;智能合约收到所有s1,

,s
θ
后,将s1,

,s
θ
发送给各个群管理员;群gr
i
的管理员计算s=s1+

+s
θ
(modα),将(s,p
i,j
,r

i,j
,s

i,j
)保存,输出最终的签名σ=(r,s)。9.一种电子装置,包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1至7中的任意一项所述方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任意一项所述方法。

技术总结
本发明公开了一种面向群体的多重签名方法、系统、电子装置及存储介质,方法包括:初始化θ个群Gr


技术研发人员:张鹏 葛发 刘宏伟
受保护的技术使用者:深圳大学
技术研发日:2023.03.03
技术公布日:2023/7/19
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐