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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第8讲 公钥密码学.ppt

1、1,第8讲 公钥密码学,2,公钥密码学,公钥密码学思想 RSA算法 公钥的应用,3,公钥密码学的发展是整个密码学发 展历史中最伟大的一次革命。,公钥密码体制,公钥算法基于数学函数而不是基于替换和置换,它使用两个独立的密钥,在消息的保密性、 密钥分配和认证领域有重要意义。,4,公钥密码比传统密码更安全,两个误解,公钥密码是一种通用的方法,所以 传统密码已经过时。,5,密钥分配问题:如果密钥被偷,设计再好的 密码体制都没有用,传统密码中的两个问题,数字签名问题:能否设计一种方法确保数字 签名出自某个特定的人,并且各方无异议?,6,1976年 Diffie和Hellman针对上述问题提出 了一种方法

2、,它是密码学的一次革命,密码学革命,7,公钥密码体制介绍,8,仅根据密码算法和加密密钥来确定解密密钥在 计算上是不可行的。,公钥密码体制特点,两个密钥中的任何一个可以用来加密,另一个 用来解密。,有6个组成部分:明文、加密算法、公钥、 私钥、密文、解密算法,9,用公钥进行加密,2 Alice产生一对密钥,用于加密和解密,3 Alice将一个密钥公开,另一个密钥私有,Bob,Alice,1 Bob要发送消息给Alice,4 Bob用Alice的公钥对消息加密,发送给Alice。只有Alice能解密,10,公钥进行加密,B的公钥KUb,B的私钥KRb,待发送的明文X,A要发消息给B,Y=EKUb(

3、X),X=DKRb(Y),破译者,11,用公钥进行认证,Bob,Alice,12,用公钥进行认证,A用自己的私钥进行加密Y=EKRa(X),B用A的公钥钥进行解密认证X=DKUa(Y),13,用公钥进行认证:问题?,问题1 需要对整条消息加密,占用大量存储空间,解决的方法:仅对消息的认证符加密,问题2 不能提供保密性,如何解决?,14,公钥体制:保密和认证,15,公钥密码体制的应用,1 加密/解密,2 数字签名,3 密钥交换,算法 RSA 椭圆曲线 Diffie-Hellman DSS,是是是,是是是,否否是,否是否,16,对公钥密码体制的要求:,1 B产生一对密钥(KUb,KRb)在计算上是

4、容易的,2 发送方A加密消息 C=EKUb(M) 在计算上是容易的,3 接收方B对密文解密 M=DKRb(C) 在计算上是容易的,4 攻击者从KUb计算出KRb在计算上不可行的,5 攻击者从KUb和C计算出M在计算上不可行的,6 附加条件(并非所有都满足):加密解密顺序可 交换: M=EKUb(DKRb(M) ) =DKUb(EKRb(M) ),17,公钥密码学的研究情况,与计算复杂性理论密切相关 计算复杂性理论可以提供指导 但是需求不尽相同 计算复杂性通常针对一个孤立的问题进行研究 而公钥密码学往往需要考虑一些相关的问题 比如,密码分析还需要考虑已知明文、选择明文等相关的情形 讨论的情形不同

5、 计算复杂性考虑最坏的情形 而对于公钥密码学则是不够的 一个困难问题必然会导致一个保密性很好的密码系统吗? 不一定,还需要有好的构造,18,背包(knapsack)问题,0-1背包问题: 给定一个正整数S和一个背包向量A=(a1,an),其中ai是正整数,求满足方程 S = aixi 的二进制向量X=(x1,xn)。 这是一个NP完全问题,解决这个问题所需要的时间与n呈指数增长 背包问题用于公钥密码学 做法方法:明文为X,S为密文 奥妙在于有两类背包,一类可以在线性时间内求解,另一类则不能 把易解的背包问题修改成难解的背包问题 公开密钥使用难解的背包问题 私钥使用易解的背包问题,19,易解的背

6、包问题超递增背包,满足下列条件的背包ai aj (j = 1,i-1) 这样的背包也被称为简单背包 求解 从最大的ai开始,如果S大于这个数,则减去ai, 记xi为1,否则记xi为0 如此下去,直到最小的ai 例如背包序列2, 3, 6, 13, 27, 52 求解70的背包 结果为2, 3, 13, 52 所以,密文70对应的明文为110101,20,转换背包,简单背包用作私钥 如何产生相应的公钥转换 做法: 选择一个整数 m ai (i = 1,n) 然后选择一个与m互素的整数w,然后 ai = wai (mod m) (i = 1,n) 这里的ai是伪随机分布的 这样得到的背包是非超递增

7、背包,21,基于背包问题的公钥密码系统 MH公钥算法,加密 将明文分为长度为n的块X=(x1,xn) 然后用公钥A = (a1, , an),将明文变为密文S S = E(X) = aixi 解密 先计算S = w-1S mod m 再求解简单背包问题 S = aixi,22,背包密码系统的意义,是第一个公钥密码系统 有较好的理论价值 在实践过程中,大多数的背包方案都已被破解,或者证明存在缺陷,23,只有两个算法被普遍接受,1 RSA,2 椭圆曲线,就是要找一个单向陷门函数:不太容易,24,单向陷门函数(1),Y=fk(X) 容易(k 和X已知),X=f-1k (Y) 计算上不可行(k未知,Y

8、已知),X=f-1k (Y) 容易(k已知,Y已知),寻找合适的单向陷门函数是公钥密码 体制应用关键!,25,单向陷门函数(2),困难程度 举例 打碎/拼接、平方/开方、乘法/分解 * 单向函数存在否 尚无严格的数学证明,26,单向陷门函数(3),单向陷门函数 如果知道某个陷门(秘诀),即能容易恢复x (陷门即为私钥)举例 魔方的置乱/恢复 如果有那个口诀,就能很快恢复 加密/解密,27,RSA 算法,先从一个简单例子开始 给出算法 证明,28,简单例子,选中两个素数 p7,q17,npq (n)请练习,任务:对明文 M=19 加密,npq119 (n)(p-1)(q-1)61696,选取整数

9、1e (n)与(n) 互素:e5,求e的逆元d:ed1 mod (n) 请练习,计算 C=Me(mod n)=? 其中M=19 请练习,计算 M1=Cd(mod n)=? 请练习,d=77,c=66,29,Exponentiation (c为辅助,求ab),c = 0; f = 1 for i = k downto 0 do c = 2 cf = (f f) mod nif bi = 1 then c = c + 1f = (f a) mod n return f 这里b可以先看成2的整数幂,便于理解,30,RSA 示例总结,选p7,q17 则npq119 且(n)(p-1)(q-1)6169

10、6 取e5 则d77 (57738549611 mod 96) 公钥(5,119),私钥(77,119) 加密m19 则cme mod n= 195 mod 119 = 66 mod 119 解密c66 mcd mod n = 6677mod 11919 mod 119,31,设置参数p,q,d,e,bool rsa:set_pqde( int m_in, int e_in ) e=e_in;m=m_in;p=depart(m_in);q=m_in/p;if(p=1 | p=2 | !prime(q) ) return false;/2n=(p-1)*(q-1);d=n/e;/这里要注意e与n

11、要互素?while( ( (e*d)%n )!=1 ) d+;/3max=m_in;while( maxmaxint ) max+=m_in;max=max-m_in;return true; ,32,分解整数x,int rsa:depart( int x ) int i;if(prime(x) return 1; /X是素数if(!(x%2) return 2; /X是偶数i=3;while(x%i)i+;return i; ,33,素数测试,bool rsa:prime( int x ) int i;if (x=1) return false; /合数if (x=2) return tru

12、e; /素数if ( !(x%2) ) return false;for(i=3;i=sqrt(x);i+=2)if(!(x%i) return false; return true; ,34,加密算法,int rsa:rsaencry(int x,int y,int m ) int yy,li;double l;if( y=1 ) return x%m;yy=y%2; /分几偶数if( yy=0 )l=rsaencry(x,y/2,m);l=l*l;while( lmaxint ) l=l-max;li=(int)l;return li%m;elsel=rsaencry(x,y-1,m);l

13、=l*x;while( lmaxint ) l=l-max;li=(int)l;return li%m; ,35,解密算法,int rsa:rsadecode(int x,int y,int m) int x1=x,y1=y,f1=1;while(y1!=0)while(y1%2=0)y1=y1/2;x1=ff(x1,x1,m);y1=y1-1;f1=ff(f1,x1,m);return f1; ,36,37,RSA算法,作者 1977年,R, S, A Ron Rivest http:/theory.lcs.mit.edu/rivest/ Adi Shamir http:/www.wisdo

14、m.weizmann.ac.il/shamir/ Len Adleman http:/www.usc.edu/dept/molecular-science/ 基本参数 分组密码算法 基于整数乘法 明/密文分组以及公/私钥被看作小于n的整数 加/解密是模乘运算,38,RSA算法总结:密钥产生,找素数 选取两个大的随机的素数p,q 计算模n和Euler函数(n) npq (n)=(p-1)(q-1) 找ed1 mod (n) 随机取一个数e(与(n)互素),用扩展Euclid算法求d即可 发布 d保密,(d, n)是私钥 KU 发布(e,n),这是公钥KR 销毁p、q,39,RSA的正确性,加密

15、明文分组m做为整数须小于n c=me mod n 解密 m=cd mod n 证明 依据Euler定理,在mod n的含义下有:cd(me)dmedmk(n)+1(m(n)k mm,40,RSA考虑,素数 必须够大,否则对手可能很快分解n 判定,采用Miller-Rabin概率测试方法 假素数意味着加解密不能正确进行,故可放弃之 强素数 (p-1)/2和(q-1)/2应是素数 选取较小的e和较大的d e:3、65537 快速计算xy%z 发布公钥 证书中心 CA,41,攻击RSA,数学方法 分解n 得到p和q,就可以知道(n),就可从e求得d 直接求(n) 不分解n,而直接求(n),再求d 直

16、接求d 不求(n),直接求d,42,http:/ 对称算法一般几十兆字节/秒 1024位RSA解密约100多次/秒(加密快10倍以上) 只用来传递会话密钥 (假设A已经有B的公钥KeB) A发起和B的通信 A产生会话密钥Ks,并用KeB加密后传给B B能用自己的私钥KdB解开 他人不会知道Ks,45,对称算法 vs. 公钥算法,安全性 速度 典型相差1000倍 密钥管理 对称算法需要额外安全信道 公钥 证书中心 混合密码体制 公钥算法用于签名和认证 用公钥算法传输会话密钥 用会话密钥/对称算法加密批量(bulk)数据,46,作业:用RSA 加密解密,p=3,q=11,e=7,M=5 p=5,q=11,e=3,M=9 如果:e=31,n=3599,d=? c=10,e=5,n=35,M能够求出吗? d=3,27,5,

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


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

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

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