当前位置:文档之家› 实现加密解密程序

实现加密解密程序

目录一.摘要 (1)二.网络安全简 (2)安全技术手段 (3)三.现代密码技术分类 (3)1.对称密码体制 (4)2.非对称密码体制 (4)四.RSA加密解密体制 (5)1.RSA公钥密码体制概述 (5)2.RSA公钥密码体制的安全性 (6)3.RSA算法工作原理 (6)五.实现RSA加密解密算法 (7)六.RSA的安全性 (11)七.结语 (13)实现加密解密程序摘要:随着计算机网络的广泛应用,网络信息安全的重要性也日渐突出,计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全;网络安全也已经成为国家、国防及国民经济的重要组成部分。

密码技术是保护信息安全的最主要手段之一。

使用密码技术可以防止信息被篡改、伪造和假冒。

加密算法:将普通信息(明文)转换成难以理解的资料(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;密码机包含了这两种算法,一般加密即同时指称加密与解密的技术。

关键字:密码技术、加密算法、解密算法、密码机、RSA正文一、网络安全简介网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

网络安全从其本质上来讲就是网络上的信息安全。

从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。

网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。

网络安全的具体含义会随着“角度”的变化而变化。

比如:从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐私。

二、安全技术手段物理措施:保护网络关键设备(如交换机、路由器、服务器、大型计算机等),制定严格的网络安全规章制度,采取防火、防辐射、安装不间断电源(UPS)等措施。

访问控制:对用户访问网络资源的权限进行严格的认证和控制。

例如,进行用户身份认证,对口令加密、更新和鉴别,设置用户访问目录和文件的权限,控制网络设备配置的权限,等等。

数据加密:加密是保护数据安全的重要手段。

数据加密是对网络中传输的数据进行加密,到达目的地后再解密还原为原始数据,保障信息被人截获后不能读懂其含义,目的是防止非法用户截获后盗用信息。

防止计算机网络病毒,安装网络防病毒系统。

其他措施:其他措施包括信息过滤、容错、数据镜像、数据备份和审计等。

近年来,围绕网络安全问题提出了许多解决办法,例如防火墙技术等。

防火墙技术是通过对网络的隔离和限制访问等方法来控制网络的访问权限,从而保护网络资源。

防火墙不仅仅是路由器、堡垒主机、或任何提供网络安全的设备的组合,防火墙是安全策略的一个部分。

其他安全技术包括密钥管理、数字签名、认证技术、智能卡技术和访问控制等等。

安全策略建立全方位的防御体系,甚至包括:告诉用户应有的责任,公司规定的网络访问、服务访问、本地和远地的用户认证、拨入和拨出、磁盘和数据加密、病毒防护措施,以及雇员培训等。

所有可能受到攻击的地方都必须以同样安全级别加以保护。

仅设立防火墙系统,而没有全面的安全策略,那么防火墙就形同虚设。

三、现代密码技术分类根据密钥类型不同将现代密码技术分为两类:一类是对称加密(秘密钥匙加密)系统,另一类是公开密钥加密(非对称加密)系统。

1.对称密码体制对称密码体制是一种传统密码体制,也称为私钥密码体制。

在对称加密系统中,加密和解密采用相同的密钥。

因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。

对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。

但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。

在对称密钥密码体系中,也许对不同的信息使用不同的密钥,但都面临密钥管理的难题。

由于每对通讯方都必须使用异于他组的密钥,当网络成员的数量增加时,密钥数量成二次方增加。

更尴尬的难题是:当安全的通道不存在于双方时,如何建立一个共有的密钥以利安全的通讯?如果有通道可以安全地建立密钥,何不使用现有的通道。

这个矛盾是长年以来密码学无法在真实世界应用的阻碍。

2.非对称密码体制非对称密码体制也叫公钥加密技术,是针对私钥密码体制的缺陷被提出来的。

相对于对称密钥密码体系,最大的特点在于加密和解密使用不同的密钥。

由于加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,故其可称为公钥密码体制。

假如一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。

私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。

公开密钥系统通常是复合式的,内含一个高效率的对称密钥算法,用以加密信息,再以公开密钥加密对称钥匙系统所使用的钥匙,以增进效率。

(1)解决大规模网络应用中密钥的分发和治理问题采用分组密码、序列密码等对称密码体制时,加解密双方所用的密钥都是秘密的,而且需要定期更换,新的密钥总是要通过某种秘密渠道分配给使用方,在传递的过程中,稍有不慎,就轻易泄露。

公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。

同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。

采用公钥密码体制,N个用户只需要产生N对密钥。

由此可见,只有公钥密码才能方便、可靠地解决大规模网络应用中密钥的分发和治理问题。

(2)实现网络中的数字签名机制长期以来的日常生活中,对于重要的文件,为了防止对文件的否认,伪造,篡改等等的破坏,传统的方法是在文件上手写签名。

但是在计算机系统中无法使用手写签名,而代之对应的数字签名机制。

数字签名应该能实现手写签名的作用,其本质特征就是仅能利用签名者的私有信息产生签名。

对称密钥技术由于其自身的局限性,无法提供网络中的数字签名。

这是因为数字签名是网络中表征人或机构的真实性的重要手段,数字签名的数据需要有惟一性、私有性,而对称密钥技术中的密钥至少需要在交互双方之间共享,因此,不满足惟一性、私有性,无法用做网络中的数字签名。

相比之下,公钥密码技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒,所以,可以用做网络中的数字签名服务。

当它被验证时,它也能被信任的第三方(如法官)在任一时刻证实只有私有信息的唯一把握者才能产生此签名。

其特点:签名是可信的,签名是不能伪造的,签名是不可重用的,签名后的文件是不能更改的,签名是不能否认的。

四、RSA加密解密体制1.RSA公钥密码体制概述RSA算法于1977年由美国麻省理工学院的RonalRivest、AdiShamir、LenAdleman 三位年轻教授提出。

该算法利用了数论领域的一个事实:把两个大质数相乘生成一个合数是件十分容易的事情,但要把一个合数分解为两个质数却十分困难,是一种分组密码体制。

合数分解问题目前仍然是数学领域尚未解决的一大难题,至今没有任何高效的分解方法。

它无需收发双方同时参与加密过程,且非常适合于电子函件系统的加密。

RSA建立方法如下:首先随机选两个大素数p、q,计算n=p%26#8226;q;计算欧拉函数φ(n)=(p-1)(q-1);任选一个整数e为公开加密密钥,由e求出秘密解密密钥加密/解密:将明文分成长度小于位的明文块m,加密过程是:c=E(m,e)=modn 解密过程是:m=D(c,d)=modn2.RSA公钥密码体制的安全性RSA的安全性依靠于大整数的因式分解问题。

实际上,人们推测RSA的安全性依靠于大整数的因式分解问题,但谁也没有在数学上证实从c和e计算m需要对n进行因式分解。

可以想象可能会有完全不同的方式去分析RSA。

然而,假如这种方法能让密码解析员推导出d,则它也可以用作大整数因式分解的新方法。

最难以令人置信的是,有些RSA变体已经被证实与因式分解同样困难。

甚至从RSA加密的密文中恢复出某些特定的位也与解密整个消息同样困难。

由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。

速度一直是RSA的缺陷。

一般来说只用于少量数据加密。

3.RSA算法工作原理首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数......p,q,r这三个数便是privatekey接着,找出m,使得rm==1mod(p-1)(q-1).....这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了.....再来,计算n=pq.......m,n这两个数便是publickey编码过程是,若资料为a,将其看成是一个大整数,假设a=n的话,就将a表成s进位(s%26lt:=n,通常取s=2^t),则每一位数均小于n,然后分段编码......接下来,计算b==a^mmodn,(0%26lt:=b若p,q是相异质数,rm==1mod(p-1)(q-1),a是任意一个正整数,b==a^mmodpq,c==b^rmodpq,则c==amodpq证实的过程,会用到费马小定理,叙述如下:m是任一质数,n是任一整数,则n^m==nmodm%26lt:证实%26gt:因为rm==1mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整数因为在modulo中是preserve乘法的(x==ymodzandu==vmodz=%26gt:xu==yvmodz),所以c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq(1)假如a不是p的倍数,也不是q的倍数时:则a^(p-1)==1modp(费马小定理)=%26gt:a^(k(p-1)(q-1))==1modpa^(q-1)==1modq(费马小定理)=%26gt:a^(k(p-1)(q-1))==1modq所以p,q均能整除a^(k(p-1)(q-1即a^(k(p-1)(q-1))==1modpq即a^(k(p-1)(q-1))==1modpq=%26gt:c==a^(k(p-1)(q-1)+1)==amodpq(2)假如a是p的倍数,但不是q的倍数时:则a^(q-1)==1modq(费马小定理)=%26gt:a^(k(p-1)(q-1))==1modq=%26gt:c==a^(k(p-1)(q-1)+1)==amodq=%26gt:q|c-a因p|a=%26gt:c==a^(k(p-1)(q-1)+1)==0modp=%26gt:p|c-a所以,pq|c-a=%26gt:c==amodpq(3)假如a是q的倍数,但不是p的倍数时,证实同上(4)假如a同时是p和q的倍数时:则pq|a=%26gt:c==a^(k(p-1)(q-1)+1)==0modpq=%26gt:pq|c-a=%26gt:c==amodpq这个定理说明a经过编码为b再经过解码为c时,a==cmodn(n=pq)但我们在做编码解码时,限制0%26lt:=a<N,0<=C<N,所以这就是说A等于C,所以这个过程确实能做到编码解码的功能。

相关主题