毕业设计(论文)基于RSA的加密解密系统的设计与实现.doc
《毕业设计(论文)基于RSA的加密解密系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于RSA的加密解密系统的设计与实现.doc(31页珍藏版)》请在三一办公上搜索。
1、武汉工程大学邮电与信息工程学院毕业设计(论文)基于RSA的加密解密系统的设计与实现Based on RSA encryption and decryption system design and implementation学生姓名 学 号 专业班级 网络工程0701指导教师 2011年5月作者声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文
2、)引起的法律结果完全由本人承担。毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。特此声明。 作者专业: 作者学号: 作者签名: _年_月_日摘 要随着电子计算机的飞速发展,全球网络普遍化。人们的工作、生活、学习都离不开网络。然而在网络的互相交流、保证个人的安全、隐私非常的重要。本论文阐述了密码在网络生活中的重要作用。密码技术是保护信息安全的主要手段之一。它不仅具有保证信息机密性的信息加密功能,而且具有数字签名、身份验证、秘密分存、系统安全等功能。因此,使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确定性,防止信息被篡改、伪造和假冒。RSA公钥密码算法是迄今为止在理论
3、上最为成熟、完善的公钥密码体制。 从提出到现在已经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。它是第一个既能用于数据加密也能用于数字签名和密钥分配与管理的算法。它易于理解和操作,也很流行。关键词:RSA 加密 解密 公钥AbstractAlong with the rapid development of computer, and a global network generalization. Peoples work, life and study is inseparable from the network. However, in the mutual
4、exchanges and communication network. Ensure personal security, privacy is very important. This paper expounds the password on the network to the important role of life. Password protect information security technology is one of the main means. It has not only ensuring information confidential inform
5、ation encryption functions, and with digital signatures, identity authentication, secret points to save, system security, and other functions. Therefore, using cipher technology can not only ensure the confidentiality of information, but also can ensure the completeness and uncertainty of informatio
6、n, prevent information tampered, forge and hypocrisy. RSA public-key cryptosystem is by far the most mature in theory, perfect public key cryptosystems. Now from pose to the test of experience various attacks for people to accept, gradually, generally, is now one of the most outstanding public-key s
7、cheme. It is the first can used for data encryption could also be used for digital signatures and key distribution and management of the algorithm. It is easy to understand and operation, is also very popular. Key Words: rsa ; encryption; decryption; Public key目 录第1章 RSA简绍21.1 什么是RSA21.2 RSA的速度31.3
8、加密算法的缺点31.4 RSA算法描述4第2章 RSA加密解密体质简介52.1 公钥密码算法52.2 RSA体质算法过程62.3 RSA体质的实现62.4 RSA的安全性72.5 RSA算法中的数字签名82.6 明文加密及密文解密8第3章 RSA算法介绍和需求分析93.1公钥加密算法RSA93.2 RSA算法介绍113.3 RSA算法需求分析123.4 RSA算法特点143.5 RSA的选择密文攻击153.6 RSA的公共模数攻击15第4章 RSA算法代码及运行结果174.1 RSA算法代码174.2 RSA算法结果分析24第5章 总结与展望25参考文献26致谢27第1章 RSA简绍一个公开环
9、境下的信息加密,在加密算法是公开的情况下,唯一能保证信息加密的是密钥。在常规的对称加密算法中,如DES,加密解密密钥是相同的,如信息的发送者和合法接收者使用相同的密钥,意味前提条件为信息发送者和合法接收者互相认识或者互相信任,而且意味着密钥将分布在通信的的每一个节点,由此带来了密钥管理问题。如果泄露了密钥意味着公开了所有密钥。如果是加密密钥和解密密钥不相同,我们可以把加密密钥公开作为公钥,信息合法的接收者保管解密密钥作为私钥,则以上提到的问题可以解决。公钥密码体制于1976年由W.Diffie和M.Hellman提出,同时,R.Merkle也独立提出了这一体制。这种密码体制采用了一对密钥加密密
10、钥和解密密钥(且从解密密钥推出加密密钥是不可行的),这一对密钥中,一个可以公开(称之为公钥),另一个为用户专用(私钥)。RSA算法是目前应用最广的公钥密码,有Rivest,Shamir和Adleman在1977年提出,它基于一个非常简单的数论难题,很容易将两个素数相乘,但分解该乘积却十分艰难,从而,该乘积可以公开且可作为加密密钥。不能从该乘积恢复出这俩个素数。解密密钥需要用到这两个素数。从而用很简单的形式实现了非常可靠的密码系统。1.1 RSA算法简介RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考
11、验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。1.2 RSA的速度由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。1.3 加密算法的缺点(1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。(2)RSA的安全性依赖于大数的
12、因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NPC问题。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构: 这个固有的问题来自于公钥密码系统的最有用的特征每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或
13、等等攻击.(3)速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。为了速度问题,目前人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。1.4 RSA算法描述RSA的安全性依赖
14、于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 1.1密钥的生成(1)选择两个大素数, 和。计算: 和欧拉函数值: (2)随机取一整数,且和互素。此时求的满足: 则 (3)将和作为公开密钥,作为私人密钥。 其中,, , ,和都是私密的陷门(四项并不是相互独立的),这些信息是不可以泄漏的。1.2加密(1)获得信息接收者的公开密钥(2)将明文分组:, , ,使得每个, ,1,2,(3)对每一组明文组用以下公式变换 e(4)得到密文,,1.3解密(1)对每一组密文做解密变换 d(2)合并分组得到明文,,,第2
15、章 RSA加密解密体质简介RSA 公钥密码算法是迄今为止在理论上最为成熟、完善的公钥密码体制。 从提出到现在已经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。它是第一个既能用于数据加密也能用于数字签名和密钥分配与管理的算法。它易于理解和操作,也很流行。因为它既可用于加密,又可用于签名,并为用户的公开密钥签发公钥证书、发放证书、管理证书等,提高了服务质量,所以, RSA 公开密钥密码在当今的信息交换过程中已得到广泛的应用和实践,RSA 公钥密码体制在世界许多地方已经成为事实上的标准。2.1 公钥密码算法公钥密码算法最主要的特点是加密和解密使用不同的密钥,且加密密钥能公开
16、,而仅需保守解密密钥的机密的密码算法。在这种加密算法中,从公开的加密密钥无法推导出保密的解密密钥,也无法从加密密钥和密文恢复出相应的明文。最有影响的公钥密码算法是RSA,它能抵抗到目前为止己知的所有密码攻击。RSA算法是第一个既能用于数据加密也能用于数字签名的算法,算法的名字以发明者的名字命名。RSA算法的安全性依赖于大数分解问题的难解性。算法中使用的公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。RSA算法在ISAKMP/Oakley框架中被用做一种可能的身份认证方式。Diffie-Hellman密钥交换算法是ISAK
17、MPIOakley框架的一个关键组成部分。在一个密钥协商会话的开始阶段通信参与方通过使用Diffe-Hellman算法产生双方共享的密钥,这些密钥将被用于密钥协商协议的后续步骤。在实际应用中,人们通常将对称密钥算法和公钥密码算法结合在一起使用,以实现最佳性能。即使用某个对称密钥密码体制来加密需传递的机要信息,而同时使用RSA等非对称密钥密码体制来传送DES的密钥。这样就可以综合发挥两种密码体制的优势,即DES高速简便性和RSA密钥管理的方便和安全性。2.2 RSA体质算法过程RSA密码体制使用了模的非负最小完全剩余系中的运算,这里n是两个不同的素数和的乘积。RSA体制的算法过程如下: 首先产生
18、密钥,过程如下: (1)随机产生两个长度为位的素数和。 (2)计算公钥;(是位的长度)。 (3)随机产生一个加密密钥,2=keyE=(n)-1,其中GCD(keyE,(n)=1。 注意这是保证解密密钥keyEkeyD mod()(n)=1有解的充要条件,(n)称为n的欧拉函数,值为:(n)=(P-1)*(Q-1)。 (4)求解解密密钥keyD=keyE-1 mod (n) ,keyE-1为解密密钥keyD的逆元 ,此公式原方程为(keyEkeyD mod(n)=1)。 由此公钥,加密密钥和解密密钥全部产生。 其次,对明文加密或对密文进行解密,过程如下: (1)加密: C = MkeyE mod
19、 publicKey;其中M表示明文,C表示密文。 (2)解密: M = CkeyD mod publicKey; 其中M表示明文,C表示密文。2.3 RSA体质的实现RSA密码体制的实现是一个比较复杂的过程,它涉及到素数的产生、大整数模运算等数学运算。RSA体制中,p、q均为大的素数,如何有效地产生大素数将是实现RSA体制所需解决的第一个问题。 通常情况下,人们使用一种概率算法来产生大素数。这是因为p、q都是大素数,如果使用因子分解的办法来求素数p、q,这样的难度与对RSA进行攻击(既分解大合数)实际上是相同的,在计算机是可行的。 概率算法的工作过程一般并不着眼于产生素数,而是首先随机地产生
20、一个大奇数,然后使用概率性算法判定该奇数是否为素数(这样的过程一般称为素性检测)。2.4 RSA的安全性RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。若n被因式分解成功,则RSA便被攻破。还不能证明对RSA攻击的难度和分解n的难度相当,但也没有比因式分解n更好的攻击方法。已知n,求
21、得F(n)(n的欧拉函数),则p和q可以求得。因为根据欧拉定理,F(n) = (p-1)(q-1) = pq (p + q) + 1。和(p q )2 = (p + q)2 4pq;据此列出方程,求得p和q。另一个攻击RSA的方法是根据C ae mod n 来计算C1/e mod n。这种攻击方式没有一种普遍的实现方法,也不知道是否其难度与对n因式分解相当。但是在一些特殊的情况下,当多个相关的信息用同样的密钥加密时,可能很容易被攻破。当然也有其他一些方法,不是面向完全攻破RSA,而只是希望得到一部分信息或者针对RSA的实现用非一般性的手段来攻击即使买通某些人得到保密密钥也是一种方法!为安全起见
22、,对p和q要求:p和q的相差不大;(p-1)和(q-1)有大素数因子;gcd(p-1,q-1)很小,满足这样条件的素数称做安全素数。RSA的出现使得大整数分解因式这一古老的问题再次被重视,近些年来出现的不少比较高级的因数分解方法使“安全素数”的概念也在不停的演化。所以,选择传统上认为是“安全素数”并不一定有效的增加安全性,比较保险的方法就是选择足够大的素数。因为数越大,对其分解因式的难度也就越大!对n和密钥长度的选择取决于用户保密的需要。密钥长度越大,安全性也就越高,但是相应的计算速度也就越慢。由于高速计算机的出现,以前认为已经很具安全性的512位密钥长度已经不再满足人们的需要。1997年,R
23、SA组织公布当时密钥长度的标准:个人使用768位密钥,公司使用1024位密钥,而一些非常重要的机构使用2048位密钥。当时的人们预计到个人使用的768位密钥将在两年后就会生存期满,那么也就是指今年!所以密钥长度的选取也要考虑到这个长度不再具效力的预计时间。RSA的安全性并不能仅靠密钥的长度来保证。在RSA算法中,还有一种值得注意的现象,那就是存在一些n = pq,使得待加密消息经过若干次RSA变换后就会恢复成原文。这不能不说是RSA本身具有的一个缺点,选择密钥时必须注意避免这种数。2.5 RSA算法中的数字签名 RSA既可以用来加密数据,也可以用于身份认证。和Hash签名相比,在公钥系统中,由
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 RSA 加密 解密 系统 设计 实现
链接地址:https://www.31ppt.com/p-3979863.html