System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及信息安全,尤其涉及一种基于多证明者零知识证明的两方确定性schnorr签名方法及系统。
技术介绍
1、数字签名是一种重要的公钥密码算法,与传统的签名功能相似,用于实现身份的认证。同时数字签名还可以保证信息的完整性,真实性以及不可抵赖性。目前,数字签名已经用于各种信息化行业中,例如银行,电商等行业均需要数字签名来保证转账,商品交易的正确性与安全性。
2、两方schnorr签名是一种基于椭圆曲线密码学的数字签名方案,它允许两个实体(或方)共同生成一个数字签名,以证明他们同意某个消息的内容。这种签名方案在加密货币中使用,以支持多方交易和增强隐私保护。在两方schnorr签名中,每个实体都拥有自已的私钥和公钥。为了生成签名,两个实体需要选择一个随机数k,并使用自己的私钥和公钥以及待签名的消息m来计算签名的两个组成部分:r和s。
3、然而,现有技术中的两方schnorr签名方法,由于随机数的使用会造成私钥泄露,因而存在安全性不高的技术问题。
技术实现思路
1、本专利技术提供了一种基于多证明者零知识证明的两方确定性schnorr签名方法及系统,用以解决或者至少部分解决现有技术中存在的安全性不高的技术问题。
2、本专利技术第一方面提供了基于多证明者零知识证明的两方确定性schnorr签名方法,包括:
3、参与双方生成签名公钥,参与双方共同执行安全多方计算协议πmpc计算得到用于计算签名所需的随机数r;
4、采用加性秘密分享
5、参与双方对各自收到的视图和模拟方的输出进行验证,如果验证通过,则当待签名的消息达到时,双方分别利用签名所需的随机数r、自身的私钥生成签名分片,并根据自身生成签名分片和对方生成的签名分片,得到消息的签名。
6、在一种实施方式中,b∈{0,1},当b=0时,pb为参与方p0,b=1时,pb为参与方p1,参与双方生成签名公钥,双方共同执行安全多方计算协议∏mpc协同计算用于计算签名所需的随机数r,包括:参与双方执行下列操作:
7、pb随机选择私钥计算pkb=skb·g,并发送给参与方p1-b,pb接收到pk1-b,计算pk=pkb+pk1-b,pk为签名公钥,为由1,2,,…,q-1组成的整数集合,pkb、pk1-b分别为参与方pb的公钥和参与方p1-b的公钥;
8、pb随机选择私钥当待签名的消息到达,双方共同执行安全多方计算协议πmpc,计算得到kb为参与方pb用于生成签名所需的随机数的密钥。
9、在一种实施方式中,参与方pb在每一轮中得到对应的视图和模拟方的输出,并发送给另一方p1-b,包括:pb随机抽样出随机数使得并执行t轮,kb为参与方pb用于生成签名所需的随机数的密钥,其中,每一轮pb执行以下步骤:
10、执行两方安全计算协议π2pcmith,获得协议执行过程中的视图以及各个模拟方的输出
11、通过承诺理想函数对协议执行过程中的视图与秘密份额进行承诺,获得对应的承诺
12、计算et为第t轮的挑战值,h(·)为哈希函数;
13、调用承诺理想函数打开承诺得到并发送与给p1-b,s为索引,表示参与方pb得到的一个模拟方的视图,为pb随机抽样出随机数。
14、在一种实施方式中,参与双方对各自收到的视图和模拟方的输出进行验证,包括:pb收到p1-b发送的与对其进行验证,并行执行t轮验证,对于每一轮pb执行以下步骤:
15、验证打开的视图view是否一致;
16、通过p1-b打开的视图view模拟执行安全多方计算协议πmpc,根据证明阶段各模拟方得到的输出得到模拟后的输出r′,验证r′=r是否成立,如果成立,则表明验证通过。
17、在一种实施方式中,当待签名的消息达到时,双方分别利用签名所需的随机数r、自身的私钥生成签名分片,并根据自身生成签名分片和对方生成的签名分片,得到消息的签名,包括:
18、pb利用随机数r,计算挑战值e=h(pk,r,m),h(·)为哈希函数,
19、计算σb=skb·e+rb,并发送给p1-b,σb为参与方pb生成的签名分片,b∈{0,1}
20、接收p1-b发送的签名分片σ1-b,计算签名σ=σb+σ1-b,输出消息m的签名(r,σ)。
21、基于同样的专利技术构思,本专利技术第二方面提供了基于多证明者零知识证明的两方确定性schnorr签名系统,包括:
22、密钥生成模块,用于参与双方生成签名公钥,参与双方共同执行安全多方计算协议∏mpc计算得到用于计算签名所需的随机数r;
23、证明生成模块,用于采用加性秘密分享构造多证明者零知识证明,两方之间能够通过执行安全多方计算协议∏mpc证明关系:r∈l,参与双方在每一轮中得到对应的视图和模拟方的输出,并发送给另一方,l为语言,l:{r|r=fk1+k2(m)·g},f(·)为伪随机函数prf,m为待签名的消息,k1、k2为用户选择的私钥,g为椭圆曲线生成元;
24、签名模块,用于参与双方对各自收到的视图和模拟方的输出进行验证,如果验证通过,则当待签名的消息达到时,双方分别利用签名所需的随机数r、自身的私钥生成签名分片,并根据自身生成签名分片和对方生成的签名分片,得到消息的签名。
25、基于同样的专利技术构思,本专利技术第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
26、基于同样的专利技术构思,本专利技术第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
27、相对于现有技术,本专利技术的优点和有益的技术效果如下:
28、1.随着多方签名技术的发展,目前已有学者提出确定性且状态无关的多方门限签名方案,但是确定性签名算法中代替随机数生成的伪随机函数prf中,多个伪随机数之和是否仍是伪随机函数这一特性仍没有严谨的证明,存在安全性问题,本方案利用安全多方计算协议解决上述安全性问题。
29、2.通信带宽要求低,对多证明者零知识证明的方案进行优化,降低了参与方之间的通信量,提升通信效率,同时可以采用并行的策略提升系统性能。
30、3.安全性高,安全依赖性直接依赖于多证明者零知识证明以及安全多方计算协议的安全性,可以满足两方签名的正确性与隐私性。
本文档来自技高网...【技术保护点】
1.基于多证明者零知识证明的两方确定性Schnorr签名方法,其特征在于,包括:
2.如权利要求1所述的基于多证明者零知识证明的两方确定性Schnorr签名方法,其特征在于,b∈{0,1},当b=0时,Pb为参与方P0,b=1时,Pb为参与方P1,参与双方生成签名公钥,双方共同执行安全多方计算协议Πmpc协同计算用于计算签名所需的随机数R,包括:参与双方执行下列操作:
3.如权利要求1所述的基于多证明者零知识证明的两方确定性Schnorr签名方法,其特征在于,参与方Pb在每一轮中得到对应的视图和模拟方的输出,并发送给另一方P1-b,包括:Pb随机抽样出随机数使得并执行t轮,kb为参与方Pb用于生成签名所需的随机数的密钥,其中,每一轮Pb执行以下步骤:
4.如权利要求2所述的基于多证明者零知识证明的两方确定性Schnorr签名方法,其特征在于,参与双方对各自收到的视图和模拟方的输出进行验证,包括:Pb收到P1-b发送的与对其进行验证,并行执行t轮验证,对于每一轮Pb执行以下步骤:
5.如权利要求4所述的基于多证明者零知识证明的两方确定
6.基于多证明者零知识证明的两方确定性Schnorr签名系统,其特征在于,包括:
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述的方法。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
...【技术特征摘要】
1.基于多证明者零知识证明的两方确定性schnorr签名方法,其特征在于,包括:
2.如权利要求1所述的基于多证明者零知识证明的两方确定性schnorr签名方法,其特征在于,b∈{0,1},当b=0时,pb为参与方p0,b=1时,pb为参与方p1,参与双方生成签名公钥,双方共同执行安全多方计算协议πmpc协同计算用于计算签名所需的随机数r,包括:参与双方执行下列操作:
3.如权利要求1所述的基于多证明者零知识证明的两方确定性schnorr签名方法,其特征在于,参与方pb在每一轮中得到对应的视图和模拟方的输出,并发送给另一方p1-b,包括:pb随机抽样出随机数使得并执行t轮,kb为参与方pb用于生成签名所需的随机数的密钥,其中,每一轮pb执行以下步骤:
4.如权利要求2所述的基于多证明者零知识证明的两方确定性schnorr签名方法,其特征在于,参...
【专利技术属性】
技术研发人员:曾陈铠,包子健,冯琦,罗敏,何德彪,
申请(专利权)人:武汉大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。