网络安全-09:公钥密码学与RSA.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西安电子科技大学计算机学院 Chapter 9 公钥密码学与RSA 传统密码体制只使用一个密钥 收发双方共享这个单一的密钥 密钥是对称的,双方是对等的; 因此,不能确保接收方伪造信息,并声称是该信息是发送方发送的 公钥密码体制 密码学发展历史中最伟大的一次革命 采用两个密钥:一个公钥,一个私钥 参与方不对等,所以是非对称的; 基于数论中的结论 是私钥密码的补充而不是代替 为什么需要公钥密码? 两个考虑: 密钥分配 - KDC 数字签名 公认该发明属于Stanford Uni 的Whitfield Diffie 和 Martin Hellman ,于1976年。 New Directions in Cryptography, IEEE Trans. Information Theory, IT-22, pp644-654, Nov 1976 James Ellis (UK CESG) 在1970年曾提出此概念 公钥密码体制 公钥/双钥/非对称 密码都是指使用两个密钥: 公钥:可以对任何人公开的密钥,用于加密消息或验证签名。 私钥:只能由接收者私存,用于解密消息或签名。 非对称 用于加密消息或验证签名的人不能进行消息的加密或消息的签名。 公钥密码体制 公钥密码体制特点 公钥密码算法依赖于: 仅仅知道算法和加密密钥,推导解密密钥计算上是不可行的 已知加解密密钥时,进行加解密运算计算上是容易的 两个密钥中的任何一个都可以用来加密,而另一个用来解密。 书上6个条件p196 单向陷门函数 单向陷门函数: 若k和X已知,则容易计算 Y = fk(X). 若k和Y已知,则容易计算X = fk-1(Y). 若Y已知但k未知,则计算出X = fk-1(Y)是不可行的. 寻找合适的单向陷门函数是公钥密码体制应用的关键 单向陷门函数举例: 离散对数 大整数分解 背包问题 公钥密码体制:保密性和认证 公钥算法分类 Public-Key Distribution Schemes (PKDS) 用于交换秘密信息(依赖于双方主体) 常用于对称加密算法的密钥 Public Key Encryption (PKE) 用于加密任何消息 任何人可以用公钥加密消息 私钥的拥有者可以解密消息 任何公钥加密方案能够用于密钥分配方案PKDS 许多公钥加密方案也是数字签名方案 Signature Schemes 用于生成对某消息的数字签名 私钥的拥有者生成数字签名 任何人可以用公钥验证签名 公钥密码体制的应用 分为三类: 加密/解密 (提供保密性) 数字签名 (提供认证) 密钥交换 (会话密钥) 一些算法可用于上述三类,而有些只适用用于其中一类或两类。 公钥密码体制安全性分析 一样存在穷举攻击 但所使用的密钥一般都非常大 ( 512bits ) 安全性基于容易(加解密)和困难(破译)之间巨大的差别 许多算法没有得到证明是安全的。(包括RSA) 需要采用一些特别大的数字 与私钥密码体制相比,速度慢。 §9.2 RSA 1977由MIT的Rivest, Shamir 和 Adleman发明 已知的且被广泛使用的公钥密码方案 有限域中的乘方运算 乘方运算需要 O((log n)3) 操作 (容易的) 使用一些大的整数 (例如. 1024 bits) 安全性基于大数的素因子分解的困难性 素因子分解需要 O(e log n log log n) 操作 (困难的) RSA 密钥的建立 每一个用户通过以下方法产生一个公钥/私钥对: 随机地选择两个大的素数 p, q 计算方案中的模数 n = p.q ?(n) = (p-1) (q-1) 随机地选择一个加密密钥e 满足 1 e ?(n), (e, ?(n)) = 1 求解下面的方程,以得到解密密钥d e.d ≡ 1 mod ?(n) and 0 ≤ d ≤n 公开公钥: PU = {e, n} 保密私钥: PR = {d, n} RSA 的使用 为了加密消息M,发送方: 获得接收方的公钥 PU = { e, n } 计算: C = Me mod n, 其中 0 ≤ M n 为了解密密文C,接收者: 使用自己的私钥 PR = { d, n } 计算: M = Cd mod n 消息M一定要比模数 n小 (如果需要的话,可以进行分组) RSA的工作原理 Euler定理: a?(n) mod n ≡ 1 其中(a, n) = 1 RSA中: n = p.q ?(n) = (p-1) (q-1) 仔细地选择 e 和 d 使得 mod ?(n) 下,两者互逆 因此存在某个整数k,使得e.d = 1 + k.?(n) 成立 所以 : Cd = M

文档评论(0)

feiyang66 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档