【技术实现步骤摘要】
多方协同签名方法及系统
[0001]本专利技术涉及信息安全
,尤其涉及一种多方协同签名方法及系统。
技术介绍
[0002]数字签名是公钥密码体系中重要的一部分,满足完整性、防篡改、抗抵赖等安全需求,在很多场合有着重要的作用。现有数字签名应用多基于安全密钥载体(如智能USBKey、智能卡、蓝牙key等),用户密钥保存在安全密钥载体内,安全密钥载体由用户自行保管并设置使用密码,当需要签名时,用户将安全密钥载体连接到电脑进行签名操作。
[0003]随着移动应用的推广,越来越多的数字签名应用由电脑端迁移至移动端(如手机、平板电脑等),基于安全密钥载体的数字签名需要用户携带安全密钥载体及其与移动端的通信转换头,导致用户体验差,因此去除移动端数字签名的安全密钥载体,并实现安全合规的数字签名是当前亟待解决的问题。
[0004]相关技术中,提供了一种分布式签名方法,但是该方法获得的签名值中存在两个变量来源于签名代理中心,签名过程中交互的数据量较多,导致交互时间长,进而影响签名值生成的速度,增加签名时长;同时,现有分布式签名方法,只支持两个参与方(一个协同签名客户端,一个协同签名服务端),不支持两个参与方以上(一个协同签名客户端,多个协同签名服务端)的场景。
技术实现思路
[0005]本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一个目的在于提出一种多方协同签名方法,所获得的待签名消息第二签名值仅有一个数据来源于其它参与方,使得签名过程中交互的数据更少,从而降低交
【技术保护点】
【技术特征摘要】
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.一...
【专利技术属性】
技术研发人员:浦雨三,周细祥,程科伟,王平山,
申请(专利权)人:博雅中科北京信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。