(RSA公钥密码体制).pptVIP

  1. 1、本文档共163页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(RSA公钥密码体制)

产生素数的方法可分为以下两类: 1.确定性素数产生法: (1)基于Pocklington定理的确定性素数产生方法,它需要已知n-1的部分素因子. 定理5.20(Pocklington定理) 设n=RF+1,这里 是不同的素数,若存在a满足: 那么n的每一素因子p都有p=F*m+1的形式,m大于等于1,于是若 ,则n为素数. (2)基于Lucas定理的确定性素数产生方法,它需要已知n-1的全部素因子. 定理5.21(Lucas定理) 设n为正整数,若存在a满足: 问题 给定一个整数n,如何有效的判定n为素数. Efficiently = in time a polynomial in number of digits = (log n)c for some constant c 素数判定有多项式时间算法吗?一直以来是一个颇受关注的问题. 试除法 用小于等于 n1/2的每一个整数试除. 大约在 ~230 BC时就知道 (Sieve of Eratosthenes) 所需计算时间: O(n1/2). 当n是合数时也可以得到n的一个因子. 试除法速度太慢 对于大整数利用试除法判定是不可能的. 例如:对于一个100位的大整数, 需要 1050 次除法. 有更快的判定素数的方法吗? 虽然做过很多尝试,在AKS算法出现之前都没能获得成功. For example, Wilson (18th century) showed: N is prime iff (n-1)! = -1 (mod n) This requires n-3 multiplications Fermat定理 if n is prime then for any a: an = a (mod n). It is easy to check: Compute a2, square it to a4, square it to a8, … Needs only O(log n) multiplications. 能否利用Fermat定理判定素数? For a “few” a’s test if an = a (mod n); if yes, output PRIME else output COMPOSITE. 但是没能成功 For n = 561 = 3 * 11 * 17, all a’s satisfy the equation!! PRIMES in P (almost) [1983] Adleman, Pomerance, and Rumely 给出了一个确定性算法所需计算时间为O( (log n)c log log log n). PRIMES is in P 直到2002年,由Manindra Agrawal,Neeraj Kayal and Nitin Saxena提出的AKS算法,才为我们提供了一个可以在多项式时间内完成对指定数进行素数判定的确定性算法,该算法的运行时间为 . 主要想法: 想法还是源于 Fermat’s 定理. 然而: 如果直接模 n (ring Z/nZ)运算没有很好的结果可以利用. 于是将环扩展到更大的环上希望有更好的结果可以利用. 最终考虑多项式模 n 和 Xr–1, 即环Z/nZ[X]/(Xr-1). 推广的fermat定理 如果n是素数, 则对任意的a有: (X + a)n = Xn + a (mod n, Xr-1). Proof: If n is prime, n divides for every i, 0 i n. If n is composite, then n does not divide for any prime p dividing n. 一个可能的测试 如果对于任意给定的n,都存在一个小 r 和很少的 a, 满足推广的fermat定理,要是能判定出n是素数,则可得到一个好的素性判定方法,这就是AKS算法. 很容易证明: 如果选择一个合适的小”r”,对每一个0 a 2 ?r log n 有 (X + a)n = Xn + a (mod n, Xr-1)成立 则 n 是一个数的方幂或者n有一个小于 r的素因子.由此得到了以下的素数判定方法. AKS算法 输入n1 ⑴ if( )输出合数; ⑵ r=2; ⑶ while(rn){ ⑷ if(gcd(n,r)≠1) 输出合数; ⑸ if(r素数){ ⑹ 设q为r-1的最大素因子; ⑺如果 ⑻ break;} ⑼ r=r+1; ⑽ }

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档