信息论课件-公钥密码体制.pptVIP

信息论课件-公钥密码体制.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文档。上传文档
查看更多
例:p=47, q=61, ?(n)=(47-1)(61-1)=2760时,SK=167是否为秘密密钥的候选者? 用欧氏算法计算:gcd(2760,167)=1即可证明。 Q X1 X2 X3 Y1 Y2 Y3 - 1 0 2760 0 1 167 16 0 1 167 1 -16 88 1 1 -16 88 -1 17 79 1 -1 17 79 2 -33 9 8 2 -33 9 -17 281 7 1 -17 281 7 19 -314 2 3 19 -314 2 -74 1223 1 用RSA算法加密与解密的过程: 例:明文=“RSA ALGORITHM” (1) 明文用数字表示 空白=00, A=01, B=02, …, Z=26 (两位十进制数表示) 1819 0100 0112 0715 1809 2008 1300 (2) 利用加密变换公式 C=mPK mod r, 即C =mod 2867=2756 PK=1223=10011000111 =210+27+26+22+21+20 =1024+128+64+4+2+1 C(mod 2867) · 1819128· 181964· 18194· 18192· 18191(mod 2867) =2756 2756 2001 0542 0669 2347 0408 1815 选择两个大素数p和q,通常要求每个均大于10100。 计算n=pxq和z=(p-1)(q-1)。 选择一与z互素的数、令其为d 。 找到一个e满足e×d=1 (mod z)。 选好这些参数后,将明文划分成块,使得每个明文报文P长度m满足0mn。加密P时,计算C=Pe(mod n),解密C时计算P=Cd(mod n)。由于模运算的对称性,可以证明, 在确定的范围内,加密和解密函数是互逆的。 为实现加密,需要公开(e, n),为实现解密需要(d, n)。 RSA算法归纳 如何计算ab mod n? 如何判定一个给定的整数是素数? 如何找到足够大的素数p和q ? 问题…… 要点1:(a x b) mod n = [(a mod n) x (b mod n)] mod n] 要点2:a16=aaaaaaaaaaaaaaaa =a2, a4,a8, a16 更一般性的问题:am m的二进制表示为bkbk-1…b0, 则 计算am mod n am mod n = [? a(2i)] mod n = ?[ a(2i) mod n] bi?0 bi?0 如何计算ab mod n? 快速取模指数算法计算abmodn c 0;d 1 for i k downto 0 do c 2×c d (d ×d)mod n if bi=1 then c c+1 d (d ×a)mod n return d 快速取模指数算法:例子 i 9 8 7 6 5 4 3 2 1 0 bi 1 0 0 0 1 1 0 0 0 0 c=0 1 2 4 8 17 35 70 140 280 560 d=1 7 49 157 526 160 241 298 166 67 1 7560mod561=1 Miller and Rabin, WITNESS算法 WITNESS(a,n) 判定n 是否为素数,a是某个小于n的整数 1. 令bkbk-1…b0 为(n-1)的二进制表示, 2. d ? 1 3. for i ? k downto 0 4. do x ?d 5. d ? (d ? d) mod n 6. if d = 1 and x ? 1 and x ? n-1 7. then return TRUE 8. if bi = 1 9. then d ? (d ? a) mod n 10. if d ? 1 11. then return TRUE 12. return FALSE 返回值: TRUE: n一定不是素数 FALSE: n可能是素数 应用: 随机选择a n, 计算s次, 如果每次都返回FALSE, 则这时n是素数的概率为 (1 - 1/2s) 如何判定一个给定的整数是素数? 1. 随机选一个奇数n (伪随机数发生器) 2. 随机选择一个整数a n 3. 执行概率素数判定测试,如果n 未测试通过,则 拒绝数值

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档