【技术实现步骤摘要】
协同公钥生成方法、多方协同签名方法和系统
本专利技术涉及信息安全
,尤其涉及一种多方协同签名时的协同公钥生成方法、多方协同签名方法和系统。
技术介绍
数字签名是公钥密码体系中重要的一部分,满足完整性、防篡改、抗抵赖等安全需求,在很多场合有着重要的作用。现有数字签名应用多基于安全密钥载体(如智能USBKey、智能卡、蓝牙key等),用户密钥保存在安全密钥载体内,安全密钥载体由用户自行保管并设置使用密码,当需要签名时,用户将安全密钥载体连接到电脑进行签名操作。随着移动应用的推广,越来越多的数字签名应用由电脑端迁移至移动端(如手机、平板电脑等),基于安全密钥载体的数字签名需要用户携带安全密钥载体及其与移动端的通信转换头,导致用户体验差,因此去除移动端数字签名的安全密钥载体,并实现安全合规的数字签名是当前亟待解决的问题。相关技术中,提供了一种分布式签名方法,但是该方法在生成协同公钥时,多倍点运算耗时达到3T(T表示一次多倍点运算耗时),协同公钥生成速度慢;同时,现有分布式签名方法,只支持两个参与方(一个协同签名客户端,一个协同签名服务端),不支持两个参与方以上(一个协同签名客户端,多个协同签名服务端)的场景。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一个目的在于提出一种多方协同签名时的协同公钥生成方法,不仅能够有效降低多倍点运算耗时,提高协同公钥生成速度,而且可以实现更多参与方协同生成协同公钥,以提高密钥的安全性,满足对密钥保护要 ...
【技术保护点】
1.一种多方协同签名时的协同公钥生成方法,其特征在于,所述多方包括N个参与方,其中,N为大于等于2的整数,所述方法包括:/n所述N个参与方中的每个参与方分别生成自身私钥;/n所述N个参与方中的第一参与方根据自身私钥计算所述第一参与方的公钥,并将所述第一参与方的公钥发送给所述N个参与方中的第二参与方,所述第二参与方根据自身私钥和所述第一参与方的公钥计算两个参与方的协同准公钥,并将所述两个参与方的协同准公钥发送给所述N个参与方中的第三参与方,所述第三参与方根据自身私钥和所述两个参与方的协同准公钥计算三个参与方的协同准公钥,并将所述三个参与方的协同准公钥发送给所述N个参与方中的第四参与方,如此类推,直至所述N个参与方中的第N参与方接收到N-1个参与方的协同准公钥时,根据自身私钥和所述N-1个参与方的协同准公钥计算N个参与方的协同准公钥;/n根据所述N个参与方的协同准公钥计算协同公钥。/n
【技术特征摘要】
1.一种多方协同签名时的协同公钥生成方法,其特征在于,所述多方包括N个参与方,其中,N为大于等于2的整数,所述方法包括:
所述N个参与方中的每个参与方分别生成自身私钥;
所述N个参与方中的第一参与方根据自身私钥计算所述第一参与方的公钥,并将所述第一参与方的公钥发送给所述N个参与方中的第二参与方,所述第二参与方根据自身私钥和所述第一参与方的公钥计算两个参与方的协同准公钥,并将所述两个参与方的协同准公钥发送给所述N个参与方中的第三参与方,所述第三参与方根据自身私钥和所述两个参与方的协同准公钥计算三个参与方的协同准公钥,并将所述三个参与方的协同准公钥发送给所述N个参与方中的第四参与方,如此类推,直至所述N个参与方中的第N参与方接收到N-1个参与方的协同准公钥时,根据自身私钥和所述N-1个参与方的协同准公钥计算N个参与方的协同准公钥;
根据所述N个参与方的协同准公钥计算协同公钥。
2.如权利要求1所述的多方协同签名时的协同公钥生成方法,其特征在于,所述协同公钥根据以下公式计算:
P1=[d1+1]G,P2=[d2+1]P1,P3=[d3+1]P2,…,PN=[dN+1]PN-1,P=PN–G;
其中,P为所述协同公钥,d1、d2、d3、…、dN分别为所述第一参与方的自身私钥、所述第二参与方的自身私钥、所述第三参与方的自身私钥、…、所述第N参与方的自身私钥,P1为所述第一参与方的公钥,P2、P3、…、PN分别为所述两个参与方的协同准公钥、所述三个参与方的协同准公钥、…、所述N个参与方的协同准公钥,G为椭圆曲线E上的n阶基点。
3.如权利要求1或2所述的多方协同签名时的协同公钥生成方法,其特征在于,当N等于2时,所述第二参与方直接计算所述协同公钥P=[d2+1]P1–G,其中,d2为所述第二参与方的私钥,P1=[d1+1]G,d1为所述第一参与方的私钥,G为椭圆曲线E上的n阶基点。
4.一种多方协同签名方法,其特征在于,包括:
执行如权利要求1-3中任一项所述的协同公钥生成方法,生成协同公钥;
所述N个参与方中的第一参与方对待签名信息进行预处理,获得消息摘要,并将所述消息摘要发送给所述N个参与方中的第N参与方;
所述第一参与方生成第一随机数,并根据所述第一随机数计算所述第一参与方的第一签名值,以及将所述第一参与方的第一签名值发送给所述N个参与方中的第二参与方,所述第二参与方生成第二随机数,并根据自身私钥、所述第二随机数和所述第一参与方的第一签名值计算所述第二参与方的第一签名值,以及将所述第二参与方的第一签名值发送给所述N个参与方中的第三参与方,如此类推,直至所述N个参与方中的第N参与方接收到第N-1参与方的第一签名值时,生成第N随机数,并根据自身私钥、所述第N随机数和所述第N-1参与方的第一签名值计算所述第N参与方的第一签名值;
所述第N参与方对所述第N参与方的第一签名值和所述消息摘要计算得到待签名消息第一签名值;
在确定所述待签名消息第一签名值不为零时,所述第N参与方将所述待签名消息第一签名值发送给所述第一参与方;
所述第N参与方根据所述待签名消息第一签名值、所述第N随机数和自身私钥计算所述第N参与方的第二签名值,并将所述第N参与方的第二签名值发送给所述N个参与方中的第N-1参与方,所述第N-1参与方根据所述第N参与方的第二签名值、第N-1随机数和自身私钥计算所述第N-1参与方的第二签名值,并将所述第N-1参与方的第二签名值发送给所述N个参与方中的第N-2参与方,如此类推,直至所述第一参与方接收到所述第二参与方的第二签名值时,根据所述第二参与方的第二签名值、所述待签名消息第一签名值、所述第一随机数和自身私钥计算待签名消息第二签名值;
在确定所述待签名消息第二签名值不为零时,所述第一参与方将所述待签名消息第一签名值和所述待签名消息第二签名值作为协同签名结果。
5.如权利要求4所述的多方协同签名方法,其特征在于,所述第一参与方的第一签名值V1=[k1]G,所述第二参与方的第一签名值V2=(1+d2)*(V1+[k2]G),…,所述第N-1参与方的第一签名值VN-1=(1+dN-1)*(VN-2+[kN-1]G),所述第N参与方的第一签名值VN=(1+dN)*(VN-1+[kN]G),其中,k1、k2、…、kN-1、kN分别为所述第一随机数、所述第二随机数、…、所述第N-1随机数、所述第N随机数,d2、d3、…、dN-1、dN分别为所述第二参与方的自身私钥、所述第三参与方的自身私钥、…、所述第N-1参与方的自身私钥、所述第N参与方的自身私钥,G为椭圆曲线E上的n阶基点,*表示模乘运算。
6.如权利要求4所述的多方协同签名方法,其特征在于,所述第N参与方的第二签名值WN=[kN+r*(1+dN)-1]modn,所述第N-1参与方的第二签名值WN-1=[kN-1+WN*(1+dN-1)-1]modn,…,所述第二参与方的第二签名值W2=[k2+W3*(1+d2)-1]modn,所述待签名消息第二签名值s=[(1+d1)-1*(k1+W2)-r]modn,其中,k1、k2、…、kN-1、kN分别为所述第一随机数、所述第二随机数、…、所述第N-1随机数、所述第N随机数,d1、d2、…、dN-1、dN分别为所述第一参与方的自身私钥、所述第二参与方的自身私钥、…、所述第N-1参与方的自身私钥、所述第N参与方的自身私钥,r为所述待签名消息第一签名值,*表示模乘运算,mod表示求模运算,(1+dN)-1、(1+dN-1)-1、…、(1+d2)-1、(1+d1)-1分...
【专利技术属性】
技术研发人员:浦雨三,王秉新,靳立法,张猛,
申请(专利权)人:博雅中科北京信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。