[发明专利]一种基于SM2算法的多方协同数字签名方法有效

专利信息
申请号: 202011032273.6 申请日: 2020-09-27
公开(公告)号: CN112152808B 公开(公告)日: 2022-11-11
发明(设计)人: 李元正;唐伟;谭良;邹莉萍;杨贺昆;陈阳;肖欢;尚兴林;文艺 申请(专利权)人: 成都国泰网信科技有限公司
主分类号: H04L9/08 分类号: H04L9/08;H04L9/30;H04L9/32
代理公司: 成都九鼎天元知识产权代理有限公司 51214 代理人: 贾年龙
地址: 610000 四川省*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 sm2 算法 多方 协同 数字签名 方法
【权利要求书】:

1.一种基于SM2算法的多方协同数字签名方法,其特征在于,包括以下步骤:

S1、对协同签名的m个参与方各自形成公私钥对;

所述步骤S1的具体步骤为:

S11、对各参与方Ui(i=1,2,…,m)分别选择一个随机数di∈[1,n-1](i=1,2,…,m),n为椭圆曲线的阶;

S12、将随机数di作为各参与方Ui的私钥,并将私钥秘密保存;

S13、根据私钥di生成各参与方Ui的公钥PKi=diG(i=1,2,…,m),G为椭圆曲线的基点,并将公钥PKi发送给服务器S;

S14、通过服务器S将公钥{PK1,PK2,…,PKm}发送给各参与方{U1,U2,…,Um};

S2、对m个参与方协同生成协同签名的组公钥;

所述步骤S2的具体步骤为:

S21、计算参与方U1在椭圆曲线E上的组子公钥并将P1发送给服务器S,再通过服务器S将P1发送给参与方U2

S22、计算参与方{U2,U3,…Um-1}在椭圆曲线E上的组子公钥并将Pi发送给服务器S,再通过服务器S将Pi发送给参与方Ui+1

S23、计算参与方Um在椭圆曲线E上的组子公钥将Pm作为完整的协同签名组公钥P;

S24、通过参与方Um将协同签名组公钥P发送给服务器S;

S25、通过服务器S将协同签名组公钥P发送给参与方U1,供签名验证者验签时使用;

S3、通过公私钥对使各参与方协同生成签名;

所述步骤S3的具体步骤为:

S31、为各参与方{U1,U2,…Um}分别选择一个随机数k1,k2,…,km∈[1,n-1];

S32、为参与方U1选择一个随机数b∈[1,n-1];

S33、对参与方Ui(i=1,2,…,m)分别计算签名随机数并将Ki发送给服务器S;

S34、服务器S计算KiG,并将KiG发送给各参与方U1,U2,…Um

S35、通过参与方U1计算椭圆曲线E上一点坐标(x,y)=K1G+K2G+…KmG;

S36、通过参与方U1计算消息摘要e=Hash(Z||M);

其中,Hash()为消息摘要长度256比特的密码杂凑函数,Z为用户的身份标识、部分椭圆曲线参数和用户公钥的杂凑,M为明文;

S37、通过参与方U1计算协同签名的第一部分签名r=e+x,当r=0modn时,返回步骤S31,否则进入步骤S38;

S38、计算参与方U1的中间聚合子密钥D1=b·d1,并将D1用参与方U2的公钥PK2加密得到SM2_En(PK2,D1),将SM2_En(PK2,D1)发送给服务器S,再通过服务器S将SM2_En(PK2,D1)发送给参与方U2

S39、通过参与方{U2,U3,…Um-1}用私钥di(i=1,2,…,m)解密得到Di-1,计算参与方Ui的中间聚合子密钥Di=Di-1·di(i=2,3,…,m-1),并将Di用参与方Ui+1的公钥PKi+1加密得到SM2_En(PKi+1,Di),将SM2_En(PKi+1,Di)发送给服务器S,再通过服务器S将SM2_En(PKi+1,Di)发送给参与方Ui+1

S310、通过参与方Um用私钥dm解密得到Dm-1,计算中间聚合密钥D=Dm=Dm-1·dm,并将D用服务器S的公钥PKS加密得到SM2_En(PKS,Dm),将SM2_En(PKS,Dm)发送给服务器S;

S311、通过服务器S用私钥dS解密得到D,计算Q=(K1+K2+…+Km+r)·D,并将Q用参与方U1的公钥PK1加密得到SM2_En(PK1,Di),将SM2_En(PK1,Di)发送给参与方U1

S312、通过参与方U1用私钥d1解密得到Q,计算协同签名的另一部分签名当s=0modn时,返回步骤S31,否则进入步骤S313;

S313、通过参与方U1生成对明文M的完整签名(s,r),并将签名(s,r)发送给签名验证者V;

S4、通过签名验证者和组公钥对签名进行验证,若验证通过则使用该签名;

所述步骤S4的具体步骤为:

S41、通过签名验证者V接收到协同签名(s',r');

S42、通过签名验证者V检验s'∈[1,n-1]是否成立,若不成立,则签名不通过,若成立则进入步骤S43;

S43、通过签名验证者V检验r'∈[1,n-1]是否成立,若不成立,则签名不通过,若成立则进入步骤S44;

S44、通过签名验证者V计算第一个验签参数t=s'+r',如果t=0modn,则签名不通过,否则进入步骤S45;

S45、通过签名验证者V计算消息以及参数摘要e'=Hash(Z||M');

S46、通过签名验证者V计算椭圆曲线点(x',y');

S47、通过签名验证者V计算第二个验签参数R=e'+x',检验R=r'是否成立,若成立,则签名验证通过,使用签名(s,r),若不成立,则签名验证不通过。

2.根据权利要求1所述的基于SM2算法的多方协同数字签名方法,其特征在于,所述步骤S46中椭圆曲线点(x',y')的计算公式为:

(x',y')=s'G+tP。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都国泰网信科技有限公司,未经成都国泰网信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011032273.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top