RSA算由原理到实现.docVIP

  1. 1、本文档共39页,可阅读全部内容。
  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算由原理到实现

希赛网技术频道,IT新技术|构架设计|嵌入式|Web工程|案例剖析|网络工程|数据库工程|分布式|IT运维 本文版权归希赛网技术频道所 有,未经许可,任何媒体均不得改变其形 式进行转载或摘录,违者必究! 张峰岭 RSA是目前使用最广的公钥密码算法,本文比较全面地从原理到实现介绍了这个得 到广泛接受和实现的算法,并简要介绍了一些攻击RSA的方法。 1. 一个公开环境下的信息加密,在加密算法是公开的情况下,唯一能保证信息加密的是密 钥。在常规的对称加密算法中,如DES,加密和解密密钥是相同的,即信息的发送者和合法接 收者使用相同的密钥,意味前提条件为信息发送者和合法接收者互相认识或互相信任,而且意 味着密钥将分布在通信的每个节点,由此而带来了密钥管理的问题。如果泄露了密钥意味着 公开了所有秘密。 如果使加密密钥和解密密钥不相同,我们可以把加密密钥公开作为公钥,信息合法接收 者保管解密密钥作为私钥,则以上提到的问题则可以解决。 RSA算法是目前应用最广的公钥密码,有Rivest,Shamir和Adleman在1977年提出。它 基于一个非常简单的数论难题,很容易将两个素数乘起来,但分解该乘积却非常困难,从而, 该乘积可以公开且可作为加密公钥。不能从该乘积恢复这两个素数。解密需要用到这两个素 数。从而用很简单的形式实现了非常可靠的密码系统。 2.RSA 1)选取两个大素数,p和q.计算乘积n=pq ,n的欧拉函数?(n)=(p-1)(q-1) 2)随机选取d(d1),满足(d, ?(n))=1,根据欧几里德算法,存在整数x,y,满足 xd+y?(n)=1 取e=x ,显而易见,e满足(e, ?(n))=1且 ed≡1(mod ?(n)) d=e-1(mod ?(n)) 3)e和n构成公开密钥作为E,即E=(n,e), d和n构成私人密钥作为D,即D=(n,d).E=(n,e) 可以公开。这时两个素数p和q可以不再需要,它们应该被舍弃,但绝不可泄露。 1) 获得信息接收者的公开密钥E=(n,e) 2)将明文分组:m=m0,m1,m2,…,mk-1 ,使得每个min i=0,1,…,k-1 3)对每一组明文组用以下公式做加密变换ci=E(mi)=mie(mod n) 4)得到密文c=c0,c1,c2,…,ck-1 希赛网技术频道() 0731-8873047-8000,info@ 第 1 页 ??常Y鉢鵑啪y?惭vkV.?玸玓 希赛网技术频道,IT新技术|构架设计|嵌入式|Web工程|案例剖析|网络工程|数据库工程|分布式|IT运维 1)对每一组密文做解密变换mi=D(ci)=cd (mod n) 2)合并分组得到明文m=m0,m1,m2,…,mk-1 3.RSA 设a,b∈Z,a≠0,如果存在q∈Z使得b=aq,那么就说b可被a整除,记作a|b, a是b的约数。 设p≠0,±1,如果它除了显然约数±1, ±p外没有其他的约数,那么,p就称为 是素数,否则为合数。 素数有无穷多个 证明:用反证法,假设素数为有穷多个,设有n个,从2开始由小到大我们可以得到一 个有限的素数集合{qi|qi是素数且1=i =n}。我们考察a=q1q2….qn+1,因为我们知道qn是 最大的素数,所以a是一个合数,且a大于所有素数,所以a至少可以被一个素数整除,设为 qi,qi|a,因为又qi|q1q2…qn,所以qi|a-q1q2…qn,即qi|1,由于qi2,所以假设是错误的, 即素数必有无穷多个。 :设a,b是两个给定的整数,a≠0,那么,一定存在唯一的一对整数q与r,满 足 b=qa+r,0≤r|a|.此外,a|b的充要条件是r=0 :设u0,u1是给定的两个整数,u1≠0,u1不整除u0,则我们一定可以重复应用 定理4得到下面k+1个等式: u0=q0u1+u2, 0u2|u1| u1=q1u2+u3, 0u3u2 u2=q2u3+u4, 0u4u3 …… uk-1=qk-1uk+uk+1, 0uk+1uk uk=qkuk+1 证明:依次这样做,就得到:|u1|u2u3…uj+10 对uj,uj+1不断用定理3.3.1,由于小于|u1|的正整数只有有限个以及1整除任一整数, 所以这过程不能无限制地做下去,一定会出现某个k,要么1uk+1|uk,要么1=uk+1|uk :设a1,a2是两个整数.如果d|a1且d|a2,那么,d就称为是a1和a2的公约 数,a1,a2的公约数中最大的称为a1和a2的最大公约数,记作(a1,a2).设a1,…,ak是k个 不全为

文档评论(0)

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

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

1亿VIP精品文档

相关文档