RSA算法的数论基础.docVIP

  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文档。上传文档
查看更多
RSA算法的数论基础

RSA算法的数论基础 公钥密码体制基础 一个好的密码体系的必要条件是合法用户能够很容易对秘密消息进行加密和解密,而这些过程对于其他人则是非常难的。 公钥密码体制的实现基于单向陷门函数。 单向陷门函数: 设f是一个函数,t是与f有关的一个参数。对于任意给定的x,计算y,使得y=f(x)是容易的。 如果当不知道参数t时,计算f的逆函数是难解的。 但当知道参数t时,计算f的逆函数是容易的。 则称f是一个单向陷门函数,参数t称为陷门。 二、RSA算法的安全基础 计算机科学家Rivest、Shamir和Adleman提出了基于素性检测和整数分解的第一个使 用公钥密码体制。算法的安全性建立这一数论难题基础上:将两个大素数相乘是容易计算的,而将该乘积分解成两个大素数因子是困难的。 素性检测问题:检测n的素性的最好额判定算法运行时间为,关于输入长度呈超越多项式速度增长。 整数因子分解问题:分解一个一般的整数n的最好的算法运行时间为,关于输入长度呈亚指数速度增长。 三、RSA算法实现的基础定理 算术基本定理: 任何大于1的整数能被因式分解为如下唯一形式: p1p2…pl(p1,p2,…,pl为素数) 费马定理 若p是素数,a与p互素,则 欧拉定理 欧拉函数表示不大于n且与n互素的正整数的个数。 当n是素数,。,p,q均为素数时,则 对于互素的a和n,有 1. 密钥的产生 ① 选两个互异的大素数p和q。 ② 计算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值。 ③ 选一整数e,满足1eφ(n),且gcd(φ(n),e)=1。 ④ 计算d,满足d·e≡1 mod φ(n),即d是e在模φ(n)下的乘法逆元,因e与φ(n)互素,由模运算可知,它的乘法逆元一定存在。 ⑤ 以{e,n}为公开钥,{d,p,q}为秘密钥。 设p,q是不同的素数,n=pq记φ(n)=(p-1)(q-1),如果e,d是与φ(n)互素的两个正整数(e,dφ(n)),并满足ed≡1(mod φ(n)),则对于每个整数x,都有。 分析:为了证明,只要证明φ(n)是的因数即可。又因为n=pq,而p,q都是素数,故只要证明p和q都是的因数即可,即 (1) (2) 证明证明式1,若p是x的因数则式1必然成立 若p不是x的因数,则由ed≡1(mod φ(n))得ed-1=k(p-1)(q-1),k为任意整数 则 根据费马小定理 因为x与p互素所 所以 同理可证 六、RSA算法中的计算问题 1.模运算性质 RSA的加密、解密过程的运算都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。而用模运算的性质:(a×b) mod n=[(a mod n)×(b mod n)] mod n就可减小中间结果。 2.模重复平方计算法 例如求,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,,,,则只需4次乘法。 3、乘法逆元的求法(欧几里德算法) 整数e,满足1eφ(n),且gcd(φ(n),e)=1 计算d,满足d·e≡1 mod φ(n),即d是e在模φ(n)下的乘法逆元,因e与φ(n)互素,它的乘法逆元一定存在。 求法可用欧几里得算法。 七、素性判定 在建立RSA密码的过程中,需要生成大量的随机素数,一般是先生成大量的随机整数,再通过算法检测其是否为素数。 判别给定的正整数是否素数简称素性判。 计算 (a)如果或则通过检验,可能为素数。回到继续选取另一个随机整数 (b)否则,有以及计算 4.()如果,则通过检验,可能为素数。回到1继续选取另一个随机整数 (b)否则,有计算 在1~x中随机选取一个整数,其为素数的概率大约为1/Inx。 八、因子分解 分解任意正整数n是,要寻找n的一个非平凡因子。对RSA的公开模数n,找到其任意一个非平凡因子即意味这彻底分解n和该RSA密码的破解。 举例Pollard p-1分解算法: 选择一个界B 选择一个整数k,k是大部分b的乘积满足 选择一个随机整数 计算 计算d=gcd(r-1,n) 6.如果1dn,d就是n的非平凡因子;如果d=1或d=n就回到2. 九、RSA算法的安全性 如果RSA的模数n被成功地分解为p×q,则获得φ(n)=(p-1)(q-1),从而攻击者能够从公钥e解出d,即,则攻击成功。随着人类计算能力的不断提高,原来被认为是不可能分解的大数已被成功分解。 因此,RSA算法的安全要求: n的长度在1024-2048比特 p和q的长度相差不能太多 p-1和q-1都应该包含大的素数因子 p-1和q-1的最大公因子要尽可能小 十、读书感悟 在对RSA算法这一问题进行查资料时,我发现它的算法竟都是我们学过的知识,只不过

文档评论(0)

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

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

1亿VIP精品文档

相关文档