一种基于组合ECDSA的两方协同签名方法及系统
未命名
07-27
阅读:97
评论:0
一种基于组合ecdsa的两方协同签名方法及系统
技术领域
1.本发明属于密码技术领域,尤其涉及一种基于组合ecdsa的两方协同签名方法及系统。
背景技术:
2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.密钥是密码算法的核心信息,其生成、分发、存储、销毁等机制需要专门设计和管理.传统签名算法的私钥完全由单个用户掌握,保障了签名操作的不可否认性,同时也面临着私钥丢失、权限滥用或被攻击者控制等安全风险.两方协同签名通过将密钥信息分享给两个用户分散保存,签名功能可由两个用户协同完成,恶意敌手即使窃取了单个用户的密钥,也难以进行签名操作,提高了签名私钥的安全性。
4.ecdsa签名算法(椭圆曲线数字签名算法)基于椭圆曲线结构,具有签名速度快、占用空间小等优势,是数字签名算法国际标准,在各类应用系统中中广泛使用.然而,ecdsa签名算法的私钥完全由单个用户掌握,难以避免因单个用户完全掌握签名权限,导致密钥丢失、权限滥用或该用户被攻击者控制等安全风险。
5.目前,两方ecdsa签名方法需要复杂的安全多方计算(multi-party computation)技术实现共享秘密的乘法运算,并且需要昂贵的零知识证明(zero-knowledge proofs)技术来抵抗恶意敌手,导致应用效率较低,对现有的ecdsa签名系统进行分布式升级并不理想。
技术实现要素:
6.为了解决上述背景技术中存在的技术问题,本发明提供一种基于组合ecdsa的两方协同签名方法及系统,其能够提高ecdsa签名私钥的安全性。
7.为了实现上述目的,本发明采用如下技术方案:
8.本发明的第一个方面提供一种基于组合ecdsa的两方协同签名方法。
9.一种基于组合ecdsa的两方协同签名方法,其包括:
10.发送方将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;
11.接收方接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;
12.发送方接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;发送方将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;
13.接收方接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;接收方接收到待签名消息后,利用签名私钥计算签名分享,并将签名分享发送给发送方;
14.发送方使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。
15.作为一种实施方式,签名私钥和签名公钥由基于组合ecdsa签名的两方协同密钥生成协议产生。
16.作为一种实施方式,基于组合ecdsa签名的两方协同密钥生成协议的过程为:
17.协议一方运行ecdsa签名的密钥生成算法,将零知识证明指令发送给生成零知识证明功能来生成零知识证明;
18.协议另一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则,运行ecdsa签名的密钥生成算法,并将零知识证明指令发送给生成零知识证明功能,以生成零知识证明;
19.协议一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则继续协议;
20.协议双方计算计算签名验证私钥和公钥并存储。
21.作为一种实施方式,协议双方的每一个会话均设置有一个唯一的会话标识。
22.作为一种实施方式,所述理想承诺功能用于:
23.接收协议一方发送的承诺指令,记录发送方、会话标识及签名私钥,并发送承诺结果给协议另一方;若承诺指令之前记录过,则无视承诺指令;
24.接收协议一方发送的打开承诺指令,若之前记录过发送方、会话标识及签名私钥,则发送打开承诺结果给协议另一方。
25.作为一种实施方式,所述理想零知识证明功能用于:
26.接收到协议一方发送的零知识证明指令:如果签名私钥与相应指令参数不属于已知困难关系或者会话标识之前被使用过,则无视该消息;否则,发送零知识证明给协议另一方。
27.作为一种实施方式,所述理想承诺非交互零知识证明功能用于:
28.接收到协议一方发送的承诺零知识证明指令:如果签名私钥与相应指令参数不属于已知困难关系或者会话标识之前被使用过,则无视该消息;否则,记录发送方、会话标识及签名私钥并发送承诺后的零知识证明给协议另一方;
29.接收到协议一方发送的打开零知识证明的承诺指令:如果发送方、会话标识及签名私钥已经被记录,则发送打开承诺后的零知识证明给协议另一方。
30.本发明的第二个方面提供了一种基于组合ecdsa的两方协同签名系统。
31.一种基于组合ecdsa的两方协同签名系统,其包括:相互通信的发送方和接收方;
32.所述发送方,用于将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;
33.所述接收方,用于接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;
34.所述发送方,还用于接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;所述发送方,还用于将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;
35.所述接收方,还用于接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;所述接收方,还用于接收到待签名消息后,利用签名私钥计算
签名分享,并将签名分享发送给发送方;
36.所述发送方,用于使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。
37.作为一种实施方式,签名私钥和签名公钥由基于组合ecdsa签名的两方协同密钥生成协议产生。
38.作为一种实施方式,基于组合ecdsa签名的两方协同密钥生成协议的过程为:
39.协议一方运行ecdsa签名的密钥生成算法,将零知识证明指令发送给生成零知识证明功能来生成零知识证明;
40.协议另一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则,运行ecdsa签名的密钥生成算法,并将零知识证明指令发送给生成零知识证明功能,以生成零知识证明;
41.协议一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则继续协议;
42.协议双方计算计算签名验证私钥和公钥并存储。
43.与现有技术相比,本发明的有益效果是:
44.本发明的利用理想承诺非交互零知识证明功能、理想零知识证明功能和理想承诺功能组合ecdsa,分别产生非交互零知识证明、零知识证明、解开承诺以及相互通信双方的私钥及公钥,提高了相互通信的双方的协议安全性,而且当接收方接收到待签名消息后,利用签名私钥计算签名分享,并将签名分享发送给发送方,由发送方使用签名公钥来验证签名,其无需复杂mpc技术,简单且快速实现了两方协同签名,提高了ecdsa签名私钥的安全性。
45.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
46.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
47.图1是本发明实施例的基于组合ecdsa的两方协同签名方法原理图。
具体实施方式
48.下面结合附图与实施例对本发明作进一步说明。
49.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
50.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
51.实施例一
52.符号定义.在本发明中,用表示自然数集,对任意符号1
λ
表示λ个1的字符串.对任意有限集s,s
←
s表示从s中均匀随机地选取出一个元素s.表示椭圆曲线群,g表示群上的点,k
·
g表示上的数k和点g进行倍点运算,r=(r
x
,ry)表示椭圆曲线上的点r用横坐标r
x
和纵坐标ry,表示。协议的参与方分别用p1和p2表示。
53.术语解释:
54.组合ecdsa签名方案:
55.令是阶为q的椭圆曲线群,g是群的基点,系统公开参数为h表示哈希函数。
56.构造组合ecdsa签名π=(keygen,sign,vrfy)如下:
57.keygen(pp,1
λ
)
→
(q,x):密钥生成算法输入系统参数和安全参数1
λ
,选择随机数计算q1=x1·
g,q2=x2·
g,q
add
=q2+q1,q
mul
=x1·
x2·
g。令签名私钥为x=(x1,x2),签名验证公钥为q=(q
add
,q
mul
)。
58.sign(x,m)
→
σ。签名算法输入签名私钥x和消息值m,计算签名值如下:
59.1)计算消息的哈希值m
′
=h(m);
60.2)选择随机数计算椭圆曲线群上的随机点r=k
·
g=(r
x
,ry);
61.3)计算r=r
x mod q,如果r=0,则返回2);r表示对椭圆曲线点r的横坐标r
x
进行模q运算;
62.4)计算s
′
=k-1
(m
′
+r
·
x1)(m
′
+r
·
x2)mod q,令s=min{s
′
,q-s
′
},输出签名值σ=(r,s)。
63.vrfy(q,m,σ)
→
0/1.签名验证算法输入验证公钥q,消息m,以及签名值σ=(r,s),验证操作如下:
64.计算m
′
=h(m),(r
′
x
,r
′y)=s-1
(m
′2·
g+r
·m′
·qadd
+r2·qmul
);如果r=r
′
x mod q,输出1表示验证成功,否则输出0表示验证失败。
65.组合ecdsa签名可以看作是两个ecdsa签名的“类乘积”组合,只是在密钥生成和验证签名阶段增加两次点乘和一次点加操作。对比ecdsa签名方案的各个算法如表1所示。
66.表1 ecdsa签名和组合ecdsa签名的各个算法对比
[0067][0068]
理想功能(ideal functionalities):
[0069]
为了构造基于组合ecdsa签名的两方协同签名,首先介绍三种理想功能:理想承诺功能理想零知识证明功能和理想承诺非交互零知识证明功能
[0070]
理想承诺功能定义如下:
[0071]
接收到pi,i∈{1,2}发送的承诺指令(commit,sid,x),记录(sid,i,x)并发送承诺结果(receipt,sid)给p
3-i
;如果承诺指令(commit,sid,*)之前记录过,则无视该消息;
[0072]
接收到pi,i∈{1,2}发送的打开承诺指令(decommit,sid),如果(sid,i,x)之前记录过,则发送(decommit,sid,x)给p
3-i
。
[0073]
对于困难关系r的理想零知识证明功能定义如下:
[0074]
接收到pi,i∈{1,2}发送的零知识证明指令(prove,sid,x,w):如果或者sid之前被使用过,则无视该消息;否则,发送零知识证明(proof,sid,x)给p
3-i
。其中,w为指令参数。
[0075]
对于困难关系r,对非交互零知识证明使用理想承诺功能定义如下:
[0076]
接收到pi,i∈{1,2}发送的承诺零知识证明指令(com_prove,sid,x,w):如果或者sid之前被使用过,则无视该消息.否则,记录(sid,i,x)并发送承诺后的零知识证明(proof_receipt,sid)给p
3-i
;
[0077]
接收到pi,i∈{1,2}发送的打开零知识证明的承诺指令(decom_proof,sid):如果(sid,i,x)已经被记录,则发送打开承诺后的零知识证明(decom_proof,sfd,x)给p
3-i
。
[0078]
基于组合ecdsa签名的两方协同签名协议:
[0079]
基于上述三种理想功能,对组合ecdsa进行分布式设计,构造两方协同签名协议,具体而言,分别将组合ecdsa签名方案的密钥生成算法和签名算法进行分布式设计,签名验证算法不变。
[0080]
参照图1,本实施例提供了一种基于组合ecdsa的两方协同签名方法,其具体包括如下步骤:
[0081]
步骤1:发送方将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺。
[0082]
其中,所述理想承诺非交互零知识证明功能用于:
[0083]
接收到协议一方发送的承诺零知识证明指令:如果签名私钥与相应指令参数不属于已知困难关系或者会话标识之前被使用过,则无视该消息;否则,记录发送方、会话标识及签名私钥并发送承诺后的零知识证明给协议另一方;
[0084]
接收到协议一方发送的打开零知识证明的承诺指令:如果发送方、会话标识及签名私钥已经被记录,则发送打开承诺后的零知识证明给协议另一方。
[0085]
步骤2:接收方接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明。
[0086]
其中,所述理想零知识证明功能用于:
[0087]
接收到协议一方发送的零知识证明指令:如果签名私钥与相应指令参数不属于已知困难关系或者会话标识之前被使用过,则无视该消息;否则,发送零知识证明给协议另一方。
[0088]
步骤3:发送方接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;发送方将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺。
[0089]
步骤4:接收方接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;接收方接收到待签名消息后,利用签名私钥计算签名分享,并将签名分享发送给发送方。
[0090]
步骤5:发送方使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。
[0091]
在具体实施过程中,基于理想承诺功能理想零知识证明功能和理想承诺非交互零知识证明功能给出基于组合ecdsa签名方案的两方协同签名协议(isign),具体协议描述如下:
[0092]
isign(sid,m)
→
σ。协同签名协议输入协同密钥生成协议输出的密钥和消息m,以及一个唯一的会话标识sid,计算如下:
[0093]
(1)p1选择随机数计算r1=k1·
g.p1将承诺非交互零知识证明指令(com-prove,sid||1,r1,k1)发送给生成非交互零知识证明并对证明进行承诺。
[0094]
(2)p2接收到对证明的承诺(proof-receipt,sid||1),选择随机数计算r2=k2·
g,将零知识证明指令(prove,sid||2,r2,k2)发送给生成零知识证明。
[0095]
(3)p1接收零知识证明(proof,sid||2,r2),并验证其正确性,如果不正确则中止协议,否则继续协议。p1将打开零知识证明的承诺的指令(decom-proof,sid||1)发送给解开承诺。
[0096]
(4)p2接收到解开承诺的零知识证明(decom-proof,sid||1,r1),并验证其正确性,
如果不正确则中止协议,否则继续协议。p2计算r=k2·
r1=(r
x
,ry,)。接收到待签名消息m后,p2计算r=r
x mod q,签名分享p2将签名分享s2发送给p1。
[0097]
(5)p1计算签名值如下:p1计算r=k1·
r2=(r
x
,ry)。然后,计算r=r
x mod q,最终签名值并设置s=min{s
′
,q-s
′
}。p1使用签名验证公钥q验证签名σ=(r,s)。如果验证成功,则输出签名值σ=(r,s),否则中止协议。
[0098]
在具体实施过程中,签名私钥和签名公钥由基于组合ecdsa签名的两方协同密钥生成协议产生。
[0099]
其中,基于组合ecdsa签名的两方协同密钥生成协议的过程为:
[0100]
协议一方运行ecdsa签名的密钥生成算法,将零知识证明指令发送给生成零知识证明功能来生成零知识证明;
[0101]
协议另一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则,运行ecdsa签名的密钥生成算法,并将零知识证明指令发送给生成零知识证明功能,以生成零知识证明;
[0102]
协议一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则继续协议;
[0103]
协议双方计算计算签名验证私钥和公钥并存储。
[0104]
例如:
[0105]
协同密钥生成协议:
[0106]
基于理想零知识证明功能和ecdsa密钥生成算法,给出基于组合ecdsa签名的两方协同密钥生成协议(ikeygen),具体协议描述如下:
[0107]
ikeygen(pp,1
λ
):协同密钥生成协议输入系统公开参数和安全参数1
λ
,计算如下:
[0108]
(1)p1运行ecdsa签名的密钥生成算法ecdsa.keygen(pp,1
λ
)
→
(x1,q1=x1·
g)。p1将零知识证明指令(prove,1,q1,x1)发送给生成零知识证明proof。
[0109]
(2)p2接收到零知识证明(proof,1,q1),并验证其正确性,如果不正确则中止协议,否则,p2运行ecdsa签名的密钥生成算法ecdsa.keygen(pp,1
λ
)
→
(x2,q2=x2·
g)。p2将零知识证明指令(prove,2,q2,x2)发送给生成零知识证明proof。
[0110]
(3)p1接收到零知识证明(proof,2,q2),并验证其正确性,如果不正确则中止协议,否则继续协议。
[0111]
(4)输出:p1计算q
add
=q2+q1,q
mul
=x1·
q2,q=(q
add
,q
mul
),并存储(x1,q)。p2计算q
add
=q2+q1,q
mul
=x2·
q1,q=(q
add
,q
mul
),并存储(x2,q)。
[0112]
在具体实施过程中,协议双方的每一个会话均设置有一个唯一的会话标识。
[0113]
其中,所述理想承诺功能用于:
[0114]
接收协议一方发送的承诺指令,记录发送方、会话标识及签名私钥,并发送承诺结果给协议另一方;若承诺指令之前记录过,则无视承诺指令;
[0115]
接收协议一方发送的打开承诺指令,若之前记录过发送方、会话标识及签名私钥,则发送打开承诺结果给协议另一方。
[0116]
性能评估:
[0117]
组合ecdsa签名可以看做两个ecdsa签名的“类乘积”组合,只是在密钥生成和验证阶段增加两次点乘和一次点加操作。虽然增加了少量操作,但是在设计两方协同签名协议时能极大地简化多方协同求逆运算和乘法运算,避免了使用复杂的安全多方计算技术和昂贵的零知识证明技术。由于协同签名协议的前三步和签名消息无关,可以由双方离线执行,等到接收到待签名消息后,双方可以使用离线阶段预计算的信息进行在线签名。
[0118]
为了评估本发明提出的方案的性能,本发明基于openssl库在标准椭圆曲线nist curves nid.x9.62.prime256v1上实现了ecdsa签名方案,组合ecdsa(cecdsa)签名方案和基于组合ecdsa的两方协同签名(tp-cecdsa)方案。执行环境为:intel core i5 cpu 2.3ghz,8gb ram,macos high sierra 10.13.3system。
[0119]
类似现有的分布式ecdsa算法,接收到消息后的计算过程看做为在线操作,接收消息之前对随机数的预处理过程可看做为离线操作。各算法的运行时间见表2。
[0120]
表2 ecdsa,cecdsa和tp-cecdsa的计算效率对比
[0121][0122]
符号“—”表示不需要该操作。
[0123]
下面以两个某银行支行与总行的服务器之间进行信息交互为例:
[0124]
发送方(某银行支行的服务器)将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;
[0125]
接收方(某银行总行的服务器)接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;
[0126]
发送方(某银行支行的服务器)接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;发送方(某银行支行的服务器)将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;
[0127]
接收方(某银行总行的服务器)接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;接收方(某银行总行的服务器)接收到待签名消息(比如:汇款信息或是转账信息等)后,利用签名私钥计算签名分享,并将签名分享发送给发送方(某银行支行的服务器);
[0128]
发送方(某银行支行的服务器)使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。
[0129]
实施例二
[0130]
本实施例提供了一种基于组合ecdsa的两方协同签名系统,其包括:相互通信的发送方和接收方;
[0131]
所述发送方,用于将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;
[0132]
所述接收方,用于接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;
[0133]
所述发送方,还用于接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;所述发送方,还用于将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;
[0134]
所述接收方,还用于接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;所述接收方,还用于接收到待签名消息后,利用签名私钥计算签名分享,并将签名分享发送给发送方;
[0135]
所述发送方,用于使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。
[0136]
作为一种实施方式,签名私钥和签名公钥由基于组合ecdsa签名的两方协同密钥生成协议产生。
[0137]
作为一种实施方式,基于组合ecdsa签名的两方协同密钥生成协议的过程为:
[0138]
协议一方运行ecdsa签名的密钥生成算法,将零知识证明指令发送给生成零知识证明功能来生成零知识证明;
[0139]
协议另一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则,运行ecdsa签名的密钥生成算法,并将零知识证明指令发送给生成零知识证明功能,以生成零知识证明;
[0140]
协议一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则继续协议;
[0141]
协议双方计算计算签名验证私钥和公钥并存储。
[0142]
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
[0143]
本发明是参照本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0144]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于组合ecdsa的两方协同签名方法,其特征在于,包括:发送方将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;接收方接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;发送方接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;发送方将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;接收方接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;接收方接收到待签名消息后,利用签名私钥计算签名分享,并将签名分享发送给发送方;发送方使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。2.如权利要求1所述的基于组合ecdsa的两方协同签名方法,其特征在于,签名私钥和签名公钥由基于组合ecdsa签名的两方协同密钥生成协议产生。3.如权利要求2所述的基于组合ecdsa的两方协同签名方法,其特征在于,基于组合ecdsa签名的两方协同密钥生成协议的过程为:协议一方运行ecdsa签名的密钥生成算法,将零知识证明指令发送给生成零知识证明功能来生成零知识证明;协议另一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则,运行ecdsa签名的密钥生成算法,并将零知识证明指令发送给生成零知识证明功能,以生成零知识证明;协议一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则继续协议;协议双方计算计算签名验证私钥和公钥并存储。4.如权利要求1所述的基于组合ecdsa的两方协同签名方法,其特征在于,协议双方的每一个会话均设置有一个唯一的会话标识。5.如权利要求1所述的基于组合ecdsa的两方协同签名方法,其特征在于,所述理想承诺功能用于:接收协议一方发送的承诺指令,记录发送方、会话标识及签名私钥,并发送承诺结果给协议另一方;若承诺指令之前记录过,则无视承诺指令;接收协议一方发送的打开承诺指令,若之前记录过发送方、会话标识及签名私钥,则发送打开承诺结果给协议另一方。6.如权利要求1所述的基于组合ecdsa的两方协同签名方法,其特征在于,所述理想零知识证明功能用于:接收到协议一方发送的零知识证明指令:如果签名私钥与相应指令参数不属于已知困难关系或者会话标识之前被使用过,则无视该消息;否则,发送零知识证明给协议另一方。7.如权利要求1所述的基于组合ecdsa的两方协同签名方法,其特征在于,所述理想承诺非交互零知识证明功能用于:接收到协议一方发送的承诺零知识证明指令:如果签名私钥与相应指令参数不属于已知困难关系或者会话标识之前被使用过,则无视该消息;否则,记录发送方、会话标识及签
名私钥并发送承诺后的零知识证明给协议另一方;接收到协议一方发送的打开零知识证明的承诺指令:如果发送方、会话标识及签名私钥已经被记录,则发送打开承诺后的零知识证明给协议另一方。8.一种基于组合ecdsa的两方协同签名系统,其特征在于,包括:相互通信的发送方和接收方;所述发送方,用于将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;所述接收方,用于接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;所述发送方,还用于接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;所述发送方,还用于将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;所述接收方,还用于接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;所述接收方,还用于接收到待签名消息后,利用签名私钥计算签名分享,并将签名分享发送给发送方;所述发送方,用于使用签名公钥来验证签名,如果验证成功,则输出签名值,否则中止协议。9.如权利要求8所述的基于组合ecdsa的两方协同签名系统,其特征在于,签名私钥和签名公钥由基于组合ecdsa签名的两方协同密钥生成协议产生。10.如权利要求9所述的基于组合ecdsa的两方协同签名方法,其特征在于,基于组合ecdsa签名的两方协同密钥生成协议的过程为:协议一方运行ecdsa签名的密钥生成算法,将零知识证明指令发送给生成零知识证明功能来生成零知识证明;协议另一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则,运行ecdsa签名的密钥生成算法,并将零知识证明指令发送给生成零知识证明功能,以生成零知识证明;协议一方接收到零知识证明,并验证其正确性,如果不正确则中止协议,否则继续协议;协议双方计算计算签名验证私钥和公钥并存储。
技术总结
本发明属于密码技术领域,提供了基于组合ECDSA的两方协同签名方法及系统。其中,该方法包括发送方将承诺非交互零知识证明指令发送给理想承诺非交互零知识证明功能,以生成非交互零知识证明并进行承诺;接收方接收到对证明的承诺,计算零知识证明指令并发送给理想零知识证明功能,以生成零知识证明;发送方接收零知识证明,并验证其正确性,如果不正确,则中止协议,否则继续协议;发送方将打开零知识证明的承诺的指令发送给理想承诺功能,解开承诺;接收方接收到解开承诺的零知识证明并验证其正确性,如果不正确则中止协议,否则继续协议;接收方接收到待签名消息后,计算签名分享,并发送给发送方;发送方使用签名验证公钥验证签名。名。名。
技术研发人员:涂彬彬 陈宇
受保护的技术使用者:山东大学
技术研发日:2023.04.10
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
