[发明专利]一种基于SM2椭圆曲线的签名验证算法的实现方法及系统有效
申请号: | 201710368280.5 | 申请日: | 2017-05-23 |
公开(公告)号: | CN107040385B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 王丽雪;熊晓明 | 申请(专利权)人: | 广东工业大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 广东广信君达律师事务所 44329 | 代理人: | 杨晓松 |
地址: | 510062 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于SM2椭圆曲线的签名验证算法的实现方法及系统。该系统在SM2控制模块的控制下,通过与签名生成控制模块和签名验证控制模块进行通信,并调用随机数生成模块、密码杂凑模块、点乘运算模块、点加运算模块、模加运算模块、模减运算模块、模乘运算模块、模逆运算模块来实现数字签名的生成和验证。在数字签名生成和验证过程中,点乘运算采用一种改进的部分使用一补数减法形式的点乘算法(PCS算法),在签名生成过程中,模乘运算采用一种改进的Blakley模乘算法,并且采用并行运算的方法,同时进行模逆运算和模乘运算,从而大大加快了运算的速度,减少了运算时间。 | ||
搜索关键词: | 一种 基于 sm2 椭圆 曲线 签名 验证 算法 实现 方法 系统 | ||
【主权项】:
一种基于SM2椭圆曲线的签名验证算法的实现系统,该系统包括:SM2控制模块、签名生成控制模块、签名验证控制模块、随机数生成模块、密码杂凑模块、点乘运算模块、点加运算模块、模加运算模块、模减运算模块、模乘运算模块、模逆运算模块;SM2控制模块:用于与签名生成控制模块和签名验证控制模块进行通信,向签名生成控制模块发送签名生成命令,向签名验证模块发送签名验证命令,同时接收签名生成控制模块返回的数字签名,接收签名验证模块返回的签名验证是否通过的消息;签名生成控制模块:用于在收到SM2控制模块发送的进行签名生成的命令后,与随机数生成模块、密码杂凑模块、点乘运算模块、模加运算模块、模逆运算模块、模乘运算模块、模减运算模块进行通信:拼接用户杂凑值ZA和待签名的消息M,得到签名方拼接消息ME;通过密码杂凑模块对ME进行杂凑运算,得到签名方拼接消息杂凑值e;通过随机数生成模块产生随机数k;通过点乘运算模块,采用一种改进的部分使用一补数减法形式的点乘算法对椭圆曲线的基点G和k进行点乘运算,得坐标(x1,y1);通过模加运算模块计算r=(e+x1)mod n,得到r的值;检验r=0或r+k=n是否成立;若r=0或r+k=n成立,则通知随机数生成模块重新产生随机数k;若r=0或r+k=n不成立,则通过模加运算模块计算a1=(1+dA)mod n,得到的a1值;通过模逆运算模块和模乘运算模块并行计算a2=a1‑1mod n,a3=(r*dA)mod n,得到a2和a3的值;通过模减运算模块计算a4=(k‑a3)mod n,得到a4的值;通过模乘运算模块计算s=(a2*a4)mod n,得到s的值;检验s=0是否成立,若成立则通知随机数生成模块重新产生随机数k,若不成立则输出消息M及其数字签名(r,s);签名验证控制模块:用于在收到SM2控制模块发送的进行签名验证的命令后,与密码杂凑模块、模加运算模块、点乘运算模块、点加运算模块进行通信:从发送方接收(r’,s’),即接收待验证消息M’的待验证的签名;检验r’是否在1到(n‑1)的范围内;检验s’是否在1到(n‑1)的范围内;若r’和s’中至少有一个不在1到(n‑1)的范围内,则验证不通过;若r’和s’都在1到(n‑1)的范围内,则拼接用户杂凑值ZA和待验证的消息M’,得到验证方拼接消息ME’;通过密码杂凑模块对ME’进行杂凑运算,得到验证方拼接消息杂凑值e’;通过模加运算模块计算t=(r’+s’)mod n,得到t的值;检验t是否等于0,若t=0,则验证不通过,若t≠0,则通过点乘运算模块,采用一种改进的部分使用一补数减法形式的点乘算法计算s’G和tpA,得到它们的坐标(m1,n1)和(m2,n2);通过点加运算模块计算s’G+tpA,得其坐标(x1’,y1’);通过模加运算模块计算R=(e’+x1’)mod n,得到R的值;检验R是否等于r,若R等于r,则验证通过,若R不等于r,则验证不通过;随机数生成模块:用于生成1到(n‑1)范围内的随机数k;密码杂凑模块:用于通过使用SM3密码杂凑算法,求得用户的杂凑值ZA,求得签名方拼接消息杂凑值e和验证方拼接消息杂凑值e’;点乘运算模块:用于计算kG,得到其坐标(x1,y1);计算s’G和tpA,得到它们的坐标(m1,n1)和(m2,n2),点乘运算采用一种改进的部分使用一补数减法形式的点乘算法;点加运算模块:用于计算s’G+tpA,得其坐标(x1’,y1’);模加运算模块:用于计算r=(e+x1)mod n,得到r的值;计算a1=(1+dA)mod n,得到的a1值;计算t=(r’+s’)mod n,得到t的值;计算R=(e’+x1’)mod n,得到R的值;模减运算模块:用于计算a4=(k‑a3)mod n,得到a4的值;模乘运算模块:用于计算a3=(r*dA)mod n,得到a3的值,模乘运算采用一种改进的Blakley算法;模逆运算模块:用于计算计算a2=a1‑1mod n,得到a2的值,模逆运算采用Fp上二进制求逆算法。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710368280.5/,转载请声明来源钻瓜专利网。
- 上一篇:水平栅极环绕纳米线晶体管的底部隔离
- 下一篇:静态随机存取存储单元的布局