[发明专利]一种基于两方协同的ECDSA数字签名方法有效
申请号: | 201910147344.8 | 申请日: | 2019-02-27 |
公开(公告)号: | CN109639439B | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 何德彪;王婧;冯琦;张语荻;林超 | 申请(专利权)人: | 武汉大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 唐万荣;李丹 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于两方协同的ECDSA数字签名方法,该方法包括:1)参与协同签名的签名方Alice和签名方Bob,各自生成对应的签名公私钥对和其他参数:2)Alice和Bob协同完成ECDSA签名,最终输出签名(r,s)。本发明方法在保证安全性和正确性的前提下,签名过程不引入同态加密、不经意传输等高开销的密码操作,使得签名方案在通信开销和计算开销上取得了良好的平衡,因此性能上显著地优于现有的所有ECDSA两方协同数字签名方法。 | ||
搜索关键词: | 一种 基于 协同 ecdsa 数字签名 方法 | ||
【主权项】:
1.一种基于两方协同的ECDSA数字签名方法,其特征在于,包括以下步骤:1)参与协同签名的签名方Alice和签名方Bob,各自生成对应的签名公私钥对和其他参数:1.1)Alice随机选择一个大整数dA∈Zn作为私钥,计算对应的公钥DA=[dA]G;Bob随机选择一个大整数dB∈Zn作为私钥,计算对应的公钥DB=[dB]G;其中,G是ECDSA椭圆曲线的基点,n是阶,Zn为模大整数n的剩余类;1.2)Bob生成一个关于(dB,DB)离散对数关系的零知识证明π1,将(π1,DB)发送给Alice;1.3)Alice验证(π1,PB)的正确性,如果不正确,终止方案执行过程;如果正确,则计算PAB=DA+DB,并且生成一个关于(dA,DA)离散对数关系的零知识证明π2,将(π2,DA)发送给Bob;1.4)Bob验证(π2,DA)的正确性,如果不正确,终止方案执行过程;如果正确,则计算PAB=DB+DA;1.5)Alice随机选择一对大整数aA,bA∈Zn;Bob随机选择一对大整数aB,bB∈Zn;1.6)Alice和Bob通过运算分别获得数据份额zA,zB,使得满足(zA+zB)mod n=(aA+aB)·(bA+bB)mod n;1.7)Alice和Bob协商一对或多对随机密钥,记随机密钥对为(mA,mB),使其满足mA+mB=1mod n;2)Alice和Bob协同完成ECDSA签名,最终输出签名(r,s),并更新步骤1中的相关参数:aA,bA,zA,aB,bB,zB:2.1)Alice随机选择一对大整数kA,ρA∈Zn,计算RA=[kA]G;Bob随机选择一对大整数kB,ρB∈Zn,计算RB=[kB]G;其中,Zn为模大整数n的剩余类;2.2)Bob生成一个关于(kB,RB)离散对数关系的零知识证明π3,将(π3,RB)发送给Alice;2.3)Alice验证(π3,RB)的正确性,如果不正确,终止方案执行过程;如果正确,则计算R=RA+RB=(rx,ry)和待签名消息的杂凑值e=h(M),r=rx mod n;并且生成一个关于(kA,RA)离散对数关系的零知识证明π4,将(π4,RA)发送给Bob;2.4)Bob验证(π4,RA)的正确性,如果不正确,终止方案执行过程;如果正确,则计算R=RB+RA=(rx,ry)和待签名消息的杂凑值e=h(M),r=rx mod n;2.5)Alice选择一对密钥对(mA,mB),计算大整数δA=(mA·e+r·dA)mod n,uA=(kA‑aA)mod n,vA=(δA‑aA)mod n,wA=(ρA‑bA)mod n;Bob计算大整数δB=(mB·e+r·dB)mod n,uB=(kB‑aB)mod n,vB=(δB‑aB)mod n,wB=(ρB‑bB)mod n;2.6)Alice将计算的数据(uA,vA,wA)发送给Bob;Bob同理将数据(uB,vB,wB)发送给Alice;2.7)Alice计算u=(uA+uB)mod n,v=(vA+vB)mod n,w=(wA+wB)mod n,αA=(kA·w+ρA·u+zA‑u·w)mod n,βA=(δA·w+ρA·v+zA‑v·w)mod n;Alice将kA,ρA,αA分别赋值给aA,bA,zA;当实际应用需求为Bob输出签名值时,Alice将数据(αA,βA)发送给Bob;若无需求,可选择不发送(αA,βA);2.8)Bob计算u=(uA+uB)mod n,v=(vA+vB)mod n,w=(wA+wB)mod n,αB=(kB·w+ρB·u+zB)mod n,βB=(δB·w+ρB·v+zB)mod n;Bob将kB,ρB,αB分别赋值给aB,bB,zB;当实际应用需求为Alice输出签名值时,Bob将数据(αB,βB)发送给Alice,否则可选择不发送(αB,βB);2.9)当实际应用需求为Alice输出签名值时,Alice计算s=(αA+αB)‑1(βA+βB)mod n,输出最终的签名值(r,s);当实际应用需求为Bob输出签名值时,Bob计算s=(αA+αB)‑1(βA+βB)mod n,输出最终的签名值(r,s)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910147344.8/,转载请声明来源钻瓜专利网。