ImageVerifierCode 换一换
格式:PPT , 页数:58 ,大小:3.47MB ,
资源ID:8871109      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8871109.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第五章 公钥密钥.ppt)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

第五章 公钥密钥.ppt

1、1,第五章 公钥密码技术,2,一、公钥密码体制的提出 对称密钥密码体制存在的问题 密钥分配与管理问题 密钥空间大:传统密钥管理两个用户之间分别用一对密钥时,则n个用户需要C(n, 2)=n(n-1)/2个密钥,当用户量很大时,密钥空间急剧增大,如n=100时,c(100,2)=4,950n=1000时,c(1000,2)=499,500 密钥通过网络进行密钥分配时容易被截获或冒领。 签名验证问题 传统加密算法无法实现抗抵赖的需求,5.1概述,3,用户数和密钥量的对应关系,4,一、公钥密码体制的提出 1976年, 斯坦福大学的博士生Diffie和其导师Hellman在密码学的新方向中首次提出了公

2、钥密码的观点,标志着公钥密码学研究的开始。 W. Diffie and M. E. Hellman, New direction in cryptography, IEEE Trans. on Information Theory, 1976, IT-22.(6), pp.644-654. 1977年由罗纳德李维斯特(Ron Rivest)、阿迪萨莫尔(Adi Shamir)和伦纳德阿德曼(Leonard Adleman)一起提出了第一个比较完善的公钥密码算法,即RSA算法,并且在1978年首次公布。 公钥密码体制的出现在密码学历史上是迄今为止最大的、而且是惟一真正的革命。,5.1概述,5,二

3、、公钥密码体制的原理 公钥密码体制也称非对称密码体制; 公钥密码算法是基于数学函数(如单向陷门函数)而不是基于代替和置换 公钥密码算法要求每个参与方拥有一对相关的密钥K=(PK, SK) : 一个公开,称为公开密钥PK ,用于加密 另一个保密,称为私有密钥SK ,用于解密 在计算上由PK推出SK是困难的. 加密和解密会使用两把不同的密钥,因此称为非对称,5.1概述,6,二、公钥密码体制的原理 公钥密码算法具有以下重要特性: 仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的; 两个相关密钥中任何一个都可以用作加密而让另外一个用作解密。 公钥可以被任何人知道,用于加密消息以及验证签名

4、; 私钥仅仅自己知道的,用于解密消息和签名 例如,RSA算法。,5.1概述,7,二、公钥密码体制的原理,5.1概述,8,二、公钥密码体制的原理,5.1概述,9,5.1概述,接收方:C=EPKBESKAM,发送方:C=EPKBESKAM,10,改进的数字签名,11,公开密钥加密既可以使用本方的私有密钥,也可以使用对方的公开密钥。 加密 使用对方B的公开密钥KUB进行加密可以实现数据的加密。 鉴别 而使用本方A的私有密钥KRA进行加密实现鉴别。 加密与鉴别,5.1概述,12,公钥密码体制的特点 新用户的增加只需要产生一对公共/ 私有密钥,密钥分配过程简单。 只有在用户的私有密钥被破坏时,才需要进行

5、密钥重建; 非对称密钥加密提供了认证功能。 加密和解密较常规密钥密码体制慢。,5.1概述,13,常规加密与公钥密码的比较,需要澄清的问题:公开密钥加密方法要比传统的加密方法更加安全? 事实上,任何加密方案的安全程度都依赖于密钥的长度和破译密码所需要的工作量。,14,5.1概述,三、Diffie-Hellman密钥交换算法 Diffie-Hellman密钥交换是W.Diffie和M.Hellman于1976年提出的第一个公开密钥算法。 该算法的安全性基于求离散对数的困难性。 算法的惟一目的是使得两个用户能够安全地交换密钥,得到一个共享的会话密钥。 算法本身不能用于加、解密。,15,5.1概述,三

6、、Diffie-Hellman密钥交换算法,16,本原元并不唯一(19本原元还有2,3,10,13,14,15) ,不是所有的整数都有本原元。,17,5.1概述,三、Diffie-Hellman密钥交换算法,离散对数的难解性:,离散对数的概念:,18,三、Diffie-Hellman密钥交换算法,19,三、Diffie-Hellman密钥交换算法,Diffie-Hellman密钥交换,20,三、Diffie-Hellman密钥交换算法,21,三、Diffie-Hellman密钥交换算法,22,三、Diffie-Hellman密钥交换算法,23,RSA算法是罗纳德李维斯特(Ron Rivest)

7、、阿迪萨莫尔(Adi Shamir)和伦纳德阿德曼(Leonard Adleman)于1977年研制并于1978年首次发表的一种算法。 它是第一个既能用于数据加密,也能用于数字签名的公开密钥密码算法。,5.2 RSA公钥密码,24,依据的原理是: 寻求两个大素数的乘积比较简单,而将它们的乘积分解开(因式分解)则极其困难。,5.2 RSA公钥密码,731071391 1391可以分解成哪两个素数的积?,25,RSA算法包括三个部分: 密钥的产生 加密 解密,算法描述,26,密钥的产生 选择两个大素数p, q(p, q保密); 计算n = pq(n公开); 计算(n) = (p-1)(q-1),(

8、n)是n的欧拉函数; 选择整数e,使得gcd(n), e) = 1, 1 e (n) (e公开); 计算d,使得ed = 1 mod (n),即d是e在模(n)下的乘法逆元; 公钥KU = e, n ,私钥KR = d, n或d,p,q,算法描述,27,加密/解密 明文以分组为单位加密,每个分组是小于n的二进制值 M表示明文,C表示密文 加密形式如下: C = Me mod n 用公钥e, n 解密形式如下: M = Cd mod n 用私钥d, n,算法描述,28,例子: 选择两个素数p = 3,q = 17; 计算n = pq = 317 = 51; 计算(n) = (p-1)(q-1)

9、= 32; 选择e,使1 e (n)且与(n)互素,取e = 13; 计算d,使得ed = 1 mod (n),即ed = k(n) + 1,取k = 2,则d = 5。 最终,加密密钥为13, 51,解密密钥为5, 51。 加密:令明文M = 2,密文C = Me mod n = 213 mod 51 = 8192 mod 51 = 32 解密:M = Cd mod n = 325 mod 51 = 512 mod 51 = 2,算法描述,29,算法描述,例子:设p=7,q=11,e=13,求n、(n)和d。 例子:设p=7,q=17,e=5,明文m=19求(n),d和密文C。,30,使用R

10、SA时的计算问题 加密与解密过程 RSA密钥的产生,RSA算法中的计算问题,31,加密与解密过程 加密与解密过程均涉及计算一个大整数的整数次幂,然后取模。如果先对整数进行指数运算,然后进行模n运算,则中间结果非常大。 需要用到快速指数计算法,RSA算法中的计算问题,32,快速指数算法1 am mod n 将m表示为二进制形式bkbk-1b0,c = 0; d = 1; for i = k downto 0 do c = 2c; d = (dd) mod n; if bi = 1 then c = c + 1; d = (da) mod n; return d;,RSA算法中的计算问题,33,R

11、SA算法中的计算问题,快速指数算法2 am mod n 将m表示为二进制形式bkbk-1b0, 1. b=m, c=a, d=1; 2. 如果b=0, 输出结果d; 3. 如果b是奇数,转到5; 4. b=b/2; c=c2 mod n,转到3; 5. b=b-1; d=(cd)mod n, 转到2.,34,RSA算法中的计算问题,例P82页:30 37 mod 77,35,RSA密钥的产生 在使用公开密钥密码系统之前,每个参与者都必须产生一对密钥。 产生密钥时,需要考虑以下问题: 确定两个大素数p和q; 选择e,并且计算d。,RSA算法中的计算问题,36,确定两个大素数p和q 因为n = p

12、q在公钥体制中是公开的,因此为了防止敌手通过穷举攻击发现p和q,这两个素数应该是从足够大的集合中选取的大素数。 寻找大素数的过程如下: 随机选取一个大的奇数; 使用素性检验算法检验该奇数是否为素数; 若不是素数则选取另一个大的奇数,重复这一过程,直至找到大素数为止。,RSA算法中的计算问题,37,RSA算法的安全性是基于对大整数进行因子分解的困难性。 可能的对RSA的攻击方法包括: 选择密文攻击、公共模数攻击、低指数攻击、定时攻击等。,5.2.6 RSA的安全性,38,选择密文攻击一般攻击者是将希望解密的信息C作一下伪装reC,让拥有私钥的实体解密。然后,经过解密计算就可得到它所想要的信息。(

13、 reC ) d = red * Cd mod n = r * M mod n ,所以 M= ( reC ) d * r-1,5.2.6 RSA的安全性,39,5.2.6 RSA的安全性,公共模数攻击 若系统中用户共有一个模数n ,而拥有不同的e和d。若存在同一信息(设为P)分别用不同的公钥(e1和e2)加密, C1 = Pe1 mod n ;C2 = pe2 mod n 设密码分析者截获n、e1、e2、C1和C2, 若恰好e1和e2互质,则他可以得到P。,40,5.2.6 RSA的安全性,公共模数攻击证明:因为e1和e2互质,故用扩展的欧几里得算法能找到r和s,满足: r * e1 + s

14、* e2 = 1 则 (C1) r * (C2) s = ( Pe1) r * (pe2) s mod n = P r * e1 + s * e2 mod n =P mod n,41,5.2.6 RSA的安全性,低指数攻击 为了缩短加密时间,使用小的加密指数e是非常诱人的。普通的e值是e = 3。不过有几种针对低加密指数的潜在攻击。为了阻止这些类型的攻击,我们推荐使用e=216-1 = 65535.(或者一个接近这个值的素数)。 当解密指数过小的时候,攻击者可以计算出解密指数d,42,5.2.6 RSA的安全性,定时攻击 RSA核心运算是非常耗时的模乘,如果能够精确的监视RSA的解密过程,获得

15、解密时间,就可以估算出私有密钥D。 如果私密指数d中的相关比特是0的话,这种算法只应用平方;如果相关的位是1,这种算法就既应用平方也应用乘法,完成每一个迭代需要的时序会更长。 根据执行时间来判断当前位是0还是1,这种方法实际操作很困难。,43,5.2.6 RSA的安全性,RSA存在很多种攻击,并不是因为算法本身存在缺陷,而是由于参数选择不当造成的,为保证算法足够安全,需要仔细选择参数。,44,5.4 ElGamal密码系统,ElGamal是1985年由T. EIGamal提出的一个著名的公钥密码算法 该算法既能用于数据加密也能用于数字签名 其安全性是依赖于计算有限域上离散对数这一难题,45,5

16、.4 ElGamal密码系统,密钥产生 任选一个大素数p,使得p-1有大素因子,g是模p的一个本原根,公开p与g。 使用者任选一私钥x,x0, p-1 计算公钥: y=gx mod p 公开公钥: y, p, g 保密私钥: x,46,5.4 ElGamal密码系统,加密过程:设欲加密明文消息为M. 随机选一与p-1互素的整数k,0=k=p-1; 计算密文对: C = C1,C2, 发送给接收者 c1=gk mod p c2=ykm mod p,47,5.4 ElGamal密码系统,解密算法: 设密文为c=(c1, c2), 则明文为,先计算:,再计算明文:,48,5.4 ElGamal密码系

17、统,1) 密钥生成.选择公开参数:p=97 及本原根 a=5 ;Bob 选择 秘密钥xB=58,计算并发布公钥 yB=558=44 mod 97. 2) Alice 要加密 M=3 给 Bob. 首先得到 Bob的公开密钥 yB=44,选择随机 k=36 计算: yBK=4436=75 mod 97. 计算密文对: C1 = 536 = 50 mod 97 ;C2 = 75*3 mod 97 = 31 mod 97. 发送 50,31 给Bob . 3) Bob 解密消息. 恢复消息密钥 K=5058=75 mod 97. Bob 计算 K-1 = 22 mod 97. Bob 恢复明文 M

18、= 31*22 = 3 mod 97.,49,本章结束,50,51,练习1,p=7,q=11,e=17,m=8 求d和密文。 解 n=pq=77 (n)=60 (17,60)=1 60=173+9 (1) 9=60-173 (1) 17=91+8 (2) 8=17-91 (2) 9=81+1 (3) 1=9-81 (3) 1=602-177 d=17-1mod 60=-7 mod 60=53 ed=1753=901=900+1=6015+1 1753=6015+1 C=memodn817mod77,52,练习2,2、设p=47,q=59,则n=2773 令d=157, 求(1)e(2)明文M=

19、7,密文是多少(3)用程序实现,53,3、设p=7,q=11。 求(1)n=? (n)=?(2) e=7, d=?(3)明文M=88,密文是多少(4)用程序实现 解 d=43,54,设通信双方使用RSA加密体制,接收方的公开钥是(e,n)=(5,35),接收到的密文是C=10,求明文M. 2. 在ElGamal加密体制中,设素数p=71,本原根g=7.1) 如果接收方B的公开钥是yB=3,发送方A选择的随机整数k=2,求明文M=30所对应的密文.2) 如果A选择另一个随机整数k,使得明文M=30加密后的密文是C=(59,C2),求C2.,55,5.2.6 RSA的安全性,| p-q|要大.如果

20、| p-q|较小, 则(p+q)/2n1/2, (p-q)/2)2= (p+q)/2)2-n. 可求出p和q.例: 对于n=164009, 有n1/2 405. 令(p+q)/2=405, (p-q)/2)2=4052-n=16 p+q=810, p-q=8 p=409, q=401164009=409401. p和q要足够大: n=pq 为1024位, 或2048位,56,5.2.6 RSA的安全性,p -1和q -1的最大公因子要小设攻击者截获到密文y1=xe mod n迭代加密: yi=yi-1e=xeee mod n (i=2,3,4,)如果有i使得: di =1 mod (n),则有

21、: yi=x mod n因此, 如果i很小, 则容易求得明文x.由Euler定理和di =1 mod (n), 可得i=(n)=(p-1)(q-1)=D(p-1)(q-1)/(D),其中D=gcd(p-1, q-1). 当D小时, (D)就小, 从而i大.,57,5.2.6 RSA的安全性,p -1和q -1的最大公因子要小设p和q是理想的强素数, 即p=2a+1, q=2b+1 (a, b为奇素数) D=2, (D)=1, i=2(a-1)(b-1).例: 设p=17, q=11, n=187, d=7, D=gcd(p-1, q-1)=gcd(16, 10)=2. 对x=123,有y1=1237=183 mod 187y2=y17=1837=72 mod 187y3=y27=727=30 mod 187y4=y37=307=123 (=x) mod 187.,58,5.2.6 RSA的安全性,加密指数e 的选择为使加密速度快, 应使e的二进制表示中, 1的个数尽量小, 但不能太小.可取: e=3, 216+1=65537 (在二进制表示中只有2个1). 解密指数d的选择在d的二进制表示中, 1的个数尽量小,但不能太小. 3dn1/4.,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报