第04章椭圆曲线密码体制ECC课件_第1页
第04章椭圆曲线密码体制ECC课件_第2页
第04章椭圆曲线密码体制ECC课件_第3页
第04章椭圆曲线密码体制ECC课件_第4页
第04章椭圆曲线密码体制ECC课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

椭圆曲线密码(ECC)体制

一般椭圆曲线

有限域上的椭圆曲线

椭圆曲线密码算法

椭圆曲线密码体制的安全性

ELGamal密码体制能够在任何离散对数难处理的有限群中实现。我们已经使用了乘法群Zp*,但其他群也是合适的候选者,如椭圆曲线群。椭圆曲线在代数学和几何学上已广泛研究了150多年之久,有丰富而深厚的理论积累。椭圆曲线密码体制(EllipseCurveCryptosystem,ECC)在l985年由Koblitz和Miller提出,不过一直没有像RSA等密码系统一样受到重视。纵观目前的发展趋势,椭圆曲线已经逐渐被采用,很可能是一个重要的发展方向。

椭圆曲线并非椭圆,这么命名是因为它们是由三次方程描述的,而这些三次方程类似于计算椭圆周长的方程。一般的,描述椭圆曲线方程的形式是

y2+axy+by=x3+cx2+dx+e

其中a、b、c、d和e是满足一些简单条件的实数一般来说,椭圆曲线还包含了一个特殊的点,即称为无穷远点(PointatInfinity)或零点(ZeroPoint)的O。4.4.1一般椭圆曲线

对于椭圆曲线上的点可以定义一种形式的加法:如果一个椭圆曲线上的三个点处于一条直线上,那么它们的和为O。从这个定义可以导出椭圆曲线上点的加法法则。(1)O是加法的单位元,因而O=-O;对于椭圆曲线上的任何一点P,有P+O=P。(2)一条与x轴垂直的线和曲线相交于两个x坐标相同的点P1=(x,y)和P2=(x,-y),同时它也和曲线相交于无穷远点,因此P1+P2+O=O。因而一个点的负值是与其有着相同x坐标和相反的y坐标的点,如图4.1(a)所示。(3)要对具有不同x坐标的两个点Q与R进行相加,先在它们之间画一条直线并求出第三个交点P1。容易看出这种交点是惟一的。注意到Q+R+P1=O,有Q+R=-P。特别地,当Q=R时,相当于对一个点Q加倍,只需画出一条切线并求出另一个交点S,那么Q+Q=2Q=-S。显然,根据定义,此类加法满足交换率和结合率.而一个点的倍乘定义为nP=P+P+P+……+P椭圆曲线E23(1,1)上的点(0,1)(5,4)(9,7)(17,3)(0,22)(5,19)(11,3)(17,20)(1,7)(6,4)(11,20)(18,3)(1,16)(6,19)(12,19)(18,20)(3,10)(7,12)(12,4)(19,5)(3,13)(7,11)(13,7)(19,18)(4,0)(9,16)(13,16)Ep(a,b)上的加法规则P十O=P;如果P=(x,y),则P+(x,y)=O,点(x,-y)是P的加法逆元,记为-P;如果P=(x1,y1),Q=(x2,y2),并且P≠Q,则P+Q=(x3,y3)由下列规则确定:x3≡λ2–x1–x2(modp)y3≡λ(x1–x3)–y1(modp)其中:(y2-y1)/(x2-x1)如果P≠Qλ=(3x12-a)/2y1如果P=Q例子:考虑P=(3,10),Q=(9,7)则:λ=(7-10)/(9-3)=-3/6=-1/2=11mod23x3=112-3-9=10917mod23y3=11(3-(-6))-10=89=20mod23因而P+Q=(17,20).计算2P:λ=(3(32)+1)/(2*10)=5/20=1/4=6mod23x3=62-3-3=30=7mod23y3=6(3-7)-10=-34=12mod23因此2P=(7,12)

椭圆曲线群中的离散对数也属于难解问题。与通常理解的对数概念不同,由于椭圆曲线群中的运算是加法,加法的倍数对应于原来乘法的指数,因而椭圆曲线群中的离散对数问题是指已知群中的Q和R,求解方程:

R=kQ中k值的问题。

对基于F23的椭圆群y2=x3+9x+17,求R=(4,5)对于Q=(16,5)的离散对数,最直接的方法就是计算Q的倍数,直到找到R。

Q=(16,5),2Q=(20,20),3Q=(14,14),4Q=(19,20),5Q=(13,10),6Q=(7,3),7Q=(8,7),8Q=(12,17),9Q=(4,5)

因此k关于Q的离散对数是9,对于大素数构成的群Fp,这样计算离散对数是不现实的,事实上现在也没有更好的(非指数级的)算法来解离散对数问题。4.4.3椭圆曲线密码算法

基于上面讲的椭圆群上的离散对数问题,可以用椭圆曲线密码(ECC)算法加密,具体方法如下:

首先选择—个点G和一个椭圆群Ep(a,b)作为参数,用户A选择一个私有密钥nA并产生一个公开密钥PA=nAG。发送者要加密并发送一个报义Pm给A,可选择一个随机整数k,并产生由如下点对组成的密文

Cm=(kG,Pm+kPA)。注意这里使用了A的公开密钥PA。要解密这个报文,A用这个点对的第一个点乘以A的私有密钥,再从第二个点中减去这个值

Pm+kPA–nA(kG)=Pm+k(nAG)–nA(kG)=Pm

发送者通过对Pm加上kPA来保护Pm。除了发送者之外没有人知道k的值,因此即便PA是公开密钥也没有人能去掉kPA,当然只有知道nA的人才可以去掉kPA。攻击者在不知道nA的情况下要想得到报文只能在知道G和kG的情况下计算出k,这归结为求解椭圆曲线离散对数问题,是非常困难的。

1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。2、用户A选择一个私有密钥nA,并生成公开密钥PA=nAG。3、用户A将Ep(a,b)和点PA,G传给用户B。4、用户B接到信息后,将待传输的明文编码到Ep(a,b)上一点Pm,并产生一个随机整数k(k<n,n为基点G的阶)。5、用户B计算点C1=Pm+kPA;C2=kG。6、用户B将C1、C2传给用户A。7、用户A接到信息后,计算C1-nAC2,结果就是点Pm。因为Pm+kPA–nA(kG)=Pm+k(nAG)–nA(kG)=Pm再对点Pm进行解码就可以得到明文。利用椭圆曲线进行加密通信的过程:

这个加密通信中,如果有一个偷窥者H,他只能看到Ep(a,b)、PA、G、C1、C2而通过K、G求nA或通过C2、G求k都是相对困难的。因此,H无法得到A、B间传送的明文信息。

注意到以上的过程并没有说明怎样将作为字符串(当然可以看成分段的整数)的消息编码嵌入到椭圆群的点中(将明文嵌入椭圆曲线),实际中的转化方式多种多样,关键的步骤与其正确性证明都涉及到复杂的数学推导,可以参看相关文献。4.4.4椭圆曲线密码体制的安全性

椭圆曲线密码体制的安全性依赖于求解椭圆曲线离散对数问题的困难性,即已知椭圆曲线上的点P和kP计算k的困难程度。下图比较了目前计算椭圆曲线对数和分解大数因子的难度。可以看出,与RSA相比,ECC可以用小得多的密钥取得与RSA相同的安全性。另外,在密钥大小相等时,ECC与RSA所需要的计算量相当。因此,在安全性相当的情况下,使用ECC比使用RSA具有计算上的优势。两者都可以用于加解密、密钥交换和数字签名。椭圆曲线和RSA安全性的比较密钥大小150205234MIPS年3.8*10107.1*10181.6*1028密钥大小5127681024128015362048MIPS年3*1042*1083*10111*10143*10163*1020MIPS:

T=(p,a,b,G,n,h)。(p、a、b用来确定一条椭圆曲线,G为基点,n为点G的阶,h是椭圆曲线上所有点的个数m与n相除的整数部分)这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:

1、p当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;2、p≠n×h;3、pt≠1(modn),1≤t<20;4、4a3+27b2≠0(modp);5、n为素数;6、h≤4。密码学描述一条Fp上的椭圆曲线用到六个参量:椭圆曲线在软件注册保护的应用

将公开密钥算法作为软件注册算法的好处是Cracker很难通过跟踪验证算法得到注册机。

软件作者按如下方法制作注册机(也称为签名过程)1、选择一条椭圆曲线Ep(a,b),和基点G;2、选择私有密钥nA(nA<n,n为G的阶),利用基点G计算公开密钥PA=nAG;3、产生一个随机整数k(k<n),计算点R=kG;4、将用户名和点R的坐标值x,y作为参数,计算SHA(SecureHashAlgorithm安全散列算法,类似于MD5)值,即Hash=SHA(username,x,y);5、计算sn≡k-Hash*nA(modn)6、将sn和Hash作为用户名username的序列号

软件验证过程如下:(软件中存有椭圆曲线Ep(a,b),和基点G,公开密钥PA)

1、从用户输入的序列号中,提取sn以及Hash;2、计算点R≡sn*G+Hash*PA(modp),如果sn、Hash正确,其值等于软件作者签名过程中点R(x,y)的坐标,因为sn≡k-Hash*nA(modn)所以sn*G+Hash*PA

=(k-Hash*nA)*G+Hash*PA

=kG-Hash*nAG+Hash*PA

=kG-Hash*PA+Hash*PA

=kG=R;3、将用户名和点R的坐标值x,y作为参数,计算H=SHA(username,x,y);4、如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论