密码学6-非对称密码体制优秀PPT.ppt
《密码学6-非对称密码体制优秀PPT.ppt》由会员分享,可在线阅读,更多相关《密码学6-非对称密码体制优秀PPT.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 非对称密码体制非对称密码体制信息平安技术信息平安技术 6.1 概述概述6.1.1 对称密码体制的缺陷对称密码体制的缺陷密钥的平安传递比较困难密钥的平安传递比较困难n个用户多点通信所需密钥数为个用户多点通信所需密钥数为n(n-1)/2个个难以供应对主动攻击的抗击难以供应对主动攻击的抗击6.1.2 公钥(非对称)密码体制的基本思想公钥(非对称)密码体制的基本思想 Whitfield Diffie和和Martin Hellman在在1976年首先提出:用公开的密钥(公钥)年首先提出:用公开的密钥(公钥)加密,用与之对应的不公开的密钥(私钥)加密,用与之对应的不公开的密钥(私钥)解密。解
2、密。公钥密码体制提出的标记性文献公钥密码体制提出的标记性文献密码学的新方向:密码学的新方向:W.Diffie and M.E.Hellman,New Directions in Cryptography,IEEE Transaction on Information Theory,V.IT-22.No.6,Nov 1976,PP.644-654例:程嘉要传送密信给雷蕾,用雷蕾的公钥对明文例:程嘉要传送密信给雷蕾,用雷蕾的公钥对明文进行加密,然后通过公共信道将密文传送给雷蕾,进行加密,然后通过公共信道将密文传送给雷蕾,雷蕾用的与自己的公钥对应的私钥(只有雷蕾自雷蕾用的与自己的公钥对应的私钥(只有
3、雷蕾自己知道)解密得到明文。康威企图知道密信内容,己知道)解密得到明文。康威企图知道密信内容,截获到密文,虽然他也知道加密所用的公钥,但截获到密文,虽然他也知道加密所用的公钥,但他无法通过公钥倒推出相应的私钥,当然就不行他无法通过公钥倒推出相应的私钥,当然就不行能解密出明文。能解密出明文。6.1.2 对公钥密码体制的要求对公钥密码体制的要求(1)参与方)参与方B简洁通过计算产生一对密钥(公开简洁通过计算产生一对密钥(公开密钥密钥KUb和私有密钥和私有密钥KRb)。)。(2)在知道公钥和待加密报文)在知道公钥和待加密报文M的状况下,对于的状况下,对于发送方发送方A,很简洁通过计算产生对应的密文:
4、,很简洁通过计算产生对应的密文:C=EKUb(M)(3)接收方)接收方B运用私钥简洁通过计算解密所收到运用私钥简洁通过计算解密所收到的密文的密文C以便复原原来的明文:以便复原原来的明文:M=DKRb(C)=DKRb(EKUb(M)(4)攻击者即使知道公钥)攻击者即使知道公钥KUb,要确定其对应的,要确定其对应的私钥私钥KRb在计算上是不行行的。在计算上是不行行的。(5)攻击者即使知道公钥)攻击者即使知道公钥KUb和密文和密文C,要想复,要想复原原来的明文原原来的明文M在计算上也是不行行的。在计算上也是不行行的。(6)加密和解密函数可以以两个次序中的任何一)加密和解密函数可以以两个次序中的任何一
5、个来运用个来运用:M=DKRb(EKUb(M)(机密性)(机密性)或或M=EKUb(DKRb(M)(数字签名)(数字签名)6.1.3 单向陷门函数单向陷门函数公钥密码体制必需设计一个满足下列条件的函数公钥密码体制必需设计一个满足下列条件的函数f:正向易算性正向易算性由消息由消息x和密钥和密钥pk 简洁计算简洁计算y=fpk(x)反向不行算性反向不行算性在不知道密钥在不知道密钥sk的状况下,由随的状况下,由随意的意的y倒过来计算倒过来计算x=f-1sk(y)都是不行行的都是不行行的陷门依靠性陷门依靠性假如给定另一密钥假如给定另一密钥sk,则,则f-1(y)是可是可以计算的,以计算的,sk 与与p
6、k配对,相当于陷门。配对,相当于陷门。满足满足1、2的函数称为单向函数的函数称为单向函数 满足满足1、2、3的函数被称为带陷门的单向函数的函数被称为带陷门的单向函数 6.1.4 公钥密码体制的特点公钥密码体制的特点无需密钥的平安传递无需密钥的平安传递n个用户仅需个用户仅需n个个“公钥公钥-私钥私钥”对对支持对主动攻击的抗击支持对主动攻击的抗击平安性基于带陷门的单向函数平安性基于带陷门的单向函数加密、解密速度比加密、解密速度比DES、AES等分组密码体等分组密码体制慢制慢可用于对称密钥的交换可用于对称密钥的交换6.2 数论背景数论背景欧拉函数与欧拉定理欧拉函数与欧拉定理欧拉数欧拉数设正整数设正整
7、数n,则欧拉数,则欧拉数(n)定义为小于定义为小于n且与且与n互互素的正整数的个数(特殊地,素的正整数的个数(特殊地,(1)=1)。)。例如:例如:(6)=2(小于小于6且与且与6互素的是互素的是1和和5);(7)=6(1,2,3,4,5,6);(11)=10(110)素数的欧拉数素数的欧拉数对于素数对于素数p,其欧拉数,其欧拉数(p)=p-1(1p-1)欧拉数的初等性质欧拉数的初等性质 当当p、q都是素数时,都是素数时,(pq)=(p)(q)=(p-1)(q-1)例:例:(15)=(3)(5)=2*4=8(1,2,4,7,8,11,13,14)4.当当e与与m互素,则存在正整数互素,则存在正
8、整数d,使得使得 ed=1 (mod m)称称d是是e关于模关于模m的乘法逆元(简称的乘法逆元(简称“模模乘逆元乘逆元”或或“模逆元模逆元”),记作),记作e-1 例如:设例如:设m=13,则则5*8=40=3*13+1=1(mod 13)故故 5-1=85.欧拉定理欧拉定理 假设假设m、n互素,则互素,则m(n)=1 (mod n)例如:设例如:设m=13,n=7,则则136=4826809=689544*7+1=1(mod 7)6.费马小定理费马小定理欧拉定理的推论欧拉定理的推论 设设p与与m互素,且互素,且p是素数,则是素数,则 m p-1=1 (mod p)(因为(因为(p)=p-1)
9、7.基础定理基础定理RSA的理论基础的理论基础 设设n是两个不同的素数是两个不同的素数p、q之积,之积,x是小于是小于n的非负整数,的非负整数,k是非负整数,是非负整数,则有:则有:x k(n)+1=x (mod n)证明:若证明:若x不是素数不是素数p的倍数,则的倍数,则p与与x互素,由费马小互素,由费马小定理可得:定理可得:x p-1=1 (mod p),于是由前述各式可得:,于是由前述各式可得:x k(n)=x k(pq)=x k(p)(q)=x k(p-1)(q-1)=(xp-1)k(q-1)=1(mod p),故,故x k(n)+1=x (mod p)若若x是是p的倍数,则的倍数,则
10、 x=0 (mod p),于是也有:,于是也有:x k(n)+1=0=x (mod p)故存在非负整数故存在非负整数i,使得,使得x k(n)+1=ip+x (mod p),同理存在非负整数同理存在非负整数j,使得,使得x k(n)+1=jq+x (mod q),从而可得从而可得ip=jq又由于又由于p、q互素,故互素,故q i,设整商为,设整商为t,即,即i=tq,于是:,于是:x k(n)+1=ip+x=tqp+x=tn+x=x(mod n)即最终证得:即最终证得:x k(n)+1=x (mod n)6.3 RSA算法算法6.3.1 概述概述独创人独创人RSA(Ron Rivest,Adi
11、Shamir 和和 Leonard Adleman)1977年在麻省理工学院开发年在麻省理工学院开发1978年发表年发表是最典型的公钥密码体制是最典型的公钥密码体制算法基于单向陷门函数的原理算法基于单向陷门函数的原理以模幂运算为基本运算以模幂运算为基本运算平安性基于大数因子分解的困难性(将一个充平安性基于大数因子分解的困难性(将一个充分大的正整数分解成两个素数之积几乎是不分大的正整数分解成两个素数之积几乎是不行能的)行能的)数学基础是著名的欧拉数学基础是著名的欧拉(Euler)数论数论6.3.2 RSA密码体制的创建密码体制的创建1)选择两个充分大的不同的素数选择两个充分大的不同的素数p和和q
12、2)计算积计算积n=pq及其欧拉数及其欧拉数(n)=(p-1)(q-1)3)选择一个介于选择一个介于1到到(n)之间且与之间且与(n)互素的正整互素的正整数数e 即即1e(n)且且GCD(e,(n)=14)求出求出d=e-1 (mod(n)即即e d=1 (mod(n)5)对明文空间对明文空间0n-1中的数中的数x,例:例:P115【例例6-2】以以为公钥加密:为公钥加密:y=E(x)=xe (mod n)以以 为私钥解密:为私钥解密:x=D(y)=yd (mod n)解密还原性的证明:解密还原性的证明:由于由于ed=1(mod(n),故存在非负整数故存在非负整数k,使得:使得:ed=k(n)
13、+1,于是由基础定理可得:于是由基础定理可得:D(E(x)=(xe)d=xed=x k(n)+1=x (mod n)注注1:p,q从理论上讲也是私钥的组成部从理论上讲也是私钥的组成部分,但因在解密过程中不用,故在确定分,但因在解密过程中不用,故在确定e,d之后应予以销毁之后应予以销毁注注2:加密前明文加密前明文M需表示为若干需表示为若干0n-1的代码的代码Mi实例:对英文字母从实例:对英文字母从126编码,空格为编码,空格为0,对明文,对明文双字母编码,如双字母编码,如“its all greek to me”编码为:编码为:0920、1900、0112、1200、0718、0505、1100
14、、2015、0013、0500设设p=47、q=59,则则n=2773,(2773)=46*58=2668因因17*157=2669=1 (mod 2668),故取公钥为故取公钥为,私钥为,私钥为对明文组对明文组M=0920加密,加密,C=92017=0948(mod 2773),190017=2342(mod 2773),其余各组的密文为:,其余各组的密文为:1084、1444、2663、2390、0778、0774、0219、1655对密文组对密文组C=948解密,解密,M=948157=920(mod 2773)详见:详见:RSA加密解密实例加密解密实例.doc6.3.4 计算方法及其程
15、序实现计算方法及其程序实现 如何计算模逆元如何计算模逆元要在已知要在已知e、m的状况下,求的状况下,求d,使得,使得 e*d=1(mod m)也即找整数也即找整数k,使得,使得e*d+mk=1这相当于求解这相当于求解d、k都是未知数的二元一次都是未知数的二元一次不定方程不定方程 e*d+mk=1的最小整数解的最小整数解2.扩展扩展Euclid算法算法3.输入:正整数输入:正整数a、b4.输出:输出:GCD(a,b)及满足及满足ax+by=GCD(a,b)的的整数整数x、y5.例如:设例如:设a=21、b=15,则,则GCD(a,b)=3,x=-2、y=36.算法步骤描述:算法步骤描述:7.置置
16、x1=1,x2=0,y1=0,y2=18.计算计算q=a/b,r=a%b9.若若r=0,则,则GCD(a,b)=b,x=x2,y=y2,算,算法结束;否则做下步法结束;否则做下步10.依次令依次令a=b,b=r,t=x2,x2=x1-qx2,x1=t,11.t=y2,y2=y1-qy2,y1=t,然后转,然后转2)附:附:扩展扩展Euclid算法算法.CPP3.乘法逆元的计算乘法逆元的计算4.输入:正整数输入:正整数e、m5.输出:输出:GCD(e,m)及满足及满足ed=GCD(e,m)(mod m)的整数的整数d6.当当GCD(e,m)=1(即(即e、m互素),互素),7.则则d=e-1(m
17、od m)8.例如:设例如:设e=7、m=17,则,则GCD(7,17)=1,d=5=7-1;因为;因为7*5=35=17*2+1=1(mod 17)9.算法:在扩展算法:在扩展Euclid算法中令算法中令a=e、b=m,则,则ex+my=GCD(e,m)(mod m),10.即即 ex=GCD(e,m)(mod m);11.若结果若结果GCD(e,m)=1,则,则d=e-1=x;否则;否则e没有逆元没有逆元附:附:求乘法逆元求乘法逆元.CPP4.解密指数解密指数最小正逆元的计算最小正逆元的计算附:附:求求最小正逆元最小正逆元.CPP设设d是是e的逆元,即的逆元,即ed=1(mod m),由于
18、,由于e(d+km)=ed+ekm=ed=1(mod m),故,故d+km也是也是e的的逆元,可见乘法逆元不惟一。逆元,可见乘法逆元不惟一。在上述乘法逆元算法中得到的逆元最接近零,但有在上述乘法逆元算法中得到的逆元最接近零,但有可能为负。可能为负。例如:设例如:设e=3、m=40,则,则GCD(3,40)=1,但,但d=13,明显不能用作,明显不能用作RSA算法的解密指数。因此必需将算法的解密指数。因此必需将这种负逆元调整为正逆元,才能得到解密指数。这种负逆元调整为正逆元,才能得到解密指数。改进后的算法如下:改进后的算法如下:输入:正整数输入:正整数e、m输出:输出:GCD(e,m)及满足及满
19、足ed=GCD(a,m)(mod m)的的最小正整数最小正整数d;当当CD(e,m)=1,则,则d=e-1(mod m)就是就是所求解密指数所求解密指数5.模幂的快速算法模幂的快速算法6.输入:整数输入:整数n、正整数、正整数m、e7.输出:输出:C=ne (mod m)8.算法:算法:9.将将e表示为二进制形式表示为二进制形式(bkbk-1 b1b0)10.C=111.对于从对于从k到到0的的i做做C=C*C(mod m),假,假如如bi=1则再做则再做C=C*n (mod m)12.返回返回C附:附:快速求模幂快速求模幂.CPP6.素性检测算法之一素性检测算法之一Miller-Rabin算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学 对称 密码 体制 优秀 PPT
限制150内