[发明专利]一种多方联合生成SM2数字签名的方法有效
申请号: | 201811379398.9 | 申请日: | 2018-11-19 |
公开(公告)号: | CN109547199B | 公开(公告)日: | 2021-07-02 |
发明(设计)人: | 何德彪;冯琦;王婧;林超;张语荻;张佳妮 | 申请(专利权)人: | 武汉大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/30;H04L9/32 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 唐万荣;李丹 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本发明公开了一种多方联合生成SM2数字签名的方法,该方法包括以下步骤:参与数字签名的各参与方P |
||
搜索关键词: | 一种 多方 联合 生成 sm2 数字签名 方法 | ||
【主权项】:
1.一种多方联合生成SM2数字签名的方法,其特征在于,参与数字签名的所有参与方为P1,P2,…,Pτ,该方法包括以下步骤:1)每个参与方分别产生自己的部分私钥,并借助理想函数
得到共同的公钥;1.1)参与方Pi,i∈{1,…,τ},在
中随机选择一个整数xi作为自己的部分私钥,发送(input,sidsk,xi)给理想函数
其中,sidsk为唯一私钥标识符;其中,
为以整数n为阶的整数域;1.2)若
没有(sidsk,i,·),则保存(sidsk,i,xi);否则忽略此条消息;1.3)若
收到所有参与方发来的(input,sidsk,xi),
计算
mod n,保存(sidsk,x),并把(input,sidsk)发送给所有参与方;1.4)当所有参与方接收到
返回的(input,sidsk)后,发送(element‑out,sidsk)给
1.5)当
收到所有参与方发来的(element‑out,sidsk),如果
没有(sidsk,x),则忽略此条消息;否则计算Q=xG,并以(element‑out,sidsk,Q)的形式把结果发给所有参与方;其中,G为椭圆曲线点群
的基点;1.6)所有参与方从
的返回中获得中间变量Q,计算Ppub=(Q‑G)作为SM2的公钥,连同部分私钥xi一起安全保存;2)由P1,P2,…,Pτ共同完成SM2数字签名;2.1)Pi在
中随机选择两个整数ki、ρi,发送(input,sidsig||1,ki)和(input,sidsig||2,ρi)给
其中,整数
整数![]()
并且分别由sidsig||1和sidsig||2唯一标识;sidsig为签名会话的标识符;2.2)当
收到某参与方Pi,i∈{1,…,τ}发来的(input,sidsig||1,ki)和(input,sidsig||2,ρi),如果
没有(sidsig||1,i,·)和(sidsig||2,i,·),则保存(sidsig||1,i,ki)和(sidsig||2,i,ρi);否则忽略此条消息;当收到所有参与方发来的(input,sidsig||1,ki)和(input,sidsig||2,ρi),i∈{1,…,τ},
计算
保存(sidsig||1,k)和(sidsig||2,ρ),并把(input,sidsig||1)和(input,sidsig||2)发送给所有参与方;2.3)当参与方接收到(input,sidsig||1),(input,sidsig||2)后,Pi发送(mult,sidsk,sidsig||2)和(element‑out,sidsig||1)给
2.4)当收到所有参与方发来的(mult,sidsk,sidsig||2),i∈{1,…,τ},
找出(sidsk,x)和(sidsig||2,ρ),计算
并以(mult‑out,sidsk,sidsig||2,α)的形式把结果发给所有参与方;如果没有(sidsk,x)或(sidsig||2,ρ),则忽略此条消息;当收到所有参与方发来的(element‑out,sidsig||1),i∈{1,…,τ},如果
没有(sidsig||1,k),则忽略此条消息;否则计算R=kG(即
),并以(element‑out,sidsig||1,R)的形式把结果发给所有参与方;2.5)Pi从
返回的(element‑out,sidsig||1,R)和(mult‑out,sidsk,sidsig||2,α)中获得第一个中间变量
和第二个中间变量α(α=xρmod n);2.6)令R=(rx,ry),Pi计算第一部分签名r=e+rx mod n,其中e是消息m的杂凑值,e=h(m);2.7)Pi发送(affine,sidsig||1,sidsig||3,1,r)给
标识符sidsig||3代表了第三个中间变量,等于k+r mod n;2.8)当收到某参与方Pi,i∈{1,…,τ}发来的(affine,sidsig||1,sidsig||3,1,r)时,其中x,y是
域内的常数,如果
没有(sidsig||1,k),则忽略此条消息,否则计算b=k+r mod n,保存(sidsig||3,b);2.9)Pi发送(mult,sidsig||2,sidsig||3)给
2.10)当收到所有参与方发来的(mult,sidsig||2,sidsig||3),i∈{1,…,τ},
找出(sidsig||2,ρ)和(sidsig||3,b),计算β=ρb mod n=ρ(k+r)mod n并以(mult‑out,sidsig||2,sidsig||3,β)的形式把结果发给所有参与方;如果没有(sidsig||2,ρ)或(sidsig||3,b),则忽略此条消息;2.11)当
返回(mult‑out,sidsig||2,sidsig||3,β)时,Pi获得第四个中间变量β(β=ρ(k+r)mod n);2.12)Pi计算第五个中间变量s′=α‑1β‑r mod n,为了保持签名一致,选取s=min{s′,n‑s′}作为第二部分签名;2.13)Pi利用SM2的数字签名验证算法验证产生的签名,若通过则公布关于消息m的SM2签名Sig=(r,s)。2.14)根据所有参与方Pi密钥对,联合生成SM2数字签名。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811379398.9/,转载请声明来源钻瓜专利网。