左曉靜, 譚會君
(漯河職業(yè)技術(shù)學(xué)院 信息工程系, 河南 漯河 462000)
常用數(shù)據(jù)加密算法分析及比較
左曉靜, 譚會君
(漯河職業(yè)技術(shù)學(xué)院 信息工程系, 河南 漯河 462000)
數(shù)據(jù)加密算法是互聯(lián)網(wǎng)安全技術(shù)中常用的方法之一。通過對常用的幾種加密算法進行分析比較,總結(jié)出使用的注意事項、優(yōu)缺點、適用場合,并對數(shù)據(jù)加密算法的未來發(fā)展進行分析,為混合數(shù)據(jù)加密算法的使用者提供參考。
數(shù)據(jù)加密;加密算法;RSA加密算法
伴隨著網(wǎng)絡(luò)信息技術(shù)的發(fā)展,網(wǎng)絡(luò)開始影響人們生活的各個方面,但隨之而來的安全性要求也就越來越高。應(yīng)用數(shù)據(jù)加密技術(shù),既保證了人們在網(wǎng)絡(luò)活動中對相關(guān)數(shù)據(jù)和資料的保密要求,又保證了網(wǎng)絡(luò)的安全性和保密性。在電子商務(wù)、數(shù)字貨幣、網(wǎng)絡(luò)銀行等網(wǎng)絡(luò)業(yè)務(wù)快速興起的時代,數(shù)據(jù)加密技術(shù)作為數(shù)據(jù)安全的核心技術(shù)顯得尤為重要。實現(xiàn)數(shù)據(jù)加密技術(shù)的主要方法是數(shù)據(jù)加密算法,也可以說加密算法是加密技術(shù)的基礎(chǔ)[1],任何一種成熟的加密技術(shù)都需要建立多種加密算法組合,或者使加密算法與其他應(yīng)用軟件有機結(jié)合。加密算法是對信息進行編碼和解碼的技術(shù),編碼是把可讀信息(明文)譯成代碼形式(密文),其逆過程就是解密。一個加密算法S可以用數(shù)學(xué)符號描述為
S={P, C, K, E, D}
其中,P——明文,表示全體可能出現(xiàn)的明文集合;C——密文,表示全體可能出現(xiàn)的密文集合;K——密鑰,是加密算法中的可變參數(shù);E——加密算法,由一些公式、法則或程序構(gòu)成;D——解密算法,它是E的逆過程。
當(dāng)給定密鑰K時,各符號之間有如下關(guān)系:
(1)C=EK(P), 對明文P使用加密算法E和密鑰K后得到密文C;
(2)P=DK(C)=DK(EK(P)), 對密文C解密后得明文P。
因此,加密設(shè)計主要是確定E、D、K。筆者對幾種常用的加密算法進行分析和比較。
DES加密算法是一種分組密碼[2],以64位為分組對數(shù)據(jù)加密,它的密鑰長度是56位,加密、解密使用同一算法。DES加密算法是對密鑰進行保密,而其算法是公開的,包括加密算法和解密算法。這樣,只有掌握了和發(fā)送方相同密鑰的人才能解讀由DES加密算法所加密的密文數(shù)據(jù)。因此,破譯DES加密算法實際上就是搜索密鑰的編碼。對于56位長度的密鑰來說,如果用窮舉法進行搜索的話,其運算次數(shù)為256。隨著計算機運算能力的不斷提高,DES的安全性比它剛出現(xiàn)時要弱得多,然而從非關(guān)鍵性質(zhì)的實際出發(fā),仍可以認為它是足夠的。不過,DES目前僅用于舊系統(tǒng)的鑒定,而更多場合則選擇新的加密標(biāo)準。
AES加密算法是密碼學(xué)中的高級加密標(biāo)準[3],該加密算法采用對稱分組密碼體制,密鑰長度的最少支持為128位、192位、256位,分組長度為128位,算法應(yīng)易于各種硬件和軟件實現(xiàn)。這種加密算法是美國聯(lián)邦政府采用的區(qū)塊加密標(biāo)準,這個標(biāo)準用于替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。AES加密算法被設(shè)計為支持128/192/256位數(shù)據(jù)塊大??;支持128/192/256位密碼長度,在10進制里對應(yīng)3.4×1038、6.2×1057、1.1×1077個密鑰。由于其密碼較長,使得這種算法幾乎無法被破解,所以AES是目前各種互聯(lián)網(wǎng)使用比較多的加密算法。
RSA公開密鑰密碼體制[4]。所謂公開密鑰密碼體制,就是使用不同的加密密鑰與解密密鑰,是一種“不能由已知加密密鑰推導(dǎo)出解密密鑰”的密碼體制。
在公開密鑰密碼體制中,加密密鑰PK(即公開密鑰)是公開信息,而解密密鑰SK(即秘密密鑰)是需要保密的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據(jù)PK計算出SK。正是基于這種理論,1978年出現(xiàn)了著名的RSA算法,它通常是先生成一對RSA 密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網(wǎng)絡(luò)服務(wù)器中注冊。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送信息時常采用傳統(tǒng)加密方法與公開密鑰加密方法相結(jié)合的方式,即信息采用改進的DES或IDEA對話密鑰加密,然后使用RSA密鑰加密對話密鑰和信息摘要。對方收到信息后,用不同的密鑰解密并可核對信息摘要。
RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是得到最廣泛研究的公鑰算法,從提出到現(xiàn)今的三十多年內(nèi),經(jīng)歷了各種攻擊的考驗,目前已經(jīng)逐漸為人們所接受,普遍認為是目前最優(yōu)秀的公鑰方案之一。
MD5是一個安全的散列算法,輸入兩個不同的明文不會得到相同的輸出值,而根據(jù)輸出值也不能得到原始的明文,即其過程不可逆。所以要解密MD5沒有現(xiàn)成的算法,只能用窮舉法,把可能出現(xiàn)的明文用MD5算法散列之后,把得到的散列值和原始的數(shù)據(jù)形成一個一對一的映射表,在表中通過比較來破解密碼的MD5算法散列值,通過匹配從映射表中找出破解密碼所對應(yīng)的原始明文。簡單的MD5加密是沒有辦法達到絕對安全的,因為普通的MD5加密有多種暴力破解方式。因此,如果想要保證信息系統(tǒng)或者網(wǎng)站的安全,需要對MD5進行改造,以增強其安全性。對信息系統(tǒng)或者網(wǎng)站系統(tǒng)來說,MD5算法主要用于用戶注冊口令的加密,而對于普通強度的口令加密,可以通過以下三種方式進行破解:
(1)在線查詢密碼。一些在線的MD5值查詢網(wǎng)站可以提供MD5密碼值的查詢,輸入MD5密碼值后,如果在數(shù)據(jù)庫中存在,那么就可以很快獲取其密碼值。
(2)使用MD5破解工具。網(wǎng)絡(luò)上有許多針對MD5破解的專用軟件,通過設(shè)置字典進行破解。
(3)通過社會工程學(xué)來獲取或者重新設(shè)置用戶的口令。
MD5加密算法有一定的安全性,加之也可以免費使用該算法,因此該加密算法已被廣泛使用。MD5算法主要用于數(shù)字簽名、文件完整性驗證以及口令加密等方面。
IDEA(International Data Encryption Algorithm)在密碼學(xué)中屬于數(shù)據(jù)塊加密算法(Block Cipher)類。IDEA使用長度為128bit的密鑰,數(shù)據(jù)塊大小為64bit。從理論上講,IDEA屬于“強”加密算法,至今還沒有出現(xiàn)對該算法的有效攻擊算法。IDEA是一種由8個相似圈(Round)和一個輸出變換(Output Transformation)組成的迭代算法。IDEA的每個圈都由如下三種函數(shù)組成:模(216+1)乘法、模216加法和按位XOR。在加密之前,IDEA通過密鑰擴展(Key Expansion)將128bit的密鑰擴展為52Byte的加密密鑰EK(Encryption Key),然后由EK計算出解密密鑰DK(Decryption Key)。EK和DK分為八組半密鑰,每組長度為6Byte,前八組密鑰用于8圈加密,最后半組密鑰(4Byte)用于輸出變換。IDEA的加密過程和解密過程是一樣的,只不過使用不同的密鑰(加密時用EK,解密時用DK)。密鑰擴展的過程如下:
(1)將128bit的密鑰作為EK的前8byte;
(2)將前8byte循環(huán)左移25bit,得到下一8byte,將這個過程循環(huán)7次;
(3)在第7次循環(huán)時,取前4byte作為EK的最后4byte;
(4)至此52byte的EK生成完畢。
目前IDEA在工程中已有大量應(yīng)用實例,PGP(Pretty Good Privacy)就使用IDEA作為其分組加密算法;安全套接字層SSL(Secure Socket Layer)也將IDEA包含在其加密算法庫SSLRef中;IDEA算法專利的所有者Ascom公司也推出了一系列基于IDEA算法的安全產(chǎn)品,包括基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密軟件包等。
Blowfish算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法,可用來加密64比特長度的字符串。該算法的核心在于子密鑰生成,它將變長密鑰擴展成總長4168 Byte的子密鑰數(shù)組。算法中使用了大量的子密鑰,而子密鑰又依賴于用戶密鑰,實際加密、解密過程中使用的是更新后的子密鑰數(shù)組,子密鑰即P數(shù)組和S盒。Blowfish算法有一個核心加密函數(shù),即
BF_En()
該函數(shù)的輸入是64位明文信息,經(jīng)過運算,以64位密文信息的形式輸出。用Blowfish算法加密信息,需要兩個過程,即密鑰預(yù)處理和信息加密。同樣,解密亦需要兩個過程,即密鑰預(yù)處理和信息解密。Blowfish算法的源密鑰——pbox和sbox是固定的,而我們要加密一個信息,需要自己選擇一個key,用這個key對pbox和sbox進行變換,得到下一步信息加密所要用的key_pbox和key_sbox。解密亦是如此,由于Blowfish是對稱加密算法,解密方在得到key后根據(jù)key生成解密所需要的key_box和key_sbox。對同一個信息進行加密、解密,選取不同的key會導(dǎo)致不同的密文。因此,Blowfish算法的關(guān)鍵在于key的選擇及其保密。它的另一個特點是在每一輪中同時對兩部分文件加密,增加了密碼的強度。該加密算法用c語言和匯編語言實現(xiàn)起來都較為方便。
各種加密算法在實際應(yīng)用中都有各自的優(yōu)點及缺點,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,它們遲早都會被淘汰。近年來,混沌學(xué)理論以及充滿生機的量子密碼,被認為是潛在的發(fā)展方向,對于在光纖通信中加強信息安全、對付擁有量子計算能力的破譯,無疑是一種理想的解決方案。
[1] 路安平,楊濟民,李鋒,等.幾種輕量級加密算法的比較研究[J].現(xiàn)代電子技術(shù),2014(12).
[2] 劉平.基于混沌理論和DES的圖像加密算法[J].計算機與現(xiàn)代化,2013(8).
[3] 張堯,葉玲.基于AES的WSN加密算法[J].計算機工程與設(shè)計,2015(3).
[4] 石井,吳哲,譚璐,王昊鵬,王娜.RSA數(shù)據(jù)加密算法的分析與改進[J].濟南大學(xué)學(xué)報(自然科學(xué)版),2013(3).
[責(zé)任編輯 吳??黓
Analysis and Comparison of Common Data Encryption Algorithms
ZUO Xiao-jing, TAN Hui-jun
(Luohe Vocational Technology College, Luohe 462000, China)
Data encryption algorithm is one of the commonly used methods in internet security technology. In this paper, several common encryption algorithms are analyzed and compared, and the attention items, advantages and disadvantages, and application occasions are summarized, and the future development of the data encryption algorithm is analyzed. It provides a good reference for the use of mixed data encryption algorithm.
data encryption; encryption algorithm; RSA encryption algorithm
2016-11-26
左曉靜(1979-),女,河南漯河人,講師,主要從事計算機網(wǎng)絡(luò)與網(wǎng)絡(luò)編程方面的教學(xué)和研究。
10.3969/j.issn.1671-7864.2017.02.008
TN918.1
A
1671-7864(2017)02-0027-03