一种提高椭圆曲线密码体制上数字签名验证速度的方法

文档序号:3009866阅读:147来源:国知局
专利名称:一种提高椭圆曲线密码体制上数字签名验证速度的方法
技术领域
本发明涉及的是一种信息安全技术,特别涉及的是一种提高椭圓曲线密码体 制上数字签名验证速度的方法。
背景技术
随着Internet的迅猛发展,网络安全问题显得越来越重要,相关网络安全协 议应运而生,而这些协议又是以高效安全的加密算法为前提的。加密算法分为对称加密算法和非对称加密算法。在网络上进行数据传输时, 通常使用对称加密算法加密所要传输的数据,而用非对称加密算法加密密钥。就非对称加密算法来说,目前RSA应用最为普及,-f旦ECC和RSA相比有许 多优点,诸如安全性高、密钥量小、灵活性好等等,自1997年以来,ECC的研 究和应用工作已受到普遍关注。数字签名验证算法可以保证数据传输的数据完整性(data integrity)和不可抵赖 性(non repudiation),目前国际标准的基于ECC的签名验证算法是ECDSA(Elliptic Curve Digital Signature Algorithm),其是第一个被ANSI、 IEEE、 NIST、 ISO等标 准化组织接受的算法,现将此算法描述如下假设椭圆曲线密码系统的公开曲线参数为(q, a, b, G, n, h},用户A选取 一个小于n的随机数d作为用户自己的私钥,将私钥d和基点G求点积运算得到 用户A的公钥。贝'J ECDSA方法步骤如下用户A对消息m的签名步骤为(1) 选择随机数ke[l, n-l];(2) 计算kG二(xl,yl)及r二xl modn;(3) 计算e二SHA-l(m); .(4) 计算s = k-1 {e + dr} mod n;(5) A对消息m的签名即为(r,s )。 B接受到A的签名,验证的步骤为(1) 验证r印,n-l];(2) 计算e = SHA-l(m);(3) 计算w = s-1 mod n;(4) 计算ul = ew mod n和u2 = rw mod n;(5) 计算ulG + u2Q = (xl, yl);(6) 计算v = xl mod n;(7) 若v二r,接受该签名;否则不接受。在椭圓曲线密码体制中,关键运算为点积运算,其他运算时间都可忽略不计, 签名在第(2)步做了 一次点积运算,而验证在第(5)步要做两次点积运算,因此验证 所需要的时间是签名所需时间的两倍,因而造成了相对时间效率不高的缺陷;一些学者注意到了这一点,PCT专利W02006076800A1名称为《Accelerated Verification Of Digital Signature And Public Keys》也阐述了 一种提高速度的方案, 见该专利第4页第12行一第6页第15行,该专利的的主要创新点如下为了验证R=uG+vQ,他找到较小的w和z使得v=w/z mod n,其中w和z均 不大于n1/2,因而需要验证的等式R=uG+vQ就变成了 -zR十(zu mod n)G+wQ=0因为z和w较小,从而计算zR和wQ耗费的时间就少 一些,(zu mod n)G也 可以通过预计算的映射表来加快运算速度,但事实上其并非对算法本身进行的改 进,由于验证的两次点积运算仍然存在,其对速度的提高并不明显。鉴于上述问题,本发明创作者经过长时间的研究和试验终于获得一种提高椭 圆曲线密码体制上数字签名验证速度的方法。发明内容本发明的目的在于,提供一种提高椭圓曲线密码体制上数字签名验证速度的 方法,用以克服上述缺陷。为实现上述目的,本发明采用的技术方案在于,提供一种提高椭圆曲线密码 体制上数字签名验证速度的方法,其是以国际标准的ECDSA方法为基础的,利 用对椭圆曲线密码体制上数字签名验证步骤中签名方程的变形,将原验证步骤中 的两次点积运算变为 一次点积运算,从而使验证速度比所述的国际标准的ECDSA 方法提高一倍;较佳的,所述椭圆曲线密码体制上数字签名验证步骤如下 步骤a:对消息的签名步骤,其包括步骤al:选择临时密钥对(k, R),其中k印,n-l], R=kG=(Xl, y!);步骤a2:令r = Xlmodn,如杲r = 0执行上述步骤al;步骤a3:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤a4:计算s=f( e, r) ( k + Id) opt g( e, r),其中opt为+ 、-、异 或等操作符,如果s-O执行上述步骤al;步骤a5:输出消息的数字签名(r, s); 步骤b:对签名的验证步骤,其包括步骤bl:验证r, s是否e[l,n-l];如果不属于执行下述步骤b7,如 果属于则执行b2;步骤b2:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤b3:由s及f(e, r )和g(e, r)求逆运算,计算得到w = (k +1 d) mod n;步骤b4:计算wG-lQ=(kG + ldG)-ldG=R=(xl, yl);步骤b5:令v二Xiinodn;步骤b6:判断v是否等于r,如果等于则验证成功,执行下述步骤b8, 否则执行下述步骤b7;步骤b7:签名验证失败; 步骤b8:此次签名验证结束。 较佳的,所述椭圆曲线密码体制上数字签名验证步骤如下 步骤a:对消息的签名步骤,其包括步骤al:选择临时密钥对(k, R),其中k印,n-l], R=kG=(x" yi); 步骤a2:令r = Xlmodn,如果r = 0执行上述步骤al; 步骤a3:计算待签消息的哈希值H= Hash(M),将H转换成整数e; 步骤a4:计算s二f(e, r) ( k- Id) opt g( e, r),其中opt为+ 、-、异或等操作符, 如果s = 0执行上述步骤al;步骤a5:输出消息的数字签名(r, s); 步骤b:对签名的验证步骤,其包括步骤bl:验证r, s是否e[l,n-l];如果不属于执行下述步骤b7,如 果属于则执行b2;步骤b2:计算待签消息的哈希值H= Hash(M),将H转换成整数e; 步骤b3:由s及f(e, r )和g(e, r)求逆运算,计算得到w = (k - Id) mod n; 步骤b4:计算wG+lQ=(kG —WG) + ldG=R=(xl, yl); 步骤b5: 令v二Ximodn;步骤b6:判断v是否等于r,如果等于则验证成功,执行下述步骤b8, 否则执行下述步骤b7。步骤b7:签名验证失败; 步骤b8:此次签名验证结束。其中,域参数T= (q, a, b, G, n, h) , a, bG有限域GF(q),椭圆曲线 y2=X3+ax+b是有限域GF(q)上的曲线E(Fq), G为基点,n是基点的阶,n的长度 至少160比特,h为协因子;设kEGF(q), P是曲线E(Fq)上的一点,kP为点积运 算;d为私钥,Q为公钥,Q=dG; f(e, r)、 g( e, r)为有限域GF(q)上任意函数, f(e, r)^0。较佳的,所述的1Q的时间复杂度相比于kG的时间复杂度能够忽略不计; 较佳的,所述的1=1;另外,本方法既适用于大素数域的椭圆曲线密码体制,也适用于二元域的椭 圆曲线密码体制,所述的二元域的椭圓曲线密码体制包括多项式基的二元域椭圆 曲线密码体制和正规基的二元域椭圆曲线密码体制。与现有技术相比本发明的优点在于,首先其是针对ECDSA算法本身的改进; 其次本发明比ECDSA节省50%的时间,比上述PCT专利的40%还要快;最后本 发明不用预计算,而上述PCT专利需要预计算。


图1为本发明提高椭圓曲线密码体制上数字签名验证速度的方法较佳实施例 一的流程图;图2为本发明提高椭圆曲线密码体制上数字签名验证速度的方法较佳实施例 二的流程图。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。本发明从国际标准ECDSA方法出发,通过对签名方程的有效变形,在新方 法的验证步骤中得到(k + Id) mod n或(k-ld) mod n,使得在验证步骤中减少了 一次 关键的点积运算,从而新方法的验证步骤比国际标准提高了一倍,现举出实施例 将新的椭圆曲线密码体制上数字签名验证方法描述如下请参阅图l所示,其为本发明提高椭圓曲线密码体制上数字签名验证速度的 方法较佳实施例一的流程图;其包括的步骤为 步骤a:对消息的签名步骤,其包括步骤al:选择临时密钥对(k, R),其中kE[l, n-l], RHcG^x^ yj;步骤a2:令r = Xlmodn,如果r = 0执行上述步骤al;步骤a3:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤a4:计算s二f(e, r) ( k + Id) opt g( e, r),其中opt为+ 、-、异 或等操作符,如果s-0执行上述步骤al;步骤a5:输出消息的数字签名(r, s); 步骤b:对签名的验证步骤,其包括步骤M:验证r, s是否e[l, n-l];如果不属于执行下述步骤b7,如 果属于则执行b2;步骤b2:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤b3:由s及f(e, r )和g(e, r)求逆运算,计算得到w = (k +1 d) mod n;步骤b4:计算wG-lQ=(kG + ldG)-ldG=R=(xl, yl);步骤b5: 令v = xt mod n;步骤b6:判断v是否等于r,如果等于则验证成功,执行下述步骤b8, 否则执行下述步骤b7;步骤b7:签名验证失败;步骤b8:此次签名验证结束。 请参阅图2所示,其为本发明提高椭圓曲线密码体制上数字签名验证速度的 方法较佳实施例二的流程图;其包括的步骤为 步骤a:对消息的签名步骤,其包括步骤al:选择临时密钥对(k, R),其中ke[l, n-l], R^kGKx,, y,);步骤a2:令r = Xlmodn,如果r = 0执行上述步骤al;步骤a3:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤a4:计算s二f(e, r) ( k - Id) opt g( e, r),其中opt为+ 、-、异或等操作符, 如果s = 0执行上述步骤al;步骤a5:输出消息的数字签名(r, s); 步骤b:对签名的验证步骤,其包括步骤bl:验证r, s是否e[l,n-l];如果不属于执行下述步骤b7,如 果属于则执行b2;步骤b2:计算待签消息的哈希值H= Hash(M),将H转换成整数e; 步骤b3:由s及f(e, r )和g(e, r)求逆运算,计算得到w = (k _ Id) mod n; 步骤b4:计算wG+lQ=(kG-ldG) + ldG=R=(xl, yl); 步骤b5: 令v = Xi mod n;步骤b6:判断v是否等于r,如果等于则验证成功,执行下述步骤b8, 否则执行下述步骤b7。步骤b7:签名验证失败; 步骤b8:此次签名^^证结束。其中,域参数T= (q, a, b, G, n, h) , a, bE有限域GF(q),椭圓曲线 y2=X3+ax+b是有限域GF(q)上的曲线E(Fq), G为基点,n是基点的阶,n的长度 至少160比特,h为协因子;设kEGF(q), P是曲线E(Fq)上的一点,kP为点积运 算;d为私钥,Q为公钥,Q=dG; f( e, r)、 g( e, r)为有限域GF(q)上任意函数, f(e, r)承0;并且本方法既适用于大素数域的椭圆曲线密码体制,也适用于二元域 的椭圆曲线密码体制,所述的二元域的椭圓曲线密码体制包括多项式基的二元域 椭圆曲线密码体制和正规基的二元域椭圆曲线密码体制其中我们采用的哈希算法为SHA1算法也可以采用其它的安全性高强的哈希 算法;并且要求l为比较小的一个数,1Q的时间复杂度相比于kG的时间复杂度 能够忽略不计;其中l为l是一种最佳方案根据国家密码管理局于2006年颁布的无线局域网采用的曲线参数。本标准的 密钥长度选定为192比特,采用域F(q)上椭圓曲线,其参数为W, a, b, G, n, h},以16进制表示如下q: BDB6F4FE3E8B1D9E0DA8C0D46F4C318CEFE4AFE3B6B8551F a: BB8E5E8FBC115E139FE6A814FE48AAA6F0ADA1AA5DF91985 b: 1854BEBDC31B21B7AEFC80AB0ECD10D5B1B3308E6DBF11C1xG: 4AD5F7048DE709AD51236DE65E4D4B482C836DC6E4106640 yG: 02BB3A02D4AAADACAE24817A4CA3A1B014B5270432DB27D2 n: BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677 其中Xg和ycj分别为基点G的横坐标和纵坐标。签名方选取一个小于n的随机数d作为其私钥;将签名方私钥d和基点G求 点积运算得到签名方的公钥,对于私钥要保密,公钥则公开。利用自己的私钥,签名方按照上述方法的签名步骤对消息提出报文签名;收 到签名方发送来的签名后,利用签名方的公钥,验证方按照上述方法的验证步骤 进行验证运算,以确定该签名是否为签名方的签名。对于签名验证算法必须满足三个条件接收者能够核实发送者对报文的签名; 发送者事后不能抵赖对报文的签名;接收者不能伪造对报文的签名。在新的椭圆 曲线签名验证算法中,同样也是发送者用自己的私钥签名,接受者用发送者的公 钥验证,其关键创新点就是k和d只有发送者知道,只让接受方通过某些计算得 到(k±ld) modn,却无从推导出k和d,本发明验证算法中巧妙地减少了 一次关 键的点积运算。而且显而易见,本发明公开的两组椭圆曲线签名验证算法是满足 签名算法所必须的三个条件。以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限 制性的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其 进行许多改变,修改,甚至等效,但都将落入本发明的保护范围内。
权利要求
1、一种提高椭圆曲线密码体制上数字签名验证速度的方法,其是以国际标准的ECDSA方法为基础的,其特征在于,利用对椭圆曲线密码体制上数字签名验证步骤中签名验证方程的变形,将原验证步骤中的两次点积运算变为一次点积运算,从而使验证速度比所述的国际标准的ECDSA方法提高一倍。
2、 根据权利要求1所述的提高椭圆曲线密码体制上数字签名验证速度的方 法,其特征在于,所述椭圓曲线密码体制上数字签名验证步骤如下步骤a:对消息的签名步骤,其包括步骤al:选择临时密钥对(k, R),其中ke[l, n-l], R=kG=(x" yi);步骤a2:令r = Xlmodn,如果r = 0执行上述步骤al;步骤a3:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤a4:计算s二f(e, r) ( k + Id) opt g( e, r),其中opt为+ 、-、异 或等操作符,如果s-0执行上述步骤al;步骤a5:输出消息的数字签名(r, s); 步骤b:对签名的验证步骤,其包括步骤M:验证r, s是否E[l,n-l];如果不属于执行下述步骤b7,如 果属于则执行b2;步骤b2:计算待签消息的哈希值H= Hash(M),将H转换成整数e;步骤b3:由s及f(e, r )和g(e, r)求逆运算,计算得到w = (k +1 d) mod n;步骤b4:计算wG-lQ=(kG + ldG)-ldG=R=(xl, yl);步骤b5:令v二Ximodn;步骤b6:判断v是否等于r,如果等于则验证成功,执行下述步骤b8, 否则执行下述步骤b7;步骤b7:签名验证失败;步骤b8:此次签名验证结束。 其中,域参数T= (q, a, b, G, n, h) , a, bE有限域GF(q),椭圆曲线 y2=X3+ax+b是有限域GF(q)上的曲线E(Fq), G为基点,n是基点的阶,n的长度 至少160比特,h为协因子;设kEGF(q), P是曲线E(Fq)上的一点,kP为点积 运算;d为私钥,Q为公钥,Q=dG; f( e, r)、 g( e, r)为有限域GF(q)上任意函数, f(e, r"0。
3、 根据权利要求1所述的提高椭圆曲线密码体制上数字签名验证速度的方 法,其特征在于,所述椭圓曲线密码体制上数字签名验证步骤如下步骤a:对消息的签名步骤,其包括步骤al:选择临时密钥对(k, R),其中ke[l, n-l], R=kG=(xP y!); 步骤a2:令r = Xlmodn,如果r = (H丸行上述步骤al; 步骤a3:计算待签消息的哈希值H= Hash(M),将H转换成整数e; 步骤a4:计算s二f(e, r) ( k - Id) opt g( e, r),其中opt为+ 、-、异或等操作符, 如果s = O执行上述步骤al;步骤a5:输出消息的数字签名(r, s); 步骤b:对签名的验证步骤,其包括步骤bl:验证r, s是否e[l,n-l];如果不属于执行下述步骤b7,如 果属于则执行b2;步骤b2:计算待签消息的哈希值H=Hash(M),将H转换成整数e; 步骤b3:由s及f(e, r )和g(e, r)求逆运算,计算得到w = (k - Id) mod n; 步骤b4:计算wG+lQ=(kG-ldG) + ldG=R=(xl, yl); 步骤b5:令v二x!modn;步骤b6:判断v是否等于r,如果等于则验证成功,执行下述步骤b8, 否则执行下述步骤b7。步骤b7:签名验证失败; 步骤b8:此次签名验证结束。其中,域参数T= (q, a, b, G, n, h) , a, bE有限域GF(q),椭圓曲线 y2=X3+ax+b是有限域GF(q)上的曲线E(Fq) , G为基点,n是基点的阶,n的长度 至少160比特,h为协因子;设kEGF(q), P是曲线E(Fq)上的一点,kP为点积运 算;d为私钥,Q为公钥,Q=dG; f(e, r)、 g(e, r)为有限域GF(q)上任意函数, f(e, r"0。
4、 根据权利要求2或3所述的提高椭圆曲线密码体制上数字签名验证速度的 方法,其特征在于,所述的1Q的时间复杂度相比于kG的时间复杂度能够忽略不 计。
5、 根据权利要求2或3所述的提高椭圓曲线密码体制上数字签名验证速度的 方法,其特征在于,所述的1=1。
6、根据权利要求1所述的提高椭圓曲线密码体制上数字签名验证速度的方 法,其特征在于,本方法既适用于大素数域的椭圓曲线密码体制,也适用于二元 域的椭圓曲线密码体制,所述的二元域的椭圓曲线密码体制包括多项式基的二元 域椭圓曲线密码体制和正规基的二元域椭圓曲线密码体制。
全文摘要
本发明为一种提高椭圆曲线密码体制上数字签名验证速度的方法,其是以国际标准的ECDSA方法为基础的,利用对椭圆曲线密码体制上数字签名验证步骤中签名方程的变形,将原验证步骤中的两次点积运算变为一次点积运算,从而使验证速度比所述的国际标准的ECDSA方法提高一倍。
文档编号H04L9/32GK101330385SQ20071011906
公开日2008年12月24日 申请日期2007年6月19日 优先权日2007年6月19日
发明者张庆胜 申请人:航天信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1