资源描述
1,1.1,1.1.1,1.1.1,1.1.1.1,-,1,-,第三章 公钥密码技术,第三章,公,公钥,密,密码技,术,术1,公钥密,码,码的概,念,念,公钥密,码,码学的,理,理论基,础,础,公钥密,码,码算法,密钥交,换,换,公钥密,码,码算法,的,的应用,提出公,钥,钥密码,的,的动因,密钥分,配,配问题,。,。使用,对,对称加,密,密算法,的,的通信,双,双方要,进,进行加,密,密通信,时,时,需,要,要通过,秘,秘密的,安,安全信,道,道协商,加,加密密,钥,钥,而,这,这种安,全,全信道,如,如何实,现,现呢?,机,机械阶,段,段,数字签,名,名问题,。,。信息,的,的电子,化,化对密,码,码学提,出,出了新,的,的要求,:,:电子,报,报文和,电,电子文,件,件需要,一,一种与,书,书面材,料,料中使,用,用的签,名,名等效,的,的认证,手,手段。,公钥密,码,码的初,始,始化阶,段,段,加密通,信,信阶段,公钥密,码,码的概,念,念,公钥密,码,码学的,理,理论基,础,础,公钥密,码,码算法,密钥交,换,换,公钥密,码,码算法,的,的应用,第三章,公,公钥,密,密码技,术,术2,计算复,杂,杂度与公钥密,码,码,计算复,杂,杂度,P问题和NP完全问,题,题,密码与,计,计算复,杂,杂度的,关,关系,单向陷,门,门函数,单向陷,门,门函数,的,的数学,问,问题,分解整,数,数问题,。,。,离散对,数,数问题,。,。,RSA问题。,公钥密,码,码的概,念,念,公钥密,码,码学的,理,理论基,础,础,公钥密,码,码算法,密钥交,换,换,公钥密,码,码算法,的,的应用,第三章,公,公钥,密,密码技,术,术3,公开密,钥,钥算法,公钥算,法,法的种,类,类很多,,,,具有,代,代表性,的,的三种,密,密码:,基于离,散,散对数,难,难题(DLP,),)的算法,体,体制,,例,例如Diffie,-,-Hellman密钥交,换,换算法;,基于整,数,数分解,难,难题(IFP,),)的算法,体,体制,,例,例如RSA算法;,基于椭,圆,圆曲线,离,离散对,数,数难题,(,(ECDLP)的算法,体,体制;,RSA算法,麻省理,工,工学院,的,的RonRivest,AdiShamir和LenAdleman于1977年研制,,,,并于1978年首次,发,发表;,RSA是一种,分,分组密,码,码,其,理,理论基,础,础是一,种,种特殊,的,的可逆,模,模幂运,算,算,其,安,安全性,基,基于分,解,解大整,数,数的困,难,难性;,既,既可用,于,于加密,,,,又可,用,用于数,字,字签名,,,,已得,到,到广泛,采,采用;,RSA已被许,多,多标准,化,化组织(如ISO、ITU、IETF和SWIFT等)接纳;RSA,-,-155(512bit,),),RSA,-,-140于1999年分别,被,被分解,;,;,Euler函数,欧拉函,数,数(Eulerstotientfunction),,,,记为(n,),),表示小,于,于n而且与n互素的,正,正整数,个,个数;,对于任,一,一素数p,,(,(p),=,=p-1;,对于两,个,个不同,的,的素数p和q,若n=p,q,,则(n,),)=,(p,q),(,(p),(q),(,(p-1),(,(q-1);,Euler函数举例,设p=3,q,=,=5,那么n=p,q=15;,1)小,于,于15而且与15互素的,正,正整数,是,是:,1,2,4,,,,7,8,11,13,14,因此,(15)8;,2),(,(15,),)=(3-1,),)*(5-1,),)=8,欧拉定,理,理,对于任,何,何互素,的,的整数a和n,,(,(modn),,,,,或者写,作,作a(modn),给定两,个,个素数p和q,以及整,数,数n=p,q,和m,其中0,mn,,,,则modn,modn,RSA算法的,描,描述,对于明,文,文分组M和密文,分,分组C,加密解,密,密形式,分,分别为,:,:,C=Memodn,M=Cdmodn,=,=(Me)dmodn,=,=Medmodn,因此,,公,公钥KU=e,n,私钥KR=d,n,公钥算,法,法必须,满,满足:,1)有,可,可能找,到,到e、d,、,、n的值,,使,使得对,所,所有Mn有Med=Mmodn;,2)对于所,有,有Mn,,,,要计算Me和Cd相对简,单,单;,3)给,定,定e和n时,判,断,断出d是不可,行,行的;,RSA算法的,描,描述,如何找,到,到:?,参考欧,拉,拉定理,可以得,到,到:ed=k,(n,),)+1,也就是,说,说:,RSA算法的,实,实现,实现的,步,步骤如,下,下:Bob为实现,者,者,(1)Bob寻找出,两,两个大,素,素数p和q,(2)Bob计算出n=p,q和(n,),)=(p-1,),)(q,-,-1),(3)Bob选择一,个,个随机,数,数e(0e,(,(n),),),满足(e,(,(n),),)=1,(4)Bob使用辗,转,转相除,法,法计算d=e-1mod,(n,),),(5)Bob在目录,中,中公开n和e作为公,钥,钥,密码分,析,析者攻,击,击RSA体制的,关,关键点,在,在于如,何,何分解n。若分解,成,成功使n=p,q,则可以,算,算出(n,),)(p-1,),)(q,-,-1),,,,然后由,公,公开的e,解出秘,密,密的d,RSA算法举,例,例,设p=7,q,=,=17,n,=,=7*17=119,;,;参数T=n=119,;,;,(n,),)=(7-1,),)(17-1,),)=96;,选择e=5,gcd(5,96)=1;,计算d,d*e,=,=1mod 96;d=77;因为775,3854,96,1,设:明,文,文m=19,加密:,(,(19,),)5mod119=66,解密:,(,(66,),)77mod119=19,RSA算法的,安,安全性,分,分析,密码分,析,析者攻,击,击RSA体制的,关,关键在,于,于分解n,若分解,成,成功使n=p,q,则可以,算,算出(n,),)(p-1,),)(q-1,),),然后由,公,公开的e,解出秘,密,密的d;,若使RSA安全,p与q必为足,够,够大的,素,素数,,使,使分析,者,者没有,办,办法在,多,多项式,时,时间内,将,将n分解出,来,来,建,议,议选择p和q大约是100,位,位的十,进,进制素,数,数,模n的长度,要,要求至,少,少是512比,特,特;,RSA算法的,安,安全性,分,分析,EDI攻击标,准,准使用,的,的RSA算法中,规,规定n的长度,为,为512至1024,比,比特位,之,之间,,但,但必须,是,是128的倍,数,数;,国际数,字,字签名,标,标准ISO,/,/IEC 9796中规定n的长度,位,位512比特,位,位;,为了提,高,高加密,速,速度,,通,通常取e为特定,的,的小整,数,数,如EDI国际标,准,准中规,定,定e2161;ISO/IEC9796中甚至,允,允许取e3,;,;这时加,密,密速度,一,一般比,解,解密速,度,度快10倍以,上,上;,RSA算法的,安,安全性,分,分析,为了抵,抗,抗现有,的,的整数,分,分解算,法,法,对RSA模n的素因,子,子p和q还有如,下,下要求,:,:,(1),|,|p-q,|,|很大,,通,通常p和q的长度,相,相同;,(2)p-1和q-1分别含,有,有大素,因,因子p1和q1;,(3)P1,-,-1和q1-1分别含,有,有大素,因,因子p2和q2;,(4)p+1和q+1分别含,有,有大素,因,因子p3和q3;,椭圆曲,线,线密码,编,编码学ECC,1985年Miller,Koblitz独立提,出,出,y2+axy+by=x3+cx2+dx,+,+e,表示曲,线,线上的,点,点连同,无,无穷远,点,点O的集合,加法:,若,若曲线,三,三点在,一,一条直,线,线上,则,则其和,为,为O;,倍数:,一,一个点,的,的两倍,是,是它的,切,切线与,曲,曲线的,另,另一个,交,交点;,椭圆曲,线,线上的,加,加法规,则,则,加法公,式,式:,O作为加,法,法的单,元,元,O=-O,P,+,+O=P,如果P=(x,y,),),则P+(x,-y)=O,(x,-y)点是P的负点,,,,记为,-,-P,而且(x,-y)也在EP(a,b)中,如果P=(x1,y1),Q,=,=(x2,y2),则P+Q,=,=(x3,y3)为x3=2-x1-x2(mod p,),)y3=(x1-x3)-y1(mod p,),)其中,如果PQ,,,,则,=,=,(,(y2-y1)/(x2-x1)如果P=Q,,,,则,=,=,(,(3x12+a),/,/(2y1),椭圆曲,线,线示例,椭圆曲,线,线上的,加,加法:P+Q,=,=-R椭圆曲,线,线上一,点,点的2,倍,倍:Q+Q,=,=-S,有限域,上,上的椭,圆,圆曲线,有限域,上,上的椭,圆,圆曲线,定,定义如,下,下:,y2x3+ax,+,+b,(,(mod p,),),p是素数,a,b为非负,整,整数,,且,且满足4a3+27b2(mod p,),)0,针对所,有,有的0,=x p,可以求,出,出有效,的,的y,得到曲,线,线上的,点,点,(,(x,y,),),其中x,y,p。曲线记,为,为EP(a,b),EP(a,b)中也包,括,括O点,例如,,令,令P=23,a,=,=b=1,椭圆曲,线,线为y2x3+x+1,,4132712(mod23),=,=80,满足模23椭,圆,圆群的,条,条件,椭圆曲,线,线上的,密,密钥交,换,换,1)双,方,方选择EP(a,b)以及EP(a,b)的一个,元,元素G,使得nG=0的最小n值是一,个,个非常,大,大的素,数,数;,2)A选择私,钥,钥Xn,计算公,钥,钥PA=XG;,3)B选择私,钥,钥Yn,计算公,钥,钥PB=YG;,4)A计算秘,密,密密钥,:,:K=X(PB)=XYG,5)B计算秘,密,密密钥,:,:K=Y(PA)=YXG=XYG,因此,,双,双方获,得,得了一,个,个共享,会,会话密,钥,钥(XYG),椭圆曲,线,线上的,密,密钥交,换,换攻击,双方选,择,择EP(a,b)以及EP(a,b)的一个,元,元素G,使得G的阶n是一个,大,大素数,A选择私,钥,钥Xn,计算公,钥,钥PA=XG,AB:PA,E截获PA,选私钥Z,计算PE=ZG,冒充AB:PE,B选择私,钥,钥Yn,计算公,钥,钥PB=YG,BA:PB,E截获PB,冒充BA:PE,A计算:XPE=XZG,B计算:YPE=Y,ZG,E计算:ZPA=ZXG,Z,PB=ZYG,E无法计,算,算出XY,G,E永远必,须,须实时,截,截获并,冒,冒充转,发,发,否,则,则会被,发,发现.,椭圆曲,线,线加密,/,/解密,1)双,方,方选择,椭,椭圆群EP(a,b)以及EP(a,b)的一个,元,元素G,使得nG=0的最小n值是一,个,个非常,大,大的素,数,数;,2)A选择私,钥,钥Xn,计算公,钥,钥PA=XG;,3)B选择私,钥,钥Yn,计算公,钥,钥PB=YG;,4)A若想加,密,密和发,送,送报文Pm给B,选择随,机,机数k,并产生,一,一对点,组,组成的,密,密文Cm=,kG,Pm+kPB;,5)B解密密,文,文,Pm+kPB-YkG Pm+kYG-YkG=Pm,除了A,无人知,道,道k,因此无,法,法破译,两类加,密,密算法,比,比较,公钥密,码,码的概,念,念,公钥密,码,码学的,理,理论基,础,础,公钥密,码,码算法,密钥交,换,换,公钥密,码,码算法,的,的应用,第三章,公,公钥,密,密码技,术,术4,Diffie,-,-Hellman密钥交,换,换算法,若用户A和用户B希望交,换,换一个,密,密钥,,如,如何进,行,行?,1)全,局,局公开,参,参数:,一,一个素,数,数q和其一,个,个原根a;,2)用,户,户A选择一,个,个随机,数,
展开阅读全文