公钥密码系统ppt课件.ppt
《公钥密码系统ppt课件.ppt》由会员分享,可在线阅读,更多相关《公钥密码系统ppt课件.ppt(96页珍藏版)》请在三一办公上搜索。
1、Network and Information Security,第4章公钥密码体系,Network and Information Security,主要内容,4.1 公钥密码概述4.2 RSA密码系统4.3 Diffie-Hellman密钥交换4.4 数字签名4.5 数字签名的算法4.6 PGP,问题的提出:,传统的对称加密仅用一个密钥,由发送方和接收方共享如果密钥公开,则通信是不安全的存在的问题:无法保护发送方,如果接收方伪造一个消息并宣称是由发送发发送的密钥的分配:通信双方要进行加密通信,需要通过秘密的安全信道协商加密密钥,如何安全交换密钥?密钥管理问题 若N个人相互保密通信,每人必须
2、拥有(N-1)个密钥,N很大时,需要保存的密钥很多。如何解决?在有多个用户的网络中,任何两个用户之间都需要有共享的密钥。思考:需要的密钥量是多少?,Network and Information Security,挑战!,Network and Information Security,公钥加密算法,Network and Information Security,Network and Information Security,1 公钥的起源公钥密码体系于1976年由美国斯坦福大学的W. Diffie和M. Hellman提出。公钥密码又叫非对称密码,这种密码体系的基本思想:将密钥K一分为二
3、,一个专门加密,一个专门解密,即kekd可以将ke公开,密钥量小,分配比较简单有ke不能计算出kd,所以kd便成为用户的指纹,实现数字签名。,4.1 公钥密码概述,Network and Information Security,2 数学原理-陷门单向函数,公钥密码系统是基于陷门单向函数的概念。陷门单向函数:单向函数是求逆困难的函数,而单向陷门函数,是在不知陷门信息下求逆困难的函数,当知道陷门信息后,求逆是易于实现的。单向陷门函数f(x),必须满足以下三个条件。 给定x,计算y=f(x)是容易的;给定y, 计算x使y=f(x)是困难的(所谓计算x=f-1(y)困难是指计算上相当复杂已无实际意义
4、);存在,已知时对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的。,注: 仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性, 称为陷门信息。,Network and Information Security,(1)发送者用加密密钥PK(public key)对明文X加密后,接收者用解密密钥SK (secure key)解密,即可恢复出明文,或写为:DSK(EPK(X) X 此外,加密和解密的运算可以对调,即 EPK(DSK(X) X。(2)加密密钥是公开的,但不能用它来解密,即DPK(EPK(X) X (3)在计算机上可以容易地产生成对的PK和SK。(4)从已知的PK
5、实际上不可能推导出SK,即从PK到SK是“计算上不可行的”。(5)加密和解密算法都是公开的。,3 公开密钥算法的特点,9,4.公钥密码系统可用于以下三个方面: (1) 通信保密:此时将公钥作为加密密钥,私钥作为解密密钥,通信双方不需要交换密钥就可以实现保密通信。这时,通过公钥或密文分析出明文或私钥是不可行的。如图所示,Bob拥有多个人的公钥,当他需要向Alice发送机密消息时,他用Alice公布的公钥对明文消息加密,当Alice接收到后用她的私钥解密。由于私钥只有Alice本人知道,所以能实现通信保密。,10,(2) 数字签名:将私钥作为加密密钥,公钥作为解密密钥,可实现由一个用户对数据加密而
6、使多个用户解读。如图所示,Bob用私钥对明文进行加密并发布,Alice收到密文后用Bob公布的公钥解密。由于Bob的私钥只有Bob本人知道,因此,Alice看到的明文肯定是Bob发出的,从而实现了数字签名。,Network and Information Security,(3) 密钥交换:通信双方交换会话密钥,这种应用也称为混合密码系统,即用常规密码体制加密需要保密传输的消息本身,然后用公钥密码体制加密常规密码体制中使用的会话密钥,将两者结合使用,充分利用对称密码体制在处理速度上的优势和非对称密码体制在密钥分发和管理方面的优势。,Network and Information Securit
7、y,5 对称密钥与非对称密钥的比较,Network and Information Security,4.2 RSA密码系统4.2.1 RSA算法,1977年由Rivest、Shamir和Adleman在麻省理工学院发明,1978年公布第一个比较完善的同时也是应用最广泛的公钥密码算法。,RSA的基本原理:RSA是基于大整数难分解的公钥密码技术。 大整数的分解问题可以被表述:已知整数n,n是两个素数的积,即n=p.q 。求解p、q的值。 大整数分解是计算上困难的问题,目前还不存在一般性的有效解决算法。,Network and Information Security,RSA的数学基础,除数(因子
8、):设z为由全体整数而构成的集合,若 b0且 a,b,mz , 使得a=mb,此时称b整除a.记为ba,还称b为a的除数(因子).素数:对一个自然数P,如果P只能被1和自身除尽时,则称P为素数(或质数),否则为合数。例:100以内的素数共有25个:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,最大公约数与互为素数:设且 a,b,cz ,如果c|a , c|b,称c是a和b的公约数。正整数d称为a和b的最大公约数,如果它满足:(1)d是a和b的公约数;(2)对a和b的任何一个公约数c,有c|d .a和
9、b的最大公约数记为gcd(a,b)=d。如果gcd(a,b)=1,则称a与b是互素的,即a和b互为素数。例:8和15是互素的,即gcd(8,15)1。,Network and Information Security,19,整数同余:设n是一个正整数,a,b Z, 如果 a mod n= b mod n,则称a 和b模n同余, 记作 a b(mod n) ,称整数n为同余模 。模m求余运算称为模运算, 下面是模运算的一些性质。 (1) (a+b) mod m = (a mod m) + (b mod m) mod m (2) (a-b) mod m = (a mod m) - (b mod m
10、) mod m (3) (ab) mod m = (a mod m) (b mod m) mod m (4) (a(b+c) ) mod m = (ab) mod m) + (ac) mod m) mod m (5)a8 mod m=(aaaaaaaa) mod m 化简为:(a2 mod m)2 mod m)2 mod m,11 mod 8=3;15 mod 8=7(11+15)mod 8=26 mod 8=2 (11 mod 8)+(15 mod 8) mod 8 =(3+7)mod 8 =2(11-15)mod 8=-4 mod 8=4 (11 mod 8)-(15 mod 8) mod
11、 8 =(3-7)mod 8 =4(11*15)mod 8=165 mod 8=5 (11 mod 8)*(15 mod 8) mod 8 =(3*7)mod 8 =5,计算117 mod 13,112 =121 4 mod 13114=(112)2 16 mod 13 3 mod 13117=11*112*114 11*4*3 mod 13 132 mod13 2 mod13,加法逆元:对于a Zn ,存在b Zn ,使得ab 0(mod n),则b是a的加法逆元。记b=-a。例:1115 0(mod 26),则称11模26的加法逆元是15即-11(代表11模26的加法逆元)的结果为15乘法
12、逆元:设a Zn ,如果存在bZn 满足ab 1(mod n),则称b是a的模n乘法逆元,记为x=a-1(mod n)715 1(mod 26),则称7模26的乘法逆元是15加法一定存在逆元,乘法不一定存在逆元。,22,欧几里德算法,用途:(1)求两个正整数的最大公约数性质1:对任意非负整数a和正整数b,有 gcd(a,b)=gcd(b,a mod b) (a=b) 可重复使用上式求出最大公约数。重复计算结束的条件是后一个整数等于0,此时前一个数即为二者的最大公约数。例:求gcd(18,12)=gcd(12,18mod12)=gcd(12,6)=gcd(6,12mod6)=gcd(6,0)=6
13、,Network and Information Security,用途: (2)两个正整数互素,可以求一个数关于另一个数的乘法逆元性质2:若gcd(n,a)=1, 则a在模n下有乘法逆元(设an)即存在xn, ax=1 mod n,求解乘法逆元的方法,扩展的欧几里得算法: 求d关于模f的乘法逆元d-1 ,即 dd-1 mod f = 1 (X1,X2,X3) = (1,0,f); (Y1,Y2,Y3) = (0,1,d) if (Y3=0) then return d-1 = null /无逆元 if (Y3=1) then return d-1 = Y2 /Y2为逆元 Q = X3 div
14、 Y3 /整除 ,取商(T1,T2,T3) = (X1 - QY1,X2 - QY2,X3 - QY3) (X1,X2,X3) = (Y1,Y2,Y3) (Y1,Y2,Y3) = (T1,T2,T3) Goto ,例如:k=7, 求解7-1(7关于模26的乘法逆元),-11即为求得的结果,是11关于模26的加法逆元,即15。,思考:k=550求解550-1(550关于模1769的乘法逆元),550-1 mod 1769=550,费马(Fermat)定理 描述1:若p是素数,a是正整数且gcd(a,p)=1,则 ap-1 1(mod p) 描述2:对于素数p,若a是任一正整数,则 ap a(mo
15、d p)例:p=5,a=3, 则35-1=81 1mod5 35=243 3mod5,Network and Information Security,欧拉函数欧拉函数(m) :当m1时, (m)表示比m小且与m互素的正整数的个数。 例:m24,比24小且与24互素的正整数有:1、5、7、11、13、17、19、23,共8个。因此(24)8 1)m是素数,则 (m)=m-1 2)m=pq,且p和q是互异的素数,则(m)= (p) (q)=(p-1)(q-1)例: (21)= (3) (7)=(3-1)(7-1)=12,这12个数是1,2,4,5,8,10,11,13,16,17,19,20欧拉
16、定理:对于任何互素的两个整数a和m,有a(m) 1 (mod m) 例:设a=4,m=5 则有(5)=4,44=256,256 1(mod 5),a(m)+1 a (mod m),RSA密码算法,RSA密码体制 (安全性基于大整数因子分解的困难性)明文和密文均是0到n之间的整数,n通常为 1024位二进制数或309位十进制数明文空间P=密文空间C=xZ|0 x n,Z为整数集合。RSA密码的密钥生成具体步骤如下: 选择互异的素数p和q,计算n=pq,(n) = (p - 1)(q - 1); 选择整数e,使gcd(n),e) = 1,且1 e (n); 计算d,d e-1 mod (n),即d
17、为模(n)下e的乘法逆元;公钥Pk = e, n ,私钥Sk = d, n加密:c = me mod n;解密:m = cd mod n。,RSA算法操作过程,RSA算法加密/解密过程,RSA算法的证明,例1: 选p=7,q=17。n=pq=119,(n)=(p-1)(q-1)=96。取e=5,满足1e(n),且gcd(n),e)=1。确定满足de=1 mod 96且小于96的d, d77。因此公钥为5,119,私钥为77,119。设明文m=19,则由加密过程得密文为 C195 mod 1192476099 mod 11966 解密为 M6677mod 11919,RSA 加密和解密的例子:在
18、以下实例中只选取小数值的素数p,q,以及e,例2假设用户A需要将明文“key”通过RSA加密后传递给用户B。 (1)设计公私密钥(e, n)和(d, n)。令p=3,q=11,得出n=pq=311=33; (n)=(p-1)(q-1)=210=20;取e=3,(3与20互质)则ed1 mod (n),即3d1 mod 20。用扩展的欧几里德方法求得:d=7。从而可以设计出一对公私密钥,加密密钥(公钥)为:KU =(e,n)=(3,33),解密密钥(私钥)为:KR =(d,n)=(7,33)。,34,(2)英文数字化。将明文信息数字化。假定明文英文字母编码表为按字母顺序排列数值 则得到分组后的k
19、ey的明文信息为:11,05,25。,35,(3)明文加密 用户加密密钥(3,33) 将数字化明文分组信息加密成密文。由CMe(mod n)得: 得到相应的密文信息为:11,26,16。,C1(M1)e (mod n)=113 (mod 33)=11C2(M2)e (mod n)=53 (mod 33)=26C3(M3)e (mod n)=253 (mod 33)=16,36,(4)密文解密。用户B收到密文,若将其解密,只需要计算 ,即:用户B得到明文信息为:11,05,25。根据上面的编码表将其转换为英文,我们又得到了恢复后的原文“key”。,26,例3:设通信双方使用RSA加密体制,接收方
20、的公开密钥是(5,35),接收到的密文是10,求明文。,Network and Information Security,解:据题意知: e=5,n=35,C=10 因此有:(n)=(35)=(5)(7)=46=24d=e-1 mod (n)=5-1 mod 24=5所以有: M=Cd mod n=105 mod 35 =5,例4:已知RSA密码体制的公钥为(11,51)(1)若明文M=3,求C(2)若截获得的密文C=9,求M,Network and Information Security,解:据题意知: e=11,n=51 因此有:(n)=(51)=(3)(17=216=32因为加密指数e
21、和私密钥d满足:ed mod (n) =1,所以d=e-1 mod (n) ,私钥d的计算过程如下,Network and Information Security,由以上计算可知私密钥d=3。(1)若明文M=3,则 C = Me mod n=311 mod 51=24;(2)若截获得的密文C=9,则M = Cd mod n=93 mod 51=15,实际运用时,要比这复杂得多。 由于RSA算法的公钥私钥的长度(模长度)要到1024位甚至2048位才能保证安全,因此,p、q、e的选取、公钥私钥的生成,加密解密模指数运算都有一定的计算程序,需要仰仗计算机的高速计算来完成。,RSA算法安全性,在R
22、SA密码应用中,公钥KU是被公开的,即e和n的数值可以被第三方得到。破解RSA密码的问题就是从已知的e和n的数值(n等于pq),设法求出d的数值,这样就可以得到私钥来破解密文。RSA算法的安全性取决于p、q的保密性,以及分解大数的难度,所以在计算出n后要立即彻底删除p、q值。当前运用计算机和素数理论,已能分解出129位长的十进制数。密钥长度应在1024位到2048位之间。,对称密码体制中的一个苦恼,如果有n个用户,需要两两共用1对密钥,一共需要多少对密钥?,4.3 Diffie-Hellman密钥交换,怎样进行密钥协商,一个生活中的例子,在网络上,这样的秘密“传递”能用数学方法实现吗?,3、一
23、个基于离散对数的密钥协商协议Diffie-Hellman密钥协商,1976年,Diffie和Hellman发表了一篇划时代的密码学论文密码学新方向(New Directions in Cryptography),提出公钥密码模型。,有限域上的离散对数问题,离散对数困难性难题:已知整数y、g、p 求整数x,这非常困难。,有多难,512bit离散对数困难度1024bit大整数分解难度,相当,数学知识生成元素数p的生成元(primitive root)的定义:如果a是素数p的生成元,则数a mod p, a2 mod p, ap-1 mod p是不同的并且包含从1到p-1之间的所有整数的某种排列。注
24、:本原根不唯一。可验证19的本原根除了2、3外,还有10、13、14、15。,离散对数若a是素数p的一个生成元,则相对于任意整数b(b mod p0),必然存在唯一的整数i(1ip-1),使得bai mod p,称指数i为以a为底模p的b的离散对数。对于函数ygx mod p,其中,g为素数p的生成元,y与x均为正整数,已知g、x、p,计算y是容易的;而已知y、g、p,计算x是困难的,即求解y的离散对数x。注:离散对数的求解为数学界公认的困难问题。,Network and Information Security,Network and Information Security,巧妙的Diff
25、ie-Hellman密钥交换,现在要在公开网络上协商一个公共密钥K,gx mod p,gy mod p,发送方计算,(gy)x mod p,接收方计算,(gx)y mod p,K,gxy mod p,举例,11319 mod (2127-1),11323 mod(2127-1),爱丽丝计算,(11323)19 mod (2127-1),鲍勃计算,(11319)23 mod (2127-1),K,3097088834231538675770610326325810083,中间人攻击,gx mod p,gy mod p,gz mod p,gz mod p,K1=(gz)x mod p,K2=(gz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 系统 ppt 课件

链接地址:https://www.31ppt.com/p-1314854.html