[发明专利]一种基于SM2的多方协同签名方法及系统有效
申请号: | 202010100376.5 | 申请日: | 2020-02-18 |
公开(公告)号: | CN111147246B | 公开(公告)日: | 2023-08-08 |
发明(设计)人: | 贾文义;李鸿利;黄念念 | 申请(专利权)人: | 数据通信科学技术研究所;兴唐通信科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/30 |
代理公司: | 北京天达知识产权代理事务所有限公司 11386 | 代理人: | 张通 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sm2 多方 协同 签名 方法 系统 | ||
1.一种基于SM2的多方协同签名方法,其特征在于,包括以下步骤:
得到多个通信端装置各自的子私钥作为用户的多方私钥,并利用用户的多方私钥生成用户公钥,包括:第1个通信端装置根据公式P1=[d1]G计算得到椭圆曲线点P1,并将P1发送给第2个通信端装置;对于第2个通信端装置至第m-1个通信端装置,依次执行Pi=[di]Pi-1,i=2……m,并将Pi发送给第i+1个通信端装置,直至第m个通信端装置接收到Pm-1,并根据公式P=[dm]Pm-1-G计算得到用户公钥P;其中,G为SM2的椭圆曲线基点;
利用所述用户公钥将待签名消息M生成消息摘要e,并基于SM2根据所述消息摘要e生成第一部分签名,包括,所述通信端装置的数量为m,第m个通信端装置根据公式(x,y)=[dm]Rm-1+[km]G计算得到椭圆曲线点(x,y),若(x,y)≠O则根据公式r=(e+x)modn计算得到r;若r不等于0则作为第一部分签名r;其中,dm为第m个通信端装置的子私钥,km为第m个通信端装置产生的随机数,km∈[1,n-1],Rm-1为第m-1个通信端装置计算得到的椭圆曲线点,n为G的阶,mod为求模运算;所述第m-1个通信端装置计算得到椭圆曲线点Rm-1的过程如下:第1个通信端装置根据公式R1=[k1]G计算得到满足椭圆曲线方程的椭圆曲线点R1,并将R1发送给第2个通信端装置;对于第2个通信端装置到第m-1个通信端装置,依次执行Ri=[di]Ri-1+[ki]G,将满足椭圆曲线方程的椭圆曲线点Ri发送给第i+1个通信端装置,直至计算得到满足椭圆曲线方程的椭圆曲线点Rm-1发送给第m个通信端装置;其中,di为第i个通信端装置的子私钥,ki为第i个通信端装置产生的随机数,ki∈[1,n-1],i=2,3,…,m-1;
利用多个通信端装置产生的随机数、各自的子私钥和所述第一部分签名生成第二部分签名,得到消息M的完整签名,包括:第m个通信端装置基于SM2根据所述消息摘要e生成第一部分签名r,并将第一部分签名r发送给第1个通信端装置;
第m个通信端装置至第2个通信端装置依次根据自身产生的随机数、接收的ti和子私钥di分别计算ti-1直至得到t1发送给第1个通信端;其中,ti-1为第i个通信端装置计算得到后传送给第i-1个通信端装置的参数,i=m,m-1,…,2,tm=r;通过如下公式计算得到不等于0的ti-1直至得到t1:ti-1=di-1(ki+ti)modn;其中,di为第m个通信端的子私钥,ki为第i个通信端装置产生的随机数,ki∈[1,n-1],i=m,m-1,…,2,n为G的阶,mod为求模运算;
若t1不等于0且r不等于0,则第1个通信端装置根据自身产生的随机数、接收的t1和第一部分签名r如下公式生成生成s:
s=(d1-1(k1+t1)-r)modn;
其中,d1为第1个通信端的子私钥,k1为第1个通信端产生的随机数,k1∈[1,n-1],n为G的阶,mod为求模运算;若s不等于0,则得到消息M的完整签名(r,s)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于数据通信科学技术研究所;兴唐通信科技有限公司,未经数据通信科学技术研究所;兴唐通信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010100376.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种去甲醛涂料
- 下一篇:一种可替换滤芯的抗菌针织口罩及其编织方法