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