RSA算法的应用与实现

龙源期刊网 http://www.qikan.com.cn

RSA算法的应用与实现

作者:白晓 蔡贵荣

来源:《科技视界》2013年第31期

【摘 要】RSA 算法是使用最广泛的一种非对称密码体制. 在对RSA 算法的原理、算法描述等进行研究的基础上,近一步研究了RSA 算法在数字签名、密钥交换等方面的应用. 最后在.NET平台中使用C#语言进行编程,实现RSA数字签名算法。 【关键词】RSA算法;数字签名;加密;解密 1 RSA简述

随着IT技术迅猛的发展,各个行业的信息化、网络化的增强,信息的安全性越来越得到人们的重视。一个完整的、先进的信息系统无不考虑到信息安全技术的应用。

RSA加密体制是一种公开的密码体制。RSA公匙密码体制是又R.L.Rivest,A.Shamir和L.Adelman于1978年提出的。RSA算法完善,既可用于加密,又可用于签名,并为用户的公开密钥签发公钥证书、发放证书、管理证书等提高了服务质量,RSA公钥密码体制在世界许多地方已经成为事实上的标准。

RSA是一个基于数论的非对称密码体制,是一种分组密码体制,是一种基于因子分解的指数函数作为单向陷门函数的公钥体制算法。它基础是数论的欧拉定理,素数检测,它的安全性是基于大数分解,后者在数学上是一个困难问题。 2 RSA算法 2.1 RSA算法描述

RSA的安全性基于复杂性理论中的计算安全性,依赖于大整数分解这一NP难题。可靠性与所用密钥的长度有很大关系,假如有人找到一种很快的分解因子的算法,即从一个公钥中通过因数分解得到私钥,那么用RSA加密的信息的可靠性肯定会极度下降。但由于其工作量巨大,按目前计算机的处理能力是不可能实现的。实践证明,在当前的技术和方法下,密钥不小于1024 bit的RSA算法仍然是安全的。这充分说明RSA系统具有良好的保密性能。 因此,尽管先后出现了很多新的公钥体制算法,但RSA仍然在不同应用领域占据了重要的位置。随着计算机运算速度的提高以及因子分解算法的突破,RSA的密钥长度将越来越大,其软硬件实现速度将成为制约其使用的重要因素。 RSA系统由以下几部分组成[1]:

龙源期刊网 http://www.qikan.com.cn

1)随机选取的在素数P和Q,还有N ,其中N=P*Q,P和Q保密,N公开。 2)任取Φ(n)=(P-1)*(Q-1),其中(n)表示比n小的素数的个数,任取2 3)计算d,使e*d=1(mod (n)),称d为e对模(n)的逆,其中d为解密秘钥,保密。在RSA系统中,设m为明文,且明文块的数值大于n,c为密文,则其加密和解密算法为:加密算法C=E(m)=m^e(mod n)解密算法 m=D(c)=c^d(mod n)

在RSA系统中(e,n)构成加密秘钥,即公钥,(d,n)构成解密秘钥,即私钥。 2.2 RSA安全性的分析

在公布RSA算法之后,在使用RSA密码体制和分析RSA算法发现了一系列的算法本身脆弱性及其存在的问题。

1)RSA公钥密码体制在加密或解密中涉及大量的数值计算,其加密和解密的运算时间比较长,以致于实际使用RSA密码体制无法应用到软件产品,必须用超大规模集成电路的硬件产品。

2)虽然提高N位数会大大提高RSA密码体制的安全性,但其计算量呈指数增长,以致使其实现的难度增大,实用性降低。

3)RSA公钥密码体制的算法完整性(指密钥控制加密或解密变换的唯一性)和安全性(指密码算法除密钥本身外,不应该存在其它可破译密码体制的可能性)沿有等进一步完善。 4)RSA算法面临着数学方法的进步和计算机技术飞跃发展带来的破译密码能力日趋增强的严重挑战。RSA公开密钥密码算法

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4