多方协同签名方法及系统技术方案

技术编号:32894635 阅读:12 留言:0更新日期:2022-04-07 11:42
本发明专利技术公开了一种多方协同签名方法及系统,方法包括:第一参与方对待签名信息预处理获得消息摘要;第一参与方计算自身的第一签名值,第二参与方根据第一参与方的第一签名值计算自身的第一签名值,如此类推;第N参与方根据自身的第一签名值和消息摘要得到待签名消息第一签名值,并在其不为零时发送给第一参与方,同时根据待签名消息第一签名值计算自身的第二签名值,第N

【技术实现步骤摘要】
多方协同签名方法及系统


[0001]本专利技术涉及信息安全
,尤其涉及一种多方协同签名方法及系统。

技术介绍

[0002]数字签名是公钥密码体系中重要的一部分,满足完整性、防篡改、抗抵赖等安全需求,在很多场合有着重要的作用。现有数字签名应用多基于安全密钥载体(如智能USBKey、智能卡、蓝牙key等),用户密钥保存在安全密钥载体内,安全密钥载体由用户自行保管并设置使用密码,当需要签名时,用户将安全密钥载体连接到电脑进行签名操作。
[0003]随着移动应用的推广,越来越多的数字签名应用由电脑端迁移至移动端(如手机、平板电脑等),基于安全密钥载体的数字签名需要用户携带安全密钥载体及其与移动端的通信转换头,导致用户体验差,因此去除移动端数字签名的安全密钥载体,并实现安全合规的数字签名是当前亟待解决的问题。
[0004]相关技术中,提供了一种分布式签名方法,但是该方法获得的签名值中存在两个变量来源于签名代理中心,签名过程中交互的数据量较多,导致交互时间长,进而影响签名值生成的速度,增加签名时长;同时,现有分布式签名方法,只支持两个参与方(一个协同签名客户端,一个协同签名服务端),不支持两个参与方以上(一个协同签名客户端,多个协同签名服务端)的场景。

技术实现思路

[0005]本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一个目的在于提出一种多方协同签名方法,所获得的待签名消息第二签名值仅有一个数据来源于其它参与方,使得签名过程中交互的数据更少,从而降低交互时长,提高签名值生成速度,降低签名时长,且可以实现更多参与方协同签名,以提高密钥的安全性,满足对密钥保护要求高的场合。
[0006]本专利技术的第二个目的在于提出一种多方协同签名系统。
[0007]为达到上述目的,本专利技术第一方面实施例提出了一种多方协同签名方法,多方包括N个参与方,其中,N为大于等于2的整数,方法包括: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参与方,如此类推,直至第一参与方接收到第二参与方的第二签名值时,根据第二参与方的第二签名值、待签名消息第一签名值、第一随机数和自身私钥计算待签名消息第二签名值;在确定待签名消息第二签名值不为零时,第一参与方将待签名消息第一签名值和待签名消息第二签名值作为协同签名结果。
[0008]根据本专利技术实施例的多方协同签名方法,通过第一参与方对待签名信息进行预处理,获得消息摘要,并将消息摘要发送给第N参与方,以及生成第一随机数,并根据第一随机数计算第一参与方的第一签名值,以及将第一签名值发送给第二参与方,第二参与方根据自身私钥、第二随机数和第一参与方的第一签名值计算第二参与方的第一签名值,并将第一签名值发送给第三参与方,如此类推,直至第N参与方接收到第N

1参与方的第一签名值时,根据自身私钥、第N随机数和第N

1参与方的第一签名值计算第N参与方的第一签名值,而后第N参与方对第N参与方的第一签名值和消息摘要计算得到待签名消息第一签名值,并在确定待签名消息第一签名值不为零时,第N参与方将待签名消息第一签名值发送给第一参与方,并根据待签名消息第一签名值、第N随机数和自身私钥计算第N参与方的第二签名值,以及将第二签名值发送给第N

1参与方,第N

1参与方根据第N参与方的第二签名值、第N

1随机数和自身私钥计算第N

1参与方的第二签名值,并将第二签名值发送给第N

2参与方,如此类推,直至第一参与方接收到第二参与方的第二签名值时,根据第二参与方的第二签名值、待签名消息第一签名值、第一随机数和自身私钥计算待签名消息第二签名值,并在确定待签名消息第二签名值不为零时,将待签名消息第一签名值和待签名消息第二签名值作为协同签名结果。由此,所获得的待签名消息第二签名值仅有一个数据来源于其它参与方,使得签名过程中交互的数据更少,从而降低交互时长,提高签名值生成速度,降低签名时长,且可以实现更多参与方协同签名,以提高密钥的安全性,满足对密钥保护要求高的场合。
[0009]根据本专利技术的一个实施例,第一参与方的第一签名值V1=[k1]G,第二参与方的第一签名值V2=(1+d2)*(V1+[k2]G),

,第N

1参与方的第一签名值V
N
‑1=(1+d
N
‑1)*(V
N
‑2+[k
N
‑1]G),第N参与方的第一签名值V
N
=(1+d
N
)*(V
N
‑1+[k
N
]G),其中,k1、k2、

、k
N
‑1、k
N
分别为第一随机数、第二随机数、

、第N

1随机数、第N随机数,d2、d3、

、d
N
‑1、d
N
分别为第二参与方的自身私钥、第三参与方的自身私钥、

、第N

1参与方的自身私钥、第N参与方的自身私钥,G为椭圆曲线E上的n阶基点,*表示模乘运算。
[0010]根据本专利技术的一个实施例,第N参与方的第二签名值W
N
=[k
N
+r*(1+d
N
)
‑1]modn,第N

1参与方的第二签名值W
N
‑1=[k
N...

【技术保护点】

【技术特征摘要】
1.一种多方协同签名方法,其特征在于,所述多方包括N个参与方,其中,N为大于等于2的整数,所述方法包括:所述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参与方,如此类推,直至所述第一参与方接收到所述第二参与方的第二签名值时,根据所述第二参与方的第二签名值、所述待签名消息第一签名值、所述第一随机数和自身私钥计算待签名消息第二签名值;在确定所述待签名消息第二签名值不为零时,所述第一参与方将所述待签名消息第一签名值和所述待签名消息第二签名值作为协同签名结果。2.如权利要求1所述的多方协同签名方法,其特征在于,所述第一参与方的第一签名值V1=[k1]G,所述第二参与方的第一签名值V2=(1+d2)*(V1+[k2]G),

,所述第N

1参与方的第一签名值V
N
‑1=(1+d
N
‑1)*(V
N
‑2+[k
N
‑1]G),所述第N参与方的第一签名值V
N
=(1+d
N
)*(V
N
‑1+[k
N
]G),其中,k1、k2、

、k
N
‑1、k
N
分别为所述第一随机数、所述第二随机数、

、所述第N

1随机数、所述第N随机数,d2、d3、

、d
N
‑1、d
N
分别为所述第二参与方的自身私钥、所述第三参与方的自身私钥、

、所述第N

1参与方的自身私钥、所述第N参与方的自身私钥,G为椭圆曲线E上的n阶基点,*表示模乘运算。3.如权利要求1所述的多方协同签名方法,其特征在于,所述第N参与方的第二签名值W
N
=[k
N
+r*(1+d
N
)
‑1]modn,所述第N

1参与方的第二签名值W
N
‑1=[k
N
‑1+W
N
*(1+d
N
‑1)
‑1]modn,

,所述第二参与方的第二签名值W2=[k2+W3*(1+d2)
‑1]modn,所述待签名消息第二签名值s=[(1+d1)
‑1*(k1+W2)

r]modn,其中,k1、k2、

、k
N
‑1、k
N
分别为所述第一随机数、所述第二随机数、

、所述第N

1随机数、所述第N随机数,d1、d2、

、d
N
‑1、d
N
分别为所述第一参与方的自身私钥、所述第二参与方的自身私钥、

、所述第N

1参与方的自身私钥、所述第N参与方的自身私钥,r为所述待签名消息第一签名值,*表示模乘运算,mod表示求模运算,(1+d
N
)
‑1、
(1+d
N
‑1)
‑1、

、(1+d2)
‑1、(1+d1)
‑1分别为(1+d
N
)在有限域Fq上的模n的逆元、(1+d
N
‑1)在有限域Fq上的模n的逆元、

、(1+d2)在有限域Fq上的模n的逆元、(1+d1)在有限域Fq上的模n的逆元。4.如权利要求1

3中任一项所述的多方协同签名方法,其特征在于,在确定所述待签名消息第一签名值为零时,所述第一参与方重新生成第一随机数,并根据所述第一随机数计算所述第一参与方的第一签名值,以及将所述第一参与方的第一签名值发送给所述N个参与方中的第二参与方,所述第二参与方重新生成第二随机数,并根据自身私钥、第二随机数和所述第一参与方的第一签名值计算所述第二参与方的第一签名值,以及将所述第二参与方的第一签名值发送给所述N个参与方中的第三参与方,如此类推,直至所述N个参与方中的第N参与方接收到第N

1参与方的第一签名值时,重新生成第N随机数,并根据自身私钥、所述第N随机数和所述第N

1参与方的第一签名值计算所述第N参与方的第一签名值,以及对所述第N参与方的第一签名值和所述消息摘要计算得到待签名消息第一签名值。5.如权利要求1

3中任一项所述的多方协同签名方法,其特征在于,在确定所述待签名消息第二签名值为零时,所述第一参与方重新生成第一随机数,并根据所述第一随机数计算所述第一参与方的第一签名值,以及将所述第一参与方的第一签名值发送给所述N个参与方中的第二参与方,所述第二参与方重新生成第二随机数,并根据自身私钥、所述第二随机数和所述第一参与方的第一签名值计算所述第二参与方的第一签名值,以及将所述第二参与方的第一签名值发送给所述N个参与方中的第三参与方,如此类推,直至所述N个参与方中的第N参与方接收到第N

1参与方的第一签名值时,重新生成第N随机数,并根据自身私钥、所述第N随机数和所述第N

1参与方的第一签名值计算所述第N参与方的第一签名值,以及对所述第N参与方的第一签名值和所述消息摘要计算得到待签名消息第一签名值。6.一...

【专利技术属性】
技术研发人员:浦雨三周细祥程科伟王平山
申请(专利权)人:博雅中科北京信息技术有限公司
类型:发明
国别省市:

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

1