一种SM2椭圆曲线签名验证算法制造技术

技术编号:19186138 阅读:41 留言:0更新日期:2018-10-17 02:12
本发明专利技术公开了一种SM2椭圆曲线签名验证算法,包括下述步骤:数字签名生成算法:输入签名方A的原始数据,包括椭圆曲线的系统参数(基点G、阶n),杂凑值ZA,签名方A的私钥dA,待签名的消息M;获取随机比特串W;本发明专利技术在数字签名生成的过程中,首先获取一段随机比特串,然后将待签名的消息与随机比特串异或操作后再与杂凑值进行与非运算,若签名信息在传输的过程中被不法分子截获,不法分子在不知道签名过程中的异或操作和与非操作的情况下,不能完全破解和伪造,从而提高了签名信息的安全性,防止不法分子截获签名信息后进行破解和伪造。

A SM2 elliptic curve signature verification algorithm

The invention discloses a SM2 elliptic curve signature verification algorithm, including the following steps: digital signature generation algorithm: input the original data of signer A, including the system parameters of elliptic curve (base point G, order n), hash value ZA, signer A's private key dA, message M to be signed; obtain random bit string W; the invention in digital In the process of signature generation, a random bit string is obtained first, and then the message to be signed is differentiated from or operated on the random bit string, and then the hash value is non-operated. If the signature information is intercepted by the illegal elements in the transmission process, the illegal elements do not know the XOR operation and non-operation in the signature process. Therefore, the security of signature information can be improved and the illegal elements can not intercept the signature information to crack and forge.

【技术实现步骤摘要】
一种SM2椭圆曲线签名验证算法
本专利技术涉及信息安全
,具体涉及一种SM2椭圆曲线签名验证算法。
技术介绍
身份认证技术是确保信息安全的主导力量,认证系统的设计与实现变的至关重要。只有通过高可靠性的身份认证系统,才能有效保障通信双方的信息安全,防止信息在传输过程中被不法分子截获。SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法,数字签名技术是椭圆曲线公钥密码算法的一个重要应用,它在现代电子商务和政务中扮演着重要角色,可以保证消息在传输过程中的完整性,对发送者的身份进行认证,防止交易中抵赖的发生。现有的SM2签名验签算法在签名生成(签名验证)过程中,大多直接对待签名的消息(待验证的消息)和杂凑值进行首尾拼接操作,这种首尾拼接方式过于简单,容易受到不法分子的攻击,安全性较低。SM2椭圆曲线公钥密码算法在运算过程中,最耗时间的就是点乘算法,而在点乘运算中,最耗时的为模逆运算,所需时间为模乘运算的十多倍,由于完成一次点乘运算在不同坐标下的所需要进行的模逆运算的次数是不同的,仿射坐标系下的蒙哥马利点乘算法中,每次点运算(点加、倍点运算)都需要进行一次模逆运算,多次的模逆运算会耗费大量的时间,标准投影坐标下的蒙哥马利点乘算法中,点运算(点加、倍点运算)不需要进行模逆运算,但是模乘运算的次数会大大增加,同样也会耗费大量的时间。传统的蒙哥马利点乘算法往往只在一个坐标系下进行点乘运算,只使用一个模乘单元且采用串行计算的方法,导致点乘运算速度较慢,进而导致整个签名验签过程运算速度较慢,耗费大量时间的问题。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种运算速度更快、安全性更高的SM2椭圆曲线签名验证算法。本专利技术的目的通过下述技术方案实现:一种SM2椭圆曲线签名验证算法,包括下述步骤:S1,数字签名生成算法:S1.1,输入签名方A的原始数据,包括椭圆曲线的系统参数(基点G、阶n),杂凑值ZA,签名方A的私钥dA,待签名的消息M;S1.2,获取随机比特串W;S1.3,将消息M与随机比特串W进行异或操作,得Mw;S1.4,将杂凑值ZA和Mw进行与非操作,得Me;S1.5,采用SM3算法对Me进行密码杂凑运算,得杂凑值e;S1.6,产生随机数k∈[1,n-1];S1.7,使用点乘算法计算椭圆曲线点(x1,y1)=[k]G;S1.8,计算r=(e+x1)modn;S1.9,检验r=0或r+k=n是否成立,若成立则返回S1.6,若不成立则执行S1.10;S1.10,计算s=((1+dA)-1*(k-r*dA))modn;S1.11,检验s=0是否成立,若成立则返回S1.6,若不成立则执行S1.12;S1.12,输出随机比特串W,消息M及其数字签名(r,s);S2,数字签名验证算法:S2.1,输入验证方B的原始数据,包括椭圆曲线系统参数(基点G、阶n),签名方A的公钥PA、随机比特串W、杂凑值ZA,需要验签的消息M'及其数字签名(r',s');S2.2,检验r'∈[1,n-1]是否成立,若成立则执行S2.3,若不成立则输出验证失败;S2.3,检验s'∈[1,n-1]是否成立,若成立则执行S2.4,若不成立则输出验证失败;S2.4,将消息M'与随机比特串W进行异或操作,得Mw';S2.5,将杂凑值ZA和Mw'进行与非操作,得Me';S2.6,采用SM3算法对Me'进行密码杂凑运算,得到杂凑值e';S2.7,计算t=(r'+s')modn;S2.8,检验t=0是否成立,若成立则输出验证失败,若不成立则执行S2.9;S2.9,使用点乘算法计算椭圆曲线点(x1',y1')=[s']G+[t]PA;S2.10,计算R=(e'+x1')modn;S2.11,检验R=r'是否成立,若成立则输出验证成功,若不成立则输出验证失败。优选地,所述点乘算法为标准投影坐标下的蒙哥马利点乘算法,其中C1、C2、C3为三个乘法单元,C1(XM,ZN)就是用模乘法单元C1对XM和ZN进行模乘运算;所述点乘算法包括下述步骤:步骤一,输入点G=(xG,yG)∈E(F2m),k=(km-1,…k1,k0)2,其中ki∈{0,1},正整数i∈[0,m-1];将仿射坐标转换为标准投影坐标,在标准投影坐标下进行步骤二和步骤三的运算;步骤二,令XM=1,ZM=0,XN=xG,ZN=1;计算xG-1=1/xG;步骤三,对于i从m-1到0,重复执行以下点加运算和倍点运算:3.1,W1=C1(XM,ZN),W2=C2(XN,ZM);在3.1中,模乘单元C1和C2并行运算,可加快运算速度,减少运算时间;3.2,若ki=0,则ZN=(W1+W2)2,XM=(XM+ZM)4,W1=C1(XM,ZM),W2=C2(W1,W2),W3=C3(xG,ZN),XN=W2+W3,ZM=W12;在3.2中,模乘单元C1、C2、C3并行运算,可加快运算速度,减少运算时间;3.3,若ki=1,则ZM=(W1+W2)2,XN=(XN+ZN)4,W1=C1(XN,ZN),W2=C2(W1,W2),W3=C3(xG,ZM),XM=W2+W3,ZN=W12;在3.3中,模乘单元C1、C2、C3并行运算,可加快运算速度,减少运算时间;步骤四,若ZN=0,则XM=xG,ZM=xG+yG;该步骤将标准射影坐标下的点转换为仿射坐标下的点;步骤五,若ZN≠0,则XM=XM/ZM,XN=XN/ZN,W2=C2(XM+xG,XN+xG),W3=C3(XM+xG,xG-1),W4=W2+xG2+yG,W2=C2(W3,W4),ZM=W2+yG;该步骤将标准射影坐标下的点转换为仿射坐标下的点;步骤六,x1=XM,y1=ZM;步骤七,输出[k]G=(x1,y1)。本专利技术与现有技术相比具有以下的有益效果:(1)本专利技术在数字签名生成的过程中,首先获取一段随机比特串,然后将待签名的消息与随机比特串异或操作后再与杂凑值进行与非运算,若签名信息在传输的过程中被不法分子截获,不法分子在不知道签名过程中的异或操作和与非操作的情况下,不能完全破解和伪造,从而提高了签名信息的安全性,防止不法分子截获签名信息后进行破解和伪造;(2)本专利技术在数字签名验证的过程中,将待验证的消息与随机比特串异或操作后再与杂凑值进行与非运算,若待验证的签名信息在传输的过程中被不法分子进行了篡改,不法分子在不知道验签过程中的异或操作和与非操作的情况下,篡改后的签名信息是不能验证成功的,从而提高了验证系统的安全性;(3)本专利技术签名生成和签名验证过程中的点乘算法采用一种改进后的蒙哥马利点乘算法进行点乘运算,将仿射坐标转换为标准投影坐标,消除了点乘运算中点运算(点加、倍点运算)过程中的模逆运算,通过三个模乘单元并行计算的方式来进行模乘运算,并且在点运算(点加、倍点运算)的同时,将标准投影坐标转换为仿射坐标时所需的模逆运算同时进行,大大加快了点乘运算的速度,减少了运算时间。附图说明图1为本专利技术数字签名生成算法的流程图;图2为本专利技术数字签名验证算法的流程图;图3为本专利技术蒙哥马利点乘算法的流程图。具体实施方式下面结合实施例及附图对本专利技术作进一步详细的描述,但本专利技术的实施方式不限于此。本专利技术所要解决的技术问题是提供一种SM2椭圆曲线签名本文档来自技高网...

【技术保护点】
1.一种SM2椭圆曲线签名验证算法,其特征在于,包括下述步骤:S1,数字签名生成算法:S1.1,输入签名方A的原始数据,包括椭圆曲线的系统参数(基点G、阶n),杂凑值ZA,签名方A的私钥dA,待签名的消息M;S1.2,获取随机比特串W;S1.3,将消息M与随机比特串W进行异或操作,得Mw;S1.4,将杂凑值ZA和Mw进行与非操作,得Me;S1.5,采用SM3算法对Me进行密码杂凑运算,得杂凑值e;S1.6,产生随机数k∈[1,n‑1];S1.7,使用点乘算法计算椭圆曲线点(x1,y1)=[k]G;S1.8,计算r=(e+x1)mod n;S1.9,检验r=0或r+k=n是否成立,若成立则返回S1.6,若不成立则执行S1.10;S1.10,计算s=((1+dA)‑1*(k‑r*dA))mod n;S1.11,检验s=0是否成立,若成立则返回S1.6,若不成立则执行S1.12;S1.12,输出随机比特串W,消息M及其数字签名(r,s);S2,数字签名验证算法:S2.1,输入验证方B的原始数据,包括椭圆曲线系统参数(基点G、阶n),签名方A的公钥PA、随机比特串W、杂凑值ZA,需要验签的消息M'及其数字签名(r',s');S2.2,检验r'∈[1,n‑1]是否成立,若成立则执行S2.3,若不成立则输出验证失败;S2.3,检验s'∈[1,n‑1]是否成立,若成立则执行S2.4,若不成立则输出验证失败;S2.4,将消息M'与随机比特串W进行异或操作,得Mw';S2.5,将杂凑值ZA和Mw'进行与非操作,得Me';S2.6,采用SM3算法对Me'进行密码杂凑运算,得到杂凑值e';S2.7,计算t=(r'+s')mod n;S2.8,检验t=0是否成立,若成立则输出验证失败,若不成立则执行S2.9;S2.9,使用点乘算法计算椭圆曲线点(x1',y1')=[s']G+[t]PA;S2.10,计算R=(e'+x1')mod n;S2.11,检验R=r'是否成立,若成立则输出验证成功,若不成立则输出验证失败。...

【技术特征摘要】
1.一种SM2椭圆曲线签名验证算法,其特征在于,包括下述步骤:S1,数字签名生成算法:S1.1,输入签名方A的原始数据,包括椭圆曲线的系统参数(基点G、阶n),杂凑值ZA,签名方A的私钥dA,待签名的消息M;S1.2,获取随机比特串W;S1.3,将消息M与随机比特串W进行异或操作,得Mw;S1.4,将杂凑值ZA和Mw进行与非操作,得Me;S1.5,采用SM3算法对Me进行密码杂凑运算,得杂凑值e;S1.6,产生随机数k∈[1,n-1];S1.7,使用点乘算法计算椭圆曲线点(x1,y1)=[k]G;S1.8,计算r=(e+x1)modn;S1.9,检验r=0或r+k=n是否成立,若成立则返回S1.6,若不成立则执行S1.10;S1.10,计算s=((1+dA)-1*(k-r*dA))modn;S1.11,检验s=0是否成立,若成立则返回S1.6,若不成立则执行S1.12;S1.12,输出随机比特串W,消息M及其数字签名(r,s);S2,数字签名验证算法:S2.1,输入验证方B的原始数据,包括椭圆曲线系统参数(基点G、阶n),签名方A的公钥PA、随机比特串W、杂凑值ZA,需要验签的消息M'及其数字签名(r',s');S2.2,检验r'∈[1,n-1]是否成立,若成立则执行S2.3,若不成立则输出验证失败;S2.3,检验s'∈[1,n-1]是否成立,若成立则执行S2.4,若不成立则输出验证失败;S2.4,将消息M'与随机比特串W进行异或操作,得Mw';S2.5,将杂凑值ZA和Mw'进行与非操作,得Me';S2.6,采用SM3算法对Me'进行密码杂凑运算,得到杂凑值e';S2.7,计算t=(r'+s')modn;S2.8,检验t=0是否成立,若成立则输出验证失败,若不成立则执行S2.9;S2.9,使用点乘算法计算椭圆曲线点(x1',y1')=[s']G+[t]PA;S2.10,计算R=(e'+x1')modn;S2.11,检验R=r'是否成立,若成立则输...

【专利技术属性】
技术研发人员:王丽雪熊晓明
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1