一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Shamir秘密共享的多方AOS环签名方法及系统与流程

2022-06-02 13:04:04 来源:中国专利 TAG:

一种基于shamir秘密共享的多方aos环签名方法及系统
技术领域
1.本发明公开一种基于shamir秘密共享的多方aos环签名方法及系统,涉及密码学方案技术领域。


背景技术:

2.目前,在区块链系统中,为了防止验证签名时的用户公钥被定位和追踪,实现用户匿名以及更好地保护用户的隐私,环签名得到了广泛的应用。其中,aos环签名的签名大小较初期环签名减少了50%。但是,aos环签名不像ecdsa签名一样,有许多保障私钥安全的多方签名方案。
3.故现发明一种基于shamir秘密共享的多方aos换签名方法及系统,以解决上述问题。


技术实现要素:

4.本发明针对现有技术的问题,提供一种基于shamir秘密共享的多方aos换签名方法及系统,所采用的技术方案为:一种基于shamir秘密共享的多方aos换签名方法,所述的方法具体步骤如下:
5.1.1.由密钥生成中心生成方案需要的公私钥,安全分发私钥并公开公钥;
6.1.2.多台设备进行交互,并将aos环签名输出;
7.1.3.验证签名的设备调用aos环签名的验证算法验证步骤1.2中输出的环签名。
8.所述步骤1.1具体步骤如下:
9.1.1.1.密钥生成中心调用aos环签名的密钥生成算法,生成环签名公私钥,并将私钥安全分发给不需要多方aos环签名的用户,并公开公钥;
10.1.1.2.密钥生成中心计算多台设备的环签名私钥,并安全分发给对应设备。
11.所述步骤1.2具体步骤如下:
12.1.2.1.用户启动多台设备;每台设备都生成随机数,并广播随机数计算出的值;
13.1.2.2.每台设备接收到步骤1.2.1中广播给自己的值后,计算签名并设置循环值为1;
14.1.2.3每台设备根据循环值判断是否还要继续循环,若是,执行步骤1.2.7;否则,执行步骤1.2.4;
15.1.2.4每台设备用生成的随机秘密生成多个共享值,并发送给对应设备,利用恢复算法计算签名,执行步骤1.2.3;
16.1.2.5.每台设备用自己的私钥和步骤1.2.1生成的随机数计算签名秘密,并用签名秘密调用shamir秘密共享的共享值生成算法生成多个共享值,并将签名秘密的共享值发送给对应的设备;
17.1.2.6每台设备在收到步骤1.2.5的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的签名值,并输出签名。
18.所述步骤1.2.4具体步骤如下:
19.1.2.4.1.每台设备用生成的随机秘密,调用shamir秘密共享的共享值生成算法生成多个共享值,并将随机秘密的共享值发送给对应的设备;
20.1.2..4.2.每台设备在收到步骤1.2.4.1的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的随机值,用共享的随机值继续计算签名;
21.1.2..4.3.每台设备将循环值加1,执行步骤1.2.3。
22.一种基于shamir秘密共享的多方aos环签名系统,所述的系统具体包括密钥生成模块、多方签名模块和签名验证模块:
23.公钥生成模块:由密钥生成中心生成方案需要的公私钥,安全分发私钥并公开公钥;
24.多方签名模块:多台设备进行交互,并将aos环签名输出;
25.签名验证模块:验证签名的设备调用aos环签名的验证算法验证步骤1.2中输出的环签名。
26.所述公钥生成模块具体包括用户密钥计算模块和设备密钥分发模块:
27.用户密钥计算模块:密钥生成中心调用aos环签名的密钥生成算法,生成环签名公私钥,将私钥安全分发给不需要多方aos环签名的用户,并公开公钥;
28.设备密钥分发模块:密钥生成中心计算多台设备的环签名私钥,并安全分发给对应设备。
29.所述多方签名模块具体包括随机数生成模块、循环设置模块、循环判断模块、签名计算模块、秘密共享模块和签名输出模块:
30.随机数生成模块:用户启动多台设备;每台设备都生成随机数,并广播随机数计算出的值;
31.循环设置模块:每台设备接收到随机数生成模块中广播给自己的值后,计算签名并设置循环值为1;
32.循环判断模块:每台设备根据循环值判断是否还要继续循环,若是,执行签名输出模块;否则,执行签名计算模块;
33.签名计算模块:每台设备用生成的随机秘密生成多个共享值,并发送给对应设备,利用恢复算法计算签名,执行循环判断模块;
34.秘密共享模块:每台设备用自己的私钥和随机数生成模块生成的随机数计算签名秘密,并用签名秘密调用shamir秘密共享的共享值生成算法生成多个共享值,并将签名秘密的共享值发送给对应的设备;
35.签名输出模块:每台设备在收到秘密共享模块的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的签名值,并输出签名。
36.所述签名计算模块具体包括共享值发送模块、共享恢复模块和循环处理模块:
37.共享值发送模块:每台设备用生成的随机秘密,调用shamir秘密共享的共享值生成算法生成多个共享值,并将随机秘密的共享值发送给对应的设备;
38.共享恢复模块:每台设备在收到共享值发送模块的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的随机值,用共享的随机值继续计算签名;
39.循环处理模块:每台设备将循环值加1,执行循环判断模块。
40.本发明的有益效果为:本发明方法提出了一种基于shamir秘密共享的多方aos换签名方法,允许使用该方案的用户将aos环签名的私钥分开存放在多台不同的设备上,这样单靠一台设备上的私钥也无法正常生成aos环签名,有力保障了密钥存储和使用的安全。本发明生成签名过程中,需要多台设备通过shamir秘密共享协作生成随机数,增强了签名过程的安全性;最后生成aos签名时采用了shamir秘密共享,使多台设备在不暴露各自aos私钥的情况下就可以计算完整的aos环签名,有利于防止私钥泄露。
41.本发明方法只对aos环签名的密钥生成算法和签名算法做了改动,没有修改aos环签名的签名结构和签名验证算法,可以很好应用在依赖原aos环签名的场景中,具有较强的普适性。
附图说明
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
43.图1是本发明方法的实施例实施流程图。
具体实施方式
44.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
45.实施例一:
46.一种基于shamir秘密共享的多方aos环签名方法,所述的方法具体步骤如下:
47.1.1.由密钥生成中心生成方案需要的公私钥,安全分发私钥并公开公钥;
48.1.2.多台设备进行交互,并将aos环签名输出;
49.1.3.验证签名的设备调用aos环签名的验证算法验证步骤1.2中输出的环签名;
50.本发明方法允许使用该方案的用户将aos环签名的私钥分开存放在多台不同的设备上,这样单靠一台设备上的私钥也无法正常生成aos环签名,有力保障了密钥存储和使用的安全;本发明方法生成签名过程中,需要多台设备通过shamir秘密共享协作生成随机数,增强了签名过程的安全性;最后生成aos签名时采用了shamir秘密共享,使多台设备在不暴露各自aos私钥的情况下就可以计算完整的aos环签名,有利于防止私钥泄露;
51.本发明方法只对aos环签名的密钥生成算法和签名算法做了改动,没有修改aos环签名的签名结构和签名验证算法,可以很好应用在依赖原aos环签名的场景中,具有较强的普适性;
52.进一步的,所述步骤1.1具体步骤如下:
53.1.1.1.密钥生成中心调用aos环签名的密钥生成算法,生成环签名公私钥,并将私钥安全分发给不需要多方aos环签名的用户,并公开公钥;
54.1.1.2.密钥生成中心计算多台设备的环签名私钥,并安全分发给对应设备;
55.密钥生成中心运行keygen算法,为n位用户生成环签名私钥ski和公钥pki,公开l={pki}
0≤i≤n-1
,将对应的ski分发给不需要多方aos环签名的用户;
56.对于需要多方aos环签名的用户i,密钥生成中心根据设备数量m,随机生成前m-1个设备的环签名私钥sk
ij
,0≤j≤m-2;计算最后一台设备的环签名私钥并将sk
ij
全分发给对应的设备j;
57.进一步的,所述步骤1.2具体步骤如下:
58.1.2.1.用户启动多台设备;每台设备都生成随机数,并广播随机数计算出的值;
59.1.2.2.每台设备接收到步骤1.2.1中广播给自己的值后,计算签名并设置循环值为1;
60.1.2.3每台设备根据循环值判断是否还要继续循环,若是,执行步骤1.2.7;否则,执行步骤1.2.4;
61.1.2.4每台设备用生成的随机秘密生成多个共享值,并发送给对应设备,利用恢复算法计算签名,执行步骤1.2.3;
62.1.2.5.每台设备用自己的私钥和步骤1.2.1生成的随机数计算签名秘密,并用签名秘密调用shamir秘密共享的共享值生成算法生成多个共享值,并将签名秘密的共享值发送给对应的设备;
63.1.2.6每台设备在收到步骤1.2.5的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的签名值,并输出签名;
64.用户i(0≤i≤n-1)启动m台设备,每台设备j(0≤j≤m-1)生成随机数kj,计算并向其他设备广播kj;
65.每台设备j收到步骤2.1中其他设备广播的kj后,计算并设置z=1;
66.每台设备j判断z≤n-1是否成立,若成立执行步骤2.4,否则执行步骤2.7;
67.每台设备j计算签名秘密sj=kj sk
ijej
,调用shamir的秘密共享的share(si)算法生成m个秘密共享sharesig
jp
,0≤p≤m-1,并将sharesig
jp
发送给对应的设备p;
68.每台设备j调用shamir秘密共享的recover({sharesig
pj
}
0≤p≤m-1
)算法计算出签名值si,输出r={e0,{si}
0≤i≤n-1
}作为消息msg的环签名;
69.再进一步的,所述步骤1.2.4具体步骤如下:
70.1.2.4.1.每台设备用生成的随机秘密,调用shamir秘密共享的共享值生成算法生成多个共享值,并将随机秘密的共享值发送给对应的设备;
71.1.2..4.2.每台设备在收到步骤1.2.4.1的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的随机值,用共享的随机值继续计算签名;
72.1.2..4.3.每台设备将循环值加1,执行步骤1.2.3;
73.每台设备j生成自己的随机秘密s
(i z mod n
)j,调用shamir秘密共享的share(s
(i z mod n)j
)算法生成m个秘密共享sharerand
(i z mod n)jp
,0≤p≤m-1,将sharerand
(i z mod n)jp
发送给对应的设备p;
74.每台设备j接收到秘密共享后,调用shamir秘密共享的recover({sharerand
(i z mod n)pj
}
0≤p≤m-1
)计算出共享的随机值s
i z mod n
;计算
75.每台设备j计算z=z 1,执行步骤1.2.3;
76.最后,签名验证设备调用aos环签名的验证算法verify(m,l=(pk1,pk2,

,pkn),r=(e0,{si}
0≤i≤n-1
))对环签名是否有效进行验证。
77.实施例二:
78.一种基于shamir秘密共享的多方aos环签名系统,所述的系统具体包括公钥生成模块、多方签名模块和签名验证模块:
79.公钥生成模块:由密钥生成中心生成方案需要的公私钥,安全分发私钥并公开公钥;
80.多方签名模块:多台设备进行交互,并将aos环签名输出;
81.多方签名模块:验证签名的设备调用aos环签名的验证算法验证步骤1.2中输出的环签名;
82.进一步的,所述公钥生成模块具体包括用户密钥计算模块和设备密钥分发模块:
83.用户密钥计算模块:密钥生成中心调用aos环签名的密钥生成算法,生成环签名公私钥,将私钥安全分发给不需要多方aos环签名的用户,并公开公钥;
84.设备密钥分发模块:密钥生成中心计算多台设备的环签名私钥,并安全分发给对应设备;
85.进一步的,所述多方签名模块具体包括随机数生成模块、循环设置模块、循环判断模块、签名计算模块、秘密共享模块和签名输出模块:
86.随机数生成模块:用户启动多台设备;每台设备都生成随机数,并广播随机数计算出的值;
87.循环设置模块:每台设备接收到随机数生成模块中广播给自己的值后,计算签名并设置循环值为1;
88.循环判断模块:每台设备根据循环值判断是否还要继续循环,若是,执行签名输出模块;否则,执行签名计算模块;
89.签名计算模块:每台设备用生成的随机秘密生成多个共享值,并发送给对应设备,利用恢复算法计算签名,执行循环判断模块;
90.秘密共享模块:每台设备用自己的私钥和随机数生成模块生成的随机数计算签名秘密,并用签名秘密调用shamir秘密共享的共享值生成算法生成多个共享值,并将签名秘密的共享值发送给对应的设备;
91.签名输出模块:每台设备在收到秘密共享模块的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的签名值,并输出签名;
92.再进一步的,所述签名计算模块具体包括共享值发送模块、共享恢复模块和循环处理模块:
93.共享值发送模块:每台设备用生成的随机秘密,调用shamir秘密共享的共享值生成算法生成多个共享值,并将随机秘密的共享值发送给对应的设备;
94.共享恢复模块:每台设备在收到共享值发送模块的秘密共享值后,调用shamir秘密共享的恢复算法,恢复共享的随机值,用共享的随机值继续计算签名;
95.循环处理模块:每台设备将循环值加1,执行循环判断模块。
96.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献