[计算机软件及应用]公开密钥算法.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5 公开密钥算法 概述 背包算法 RSA算法 其他公开密钥算法 公开密钥数字签名算法 身份验证体制 密钥交换算法 5.1 概述 成对密钥的思想:一个加密密钥和一个解密密钥,而从其中一个密钥推导出另外一个是不能的。 混合密码系统:对称算法用于加密消息,公开密钥算法用于加密密钥。 结论:公开密钥算法是不安全的,那些被认为是安全的算法中,又有许多是不实用的。 5.2 背包算法 背包问题: 已知M1, M2, …, Mn和S, 求b1,b2,…,bn, bi?{0,1}, 使S=b1M1+b2M2+…+bnMn (1:表示物体放入背包,0:表示物体不放入背包) 背包算法的思想: 明文作为背包问题的解, 对应于bi, 密文为重量和。 例:明文:0 1 1 0 1 0 背包:2 5 7 8 13 17 密文:5+7+13=25 算法的关键:两个不同的背包问题,一个在线性时间内 求解,一个不能在线性时间内求解。 超递增序列:其中每个元素都大于前面所有元素的和 例:1,3,6,13,27,52…… 超递增背包:重量列表为一个超递增序列 超递增背包的解法:对于i=n, n-1, …, 1 bi= 0 当 1 当 秘密密钥:超递增背包问题的重量序列 公开密钥:有相同解的一个一般背包问题的重量序列 从秘密密钥建立公开密钥: 选择一个超递增序列作为秘密密钥,如:{2,3,6,13,27,52}; 将其中每个值都乘以一个数n,对m求余,例如:n=31, m=105; 得到的序列作为公开密钥:{62,93,81,88,102,37}。 加密:将明文分成长度与背包序列相同的块,计算背包总重量。 例如:背包{62,93,81,88,102,37},明文011000,密文为:93+81=174 解密: 先计算n-1,为n关于模m的乘法逆元。 将密文的值与n-1模m相乘 用秘密的背包求解,得到明文 例:n=31, m=105, n-1=61, 174*61 mod 105=9=3+6, 明文为011000 例1:n=31,m=105,秘密密钥为{2,3,6,13,27,52},公开密钥:{62,93,81,88,102,37},密文C=280,求明文。 例2:设背包公开密钥算法 的公开密钥为向量{17,34,2,21,41},某消息M被加密后生成密文C=22,已知系统中模m=50,n=17,试对C解密求出M。 例1:n=31,m=105,秘密密钥为{2,3,6,13,27,52},公开密钥:{62,93,81,88,102,37},密文C=280,求明文。 解: n-1=61 C* n-1 mod 105=280*61 mod 105=70 70=2+3+13+52 根据秘密密钥{2,3,6,13,27,52} 明文:110101 例2:设背包公开密钥算法 的公开密钥为向量{17,34,2,21,41},某消息M被加密后生成密文C=22,已知系统中模m=50,n=17,试对C解密求出M。 解:根据公开密钥{17,34,2,21,41},求秘密密钥 1 * 17 mod 50=17 2 * 17 mod 50=34 6 * 17 mod 50= 2 13*17 mod 50=21 23*17 mod 50=41 秘密密钥为{1,2,6,13,23} n-1=3, C* n-1 mod 50=22*3 mod 50=16=1+2+13 明文为:11010 实际实现: 元素个数少的背包序列易解,实际的背包应该包括至少250个元素,超递增背包中每项应该有100到200位长,模200至400位长,不易解。 5.3 RSA算法 第一个成熟的公开密钥算法,可以用作加密和数字签名 算法描述: RSA的安全性基于大整数的因数分解的困难性 首先随机选择两个大素数p和q,计算n = pq 然后随机选择加密密钥e,满足e与(p-1)(q-1)互素。用扩展的Euclid算法计算解密密钥d,使得ed ? 1 mod (p-1)(q-1) 公开密钥:e和n 秘密密钥:d 加密:C = Me mod n 解密:M = Cd mod n 例:已知 n=3337, e=79, M=6882326879666683 求 C=? 解:n=pq=3337=47*71 p=47 q=71 (p-1)(q-1)=46*70=3220 d=e-1 mod 3220= 79-1 mod 3220=1019 将明文3位一组,m1=688, m2=232, m3=

文档评论(0)

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

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

1亿VIP精品文档

相关文档