当前位置: 首页 > 专利查询>陈永川专利>正文

运用椭圆曲线加密算法的数字签名方法技术

技术编号:3534076 阅读:164 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于一种保密或安全通信的数字签名方法,它采用椭圆曲线公钥加密算法为主体部分,辅以哈希函数及对称加密算法,具有缩短签名和认证所用的时间,高度安全性,向前保密性和不可抵赖等特性,可以用于网络通信、电子商务、票据、证件以及信息发送者的身份验证等诸多信息传递领域中的防伪。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种保密或安全通信的数字签名方法,具体地说,是一种。信息传递过程中的保密和安全问题现今尤为各国政府、企事业单位、乃至个人所关注。在一个系统内(一家银行或整个银行系统里),有许多用户(个银行分行),用户之间发送信息或开出支票,汇票等,问题是怎样确保用户发出的信息或开出的支票、汇票不被人破译、修改、伪造,只能被特定的接收方解密或识别,这是一项有革命意义的数学技术,是确保信息安全的核心问题。为此,在国际上公钥密码的研究方兴未艾,并由此产生了许多数字签名方法。美国国家标准局于1994年公布了“数字签名标准”-DSS。该标准采用了模为512-1024位的大素数,运算速度慢。另外,DSS对发送的明文不加密,是一个单纯的签名方法。现今网络通信中发送的明文也需要加密。类似于DSS的签名方法就无法使用。CN1177872A公开了一种用于实现具有消息附录的数字签名方法,采用一散列函数以减少签名长度,保密程度不够理想。CN1197248A公开了一种数字签名方法。该方法中需要采用签名黑匣子硬件,实施起来比较困难。EP0807908A2披露了一种将椭圆曲线应用于签名体制上的方法,但该方法中选用的模数极小,因而只限用于智能卡。本专利技术的目的是提供一种,简称ECSC。它不仅可以缩短签名和认证所用时间,具有很高的安全性,同时还具有向前保密性和不可抵赖特性,而且应用范围广泛。本专利技术的目的是这样实现的,本专利技术是一种运用椭圆曲线加密算法的保密或安全通信的数字签名方法,它是以椭圆曲线公钥加密算法为主体,辅以哈希函数及对称加密算法而构成的一种数字签名方法,其具体操作步骤如下假定发信者A要给收信者B发送信息,A既希望保护自己的发送信息的安全,同时又希望若有其他人冒充自己给B发送信息,B都会给予否认;另一方面,B希望确认自己收到的信息是从A而来,而且如果确实是A发送的信息,则A以后不能否认;另外为了安全性更好,A希望就算自己的私有密钥万一丢失,自己以前发送给B的信息也不会被破译,具体的加密步骤是1.加密系统的设立,记使用射影坐标时,在有限域 上椭圆曲线的Weier-strass方程是Ey2+a1xy+a3y=x3+a2x2+a4x+a6E在有限域 上的解集是 ,其中包括无穷远点0,先找到一个大素数n,我们取n为160位,即2159≤n<2160,或更大位数的素数,设 的秩为 让P是E的秩为n的基点,用户A的私有密钥是a,a的范围是1<a<n,公有密钥是 ,用户B的私有密钥是b,b的范围是1<b<n,公有密钥是 h是一个输出至少160位的哈希函数;ENC是一个对称加密系统;2.A的做法如下(a)首先检查B的公钥,确认B的身份,如果确认无误,执行下一步;(b)随机选择一个整数x,计算 ,然后计算k=h(xk1);]]>(c)计算 和s=ae+x-k(mod n)以及R=xP;(d)利用对称性分组密码进行加密运算C=ENCk(s‖M);(e)将(R,C)传送给B,(s,R)是A在明文M上的签名;3.B进行如下操作(a)首先检查A的公钥,确认A的身份,如果确认无误,执行下一步;(b)计算 和 (c)解密运算(s‖M)=ENCk(C);(d)计算 U=(s+k)P和V=-eQa;(e)检验U+V=R(modP)成立与否来确定是否认可签名,接受信息。本方法中用到的哈希函数可以采用Md5哈希函数,而对称性分组加密算法可以采用下面的算法设h是一个安全哈希函数,输出为160位,密钥k也是160位,让m=m1‖m2‖…‖ms是明文,这里mi是m的分段,每一个mi是160位,如果最后的ms不足160位,则补上适当的0使得它也是160位,其中加密步骤如下1.计算k11=h(k)和k12=h(k‖k11),以及c11=m1+k11(mod 2160)和m=c11k12;2.计算k21=h(k‖k12)和k22=h(k‖k21),以及c21=m2+k21(mod 2160和c2=c21k22;3.第i步计算ki1=h(k‖k(i-1)2)和ki2=h(k‖ki1),以及ci1=mi+ki1(mod 2160)和ci=ci1ki2;4.输出密文c=c1‖c2…‖cs;其中解密步骤如下1.计算k11=h(k)和k12=h(k‖k11),以及c11=c1k12和m1=c11-k11(mod 2160);2.计算k21=h(k‖k12)和k22=h(k‖k21),以及c21=c2k22和m2=c11-k21(mod 2160);3.第i步计算ki1=h(k‖k(i-1)2)和ki2=h(k‖ki1),以及ci1=ciki和mi=ci1-ki1(mod 2160);4.输出明文m=m1‖m2‖…‖ms。本专利技术与现有技术相比,具有的优点是本方法是一种安全性很高的数字签名方法。它的主体部分是椭圆曲线加密算法,这是最近新兴起的公钥密码,它的攻击难度与解决数论中的离散对数问题相比,难度更大,因为它提供了一种构造“元素”和“组合法则”以产生群的方法。这些群有足够好的性质来建立加密算法,但又缺乏便利于密码分析学家进行密码分析的某些性质。在EP0807908A2中显示,对于模n是155位的椭圆曲线加密算法产生的安全性相当于DSS的模p是512位时产生的安全性。椭圆曲线加密算法的数字签名方法是乘法运算,采用离散对数的数字签名方法是指数运算,而一般的数字签名方法都采用离散对数算法,如美国国家标准局公布的“数字签名标准”DSS。众所周知,在计算机的运算中,指数运算比乘法运算慢,而椭圆曲线的算法恰好把大素数的指数运算转化为基点的数乘运算,而且模n又比DSS的模p的位数小的多,这就大大加快了加密和解密速度,节约了时间。还有就是椭圆曲线算法可以更容易找到合适的密钥,使得保密性更强。所谓完全向前保密性,就是说当签名者不慎泄露了他的私有密钥时,攻击者也不能得到签名者过去传送的信息。我们提出的ECSC里把私有密钥a加入方程而保证了完全向前保密性。如果发信者A不慎泄露了他的密钥a,那么除了收信者B之外没有人能知道过去的明文,因为不能从加入私有密钥k的签名方程里解出x。所谓不可抵赖特性是指发信者A不能否认所送出的收信方B收到的信息。如果B泄露了加密密钥k,则整个签名方法等价于Schnorr方案,而此方案是具有不可抵赖特性的,所以ECSC也具有不可抵赖特性。由于本专利技术方法选用的模数范围大,只要大于160位即可,因而可以用于网络通信、电子商务(网上交易)、票据、证件以及信息发送者的身份验证等诸多信息传递领域中的防伪。实施例1当本方法用于网络通信时,假定发信者A想发送给收信者B一个保密的信息,并且要让B确认是A发送的。这时想发送的信息就是明文M,本方法中,发信者A和收信者B共同选择一条椭圆曲线,这里我们给出一条椭圆曲线如下Ey2=x3+ax+b mod p其中a=77494639571290531462578212865140825277116269095458281742933794523316333051796=AB5469616E6D65694475616E64596F6E67636875616E4368656E7FFFFFFFFF94b=493363679779632本文档来自技高网...

【技术保护点】
一种运用椭圆曲线加密算法的保密或安全通信的数字签名方法,其特征在于:它是以椭圆曲线公钥加密算法为主体,辅以哈希函数及对称加密算法而构成的一种数字签名方法,其具体操作步骤如下:假定发信者A要给收信者B发送信息,A既希望保护自己的发送信息的 安全,同时又希望若有其他人冒充自己给B发送信息,B都会给予否认;另一方面,B希望确认自己收到的信息是从A而来,而且如果确实是A发送的信息,则A以后不能否认;另外为了安全性更好,A希望就算自己的私有密钥万一丢失,自己以前发送给B的信息也不会被破译,具体的加密步骤是:(a)加密系统的设立,记使用射影坐标时,在有限域F↓[p↑[m]]上椭圆曲线的Weierstrass方程是E:y↑[2]+a↓[1]xy+a↓[3]y=x↑[3]+a↓[2]x↑[2]+a↓[4]x+a↓[6 ]E在有限域F↓[p↑[m]]上的解集是E(F↓[p↑[m]]),其中包括无穷远点0,先找到一个大素数n,我们取n为160位,即2↑[159]≤n<2↑[160],或更大位数的素数,设E(F↓[p↑[m]])的秩为#E(F↓[p↑[m] ])=nt,让P是E的秩为n的基点,用户A的私有密钥是a,a的范围是1<a<n,公有密钥是Q↓[a]=aP=(xQ↓[a],yQ↓[a]),用户B的私有密钥是b,b的范围是1<b<n,公有密钥是Q↓[b]=bP=(xQ↓[a],yQ↓[b]);h是一个输出至少160位的哈希函数;ENC是一个对称加密系统;(b)A的做法如下:i.首先检查B的公钥,确认B的身份,如果确认无误,执行下一步;ii.随机选择一个整数x,计算k↓[1]=xQ↓[b]=xbP=(x↓[k↓[1 ]],y↓[k↓[1]]),然后计算k=h(x↓[k↓[1]]);iii.计算e=h(xQ↓[a]‖xQ↓[b]‖M)和s=ae+x-k(mod n)以及R=xP;iv.利用对称性分组密码进行加密运算C=ENC↓[k](s‖M); v.将(R,C)传送给B,(s,R)是A在明文M上的签名;(c)B进行如下操作:i.首先检查A的公钥,确认A的身份,如果确认无误,执行下一步;ii.计算k↓[1]=bR=bxP=(x↓[k↓[1]],y↓[k↓[1]])和k= h(x↓[k↓[1]]);iii.解密运算(s‖M)=ENC↓[k](C);iv.计算e=h(xQ↓[a]‖xQ↓[b]‖M)...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈永川
申请(专利权)人:陈永川
类型:发明
国别省市:12[中国|天津]

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

1