[发明专利]基于SM2算法的签名方法有效
申请号: | 201710447438.8 | 申请日: | 2017-06-14 |
公开(公告)号: | CN107342855B | 公开(公告)日: | 2021-02-09 |
发明(设计)人: | 王永起;王珂 | 申请(专利权)人: | 山东同智伟业软件股份有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/30 |
代理公司: | 北京中济纬天专利代理有限公司 11429 | 代理人: | 刘杨 |
地址: | 250101 山东省济南市高新*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sm2 算法 签名 方法 | ||
本发明基于SM2算法的签名方法包括如下步骤:S1、客户端与服务端均采用限制次幂方式生成随机子密钥a和b,计算a、b逆元交互处理,形成常量v,计算输出公钥P。S2、客户端根据待签原文M生成e,同时随机生成DH交互k11,将e和k11传输至服务端。S3、服务端随机生成DH交互k22发送至客户端,客户端和服务端协商临时密钥k,进而由客户端生成部分签名Q2。S4、客户端将Q2传输至服务端,服务端同步计算r和s,最终输出签名值[r,s]。本发明避免了私钥过大导致签名溢出风险,并进一步简化算法,提升运算效率。
技术领域
本发明涉及一种基于SM2算法的签名方法。
背景技术
数字签名是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章,对于这种电子式的签名还可进行技术验证,其验证的准确度是一般手工签名和图章的验证而无法比拟的。数字签名是目前电子商务、电子政务中应用最普遍、技术最成熟的、可操作性最强的一种电子签名方法。
为了提高数字签名的安全性,签名算法逐渐向着交互少、减少传输参数数量方向发展,并逐渐提高算法的处理效率。
申请公布号为CN104243456A的中国发明专利公开了一种“适用于云计算的基于SM2算法的签名及解密方法和系统”,它可在通信双方分别存储部分私钥,两方联合才能对消息进行签名或解密等操作,通信双方均无法获取到对方私钥的任何信息,因此攻击者在入侵其中任何一方的情况下,都不能伪造签名或解密密文,从而提高了云计算环境中的私钥的安全性;而且,签名过程和解密过程中,通信双方仅需要进行的交互也简化了很多,从而能够满足云计算环境中低延迟、少交互的应用需求。但第一通信方和第二通信方均产生长度在[1,n-1]之间的子私钥,其乘积可能大于n,在实际运算中私钥会大于n-2,造成私钥过大导致签名溢出风险。而且,在签名运算过程中运算过程相对比较繁琐,需要额外条件进行处理,在输出签名过程中,也需要多次网络交互计算,降低了运算效率。
发明内容
为了避免私钥过大导致签名溢出风险,并进一步简化算法,提升运算效率,本发明提供一种基于SM2算法的签名方法。
本发明提出以下技术方案:一种基于SM2算法的签名方法,它包括如下步骤:
步骤a:密钥生成,
客户端与服务端共享SM2椭圆曲线算法参数E(Fq)、G、n、Z,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G为椭圆曲线E上n阶的基点,Z为双方的共有身份标识;
客户端生成自身的子密钥a,服务端生成自身的子密钥b,客户端和服务端交互生成公钥P;
步骤b:签名运算;
其特征在于,
所述步骤a中,客户端与服务端均采用限制次幂方式生成随机子密钥a和b,使子密钥a和b的乘积小于n-2;计算a、b逆元交互处理,形成常量v,计算输出公钥P;
所述步骤b的签名运算包括以下步骤:
步骤b1:客户端根据待签原文M生成e,同时随机生成DH交互k11,将e和k11传输至服务端;
步骤b2:服务端随机生成DH交互k22发送至客户端,客户端和服务端协商临时密钥k,进而由客户端生成部分签名Q2;
步骤b3:客户端将Q2传输至服务端,服务端同步计算r和s,最终输出签名值[r,s]。
进一步的,所述步骤a中,采用限制次幂方式生成随机子密钥a和b的方法为:客户端与服务端共享的SM2椭圆曲线算法参数还包括c和T,c=log2n,且c取整数;T=2q(c/2),其中q函数为取整数函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东同智伟业软件股份有限公司,未经山东同智伟业软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710447438.8/2.html,转载请声明来源钻瓜专利网。