运用Montgomery型椭圆曲线的数字签名认证方法

文档序号:7716250阅读:181来源:国知局
专利名称:运用Montgomery型椭圆曲线的数字签名认证方法
技术领域
本发明涉及一种运用Montgomery型椭圆曲线的数字签名认证方法,在有限的资 源条件下建立通信连接时,能够快速实现安全数字签名及其认证的方法。
背景技术
随着电子签名法在世界范围内的发展使得数字签名的基础设施不断地发展,有效 的实现公钥密码系统(如数字签名)变得越来越重要。数字签名是通过某种密码运算对 要传输的信息进行处理生成用以确认信息来源以及核实信息是否发生变化的数字串,这种 电子式的签名还可进行技术验证,其验证的准确度比一般手工签名和图章的验证准确度更 高。数字签名是目前电子商务、电子政务中应用最普遍、技术最成熟、可操作性最强的一种 电子签名方法。数字签名认证方法可以通过规范程序和科学方法来鉴定签名人的身份、验 证传输文件有无被窜改、鉴定电子数据内容,以确保传输文件的完整性、真实性和不可抵赖 性。数字签名的应用范围十分广泛,凡是需要对用户的身份进行判断的情况都可以使用,比 如加密信件、商务信函、定货购买系统、远程金融交易、自动模式处理等,同时,保障电子数 据交换(EDI)安全性的应用是一个突破性的进展。 1985年Neal Koblitz和Victor Miller提出了椭圆曲线密码(ECC),由于椭圆曲 线的安全性高、占用带宽小、计算复杂度高等众多优势,能够充分地保证各种通信网络的安 全,所以对这一密码体制的研究和实现迅速普及。椭圆曲线数字签名算法(ECDSA)是椭圆 曲线密码体制的重要组成部分,它由签名的产生和签名的认证两部分组成。其中在ECDSA 的仿真计算中,影响计算速度的关键是椭圆曲线中倍点运算。所以,如何设计出适合快速认
证算法,其中的关键是降低模乘。对于Weierstrass椭圆曲线计算倍点,最常用标量乘法为 NAF滑动窗口法,为了减少预计算量,窗口应由NAF的最左边向右移动,直到所在二进制表 示对应的数为奇数才进行操作。另外,由于椭圆曲线群是特殊的Abel群,所以两点相加和 两点相减所需要的计算量相同。对于Weierstrass型椭圆曲线上的点加运算,在射影坐标 下由于计算Y坐标,所以点加的计算量为12M+2S(M表示为乘法,S为平方,I为求逆),倍点 所需要的计算量为7M+3S。在传统的ECDSA算法中,在计算Oq,y》=UlG+u2Q时,首先分别 计算多倍点i^G和u2Q,然后再计算UlG+u2Q的点加运算,最后再进行验证运算,因此,验证签 名所用时间常用是签名产生所用时间的两倍。根据传统ECDSA的缺陷,本发明在改进ECDSA 算法中应尽量避免(Xl, y》=11^+1129的运算,在通信传输和Montgomery型椭圆曲线倍点 运算中作出必要的改进。 1987年,Montgomery引入了 Montgomery型椭圆曲线,与传统的Weierstrass型 ECC曲线相比,它具有下列优点(l)更快的模乘计算速度;(2)不需要预计算,可以在存储 空间有限的条件下实现;(3)可以并行计算,提高计算速度;(4)能够有效的抵抗时间攻击 和能量攻击,因此在ECC密码体系中,加快ECDSA的签名认证速度,同时减少签名与认证之 间的运算差距,具有一定优势。 然而,对于模运算,模乘和模幂运算是两种相对于模加和模减运算计算度比较大的运算,由于在ECDSA中,存在必要的模逆运算,不可避免要牵涉到模幂运算。对于大整数 模幂乘运算M6 mod n,例如,通常的算法是将指数e 二进制化来实现的,即将指数e表示成
二进制形式e = I>'2'ei G {0,1}, i = 0,1,2…k-l,之后再进行一系列迭代运算 1)设e = ek—a—2-" ; 2)置变量c = 1 ; 3) for j = k-1 to 0 st印-l c = c2 mod n if e丄=1 then c = c*m mod n ; 4)c即为所求。

发明内容
鉴于以上所述现有技术存在的问题和不足,本发明的目的在于提供一种运用 Montgomery型椭圆曲线的数字签名认证方法,它在签名和签名认证过程中能减少后续步骤 的运算,避免异步运算,縮短签名运算时间,提高运算速度,能有效抵抗时间攻击和能量攻 击,提高椭圆曲线密码实现效率。 为达到上述目的,解决现有技术存在的问题,本发明所采用的技术方案是上述运 用Montgomery型椭圆曲线的数字签名认证方法,其具体步骤如下
(1)定义椭圆曲线域参数D:
D = (F, a, b, p), 其中,F表示有限域GF(pn), a, b G GF(pn) , P表示一个基点,能(GF(p11)为椭圆曲 线的阶; (2)建立用户A和用户B之间通信链路; (3)用户A采用ECDSA算法对消息M签名发送给用户B ; (4)用户B验证(r,s)用户A发送的消息M的签名是否是有效签名。
上述步骤(1)所述的定义椭圆曲线域参数D :其步骤如下 11、建立素数域,建立ECC计算平台; 12、建立椭圆曲线方程,利用穷举法和数论中二次剩余项充要条件具体求取素数 域中曲线的阶数,即count =能(Fp); 13、在计算出素数域的椭圆曲线的阶后,利用Weil定理、Hasse定理以及数论部分 知识,求取在扩域中的Pn的椭圆曲线的阶数; 上述步骤(3)所述的用户A采用ECDSA算法对消息M签名发送给用户B,其具体步 骤如下 31、在区间[1, n-1]上生成一个随机数k, kA ; 32、计算kG = (x" y》和r = Xl mod p,,其中yi不计算; 33、计算k—1 mod ; 34、计算e = MD5 (m); 35、计算s = k—、e+kAr)mod p,,若s = O,则转步骤31,否则转步骤36 ;
36、用户A对消息m的签字是(r, s),则用户A将(m | | r | | s | | kA)传给用户B ;
上述步骤(4)所述的用户B验证(r, s)用户A发送的消息M的签名是否是有效签 名,其签名认证步骤如下 41、验证(r,s)是否是整数,若是[l,Pln]上的整数,则转步骤2,若不是,则丢弃该
签名,结束验证; 42、计算e = MD5 (m); 43、计算w = s—1 mod p,, u丄=ew mod p,,
u2 = rw mod p,, a = (1^+112*、) mod ;
44、在Montgomery曲线上计算a*G的倍点运算;
45、计算v = mod ; 46、检验v = r是否成立,若v = r成立,则用户B接受该签字,签名有效,接受信 息;否则拒绝接受该签字,拒绝接受信息。 本发明的运用Montgomery型椭圆曲线的数字签名认证方法与已有技术相比较, 具有如下显而易见的突出实质性特点和显著优点该方法能够避免现有技术通常的算法 中直接计算(Xl, y》=11^+1!29,它的验证签名算法的时间远远比产生签名算法的时间长, 用a = (Ul+U2*kA)mod p,代替(Xl, y》=u^+i^Q运算直接参与点乘运算,同时引入模运 算,使得在求欧拉函数时只需进行一次模幂运算, 一次模除运算, 一次模减运算,然后将 快速Montgomery运算和Montgomery曲线特性相结合,能够减少后续步骤的运算(即在 Montgomery型曲线上的快速点乘计算)。实验结果表明,这种方法虽然加大信道的传输容 量,但是避免了 0q,y》二i^G+i^Q异步运算,使验证签名运算时间降低为产生签名运算时 间约为1. 1倍,减少约45%,縮短签名运算时间,提高运算速度,能有效抵抗时间攻击和能 量攻击,其算法提高了椭圆曲线密码实现效率。


图1为本发明的运用Montgomery型椭圆曲线的数字签名认证方法流程图;
图2为本发明中的小数模为3时两种验证签名算法认证与生成签名时间比例对比 图,其中纵坐标为验证签名时间与产生签名时间的比例,横坐标为文件大小,横虚线表示现 有最好的验证签名时间与产生签名时间比例,斜细线表示本发明算法验证签名时间与产生 签名时间比例。
具体实施例方式
下面结合附图对本发明的运用Montgomery型椭圆曲线数字签名认证方法作进一 步详细的说明。 本发明的运用Montgomery型椭圆曲线的数字签名认证方法的签名流程步骤如 下 (1)定义椭圆曲线域参数D:首先,要给出椭圆曲线域参数,定义一条椭圆曲线和 一个基点,进而确定曲线上的各点运算。在ECDSA过程,定义椭圆曲线域参数D为
D = (F, a, b, p), 其中,F表示有限域GF(pn) , a, b G GF(pn) , P表示一个基点,能(GF(p11)为椭圆曲 线的阶,其具体求取是利用Weil定理,步骤如下
11、建立素数域F,建立ECC计算平台; 12、建立椭圆曲线方程,利用穷举法和数论中二次剩余项充要条件具体求取素数 域中曲线的阶,即count =能(Fp); 13、在计算出素数域的椭圆曲线的阶以后,利用Weil定理、Hasse定理以及数 论部分知识,求取在扩域中的pn的椭圆曲线的阶首先根据Weil定理,首先计算A = p+l-能(Fp),同时程序记入此值;随后建立二次方程f-AX+p = 0,同时利用二次方程的 万能求根公式求取此方程Xl和x2,并记入两个根值;最后利用Weil定理求取扩域的阶
+x2"),完成对扩域阶的计算; (2)建立用户A和用户B之间通信链路当两个任意用户A和B需要进行数字签 名时,建立用户A和B之间通信链路,如图1所示; (3)用户A采用ECDSA算法对消息M签名发送给用户B,如图1所示,其数字签名 步骤如下 31、在区间[1, n-1]上生成一个随机数k, kA 32、计算kG = (x" y》和r = Xl mod p,,其中,yi不计算, 33、计算k—1 mod 34、计算e = MD5(m) 35、计算s = k—乂e+kAr)mod p,,若s = O,则转步骤31 ;若s ^ O,则转步骤36 ;
36、用户A对消息m的签字是(r, s),则用户A将(m | r | | s | | kA)传给用户B ;
(4)用户B接收到信息M后,验证(r, s)是用户A发送的消息M的签名是否是有 效签名,如图1所示,步骤如下 41、验证r, s是否是[1, Pln]上的整数,若是[1, Pln]上的整数,则转步骤2,若不
是,则丢弃该签名,结束验证; 42、计算e = MD5 (m); 43、计算w = s—丄mod p,, u丄=ew mod p,, u2 = rw mod p,, a = (1^+112*、) mod ; 44、在Montgomery曲线上计算a*G的倍点运算; 45、计算v二^ mod Pln其运算速度随着的Pln的增长,算法的计算时间不会成几 何倍数成长,而增长趋势比较缓慢,对于Pln具有比较好的免疫性; 46、验证用户A发送的消息M的签名是否是有效签名,检验v = r是否成立,若v =r成立,则用户B接受该签字,签名有效,接受信息,否则拒绝接受该签字,拒绝接受信息。
如图2所示,图2是小数模为3时两种签名算法认证与生成签名时间比例对比图, 实验结果表明,这种方法虽然加大信道的传输容量,但是避免了 (Xl,y》二i^G+i^Q异步运 算使验证签名运算时间降低为产生签名运算时间约为1. 1倍,减少约45%,縮短签名运算 时间。
权利要求
一种运用Montgomery型椭圆曲线的数字签名认证方法,其特征在于该方法具体步骤如下(1)定义椭圆曲线域参数DD=(F,a,b,p),其中,F表示有限域GF(pn),a,b∈GF(pn),P表示一个基点,#E(GF(pn)为椭圆曲线的阶;(2)建立用户A和用户B之间通信链路;(3)用户A采用ECDSA算法对消息M签名发送给用户B;(4)用户B验证(r,s)用户A发送的消息M的签名是否是有效签名。
2. 根据权利要求1所述的运用Montgomery型椭圆曲线的数字签名认证方法,其特征在 于,上述步骤(1)所述的定义椭圆曲线域参数D :其步骤如下·11、 建立素数域,建立ECC计算平台;·12、 建立椭圆曲线方程,利用穷举法和数论中二次剩余项充要条件具体求取素数域中 曲线的阶数,即count =能(Fp);·13、 在计算出素数域的椭圆曲线的阶后,利用Weil定理、Hasse定理以及数论部分知 识,求取在扩域中的Pn的椭圆曲线的阶数。
3. 根据权利要求2所述的运用Montgomery型椭圆曲线的数字签名认证方法,其特征在 于,上述步骤(3)所述的用户A采用ECDSA算法对消息M签名发送给用户B,其具体步骤如 下·31、 在区间[1, n-1]上生成一个随机数k, kA ;·32、 计算kG = (Xl, y》和r = Xlm0dPln其中,yi不计算;·33、 计算k—1 mod ;·34、 计算e = MD5(m);·35、 计算s = k—乂e+kAr)mod p,,若s = 0,则转步骤31,否则转步骤36 ;·36、 用户A对消息m的签字是(r,s),则用户A将(m| |r| |s| KA)传给用户B。
4. 根据权利要求1或2或3是所述的运用Montgomery型椭圆曲线的数字签名认证方 法,其特征在于,上述步骤4所述的用户B验证(r,s)用户A发送的消息M的签名是否是有 效签名,其具体认证步骤如下·41、 验证(r, s)是否是整数,若是[1, Pln]上的整数,则转步骤2,若不是,则丢弃该签 名,结束验证;·42、 计算e = MD5(m);·43、 计算w = s丄modp,, u丄=ewmodp,, u2 = rwmodp丄n, a = (1^+112*、) mod ;·44、 在Montgomery曲线上计算a*G的倍点运算;·45、 计算v = x丄mod ;·46、 检验v = r是否成立,若v = r成立,则用户B接受该签字,签名有效,接受信息;否 则拒绝接受该签字,拒绝接受信息。
全文摘要
本发明公开了一种运用Montgomery型椭圆曲线的数字签名认证方法,其步骤如下1、定义椭圆曲线域参数DD=(F,a,b,p),其中,F表示有限域GF(pn),a,b∈GF(pn),P表示一个基点,#E(GF(pn)为椭圆曲线的阶;2、建立用户A和用户B之间通信链路3、用户A采用ECDSA算法对消息M签名发送给用户B;4、用户B验证(r,s)用户A发送的消息M的签名是否是有效签名,若v=r成立,签名有效,接受信息。该方法能够用a=(u1+u2*kA)modp1n代替(x1,y1)=u1G+u2Q运算直接参与点乘运算,然后将快速Montgomery运算和Montgomery曲线特性相结合,能够减少后续步骤的运算,实验结果表明,这种方法虽然加大信道的传输容量,但是避免了(x1,y1)=u1G+u2Q异步运算,使验证签名运算时间降低为产生签名运算时间约为1.1倍,缩短签名运算时间,提高运算速度,能有效抵抗时间攻击和能量攻击。
文档编号H04L9/32GK101753306SQ20091020053
公开日2010年6月23日 申请日期2009年12月22日 优先权日2009年12月22日
发明者刘礼黎, 时向勇, 朱美丽, 王潮 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1