遼寧對外經貿學院 任華新
數據加密算法的綜述
遼寧對外經貿學院任華新
隨著互聯網的高速發展,信息呈幾何級數大爆炸的時代的到來,信息是否安全已成為了人們最關心的問題。因而數據如何加密和數據如何解密就成了非常重要的問題。本文針對已有的數據加密算法進行了分析,研究和比較,以方便需要選擇加密算法的用戶做個參考。
加密算法;公鑰;密鑰
在互聯網日益普及和擴展的今天,人們已經逐步走進一個“信息大爆炸”的社會。通過互聯網,人們可以方便地傳遞各種數據和信息、共享各種數據和信息。與此同時互聯網中的黑客給用戶帶來了各種不安的因素,于是對互聯網安全的要求更高,涉及面為更廣。不但要求主動防治病毒,還要提高系統抵抗外來黑客入侵的能力,提高對遠程數據傳輸的安全性和保密性,避免在傳輸途中遭受非法竊取或非法修改,而數據加密技術無疑是保證信息安全的非常重要的手段。加密算法又包括對稱密鑰算法和非對稱密鑰算法(又稱為公鑰算法)兩大類。
非對稱加密算法又稱為“公鑰算法”,使用兩把完全不同但又是完全匹配的一對鑰匙,即公鑰和私鑰。在使用不對稱加密算法加密文件時,只有使用同一對公鑰和私鑰,才能完成對原來數據的加密和解密的過程。加密原來數據時采用公鑰加密,解密加密文件時使用私鑰才能完成,而且發送數據方(加密者)知道接受數據方的公鑰,只有接收數據方(解密者)才是唯一知道自己私有鑰匙的人。不對稱加密算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密數據,發送數據者使用收信者的公鑰來加密文件,接受數據方使用自己的私鑰鑰解密數據。顯然,采用不對稱加密算法,收發數據雙方在數據通信之前,接受數據方必須將自己早已生成的公鑰送給接受數據方,而自己保留私鑰。由于不對稱算法擁有兩個密鑰,因而特別適用于分布式系統中的數據加密。廣泛應用的不對稱加密算法有RSA算法和美國國家標準局提出的DSA。以不對稱加密算法為基礎的加密技術應用非常廣泛。
非對稱加密算法主要有如下幾種常見的算法:
IDEA(International Data Encryption Algorithm)國際數據加密算法,使用 128 位密鑰提供非常強的安全性。算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用于輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些事算法的第一批8個子密鑰(第一輪6個,第二輪頭兩個)。然后,密鑰向左環移動x位后再分成8個子密鑰。開始4個用在第二輪,后面四個用在第三輪。密鑰再次向左環移動25位,產生另外8個子密鑰,如此進行指導算法結束。該算法是基于“相異代數群上的混合運算”設計思想,算法運用硬件與軟件實現都很容易,而且比DES算法在實現上快的多。
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的,非對稱算法;
DSA(Digital Signature Algorithm):數字簽名算法,是一種標準的 DSS(數字簽名標準),嚴格來說不算加密算法;
AES(Advanced Encryption Standard):高級加密標準,對稱算法,是下一代的加密算法標準,速度快,安全級別高,現在 AES標準的一個實現是 Rijndael 算法;
實際上,公鑰機制也有它自己的缺點,那就是效率相對比較低,比常用的單密鑰算法慢很多,甚至能慢上一兩個數量級都是有可能,所以它不適合經常為大量的原始數據進行加密,而使用單密碼鑰機制對原始信息進行加密,然后再在這個單密鑰進行加密,這時我們可以通過公鑰機制進行加密。
對稱加密算法又叫傳統密碼算法,是應用相對比較早的加密算法,技術相對也比較成熟。在對稱加密算法中,數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理后,使其變成復雜的加密密文發送出去。接受數據方接收到密文后,若想讀懂原文,則需要使用加密用過的密鑰和其相同算法的逆算法對密文進行解密處理,這樣才能使密文恢復成可讀原文。在對稱加密算法中,使用的密鑰只有一個,發收數據雙方都使用這個同一密鑰對數據進行加密和解密,這就要求解密方解密前必須知道加密的密鑰。對稱加密算法都使用混沌可擴散的思想,因此各種對稱加密算法在加密過程和方法上都有很多相似之處。
對稱加密算法主要有如下幾種常見的算法:
DES(Data Encryption Standard):為密碼體制中的對稱密碼體制。明文按64位進行分組,密鑰長64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位, 使得每個密鑰都有奇數個1)分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。該對稱算法,數據加密標準,速度較快,適用于加密大量數據的場合;
3DES(Triple DES):是基于DES的對稱算法,又稱Triple DES,是DES加密算法的一種模式,它使用3條56位的密鑰對3DES數據進行三次加密。DES使用56位密鑰和密碼塊的方法,而在密碼塊的方法中,文本被分成64位大小的文本塊然后再進行加密。比起最初的DES,3DES更為安全。對一塊數據用三個不同的密鑰進行三次加密,強度更高;
RC2和RC4:對稱算法,用變長密鑰對大量數據進行加密,比DES 快;
BLOWFISH:是一種對稱的分組加密算法,每次加密一個64位分組,使用32位~448位的可變長度密鑰,應用于內部加密。加密過程分為兩個階段:密鑰預處理和信息加密。blowfish加密算法中使用兩個盒key—pbox[18]和key—sbox[4][256],以及一個核心的加密函數blowfish—encrypt()。這兩個盒所占存儲空間為(18×32 +4×256×32)字節,即4186字節。加密函數blowfish—encrypt()輸入64位明文,輸出64位密文。
對稱加密算法的優點是算法是公開的、計算量比較小、因計算量校所以加密速度比較快、加密的效率比較高。
不足之處是,交易雙方都使用同一鑰匙,安全性收到威脅,不能保證數據的安全。另外,每對收發數據雙發每次使用對稱加密算法時,都需要使用第三方不知道的惟一密鑰,這會使得發收數據雙方所擁有的鑰匙數量增長速度快,甚至呈幾何級數增長,因此密鑰的管理就成為用戶的負擔。對稱加密算法在分布式網絡系統上使用較為困難的原因,主要就是因為密鑰管理困難,使用成本也就較高。而與公開密鑰加密算法比起來,對稱加密算法能夠提供加密和認證卻缺乏了簽名功能,使得使用范圍有所縮小。在計算機專網系統中廣泛使用的對稱加密算法有DES和IDEA等。美國國家標準局倡導的AES即將作為新標準取代DES。
在對稱密鑰體制中,它的加密和解密的密鑰的密碼原理和體制是相同的,且收發數據雙方必須共享這個密鑰,因此對稱密碼的密鑰必須是保密的,沒有密鑰,就不能解密,知道算法和密文根本不足以確定密鑰。
對稱密碼加密技術的優點在于效率較高,算法相對比較簡單,隨之系統開銷就小,適合加密大量原始數據。同時,對稱密鑰算法還具有加密處理簡單,加解密速度快,密鑰較短,密鑰好管理,發展歷史悠久等優點。對稱密碼技術進行安全通信前需要以安全方式進行密鑰交換,且它的規模復雜。
非對稱密鑰算法具有加解密速度慢的特點,密鑰尺寸大,發展歷史較短等特點。
非對稱密鑰算法密碼體制中,它使用不同的加密密鑰和解密密鑰,且加密密鑰是向公眾公開的,而解密密鑰是需要保密的,發送數據方擁有加密或者解密密鑰,而接收數據方擁有另一個密鑰。兩個密鑰之一也是保密的,沒有解密密鑰,解密是不可行的,僅僅知道算法和其中一個密鑰以及若干密文不能確定另一個密鑰。
[1]葉建龍.RSA加密中大素數的生成方法及其改進[J].廊坊師范學院學報(自然科學版),2010,10(2):55-57.
[2]Sutter G D,Deschamps J P,Imana J L.Modular multiplication and exponentiation architectures for fast RSA cryptosystem based on digit serial computation[J].Industrial Electronics,2011,58(7):3101-3109.
[3]胡美燕,劉然慧.DES算法安全性的分析與研究[J].內蒙古大學學報,2005,36(6):694-697.
[4]王琴琴,陳相寧.Montgomery 算法在RSA 中的應用及其優化[J].計算機技術與發展,2007,17(6):145-148.
[5]崔鈺.關于計算機網絡安全中的應用信息加密技術[J].山西電子技術,2012(5).