应用密码学 教学课件 作者 林东岱 曹天杰 第8章公钥密码学.pptVIP

应用密码学 教学课件 作者 林东岱 曹天杰 第8章公钥密码学.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公钥密码 曹天杰 中国矿业大学计算机学院 公钥密码的基本概念 一个公开密钥密码应当满足下面三个条件: 1)解密算法D与加密算法E互逆,即对于所有明文M都有,D ( E ( M, Ke ), Kd )=M; 2)在计算上不能由Ke求出Kd; 3)算法E和D都是高效的。 4)对于所有明文M都有,E ( D ( M, Kd ), Ke )=M。 公钥密码的基本概念 公钥密码算法应满足以下要求: 1)接收方B产生密钥对(公开钥PKB和秘密钥SKB)是计算上容易的。 2)发方A用收方的公开钥对消息m加密以产生密文c,即c=EPKB [m]在计算上是容易的。 3)收方B用自己的秘密钥对c解密,即m=DSKB [c]在计算上是容易的。 4)敌手由B的公开钥PKB求秘密钥SKB在计算上是不可行的。 5)敌手由密文c和B的公开钥PK B恢复明文在计算上是不可行的。 6)加、解密次序可换,即 EPKB [DSKB ( m )]=DSKB [EPKB ( m )]。 这一点虽然非常有用,但不是对所有的算法都作要求。 单向函数 单向陷门函数 单向散列函数 陷门单向函数 公钥密码体制的安全性 是指计算上的安全性 安全性的理论基础:复杂性理论 一个算法的复杂性由该算法所需求的最大时间(T)和存储空间(S)度量。由于算法用于同一问题的不同规模实例所需求的时间和空间往往不同,所以总是将他们表示成问题实例的规模n的函数,n表示描述该实例所需的输入数据长度。 公钥密码体制的安全性 一个密码系统的保密性依赖于它所依赖的问题的计算复杂性,但是以计算上困难的问题为基础,却不一定导致一个保密性很强的密码系统 公钥密码体制的安全性 (1)计算复杂性理论通常分析一个问题的一个孤立的事例,但在密码分析时往往需要解决许多统计上相关的问题,例如,破译由同一个加密密钥生成的几段密文。 (2)计算复杂性理论通常做的是最坏情形的度量,一个多项式时间内不可解的困难问题,完全有可能对其中大多数事例是多项式时间可解的。然而,一个对大多数事例是信息容易破解的密码系统却是毫无用处的。 (3)计算复杂性理论对问题的难易分类时,通常只考虑是否存在确定的多项式时间算法。但是,一个可以通过某个概率多项式时间算法以很高的概率攻破的公开密钥密码系统,即使不存在确定的多项式时间算法去攻破它,也同样是没有用途的 公钥密码分析 主要公钥密码体制 基于大整数因子分解问题的,比如RSA体制、 基于离散对数问题的,比如ElGamal体制、椭圆曲线密码体制ECC RSA算法 (1)取两个随机大素数p和q(保密) (2)计算公开的模数n=pq(公开) (3)计算秘密的欧拉函数?(n) =(p-1)(q-1)(保密) (4)随机选取整数e,满足gcd(e, ?(n))=1(公开e,加密密钥) (5)计算d,满足de≡1(mod ?(n))(保密d,解密密钥,陷门信息) (6)加密:y=xe (mod n) (7)解密:x=yd (mod n) RSA加密标准OAEP 对RSA的攻击 公共模数攻击 选择密文攻击 低加密指数攻击 定时攻击 公共模数攻击 设m是待加密的明文,( N, e )是RSA密码体制的公开密钥,则密文为c=m e mod N。密码分析者从公开信道上得到密文c后,并不是设法获取秘密密钥d,而是利用公开密钥对密文c依次进行如下变换: c e=c1 mod N c1 e=c2 mod N … ck?1 e=ck mod N ck e=ck+1 mod N 上述一组变换经过k+1步迭代之后,幂剩余变换的结果恰好等于密文c。对照式c=m e mod N可知第k步的变换结果ck就是明文m。这样利用众所周知的公开密钥( N, e )和截获的密文成功地破译了RSA公开密钥体制。 还有一个值得注意的问题是在以RSA公钥密码作为加密标准的通信网中,每个用户的密钥不能有相同的模值。这里最显而易见的问题是同一明文用相同的模数但用不同的指数加密,而且这两个指数是互素的,那么无需任何一个解密密钥就可恢复出明文,一般情况下这很有可能。 假设m是明文信息,有两个不同用户的加密密钥分别是e1和e2,他们有共同的模数N,两个密文信息分别为: c1=m e1 mod N, c2=m e2 mod N。 密码分析者知道N,e1,e2,c1和c2,他们用下述方法恢复出明文m。 由于e1和e2和互素,由欧几里德算法能够找出r和s使之满足r e1+s e2=1,在r和s中,有一个是负数。假定r是负数,那么用欧几里德算法算出c1?1,然后有 ( c1?1 ) ?r c2 s=m e1 r+e2 s≡m mod N。 这样,无需破译秘密密钥d,就可以得到明文m。这种方法叫做

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档