网站大量收购闲置独家精品文档,联系QQ:2885784924

RSA加解密过程及实现.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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加解密过程及实现 RSA加解密过程及实现 PAGE RSA加解密过程及实现 ******************** 本科生作业 ******************** 兰州理工大学 计算机与通信学院 2017年春季学期 信息安全 课程 专 业: 物联网工程 姓 名: 学 号: 授课教师: 郭显 成 绩: RSA加解密过程及其实现 概述 RSA算法 RSA加密算法是一种最常用的非对称加密算法,CFCA在证书服务中离不了它。在公钥加密标准和电子商业中,RSA被广泛使用。 RSA算法使用乘方运算,明文以分组为单位进行加密,每个分组的二进制值均小于,也就是说,分组的大小必须小于或等于位,在实际应用中,分组的大小位,其中。对明文分组M和密文分组C,加密和解密过程如下: 其中收发双方均已知n,发送方已知e,只有接收方已知d,因此公钥加密算法的公钥为PU={e,n},私钥为PR={d,n}。该算法要能做公钥加密,必须满足以下条件: 可以找到e,d,n,使得对所有的Mn,有。 对所有的Mn,计算和是比较容易的。 由和确定是不可行的。 公钥与私钥 (1)随意选择两个大素数和,不等于,计算。 (2)根据欧拉函数,不大于且与互素的整数个数为 (3)选择一个整数与互素,并且小于 (4)用以下这个公式计算: (5)将和的记录销毁。是公钥,是私钥。是秘密的。Alice将她的公钥传给Bob,而将她的私钥藏起来。 图1 RSA加密过程 2.实例描述 选择两个素数,。 计算。 计算。 选择使其与互素且小于,这里选择。 确定使得且。因为,所以。可利用扩展的欧几里得算法来计算。 所得的公钥、私钥。该例说明了输入明文时这些密钥的使用情况。加密时需计算。利用模算术的性质,我们如下计算: 解密时,我们计算 算法的安全性 在RSA密码应用中,公钥是被公开的,即和的数值可以被第三方窃听者得到。破解RSA密码的问题就是从已知的和的数值(等于),想法求出的数值,这样就可以得到私钥来破解密文。从上文中的公式:或我们可以看出。密码破解的实质问题是:从的数值,去求出和。换句话说,只要求出和的值,我们就能求出的值而得到私钥。当和是一个大素数的时候,从它们的积去分解因子和,这是一个公认的数学难题。比如当大到1024位时,迄今为止还没有人能够利用任何计算工具去完成分解因子的任务。然而,虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的必威体育官网网址性能如何。此外,RSA的缺点还有: A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。 B)分组长度太大,为保证安全性,至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称加密算法。 4.程序代码 #include int rsa(int a,int b,int c) { int r=1; b=b+1; while(b!=1) { r=r*a; r=r%c; b--; } printf(%d\n,r); return r; } void main() { int p,q,e,d,m,n,t,c,r; char s; printf(请输入 p,q: ); scanf(%d%d,p,q); n=p*q; printf( n 的值是 %4d\n,n); t=(p-1)*(q-1); 序测试结果 图2 RSA加密 图3 RSA解密 总结:通过c语言的程序实现对RSA算法的理解加深了。

文档评论(0)

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

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

1亿VIP精品文档

相关文档