[发明专利]SM2签名算法的实现方法在审
申请号: | 201310016288.7 | 申请日: | 2013-01-16 |
公开(公告)号: | CN103929305A | 公开(公告)日: | 2014-07-16 |
发明(设计)人: | 顾海华;张宇 | 申请(专利权)人: | 上海华虹集成电路有限责任公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30 |
代理公司: | 上海浦一知识产权代理有限公司 31211 | 代理人: | 戴广志 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sm2 签名 算法 实现 方法 | ||
技术领域
本发明涉及密码学领域,特别是涉及一种SM2签名算法的实现方法。
背景技术
国家密码管理局在2010年12月份公布了《SM2椭圆曲线公钥密码算法》,SM2算法本质上是一种椭圆曲线算法(ECC),在细节上,SM2算法规定了签名、验证、密钥交换等具体细节。
SM2签名算法是一种椭圆曲线数字认证方法,可以对数据来源的确认,保证签名者不可抵赖。
椭圆曲线蒙哥马利(Montgomery)形式为EM:By2=x3+Ax+x,在这种形式下,点加运算与倍点运算是不需要y坐标的;而在椭圆曲线维尔斯特拉斯(Weierstrass)形式E:y2=x3+ax+b,点加运算与倍点运算是需要加入y坐标的;其缺点是运算时会占用大量存储空间。
发明内容
本发明要解决的技术问题是提供一种SM2签名算法的实现方法,可以减少运算的存储空间。
为解决上述技术问题,本发明的SM2签名算法的实现方法,包括如下步骤:
步骤一,将基点G从维尔斯特拉斯形式映射到蒙哥马利形式;
步骤二,置其中,ZA是用户杂凑值,M是信息,←是赋值符号;
步骤三,计算其中H(x)为杂凑函数;
步骤四,选取随机数k∈[1,n-1];
步骤五,在蒙哥马利形式下作kG,令其为(x1,y1),并将x1转化为整数;
步骤六,计算r←(e+x1)mod n,如果r=0或r+k=n,则返回步骤四;
步骤七,计算s←((1+dA)-1*(k-r*dA))mod n,如果s=0,则返回步骤四,其中dA是用户私钥;
步骤八,返回数字签名(r,s)。
本发明将SM2签名算法从维尔斯特拉斯形式映射到蒙哥马利形式再生成生成签名对(r,s),因为蒙哥马利形式下,椭圆曲线的点加运算与倍点运算都不需要y坐标,可以极大减少运算时的存储空间。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是所述SM2签名算法的实现方法的流程图;
图2是计算kG=(x1,y1)的流程图。
具体实施方式
本发明从传统的椭圆曲线维尔斯特拉斯形式出发,转化为蒙哥马利形式,再进行签名。结合图1所示,所述SM2签名算法的实现方法,输入参数为椭圆曲线参数,ZA,M,PA,dA,其中ZA是用户杂凑值,M是信息,PA是用户公钥,dA是用户私钥,包括如下步骤:
步骤一,将基点G从维尔斯特拉斯形式映射到蒙哥马利形式;
步骤二,置
步骤三,计算其中,H(x)为杂凑函数;
步骤四,选取随机数k∈[1,n-1];
步骤五,在蒙哥马利形式下作kG=(x1,y1),并将x1转化为整数;
步骤六,计算r←(e+x1)mod n,如果r=0或r+k=n则返回步骤四;
步骤七,计算s←((1+dA)-1*(k-r*dA))mod n,如果s=0则返回步骤四;
步骤八,返回数字签名(r,s)。
上述各步骤中的运算都是在蒙哥马利(Montgomery)形式下进行的。
在步骤一中,将基点G从维尔斯特拉斯形式映射到蒙哥马利形式还需要满足特定条件:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华虹集成电路有限责任公司,未经上海华虹集成电路有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310016288.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:卷曲乳杆菌菌株及其用途
- 下一篇:包含聚合阳离子乳化剂的乳液、物质和方法