一种基于DES和RSA混合加密算法的研究

时间:2022-07-24 09:07:03

一种基于DES和RSA混合加密算法的研究

摘要: 本文探讨了对称加密方法与非对称加密方法的特点,对DES算法和RSA算法进行了分析,最后结合两种算法,设计了

一种混合加密算法。

关键词:DES; RSA; 混合加密算法

中图分类号: TP309.7文献标识码:B文章编号:1002-2422(2011)01-0002-02

Hybrid Based on DES and RSA Encryption Algorithm

Yang Xiaoming

Abstract:The paper discusses the method of symmetric encryption and asymmetric encryption methods characteristic of the DES

algorithm and the RSA algorithm is analyzed, the final combination of tow kinds of algorithms, design of a hybrid e-

ncryption algorithm.

Key words:

1 对称加密算法

对称加密技术就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来,在大多数对称算法中,加密?蛐解密密钥是相同的。这种技术要求发送方和接收方在进行安全通信之前,先商定一个密钥。这样发送方和接收方使用相同的密钥对信息进行加密和解密。对称算法的安全性依赖于密钥,泄露密钥就意味着任何人都能对消息进行加密?蛐解密。只要通信需要保密,密钥就必须保密。因此对称算法就是指加密和解密过程均采用同一把密钥。

这种加密技术由于双方拥有相同的密钥,具有易于实现和速度快的优点,所以广泛应用于通信和存储数据的加密和解密。但是,如果多个用户之间进行通信加密时,每一对用户必须使用一个密钥,这就意味着如果有N个用户相互通信需要使用对称加密技术时,就存在 N?}(N-1)?蛐2个不同的密钥,这样才能保证双方收发密文时第三者无法了解其所使用的密钥和密文内容。当N很大时,记住如此多的密钥是不可能的,而保留起来又会引起密钥泄漏的可能性增加。另外,如何安全地将加密解密所使用的密钥传送给对方,也是一个必须考虑的问题。因此,对称加密技术的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对其发送或接收的消息解密,密钥的保密性对通信安全至关重要。

DES是一个分组加密算法,以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出。DES是一个对称算法,加密和解密用的是同一算法(除密钥编排不同以外),密钥可以为任意56位的数(密钥通常为64位的二进制数,但每个8的倍数位用于奇偶校验被忽略),其安全性依赖于所用的密钥。DES对64位的明文分组进行操作,通过一个初始置换,将明文分组成左半部分Li和右半部分Ri,各32位长。然后进行16轮完全相同的运算, 数学公式:Li=Ri-1, Ri=Li-1f(Ri-1,Ki),i=1,2,…16,在运算过程中数据与密钥结合。经过16轮后, 左、右半部分合在一起经过一个逆置换(初始置换的逆置换), 完成算法。在每一轮中, 密钥进行左位移, 然后再从密钥的56位中选出48位,通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个s盒将这48位替代成新的32位数据, 再将其置换一次。这些运算构成了函数f。然后,通过另一个异或运算,函数f输出与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次, 实现DES的16轮运算。

2 非对称加密算法

非对称算法也叫作公钥密钥算法,这种加密技术中加密密钥和解密密钥是不同的,而且解密密钥不能根据加密密钥计算出来。这种技术也可以称为公开密钥加密技术,之所以又叫做公开密钥加密技术是由于加密密钥可以公开,即陌生人可以得到加密密钥并用其加密信息,但只有用相应的解密密钥才能解密信息。在这种加密技术中,加密密钥被叫做公开密钥,而解密密钥被叫做私有密钥。公开密钥和私有密钥成对出现,而且两个密钥之间存在数学关系;用一个密钥加密过的密文只能用对应的另一个密钥来解密,并且不能由一个密钥推算出另一个密钥。这种技术要求发送方和接收方在安全通信之前,发送方通过网络查询或其它方式得到接收方的公开密钥;发送方使用公开密钥对明文进行加密得到密文;接收方收到密文后,用自己的私有密钥进行解密,恢复出明文。非对称加密技术可以使用户不必记忆大量的提前商定好的密钥,因为发送方和接收方事先根本不必商定密钥,发送方只要可以得到可靠的接收方的公开密钥就可以给他发送信息了。这样使得密钥的管理更加简单,只须保管一对密钥就可以了。

RSA是一种公开密钥机理的加密算法。每个用户拥有两个密码,一个公开Ke,一个保密Kd。对明文加密,可以使用其中任一密码,但解密必须使用另一个密码。加密/解密算法是公开的,但是算法是不可逆的。密钥的产生:选择两个大素数p和q,计算:n=p?}q(公开),欧拉函数Φ(n)=(p-1)(q-1)(保密),然后随机选择加密密钥e,要求e和(p-1)?}(9-1)互质,再利用Euclid算法计算解密密钥d,满足de=1 (mod Φ(n))。其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。加密过程:

(1)加密信息m(二进制表示)时,把m分成等长数据块ml,m2,…,mi,块长s,其中2s<=n, s尽可能大。

(2)对应的密文是:ci=mie(mod n)。最后得到的密文C由长度相同的分组ci组成。

3 混合加密算法

DES算法和RSA算法是数据加密中久经考验的比较优秀的算法,但仍在处理效率、密钥管理等方面存在着不足。DES算法具有密码使用简便及处理速度快等优点,RSA算法则不需要秘密分配密钥并且密钥的安全管理也很容易。为了充分利用DES和RSA两种算法的优点,而同时避免其缺点,采用DES和RSA混合加密方式。其基本原理是:在数据通信前,用DES方法对消息明文加密,同时用RSA方法对DES密钥进行加密和实现数字签名。

3.1 两种算法分析

(1)在加密、解密的处理效率方面,DES算法优于RSA算法。因为DES密钥的长度只有56比特,可以利用软件和硬件实现高速处理,在软件实现的时候,加密速率每秒钟可以达到几兆个字节,适合于大量信息的加密?鸦RSA算法由于进行的都是大数计算,使得RSA最快的情况也比DES慢得多,无论是软件还是硬件实现,速度一直是RSA的缺陷,一般来说只用于少量数据加密。

(2)在密钥的管理方面,RSA算法比DES算法更加优越。因为RSA算法可采用公开形式分配加密密钥,对加密密钥的更新也很容易,并且对不同的通信对象,只需对自己的解密密钥保密就行?鸦DES算法要求通信前对密钥进行秘密分配,密钥的更换困难,对不同的通信对象,DES需产生和保管不同的密钥。在签名和认证方面,DES算法从原理上不可能实现数字签证和身份认证,但RSA算法能够容易地进行数字签证和身份认证。

利用二者的各自优点,采用对称加密系统加密文件,采用公开密钥加密系统加密“加密文件”的密钥(会话密钥),这就是混合加密系统,较好地解决了运算速度问题和密钥分配管理问题。

3.2 混合加密原理

首先,通过素数的生成算法,得到两个大的素数p和q,利用RSA加密算法中密钥生成算法,生成一把公开密钥和私有密钥,其中将RSA公钥通过某种方式公布出去,而把RSA私钥保存。然后,通过线性同余法产生一个64位的随机数作为DES的会话密钥,对明文进行DES加密和解密;最后,是利用RSA的公钥对会话密钥进行RSA加密,并将会话密钥进行加密保存,并与DES加密后的密文合并。接收方对传送过来的密文用RSA生成的私钥进行解密。

3.3 混合加密系统的特点

混合加密系统是为实现数字版权管理系统的文件加密功能设计的一个加密模块。系统使用DES作为对称密钥算法,RSA作为公开密钥算法。首先用DES算法对文件加密,然后用RSA算法加密DES密钥。系统的基本特点如下:

(1)提供文件的两种加密方式,即混合加密方式和D-ES加密方式。

(2)系统还能检验密钥的正确性,因为加密时将加密后的密钥密文也存入文件中,解密时,先用当前密钥解密密钥密文,如果所得的密钥明文与当前密钥相同,则当前密钥应该是正确的。

(3)混合加密系统的混合加密模块也具有对RSA密钥检错的功能,这主要通过解密后DES 密钥的长度来判断的,因为如果RSA密钥错误,那么解密后的DES密钥长度一定超过16个字节。

(4)系统的 DES 加密方式可以进行1次 DES 加密(标准DES加密)和3次DES加密。根据密钥长度, 系统自动选择加密方案。当密钥长度在64位以内时将使用标准DES加密,当密钥长度超过64位后,系统将设置第2密钥,并启用3次DES加密,其密钥长度可达112位。

(5)系统具有很强的扩展性,提供了3种加解密接口:文件接口、文件句柄接口(可以供其他加密系统使用,系统的混合加密模块就是使用这个接口)和内存缓冲区接口。

4 结束语

DES和RSA的混合加密方式兼有加、解密处理速度快的常规密码体制的优点和不需要进行密钥秘密分配且保密管理的密钥量也较少的公开密钥密码体制的优点,从而构成了一种理想的密码方式。

参考文献

[1] William Stallings. 密码编码学与网络安全[M]. 刘玉珍,王丽

娜,等译. 北京:电子工业出版社,2004-01.

[2] 宋震. 密码学[M]. 北京:中国水利水电出版社,2002.

[3] 卢开澄. 计算机密码学[M]. 北京:清华大学出版社,1998.

上一篇:生活,让孩子和写话快乐相约 下一篇:“评语”在语文教学中的探索与研究