APP下载

基于DES和RSA的混合加密算法研究与设计

2016-10-22翁云翔

电子设计工程 2016年17期
关键词:明文加密算法密文

翁云翔

(武汉邮电科学研究院湖北武汉430070)

基于DES和RSA的混合加密算法研究与设计

翁云翔

(武汉邮电科学研究院湖北武汉430070)

文中基于研究设计适合于实际工程中使用的加密算法的目的,采用了分析与比较的方法,首先研究了目前常用的对称加密算法DES以及非对称加密算法RSA,然后分析比较了它们的优缺点,进而综合安全性和效率设计出适合于在实际工程中应用的RSA、DES混合加密算法,最后结合实际JAVA工程中的应用,得出了该算法兼有加密、解密速度快和密匙分配管理简便安全优点的结论。

加密;DES;RAS;混合加密算法;JAVA

随着信息社会的发展,人们在享受信息资源所带来的巨大便利的同时,也面临着信息安全问题的严峻考验。如何对企业项目中重要信息的进行加密保护,防止项目中传输的信息被破解,提高企业和用户隐私的安全性,避免用户信息被盗取引起的纠纷,是当前信息安全领域的一个重要课题[1-2]。

一个加密算法系统由所有可能的明文、密钥、密文、加密算法和解密算法组成,其组成部分的安全性都基于密钥的安全性,而不是基于算法的细节安全性。这就表明密钥是加密算法系统的核心。

加密算法根据密钥可以分为两类,即为对称加密算法和非对称加密算法。对称加密算法,例如AES算法、DES算法等,其特征是:加密、解密密钥是相同的。而非对称加密算法,例如RSA算法、ECC算法等,其包含两个密钥:公开密钥,也叫加密密钥,是公开的,并由第三方管理;私有密钥,也叫解密密钥,由使用此系统的人自己保管。并且在非对称算法中,是无法从公开密钥推出私有密钥的[3]。

1 对称加密算法——DES

1.1DES算法的概述

DES[4]算法又称数据加密标准,其英文全称为Data Encryption Standard。它是IBM公司1972年研制出的一种对称加密算法,并于1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。至今,它仍在国际信息安全的舞台上扮演着十分重要的角色。

DES是一个对称算法的同时,也是一个分组加密算法。它将要加密的数据以64位为一组分组后进行加密。它的密匙长度为64位,但其算法规定64位中每个第8位都用作奇偶校验位,所以实际密匙长度为56位。由于密匙可以是任意的56位数,所以DES算法的安全性依赖于密匙。

1.2DES算法的原理

DES的加密算法流程图如图1所示。

图1DES加密算法流程图

DES算法流程如图:首先将明文按照64位一组进行分组操作,然后对每个分组的数据用初始置换进行移位变换。每组数据移位变换后,得到一个乱序的64位明文数据,将该乱序数据分成左、右各32位的两部分,记作L0和R0。经过16次迭代运算后,得到L16、R16。将最后一次迭代后的数据作为输入,对其进行逆置换,即得到密文输出。逆置换为初始置换的逆运算。对于每次迭代中要用到的48位子密钥,它们是根据64位初始密钥K移位并迭代生成的。

1.3DES算法的优缺点

DES算法加密效率高,实现简单,适合于较长数据的加密。但由于较短的密码长度,随着计算机技术的发展,其安全性已遭受严重威胁。另外由于DES算法采用单密钥体制,必须将不同的密匙提前分配传输给不同的通信对象,才能确保通信能够进行。这就造成了密匙传输过程中的安全隐患问题,以及密匙变更时带来的种种麻烦。并且不同通信对象需要产生和保管不同的密匙,所以对这些密匙进行分配管理的难度也十分大。

2 非对称算法——RSA

2.1RSA算法的概述

RSA[5]公钥加密算法由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)3人一起在1977年提出的,RSA就是他们3人姓氏开头字母拼在一起组成的,该算法于1987年首次公布。

RSA是目前最有影响力的公钥加密算法,它能够抵御到目前为止已知的绝大部分密码攻击,已被ISO推荐为公钥数据加密标准。

2.2RSA算法的原理

RSA算法是基于一个公认的数论事实:求两个大素数的乘积十分容易,但是要想将乘积进行因式分解则十分困难。所以,可以将两个大素数的乘积公开作为公共密匙,而把素数作为私有密匙产生因子。那么想利用公开密钥和密文中破解出明文就相当于分解两个大素数之积,是非常困难的。故RSA算法的安全性基于大素数乘积分解因子的难度。

建立RSA加密系统过程如下:

2)计算乘积n=pq和ω(n)=(p-1)(q-1)。

3)任意选取加密密钥e1,使e1和(p-1)(q-1)互质,即gcd(e,ω(n))=1。

4)计算解密密钥e2,以满足e1e2=1modω(n),即e1与e2互逆,e2与n是互质的。

5)加密函数为:C(x)=e1mmod n,解密函数为:M(x)=e2cmod n,其中m是明文,c是密文。

6){e1,n}为公共密钥,e2为私有密钥,一般n的长度是大于等于1 024位的。

RSA加密数据明文M时,首先会将明文M分成大小合适的数据分组,然后每个分组分别进行加密,每个分组的长度均应该比n的位要小。

李某,女性,26岁,未婚,大专学历,某小学教师,因失眠、多疑、头痛、烦躁易怒来院就诊。患者1年来由于男友太出色,时常害怕男友离开自己,看见男友与其他异性在一起会怀疑两人的关系,不由自主的联想,焦躁不安,甚至不肯听男友解释,大发脾气,以至于晚上失眠、情绪差,最近2个月情况更甚,患者特别敏感,外界小小的刺激即可引起患者强烈的感觉,怕声、怕光、怕冷、怕热。一点声音,一点嘈杂,光线稍微强一些,也会引起患者的烦躁和不安。天气稍冷一点,就得添衣服,略为热一点,马上脱衣服,穿多了不行,穿少了也不行。有时对疼痛也很敏感,因而怕验血,怕打针。

图2RSA加密解密流程图

2.3RSA算法的优缺点

相对于DES加密算法,RSA算法有许多优点。首先通信双方不需提前传输密钥,保密性好,并且便于密钥管理和分配;另外公钥密码可以用于生成数字签名,进而鉴明传输信息者的唯一身份。但是,RSA的安全性是基于大素数乘积分解困难的基础上的。因此,素数越大,因式分解越困难,密码破解就越难,安全性提高的同时解密强度也提高了。相对于DES算法来说,RSA算法在计算上开销非常巨大,进而导致了其效率远远低于DES算法。

3 混合加密算法的设计

从前面对RSA以及DES的研究可以看出:DES算法虽然加、解密的效率高,但是用于加密的密匙需要额外的通道传输,分配管理困难;而RSA算法虽然便于管理密匙,但是加、解密的效率较低。通过对DES算法和RSA算法的优缺点分析,我们可以采用取其之长,补己之短的方法,使二者优缺点互补,提出采用基于DES和RSA的混合加密体制。其核心思想是:利用DES算法对数据进行加+与密匙整合后一起进行传输。这样既能解决DES算法密钥分配管理的问题,又能解决RSA加密、解密效率低的问题。

3.1混合加密过程设计

RSA、DES混合加密过程设计如下:

1)每次传递信息,都会先使用随机数生成函数生成一个64位的DES会话密匙K,此密匙仅会在此次传输过程中使用,以此达到一次一密的作用。

2)从公共密匙管理服务器或者其他方式获取公共密匙e1和n。

3)使用公共密匙和RSA算法加密初始密匙K,得到加密后的密匙CK。

4)使用初始密匙K和DES算法加密要传输的信息,得到密文CM。

5)将密文CM和密匙CK按照任意指定规则(例如移位等)整合后为最终的密文C,然后进行传输。

图3 混合加密流程图

3.2混合解密过程设计

RSA、DES混合解密过程设计如下:

1)接受整合密文C,按照指定的规则分解密文分别获取DES加密信息后得到的密文CM以及RSA加密密匙得到的密文CK。

2)从公共密匙管理服务器或者其他方式获取公共密匙n。

3)使用公共密匙n以及私有的密匙e2,RSA解密得到初始的DES会话密匙K。

4)使用初始密匙K和DES算法解密密文CM,得到所要传输的信息明文。

图4 混合解密流程图

3.3实际工程中的应用

在实际的JAVA Web项目中,加密算法常常用来加密敏感信息,保证系统信息安全。例如,Web项目中需要完成一个用户密码找回模块便于用户使用绑定的邮箱和手机号来找回密码。由于用户找回密码是在不需要登录的情况下进行的,所以用户发送的找回请求信息必须加密,不然请求信息被非法拦截或者篡改,就会造成用户的个人信息泄露甚至整个数据库的信息泄露。

项目最开始使用的是DES加密算法,加密后转换为十六进制传输,DES密匙保存在服务器的底层配置文件中。但后来发现由于密匙固定,算法单一,很容易通过重复请求获取不同密文,对比后推算出使用的是单一DES算法,然后被暴力破解。

为了找到更加安全有效的加密算法,通过对RSA以及DES算法的研究,设计出了上面的混合加密算法。按照设计的混合加密算法,在Web工程中使用JAVA[6]编写了该混合加密算法流程的公共类以便工程其他模块共用,该公共类要引用RSA和DES两个加密算法类。其核心代码如下:

3.4混合解密算法的优点

通过在实际工程中使用所设计的混合算法,发现其有以下优点:

1)DES的会话密匙每次随机生成,且只使用一次,达到了一次一密的效果。

2)使用RSA加密会话密匙后与明文加密后生成的密文整合后一起发送,无需准备另外通道发送DES会话密匙。

3)整个加密解密过程,密匙的管理分配与RSA算法相同,只需要对私有密匙进行保密保存,密匙的管理分配简单化了。

4)使用速率较高DES加密要传输的数据量较大的明文,而使用RSA加密数据量较小的会话密匙,这样使得信息传输系统的效率得到了保障。

5)混合加密使得破解的成本和难度大大增加,信息传输系统的安全性得到了保障。

6)密文整合部分使得该混合加密系统有了更多扩展的可能性。

4 结论

通过在实际Web工程中的设计与应用,发现所设计的DES和RSA混合加密体制兼有加密、解密速度快的常规密码体制的优点,以及不需要进行密钥分配且保密管理的密钥量也较少的公开密码体制的优点,从而构成了相对比较理想的加密体制。并且该混合加密体制可以通过密文整合部分轻松扩展。综上所述,所设计的混合加密算法在实际应用中能够满足工程对效率、安全性以及可扩展性的需要,达到了设计要求。

[1]周学广,刘艺.信息安全学[M].北京:机械工业出版社,2003

[2]徐明,等.网络信息安全[M],西安电子科技大学出版社,2006.5

[3]BehrouzA.Forouzan.密码学与网络安全[M].清华大学出版社,2009

[4]郭宁,张有志,孙英明.对称式密码体制数据加密算法的分析[J].山东工业大学学报,2001,31(4):365-369.

[5]郭宁,张有志.非对称式密码体制数据加密算法的分析[J].山东工业大学学报,2001,31(2):147-151.

[6]Bruce Eckel.Java编程思想[M].第4版.北京:机械工业出版社,2007.

Research and design of hybrid encryption algorithm based on DES and RSA

WENG Yun-xiang
(Wuhan Research Institution of Telecommunication,Wuhan 430070,China)

Based on the purpose of researching and designing an encryption algorithm fit for practical engineering,this paper firstly study the DES encryption algorithm and the RSA encryption algorithm,then analyze and compare their advantages and disadvantages,and then design the DES and RSA hybrid encryption algorithm,by using the method of analysis and comparison.At last,combining with the application in practical JAVA projects,the conclusion is drawn that the algorithm has the advantages of simple encryption,decryption speed,and key distribution management.

encryption;DES;RSA;hybrid encryption algorithm;JAVA

TN211

A

1674-6236(2016)17-0042-03

2015-09-06稿件编号:201509049

翁云翔(1991-),男,湖北竹溪人,硕士研究生。研究方向:信号与信息处理、互联网。

猜你喜欢

明文加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
基于整数矩阵乘法的图像加密算法
奇怪的处罚
混沌参数调制下RSA数据加密算法研究
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
奇怪的处罚
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争