rsa网络加密算法的实现与优化(源码)

摘 要在新信息时代,信息的保密尤为重要。公钥密码学的出现对现代保密体系起到十分重要的作用,其中RSA算法是目前在理论和实际应用中最为成熟和完善的一种公钥密码体制。它运用最多的地方是加密,还可以来进行身份验证和数字签名,是一种典型的公钥密码体制.RSA模数n=pq是RSA算法的安全性的核心。工程运用中所取的素数p和q为位数最少为100的十进制数,它的模数n=pq也就是200位的十进制数。根据求解两个大素数的乘积在计算上是易得的,不过如果要分解两个很大的素数的乘积而求出其素因子这个在计算上是不容易获得的。在加密和解密运算时的整数求解幂数运算所需时间很长,使运算速度相应的变慢,本文从数学理论上分析了RSA算法的原理,然后通过C语言和Java程序配合SQL server数据库进行实现,以实现并优化RSA加密技术,能够改善运算速度慢运算压力大的缺点。
目 录
第一章 引言 1
1.1.研究背景 1
1.2.研究现状与发展趋势 1
1.3.研究方向 2
第二章 RSA加密算法简介 4
2.1.什么是RSA加密 4
2.1.1.密钥生成 5
2.1.2.运算速度 5
2.2.RSA加密算法优点 5
2.3.RSA加密算法缺点 6
第三章 RSA数据加密的实现 7
3.1随机大素数的产生 7
3.2大素数生成方法 7
3.3 RSA算法数学原理 8
3.4 RSA加密算法优化 10
第四章 RSA加密算法程序实现步骤及优化 11
4.1工程步骤与设计 11
4.2 c算法优化 12
4.3 c算法优化结果 16
结束语 18
致 谢 19
参考文献 20
第一章 引言
1.1.研究背景
从20世纪末至今,互联网技术的快速发展使得计算机工具具有更好的普及和发展,其应用基本上覆盖人类社会的所有领域,不过怎么样确保信息的安全则是一个非常重要和复杂的问题。各个领域提出许多要求的需求,为此人们引入了许多加密信息的程
 *好棒文|www.hbsrm.com +Q: *351916072* 
序算法。RSA算法被大部分人认为是最成功的密码体制之一,在各行各业的应用中,这个算法的安全效果和计算性能一直有着人们的肯定,自然而然变成最流行的密码体制之一。 RSA算法在公钥密码体制中占着其它算法不可替代的作用。在这个算法中,每个通信主体都有两个钥匙,一个公钥(Public Key)用来对数据进行加密; 一个私钥(Private Key)用来对数据进行解密。
RSA在计算机软件这个领域的作用,主要表现在英特网上。网络上的信息加密连接、大部分领域涉及的数字签名以及网上数字证书等等诸如此类的生活应用都涉及到这个算法。众所周知它有着非常强大的工具包Open SSL。Open SSL是大家熟知代码开源的并且完成了SSL及其加密步骤的软件包。Open SSL就是运用了这个算法来完成各种签名和密钥交换,现今许多的电脑系统中有着非常重要的作用。与此之外,几乎所有电脑使用者都在使用的浏览器,名正言顺也存在着SSL协议,大规模使用了RSA支持的加密环节,由于采用MD5及SHA1,大多数运用在数字证书和数字签名内,对于天天使用互联网购买日用品和网络交易的人来说,可以说每一天都是在接触RSA这一项技术。
1.2.研究现状与发展趋势
中国古代秘密通信的手段,已有一些近于密码的雏形。其中《武经总要》这本书就记录到北宋两个国家交战时就是使用了当时文坛上出名的律诗来传递信息的,其中有一首40个字隐藏了40种不同的信息和需求,这种传达信息的方法已经有了加密的特点。
RSA是一种以数论为基础的非对称密码体制, 当然这种方法也属于一种分组的体制,并且包含了数学中因式分解的方法。它是以欧拉定理,素数检测为基础的,这个安全性是以大数的分解为基础,后面这个在数学理论上是不容易实现的。RSA算法是第一个功能完备且简单易于运用的加密应用。
1977年,Ron Rivest、Adi Shamirh和LenAdleman三人在美国麻省理工学院提出了RSA,并深入研究了这种加密算法。RSA是以三个人名字的首字母构成的以纪念他们。RSA加密算法在当今社会影响力是极其深厚的,到如今,RSA已经具有能压制所有所知晓的恶意攻击的能力,已经成为ISO推荐的加密标准。
对于入侵RSA最频繁的大多数是以大数因数分解为基础的。20世纪90年代末,RSA155(512bits)被入侵成功形成破解,在一台装有3.2G中央处理器的Cray C916计算机上耗费五个月左右时间(约8000 MIPS 年)以及224 CPU hours实现的。
2002年,RSA158也同样被攻击者们用大数分解的方法攻破了。
2009年12月12日,编号为 RSA768 (768bits,232 digits)同样无法逃过被攻击者攻破的命运
2013年2月15日上午,播道了一则消息,欧洲和美国的数学家和密码学家在一次巧合中意识到这种算法存在着缺点和攻击漏洞。
这些科学家声明,在做了几百万次试验后,发现其中几万个公钥不是根据理论随机出现的。相当于说,这个方法并不是无法攻破的。
这个著名的发现是由美国专家James P.Hughes和荷兰数学家Arjen K. Lenstra首次研究的。他们曾经说过:“我们发现绝大多数公钥都是按理论产生的,但是每一千个公钥中会有两个存在安全隐患。”
为了防止利用这个缺陷的违法现象出现,存在漏洞的公钥已经被人们从访问的数据库中去除了。当然为了网络上的安全起见,所以要求各网站做出相应的整改。
如今已经诞生了多类入侵的办法,比如Pollard p21方法、二次筛法、椭圆曲线算法和数域筛法等。RSA 的安全性是以数学上计算难度为基础的, 取决于于大整数分解这一个不容易解决的问题。安全可靠与人们使用密钥的长度有着很大联系,理论上如果有人发现了很快能够分解因子的方法,那么这时候用这种方法进行加密必然是不可靠地。一般来说完成这项任务的计算量太大,当今计算机的发展程度还是不大可能实现的。实际应用中说明在现阶段的技术基础下,大于1024 bit的的情况一般来说是不会被攻击者破解的,不会被顺利入侵进去的。不过在生活中,因为这个算法中有着大数的乘方计算,计算上有着相当的难度,所需要的时间也很长,自然而然的影响了算法的机密效率,对算法的作用产生严重的影响,所以许多人从其它的方面对这个方法进行着努力改进。所以一系列的优化算法就这样的产生了。人们需要不停地改变算法进行优化才能满足实际生活的需要。
正因如此,尽管当下产生了非常多的公钥体制算法,但它依然在许多领域应用中有着不可替代的作用。优于当今计算机的计算速度越来越快以及因子分解方法的进步, 它的密钥长度就会变得非常长, 现实生活中的软件和硬件的发展速度严重制约算法的使用。由于要让RSA算法在pc中运行的速度加快,非常多的的科学家发表了很多实用简单的办法,包含了以迅速生成大素数的Monte Carlo概率算法,加快模幂运算速度的Mary法、Yacobi法、加法链法和向量加法链法为基础的,还有采用孙子定理(CRT)优化的RSA的解密算法等。这些年来, 椭圆曲线密码体制(ECC)被越来越多的人重视, 与保密功能差不多的RSA 相比较, ECC 的密钥长度是要比前者小很多的, 密钥的生成及加解密的速度都是比前者优秀的,而且这个算法同样有着RSA 数字签名的优势。正因如此RSA算法迎来了很严峻的挑战。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/494.html

好棒文