协同公钥生成方法、多方协同签名方法和系统技术方案

技术编号:29683536 阅读:25 留言:0更新日期:2021-08-13 22:07
本发明专利技术公开了一种协同公钥生成方法、多方协同签名方法和系统,其中方法包括:N个参与方中的每个参与方分别生成自身私钥;第一参与方根据自身私钥计算第一参与方的公钥,并将第一参与方的公钥发送给第二参与方,第二参与方根据自身私钥和第一参与方的公钥计算两个参与方的协同准公钥,并将两个参与方的协同准公钥发送给第三参与方,如此类推,直至第N参与方接收到N‑1个参与方的协同准公钥时,根据自身私钥和N‑1个参与方的协同准公钥计算N个参与方的协同准公钥;根据N个参与方的协同准公钥计算协同公钥。由此,能够提高协同公钥生成速度,且可以实现更多参与方协同生成协同公钥。

【技术实现步骤摘要】
协同公钥生成方法、多方协同签名方法和系统
本专利技术涉及信息安全
,尤其涉及一种多方协同签名时的协同公钥生成方法、多方协同签名方法和系统。
技术介绍
数字签名是公钥密码体系中重要的一部分,满足完整性、防篡改、抗抵赖等安全需求,在很多场合有着重要的作用。现有数字签名应用多基于安全密钥载体(如智能USBKey、智能卡、蓝牙key等),用户密钥保存在安全密钥载体内,安全密钥载体由用户自行保管并设置使用密码,当需要签名时,用户将安全密钥载体连接到电脑进行签名操作。随着移动应用的推广,越来越多的数字签名应用由电脑端迁移至移动端(如手机、平板电脑等),基于安全密钥载体的数字签名需要用户携带安全密钥载体及其与移动端的通信转换头,导致用户体验差,因此去除移动端数字签名的安全密钥载体,并实现安全合规的数字签名是当前亟待解决的问题。相关技术中,提供了一种分布式签名方法,但是该方法在生成协同公钥时,多倍点运算耗时达到3T(T表示一次多倍点运算耗时),协同公钥生成速度慢;同时,现有分布式签名方法,只支持两个参与方(一个协同签名客户端,一个协同签名服务端),不支持两个参与方以上(一个协同签名客户端,多个协同签名服务端)的场景。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一个目的在于提出一种多方协同签名时的协同公钥生成方法,不仅能够有效降低多倍点运算耗时,提高协同公钥生成速度,而且可以实现更多参与方协同生成协同公钥,以提高密钥的安全性,满足对密钥保护要求高的场合。本专利技术的第二个目的在于提出一种多方协同签名方法。本专利技术的第三个目的在于提出一种多方协同签名系统。为达到上述目的,本专利技术第一方面实施例提出了一种多方协同签名时的协同公钥生成方法,多方包括N个参与方,其中,N为大于等于2的整数,方法包括:N个参与方中的每个参与方分别生成自身私钥;N个参与方中的第一参与方根据自身私钥计算第一参与方的公钥,并将第一参与方的公钥发送给N个参与方中的第二参与方,第二参与方根据自身私钥和第一参与方的公钥计算两个参与方的协同准公钥,并将两个参与方的协同准公钥发送给N个参与方中的第三参与方,第三参与方根据自身私钥和两个参与方的协同准公钥计算三个参与方的协同准公钥,并将三个参与方的协同准公钥发送给N个参与方中的第四参与方,如此类推,直至N个参与方中的第N参与方接收到N-1个参与方的协同准公钥时,根据自身私钥和N-1个参与方的协同准公钥计算N个参与方的协同准公钥;根据N个参与方的协同准公钥计算协同公钥。根据本专利技术实施例的多方协同签名时的协同公钥生成方法,通过第一参与方根据自身私钥计算第一参与方的公钥,并将第一参与方的公钥发送给第二参与方,第二参与方根据自身私钥和第一参与方的公钥计算两个参与方的协同准公钥,并将两个参与方的协同准公钥发送给第三参与方,第三参与方根据自身私钥和两个参与方的协同准公钥计算三个参与方的协同准公钥,并将三个参与方的协同准公钥发送给N个参与方中的第四参与方,如此类推,直至第N参与方接收到N-1个参与方的协同准公钥时,根据自身私钥和N-1个参与方的协同准公钥计算N个参与方的协同准公钥,最后根据N个参与方的协同准公钥计算协同公钥。由此,不仅能够有效降低多倍点运算耗时,提高协同公钥生成速度,而且可以实现更多参与方协同生成协同公钥,以提高密钥的安全性,满足对密钥保护要求高的场合。根据本专利技术的一个实施例,协同公钥根据以下公式计算: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阶基点。根据本专利技术的一个实施例,当N等于2时,第二参与方直接计算协同公钥P=[d2+1]P1–G,其中,d2为第二参与方的私钥,P1=[d1+1]G,d1为第一参与方的私钥,G为椭圆曲线E上的n阶基点。为达到上述目的,本专利技术第二方面实施例提出了一种多方协同签名方法,包括:上述的协同公钥生成方法,生成协同公钥;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参与方,如此类推,直至第一参与方接收到第二参与方的第二签名值时,根据第二参与方的第二签名值、待签名消息第一签名值、第一随机数和自身私钥计算待签名消息第二签名值;在确定待签名消息第二签名值不为零时,第一参与方将待签名消息第一签名值和待签名消息第二签名值作为协同签名结果。根据本专利技术实施例的多方协同签名方法,通过上述的协同公钥生成方法,不仅能够有效降低多倍点运算耗时,提高协同公钥生成速度,而且可以实现更多参与方协同生成协同公钥,以提高密钥的安全性,满足对密钥保护要求高的场合;同时,通过第一参与方对待签名信息进行预处理,获得消息摘要,并将消息摘要发送给第N参与方,以及根据自己生成的第一随机数计算第一参与方的第一签名值,并将第一参与方的第一签名值发送给第二参与方,第二参与方根据自身私钥、自己生成的第二随机数和第一参与方的第一签名值计算第二参与方的第一签名值,并将第二参与方的第一签名值发送给第三参与方,如此类推,直至第N参与方根据自身私钥、自己生成的第N随机数和第N-1参与方的第一签名值计算第N参与方的第一签名值,并对第N参与方的第一签名值和消息摘要计算得到待签名消息第一签名值,以及在确定待签名消息第一签名值不为零时,第N参与方将待签名消息第一签名值发送给第一参与方,并根据待签名消息第一签名值、自己生成的第N随机数和自身私钥计算第N参与方的第二签名值,并将第N参与方的第二签名本文档来自技高网...

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1