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