?

常用數據加密算法分析及比較

2017-03-12 17:17左曉靜譚會君
漯河職業技術學院學報 2017年2期
關鍵詞:明文加密算法密文

左曉靜, 譚會君

(漯河職業技術學院 信息工程系, 河南 漯河 462000)

常用數據加密算法分析及比較

左曉靜, 譚會君

(漯河職業技術學院 信息工程系, 河南 漯河 462000)

數據加密算法是互聯網安全技術中常用的方法之一。通過對常用的幾種加密算法進行分析比較,總結出使用的注意事項、優缺點、適用場合,并對數據加密算法的未來發展進行分析,為混合數據加密算法的使用者提供參考。

數據加密;加密算法;RSA加密算法

0 引言

伴隨著網絡信息技術的發展,網絡開始影響人們生活的各個方面,但隨之而來的安全性要求也就越來越高。應用數據加密技術,既保證了人們在網絡活動中對相關數據和資料的保密要求,又保證了網絡的安全性和保密性。在電子商務、數字貨幣、網絡銀行等網絡業務快速興起的時代,數據加密技術作為數據安全的核心技術顯得尤為重要。實現數據加密技術的主要方法是數據加密算法,也可以說加密算法是加密技術的基礎[1],任何一種成熟的加密技術都需要建立多種加密算法組合,或者使加密算法與其他應用軟件有機結合。加密算法是對信息進行編碼和解碼的技術,編碼是把可讀信息(明文)譯成代碼形式(密文),其逆過程就是解密。一個加密算法S可以用數學符號描述為

S={P, C, K, E, D}

其中,P——明文,表示全體可能出現的明文集合;C——密文,表示全體可能出現的密文集合;K——密鑰,是加密算法中的可變參數;E——加密算法,由一些公式、法則或程序構成;D——解密算法,它是E的逆過程。

當給定密鑰K時,各符號之間有如下關系:

(1)C=EK(P), 對明文P使用加密算法E和密鑰K后得到密文C;

(2)P=DK(C)=DK(EK(P)), 對密文C解密后得明文P。

因此,加密設計主要是確定E、D、K。筆者對幾種常用的加密算法進行分析和比較。

1 DES、AES加密算法

DES加密算法是一種分組密碼[2],以64位為分組對數據加密,它的密鑰長度是56位,加密、解密使用同一算法。DES加密算法是對密鑰進行保密,而其算法是公開的,包括加密算法和解密算法。這樣,只有掌握了和發送方相同密鑰的人才能解讀由DES加密算法所加密的密文數據。因此,破譯DES加密算法實際上就是搜索密鑰的編碼。對于56位長度的密鑰來說,如果用窮舉法進行搜索的話,其運算次數為256。隨著計算機運算能力的不斷提高,DES的安全性比它剛出現時要弱得多,然而從非關鍵性質的實際出發,仍可以認為它是足夠的。不過,DES目前僅用于舊系統的鑒定,而更多場合則選擇新的加密標準。

AES加密算法是密碼學中的高級加密標準[3],該加密算法采用對稱分組密碼體制,密鑰長度的最少支持為128位、192位、256位,分組長度為128位,算法應易于各種硬件和軟件實現。這種加密算法是美國聯邦政府采用的區塊加密標準,這個標準用于替代原先的DES,已經被多方分析且廣為全世界所使用。AES加密算法被設計為支持128/192/256位數據塊大??;支持128/192/256位密碼長度,在10進制里對應3.4×1038、6.2×1057、1.1×1077個密鑰。由于其密碼較長,使得這種算法幾乎無法被破解,所以AES是目前各種互聯網使用比較多的加密算法。

2 RSA加密算法

RSA公開密鑰密碼體制[4]。所謂公開密鑰密碼體制,就是使用不同的加密密鑰與解密密鑰,是一種“不能由已知加密密鑰推導出解密密鑰”的密碼體制。

在公開密鑰密碼體制中,加密密鑰PK(即公開密鑰)是公開信息,而解密密鑰SK(即秘密密鑰)是需要保密的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據PK計算出SK。正是基于這種理論,1978年出現了著名的RSA算法,它通常是先生成一對RSA 密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網絡服務器中注冊。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送信息時常采用傳統加密方法與公開密鑰加密方法相結合的方式,即信息采用改進的DES或IDEA對話密鑰加密,然后使用RSA密鑰加密對話密鑰和信息摘要。對方收到信息后,用不同的密鑰解密并可核對信息摘要。

RSA算法是第一個能同時用于加密和數字簽名的算法,也易于理解和操作。RSA是得到最廣泛研究的公鑰算法,從提出到現今的三十多年內,經歷了各種攻擊的考驗,目前已經逐漸為人們所接受,普遍認為是目前最優秀的公鑰方案之一。

3 MD5加密算法

MD5是一個安全的散列算法,輸入兩個不同的明文不會得到相同的輸出值,而根據輸出值也不能得到原始的明文,即其過程不可逆。所以要解密MD5沒有現成的算法,只能用窮舉法,把可能出現的明文用MD5算法散列之后,把得到的散列值和原始的數據形成一個一對一的映射表,在表中通過比較來破解密碼的MD5算法散列值,通過匹配從映射表中找出破解密碼所對應的原始明文。簡單的MD5加密是沒有辦法達到絕對安全的,因為普通的MD5加密有多種暴力破解方式。因此,如果想要保證信息系統或者網站的安全,需要對MD5進行改造,以增強其安全性。對信息系統或者網站系統來說,MD5算法主要用于用戶注冊口令的加密,而對于普通強度的口令加密,可以通過以下三種方式進行破解:

(1)在線查詢密碼。一些在線的MD5值查詢網站可以提供MD5密碼值的查詢,輸入MD5密碼值后,如果在數據庫中存在,那么就可以很快獲取其密碼值。

(2)使用MD5破解工具。網絡上有許多針對MD5破解的專用軟件,通過設置字典進行破解。

(3)通過社會工程學來獲取或者重新設置用戶的口令。

MD5加密算法有一定的安全性,加之也可以免費使用該算法,因此該加密算法已被廣泛使用。MD5算法主要用于數字簽名、文件完整性驗證以及口令加密等方面。

4 IDEA加密算法

IDEA(International Data Encryption Algorithm)在密碼學中屬于數據塊加密算法(Block Cipher)類。IDEA使用長度為128bit的密鑰,數據塊大小為64bit。從理論上講,IDEA屬于“強”加密算法,至今還沒有出現對該算法的有效攻擊算法。IDEA是一種由8個相似圈(Round)和一個輸出變換(Output Transformation)組成的迭代算法。IDEA的每個圈都由如下三種函數組成:模(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循環左移25bit,得到下一8byte,將這個過程循環7次;

(3)在第7次循環時,取前4byte作為EK的最后4byte;

(4)至此52byte的EK生成完畢。

目前IDEA在工程中已有大量應用實例,PGP(Pretty Good Privacy)就使用IDEA作為其分組加密算法;安全套接字層SSL(Secure Socket Layer)也將IDEA包含在其加密算法庫SSLRef中;IDEA算法專利的所有者Ascom公司也推出了一系列基于IDEA算法的安全產品,包括基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密軟件包等。

5 Blowfish加密算法

Blowfish算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法,可用來加密64比特長度的字符串。該算法的核心在于子密鑰生成,它將變長密鑰擴展成總長4168 Byte的子密鑰數組。算法中使用了大量的子密鑰,而子密鑰又依賴于用戶密鑰,實際加密、解密過程中使用的是更新后的子密鑰數組,子密鑰即P數組和S盒。Blowfish算法有一個核心加密函數,即

BF_En()

該函數的輸入是64位明文信息,經過運算,以64位密文信息的形式輸出。用Blowfish算法加密信息,需要兩個過程,即密鑰預處理和信息加密。同樣,解密亦需要兩個過程,即密鑰預處理和信息解密。Blowfish算法的源密鑰——pbox和sbox是固定的,而我們要加密一個信息,需要自己選擇一個key,用這個key對pbox和sbox進行變換,得到下一步信息加密所要用的key_pbox和key_sbox。解密亦是如此,由于Blowfish是對稱加密算法,解密方在得到key后根據key生成解密所需要的key_box和key_sbox。對同一個信息進行加密、解密,選取不同的key會導致不同的密文。因此,Blowfish算法的關鍵在于key的選擇及其保密。它的另一個特點是在每一輪中同時對兩部分文件加密,增加了密碼的強度。該加密算法用c語言和匯編語言實現起來都較為方便。

6 結束語

各種加密算法在實際應用中都有各自的優點及缺點,隨著互聯網技術的發展,它們遲早都會被淘汰。近年來,混沌學理論以及充滿生機的量子密碼,被認為是潛在的發展方向,對于在光纖通信中加強信息安全、對付擁有量子計算能力的破譯,無疑是一種理想的解決方案。

[1] 路安平,楊濟民,李鋒,等.幾種輕量級加密算法的比較研究[J].現代電子技術,2014(12).

[2] 劉平.基于混沌理論和DES的圖像加密算法[J].計算機與現代化,2013(8).

[3] 張堯,葉玲.基于AES的WSN加密算法[J].計算機工程與設計,2015(3).

[4] 石井,吳哲,譚璐,王昊鵬,王娜.RSA數據加密算法的分析與改進[J].濟南大學學報(自然科學版),2013(3).

[責任編輯 吳??黓

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-),女,河南漯河人,講師,主要從事計算機網絡與網絡編程方面的教學和研究。

10.3969/j.issn.1671-7864.2017.02.008

TN918.1

A

1671-7864(2017)02-0027-03

猜你喜歡
明文加密算法密文
一種支持動態更新的可排名密文搜索方案
基于模糊數學的通信網絡密文信息差錯恢復
基于整數矩陣乘法的圖像加密算法
奇怪的處罰
混沌參數調制下RSA數據加密算法研究
一種基于密文分析的密碼識別技術*
一種基于密文分析的密碼識別技術*
奇怪的處罰
基于小波變換和混沌映射的圖像加密算法
四部委明文反對垃圾焚燒低價競爭
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合