[发明专利]基于SM2的两方签名方法及系统有效
申请号: | 201811243198.0 | 申请日: | 2018-10-24 |
公开(公告)号: | CN109450640B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 张立廷;王现方;潘文伦 | 申请(专利权)人: | 成都卫士通信息产业股份有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30 |
代理公司: | 成都市集智汇华知识产权代理事务所(普通合伙) 51237 | 代理人: | 罗艳 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sm2 签名 方法 系统 | ||
本发明涉及信息安全技术领域,实施例公开一种基于SM2的两方签名方法及系统。采用本公开的技术方案,可在通信两方分别存储部分私钥,两方联合才能对消息进行签名或者解密等操作,通信两方均无法获取到对方私钥的任何信息,因此攻击者在入侵其中任一方的情况下,都不能伪造签名或解密密文,并且在签名交互中,通信两方仅需要传递给对方两个数据,数据通信量和数据运算量较低,签名效率较高。
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于SM2的两方签名方法及系统。
背景技术
一般情况下,运行密码算法时需要调用完整的密钥信息,所以需要密钥直接存储在内存中。而在防护能力较弱的终端上,这会增加密钥丢失的风险。例如手机丢失、算法运算过程被窃听等都会导致密钥的丢失,如何能安全地保护弱终端的密钥是密码算法实现中面临的非常重要的问题。
现有的解决方案是采用两方签名的方法,但是普遍存在的问题是整个交互签名运算中,运算量大且通信的数据量也大,降低了签名生成的效率。
发明内容
有鉴于此,本公开提供一种基于SM2的两方签名方法及系统,能够解决或者至少部分解决上述存在的问题。
为解决以上技术问题,本发明提供的技术方案是一种基于SM2的两方签名方法,第一通信方和第二通信方共享一套椭圆曲线参数,G为该椭圆曲线的基点,基点的阶数为n,所述方法包括:
第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方;
所述第二通信方根据e、G1、G和自身的子私钥d2生成第一部分签名r,若r不等于0,则根据r和d2生成第二参数s1,将r和s1发送给所述第一通信方;
所述第一通信方根据s1和d1生成第二部分签名s,若s不等于0且s不等于r,则输出完整签名(s,r)和消息M。
可选的,在所述第一通信方生成待签名消息M的消息摘要e,并根据G和自身的子私钥d1生成第一参数G1,将e和G1发送给第二通信方的步骤前,还包括:第一通信方生成自身的子私钥d1,第二通信方生成自身的子私钥d2;
其中,所述第一通信方生成自身的子私钥d1,所述第二通信方生成自身的子私钥d2的方法,包括:
所述第一通信方产生一个随机数d1’,d1’∈[1,n-1],计算Hash(d1’),并将Hash(d1’)的计算结果转换为d1”,d1”∈[1,n-1],计算子私钥d1=(d1’+d1”)modn;
所述第二通信方产生一个随机数d2’,d2’∈[1,n-1],计算Hash(d2’),并将Hash(d2’)的计算结果转换为d2”,d2”∈[1,n-1],计算子私钥d2=(d2’+d2”)modn;
其中,Hash()表示预定的密码杂凑函数,mod表示求模运算。
可选的,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都卫士通信息产业股份有限公司,未经成都卫士通信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811243198.0/2.html,转载请声明来源钻瓜专利网。