翁云翔
(武漢郵電科學研究院湖北武漢430070)
基于DES和RSA的混合加密算法研究與設(shè)計
翁云翔
(武漢郵電科學研究院湖北武漢430070)
文中基于研究設(shè)計適合于實際工程中使用的加密算法的目的,采用了分析與比較的方法,首先研究了目前常用的對稱加密算法DES以及非對稱加密算法RSA,然后分析比較了它們的優(yōu)缺點,進而綜合安全性和效率設(shè)計出適合于在實際工程中應(yīng)用的RSA、DES混合加密算法,最后結(jié)合實際JAVA工程中的應(yīng)用,得出了該算法兼有加密、解密速度快和密匙分配管理簡便安全優(yōu)點的結(jié)論。
加密;DES;RAS;混合加密算法;JAVA
隨著信息社會的發(fā)展,人們在享受信息資源所帶來的巨大便利的同時,也面臨著信息安全問題的嚴峻考驗。如何對企業(yè)項目中重要信息的進行加密保護,防止項目中傳輸?shù)男畔⒈黄平?,提高企業(yè)和用戶隱私的安全性,避免用戶信息被盜取引起的糾紛,是當前信息安全領(lǐng)域的一個重要課題[1-2]。
一個加密算法系統(tǒng)由所有可能的明文、密鑰、密文、加密算法和解密算法組成,其組成部分的安全性都基于密鑰的安全性,而不是基于算法的細節(jié)安全性。這就表明密鑰是加密算法系統(tǒng)的核心。
加密算法根據(jù)密鑰可以分為兩類,即為對稱加密算法和非對稱加密算法。對稱加密算法,例如AES算法、DES算法等,其特征是:加密、解密密鑰是相同的。而非對稱加密算法,例如RSA算法、ECC算法等,其包含兩個密鑰:公開密鑰,也叫加密密鑰,是公開的,并由第三方管理;私有密鑰,也叫解密密鑰,由使用此系統(tǒng)的人自己保管。并且在非對稱算法中,是無法從公開密鑰推出私有密鑰的[3]。
1.1DES算法的概述
DES[4]算法又稱數(shù)據(jù)加密標準,其英文全稱為Data Encryption Standard。它是IBM公司1972年研制出的一種對稱加密算法,并于1976年被美國聯(lián)邦政府的國家標準局確定為聯(lián)邦資料處理標準(FIPS),隨后在國際上廣泛流傳開來。至今,它仍在國際信息安全的舞臺上扮演著十分重要的角色。
DES是一個對稱算法的同時,也是一個分組加密算法。它將要加密的數(shù)據(jù)以64位為一組分組后進行加密。它的密匙長度為64位,但其算法規(guī)定64位中每個第8位都用作奇偶校驗位,所以實際密匙長度為56位。由于密匙可以是任意的56位數(shù),所以DES算法的安全性依賴于密匙。
1.2DES算法的原理
DES的加密算法流程圖如圖1所示。
圖1DES加密算法流程圖
DES算法流程如圖:首先將明文按照64位一組進行分組操作,然后對每個分組的數(shù)據(jù)用初始置換進行移位變換。每組數(shù)據(jù)移位變換后,得到一個亂序的64位明文數(shù)據(jù),將該亂序數(shù)據(jù)分成左、右各32位的兩部分,記作L0和R0。經(jīng)過16次迭代運算后,得到L16、R16。將最后一次迭代后的數(shù)據(jù)作為輸入,對其進行逆置換,即得到密文輸出。逆置換為初始置換的逆運算。對于每次迭代中要用到的48位子密鑰,它們是根據(jù)64位初始密鑰K移位并迭代生成的。
1.3DES算法的優(yōu)缺點
DES算法加密效率高,實現(xiàn)簡單,適合于較長數(shù)據(jù)的加密。但由于較短的密碼長度,隨著計算機技術(shù)的發(fā)展,其安全性已遭受嚴重威脅。另外由于DES算法采用單密鑰體制,必須將不同的密匙提前分配傳輸給不同的通信對象,才能確保通信能夠進行。這就造成了密匙傳輸過程中的安全隱患問題,以及密匙變更時帶來的種種麻煩。并且不同通信對象需要產(chǎn)生和保管不同的密匙,所以對這些密匙進行分配管理的難度也十分大。
2.1RSA算法的概述
RSA[5]公鑰加密算法由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)3人一起在1977年提出的,RSA就是他們3人姓氏開頭字母拼在一起組成的,該算法于1987年首次公布。
RSA是目前最有影響力的公鑰加密算法,它能夠抵御到目前為止已知的絕大部分密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標準。
2.2RSA算法的原理
RSA算法是基于一個公認的數(shù)論事實:求兩個大素數(shù)的乘積十分容易,但是要想將乘積進行因式分解則十分困難。所以,可以將兩個大素數(shù)的乘積公開作為公共密匙,而把素數(shù)作為私有密匙產(chǎn)生因子。那么想利用公開密鑰和密文中破解出明文就相當于分解兩個大素數(shù)之積,是非常困難的。故RSA算法的安全性基于大素數(shù)乘積分解因子的難度。
建立RSA加密系統(tǒng)過程如下:
2)計算乘積n=pq和ω(n)=(p-1)(q-1)。
3)任意選取加密密鑰e1,使e1和(p-1)(q-1)互質(zhì),即gcd(e,ω(n))=1。
4)計算解密密鑰e2,以滿足e1e2=1modω(n),即e1與e2互逆,e2與n是互質(zhì)的。
5)加密函數(shù)為:C(x)=e1mmod n,解密函數(shù)為:M(x)=e2cmod n,其中m是明文,c是密文。
6){e1,n}為公共密鑰,e2為私有密鑰,一般n的長度是大于等于1 024位的。
RSA加密數(shù)據(jù)明文M時,首先會將明文M分成大小合適的數(shù)據(jù)分組,然后每個分組分別進行加密,每個分組的長度均應(yīng)該比n的位要小。
李某,女性,26歲,未婚,大專學歷,某小學教師,因失眠、多疑、頭痛、煩躁易怒來院就診。患者1年來由于男友太出色,時常害怕男友離開自己,看見男友與其他異性在一起會懷疑兩人的關(guān)系,不由自主的聯(lián)想,焦躁不安,甚至不肯聽男友解釋,大發(fā)脾氣,以至于晚上失眠、情緒差,最近2個月情況更甚,患者特別敏感,外界小小的刺激即可引起患者強烈的感覺,怕聲、怕光、怕冷、怕熱。一點聲音,一點嘈雜,光線稍微強一些,也會引起患者的煩躁和不安。天氣稍冷一點,就得添衣服,略為熱一點,馬上脫衣服,穿多了不行,穿少了也不行。有時對疼痛也很敏感,因而怕驗血,怕打針。
圖2RSA加密解密流程圖
2.3RSA算法的優(yōu)缺點
相對于DES加密算法,RSA算法有許多優(yōu)點。首先通信雙方不需提前傳輸密鑰,保密性好,并且便于密鑰管理和分配;另外公鑰密碼可以用于生成數(shù)字簽名,進而鑒明傳輸信息者的唯一身份。但是,RSA的安全性是基于大素數(shù)乘積分解困難的基礎(chǔ)上的。因此,素數(shù)越大,因式分解越困難,密碼破解就越難,安全性提高的同時解密強度也提高了。相對于DES算法來說,RSA算法在計算上開銷非常巨大,進而導(dǎo)致了其效率遠遠低于DES算法。
從前面對RSA以及DES的研究可以看出:DES算法雖然加、解密的效率高,但是用于加密的密匙需要額外的通道傳輸,分配管理困難;而RSA算法雖然便于管理密匙,但是加、解密的效率較低。通過對DES算法和RSA算法的優(yōu)缺點分析,我們可以采用取其之長,補己之短的方法,使二者優(yōu)缺點互補,提出采用基于DES和RSA的混合加密體制。其核心思想是:利用DES算法對數(shù)據(jù)進行加+與密匙整合后一起進行傳輸。這樣既能解決DES算法密鑰分配管理的問題,又能解決RSA加密、解密效率低的問題。
3.1混合加密過程設(shè)計
RSA、DES混合加密過程設(shè)計如下:
1)每次傳遞信息,都會先使用隨機數(shù)生成函數(shù)生成一個64位的DES會話密匙K,此密匙僅會在此次傳輸過程中使用,以此達到一次一密的作用。
2)從公共密匙管理服務(wù)器或者其他方式獲取公共密匙e1和n。
3)使用公共密匙和RSA算法加密初始密匙K,得到加密后的密匙CK。
4)使用初始密匙K和DES算法加密要傳輸?shù)男畔?,得到密文CM。
5)將密文CM和密匙CK按照任意指定規(guī)則(例如移位等)整合后為最終的密文C,然后進行傳輸。
圖3 混合加密流程圖
3.2混合解密過程設(shè)計
RSA、DES混合解密過程設(shè)計如下:
1)接受整合密文C,按照指定的規(guī)則分解密文分別獲取DES加密信息后得到的密文CM以及RSA加密密匙得到的密文CK。
2)從公共密匙管理服務(wù)器或者其他方式獲取公共密匙n。
3)使用公共密匙n以及私有的密匙e2,RSA解密得到初始的DES會話密匙K。
4)使用初始密匙K和DES算法解密密文CM,得到所要傳輸?shù)男畔⒚魑摹?/p>
圖4 混合解密流程圖
3.3實際工程中的應(yīng)用
在實際的JAVA Web項目中,加密算法常常用來加密敏感信息,保證系統(tǒng)信息安全。例如,Web項目中需要完成一個用戶密碼找回模塊便于用戶使用綁定的郵箱和手機號來找回密碼。由于用戶找回密碼是在不需要登錄的情況下進行的,所以用戶發(fā)送的找回請求信息必須加密,不然請求信息被非法攔截或者篡改,就會造成用戶的個人信息泄露甚至整個數(shù)據(jù)庫的信息泄露。
項目最開始使用的是DES加密算法,加密后轉(zhuǎn)換為十六進制傳輸,DES密匙保存在服務(wù)器的底層配置文件中。但后來發(fā)現(xiàn)由于密匙固定,算法單一,很容易通過重復(fù)請求獲取不同密文,對比后推算出使用的是單一DES算法,然后被暴力破解。
為了找到更加安全有效的加密算法,通過對RSA以及DES算法的研究,設(shè)計出了上面的混合加密算法。按照設(shè)計的混合加密算法,在Web工程中使用JAVA[6]編寫了該混合加密算法流程的公共類以便工程其他模塊共用,該公共類要引用RSA和DES兩個加密算法類。其核心代碼如下:
3.4混合解密算法的優(yōu)點
通過在實際工程中使用所設(shè)計的混合算法,發(fā)現(xiàn)其有以下優(yōu)點:
1)DES的會話密匙每次隨機生成,且只使用一次,達到了一次一密的效果。
2)使用RSA加密會話密匙后與明文加密后生成的密文整合后一起發(fā)送,無需準備另外通道發(fā)送DES會話密匙。
3)整個加密解密過程,密匙的管理分配與RSA算法相同,只需要對私有密匙進行保密保存,密匙的管理分配簡單化了。
4)使用速率較高DES加密要傳輸?shù)臄?shù)據(jù)量較大的明文,而使用RSA加密數(shù)據(jù)量較小的會話密匙,這樣使得信息傳輸系統(tǒng)的效率得到了保障。
5)混合加密使得破解的成本和難度大大增加,信息傳輸系統(tǒng)的安全性得到了保障。
6)密文整合部分使得該混合加密系統(tǒng)有了更多擴展的可能性。
通過在實際Web工程中的設(shè)計與應(yīng)用,發(fā)現(xiàn)所設(shè)計的DES和RSA混合加密體制兼有加密、解密速度快的常規(guī)密碼體制的優(yōu)點,以及不需要進行密鑰分配且保密管理的密鑰量也較少的公開密碼體制的優(yōu)點,從而構(gòu)成了相對比較理想的加密體制。并且該混合加密體制可以通過密文整合部分輕松擴展。綜上所述,所設(shè)計的混合加密算法在實際應(yīng)用中能夠滿足工程對效率、安全性以及可擴展性的需要,達到了設(shè)計要求。
[1]周學廣,劉藝.信息安全學[M].北京:機械工業(yè)出版社,2003
[2]徐明,等.網(wǎng)絡(luò)信息安全[M],西安電子科技大學出版社,2006.5
[3]BehrouzA.Forouzan.密碼學與網(wǎng)絡(luò)安全[M].清華大學出版社,2009
[4]郭寧,張有志,孫英明.對稱式密碼體制數(shù)據(jù)加密算法的分析[J].山東工業(yè)大學學報,2001,31(4):365-369.
[5]郭寧,張有志.非對稱式密碼體制數(shù)據(jù)加密算法的分析[J].山東工業(yè)大學學報,2001,31(2):147-151.
[6]Bruce Eckel.Java編程思想[M].第4版.北京:機械工業(yè)出版社,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-),男,湖北竹溪人,碩士研究生。研究方向:信號與信息處理、互聯(lián)網(wǎng)。