一种椭圆曲线数字签名方法技术

技术编号:19186133 阅读:117 留言:0更新日期:2018-10-17 02:12
一种椭圆曲线数字签名方法,由安全参数的选取、密钥对的生成、签名的产生与签名的验证四个部分组成,设需要签名的消息为m,选取向量(1,r+s,e)置换传统的椭圆曲线数字签名方程sk1=(e+kr)(modn)中的系数s,e,r,则签名的产生包括如下步骤:(1)输入系统参数T=(q,a,b,G,n,h);(2)选择随机数k1∈[1,n‑1];(3)计算k1G=(x1,y1),令r=x1modn,若r=0,则返回2);(4)计算k1‑1modn;(5)计算e=SHA‑1(m);(6)计算s=k1‑r‑ek,若s=0,则返回2);(7)输出的签名为m=(r,s);在传统椭圆曲线数字签名的基础上,省去一次逆运算和一次乘法运算,简化了计算过程,提高了计算效率,同时也保证了改进的椭圆曲线数字签名的安全性。

An elliptic curve digital signature method

An elliptic curve digital signature method consists of four parts: the selection of security parameters, the generation of key pairs, the generation of signatures and the verification of signatures. Assuming that the message to be signed is m, a vector (1, R + s, e) is selected to replace the coefficients s s, e, r in the traditional elliptic curve digital signature equation SK1 = (e + kr) (modn), the signature generation packets are generated. T h e following steps a r e a s follows: (1) Input system parameter T = (q, a, b, G, n, h); (2) Choose a random number K1 ([1, n 8209]]; (3) Compute k1G = (x1, y1), let r = x1modn, if r = 0, then return 2); (4) Compute K1 8201 8201modn; (5) Compute e = SHA 8201 (m); (6) Compute s = K1 8209r 8209 8209 8209 8209 8209 8209 8209 8209 8209 8209 8209 8209 8209 8209 82 82 s; in passing Based on the elliptic curve digital signature, one-time inverse operation and one-time multiplication operation are omitted, which simplifies the calculation process, improves the calculation efficiency and guarantees the security of the improved elliptic curve digital signature.

【技术实现步骤摘要】
一种椭圆曲线数字签名方法
本专利技术属于信息安全领域,具体涉及一种椭圆曲线数字签名方法。
技术介绍
随着计算机的普及和互联网的发展,网络不仅人们的生活带来了便利,也为社会创造了巨大的财富。如何保障信息的安全问题逐渐成为了人们关注的焦点。椭圆曲线密码系统(EllipticCurveCryptosystem,ECC)是基于椭圆曲线离散对数问题的公钥密码系统。1985年被Koblitz和Miller提出后,因为它对宽带要求低并且密钥短、安全性高等特点被广泛应用于信息安全领域。椭圆曲线数字签名算法(ECDSA)是数字签名算法(DSA)的椭圆曲线模拟,它可以很好保护信息的安全性、完整性同时还具有不可抵赖性等功能。椭圆曲线指的是由Weierstrass方程y2+a1xy+a3y=x3+a2x2+a4x+a6(1)所确定的亏格为1的代数曲线,设GF(p)是一个特征p≠2,3的有限域,a,b∈GF(p)且满足4a3+27b2≠0,此时椭圆曲线E(a,b)(GF(p))是由方程y2=x3+ax+b上的所有点与无穷远点O所构成的集合,这些点满足以下规律P+O=O+P=P,-O=O;若P=(x,y)≠O,则-P=(x,-y)且P+(-P)=O;若P,Q,R∈GF(p)×GF(p),则(P+Q)+R=P+(Q+R)。任取椭圆曲线E(a,b)(GF(p))上的两点P=(x1,y1)、Q=(x2,y2),R为连接P,Q两点的直线与椭圆曲线另一交点R'关于x轴的对称点[7],则有R=P+Q=(x3,y3)∈GF(p)×GF(p),这里椭圆曲线数字签名方案是通过安全参数的选取、密钥对的生成、签名的产生与签名的验证四个部分组成的。1、安全参数的选取首先选择系统参数T=(q,a,b,G,n,h)。其中q=p或q=2m,q代表有限域的元素个数,p是有限域的特征;a,b∈GF(p)随机的确定一条有限域GF(p)上的椭圆曲线E(a,b)(GF(p));G是椭圆曲线上我们确定的基点,且G的阶为n,其中n>2160且为余因子。2、密钥对的生成选择随机数k∈[1,n-1];计算kG=(x,y)=Q,Q是椭圆曲线上的点且Q是公钥,k为私钥。3、签名的产生设需要签名的消息为m,则签名的过程为:1)输入系统参数T=(q,a,b,G,n,h);2)选择随机数k1∈[1,n-1];3)计算k1G=(x1,y1),令r=x1modn,若r=0,则返回2);4)计算e=SHA-1(m);5)计算s=k1-1(e+kr)modn,若s=0,则返回2);6)输出的签名为m=(r,s)。4、签名的验证1)验证r,s是区间[1,n-1]的整数;2)计算e=SHA-1(m);3)计算w=s-1modn;4)计算u1=ewmodn,u2=rwmodn;5)计算X=u1G+u2Q=(x1,y1),若X=0则拒绝签名,否则,计算v=x1modn,当且仅当v=r时接受签名。在以上传统的椭圆曲线数字签名方案中,签名方程为它的验证方程为P=s-1(eG+rQ)(6)因此,传统的椭圆曲线数字签名方案中存在一次求逆与两次乘法运算,运算的过程较为复杂且在安全性上没有提高。专利技术
技术实现思路
本专利技术的目的是提出一种改进的椭圆曲线数字签名方法,在签名的生成与签名的验证过程中简化了计算过程,提高了计算效率,同时也保证了改进的椭圆曲线数字签名的安全性,满足了椭圆曲线快速计算的应用要求。为了实现上述目的,本专利技术采用的具体方案为:一种改进的椭圆曲线数字签名方法,由安全参数的选取、密钥对的生成、签名的产生与签名的验证四个部分组成,在安全参数的选取部分,选择系统参数T=(q,a,b,G,n,h),其中q=p或q=2m,q代表有限域的元素个数,p是有限域的特征,a,b∈GF(p),随机的确定一条有限域GF(p)上的椭圆曲线E(a,b)(GF(p)),G是椭圆曲线上的基点,且G的阶为n,n>2160且为余因子;在密钥对的生成部分,选择随机数k∈[1,n-1],计算kG=(x,y)=Q,Q是椭圆曲线上的点,且Q是公钥,k为私钥;设需要签名的消息为m,选取向量(1,r+s,e),则签名的产生包括如下步骤:1)输入系统参数T=(q,a,b,G,n,h);2)选择随机数k1∈[1,n-1];3)计算k1G=(x1,y1),令r=x1modn,若r=0,则返回2);4)计算modn;5)计算e=SHA-1(m);6)计算s=k1-r-ek,若s=0,则返回2);7)输出的签名为m=(r,s)。签名的验证包括如下步骤:1)验证r,s是区间[1,n-1]的整数;2)计算e=SHA-1(m);3)计算X=(s+r)G+eQ=(x1,y1),若X=0则拒绝签名,否则,计算v=x1modn,当且仅当v=r时接受签名。有益效果:本专利技术的算法相比于传统的数字签名算法,不仅省去了逆运算,还减少了一次乘法运算,因此减轻了运算的负担,提高了数字签名的运算速度。改进的椭圆曲线数字签名方法可以抗私钥攻击,因为攻击者无法通过s=k1-rek求出私钥k,而通过kG=Q来求解k也是不现实的。其次改进后的签名方案也具有不可为造性,当攻击者利用假的私钥来伪造签名时,伪造的签名在验证过程中是无法得到有效的输出。改进的数字签名方案还能保证信息的完整性和真实性,如果攻击者截获并篡改了消息,接受方接受消息后通过签名的验证时则不能得到有效的r,从而篡改后的签名无法得到顺利的输出,这样就保证了签名的真实性和完整性。具体实施方式一种改进的椭圆曲线数字签名方法,由安全参数的选取、密钥对的生成、签名的产生与签名的验证四个部分组成。1、安全参数的选取选择系统参数T=(q,a,b,G,n,h),其中q=p或q=2m,q代表有限域的元素个数,p是有限域的特征,a,b∈GF(p),随机的确定一条有限域GF(p)上的椭圆曲线E(a,b)(GF(p)),G是椭圆曲线上的基点,且G的阶为n,n>2160且为余因子;2、密钥对的生成选择随机数k∈[1,n-1],计算kG=(x,y)=Q,Q是椭圆曲线上的点,且Q是公钥,k为私钥;3、签名的产生设需要签名的消息为m,选取向量(1,r+s,e)置换传统的椭圆曲线数字签名方程sk1=(e+kr)(modn)中的系数s,e,r,则签名的产生包括如下步骤:1)输入系统参数T=(q,a,b,G,n,h);2)选择随机数k1∈[1,n-1];3)计算k1G=(x1,y1),令r=x1modn,若r=0,则返回2);4)计算modn;5)计算e=SHA-1(m);6)计算s=k1-r-ek,若s=0,则返回2);7)输出的签名为m=(r,s);4、签名的验证签名的验证包括如下步骤:1)验证r,s是区间[1,n-1]的整数;2)计算e=SHA-1(m);3)计算X=(s+r)G+eQ=(x1,y1),若X=0则拒绝签名,否则,计算v=x1modn,当且仅当v=r时接受签名。对本专利技术改进的椭圆曲线数字签名方法进行安全性分析,如下:改进的椭圆曲线数字签名方案可以抗私钥攻击,因为攻击者无法通过s=k1-rek或s=k1-r-ek求出私钥k,而通过kG=Q来求解k也是不现实的。其次改进后的签名方案也具有不可为造性,当攻击者利用假的私钥来伪造签名时,伪造的签本文档来自技高网
...

【技术保护点】
1.一种椭圆曲线数字签名方法,由安全参数的选取、密钥对的生成、签名的产生与签名的验证四个部分组成,在安全参数的选取部分,选择系统参数T=(q,a,b,G,n,h),其中q=p或q=2

【技术特征摘要】
1.一种椭圆曲线数字签名方法,由安全参数的选取、密钥对的生成、签名的产生与签名的验证四个部分组成,在安全参数的选取部分,选择系统参数T=(q,a,b,G,n,h),其中q=p或q=2m,q代表有限域的元素个数,p是有限域的特征,a,b∈GF(p),随机的确定一条有限域GF(p)上的椭圆曲线E(a,b)(GF(p)),G是椭圆曲线上的基点,且G的阶为n,n>2160且为余因子;在密钥对的生成部分,选择随机数k∈[1,n-1],计算kG=(x,y)=Q,Q是椭圆曲线上的点,且Q是公钥,k为私钥;其特征在于,设需要签名的消息为m,选取向量(1,r+s,e),则签名的产生包括如下步骤:(1)...

【专利技术属性】
技术研发人员:张平赵旭辉刘牧华刘江辉阴晶栗亚敏
申请(专利权)人:河南科技大学
类型:发明
国别省市:河南,41

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

1