淺析RC5、CAST、Blowfish加密算法比較

RC5加密算法
RC5密碼是一種非??焖偾液唵蔚乃惴?,由塊尺寸、輪數(shù)和密鑰長度參數(shù)化。這些參數(shù)能被調(diào)整以滿足不同的安全目的、性能和出口能力。RC5加密算法有以下四種形式,第一種是原始的RC5塊加密,RC5密碼使用固定的輸入長度,使用一個(gè)依賴密鑰的轉(zhuǎn)換產(chǎn)生一個(gè)固定長度的輸出塊。第二種是RC5-CBC,是RC5的塊密碼鏈接模式。它能處理長度是RC5塊尺寸倍數(shù)的消息。第三種是RC5-CBC-Pad,處理任意長度的明文,盡管密文將比明文長但長度至多長一個(gè)RC5塊。RC5-CTS密碼是RC5算法的密文挪用模式,處理任意長度的明文且密文的長度匹配明文的長度。

CAST加密算法族
CAST屬于稱為Feistel結(jié)構(gòu)的加密算法,對(duì)于微分密碼分析、線性密碼分析、密碼相關(guān)分析具有較好的抵抗力,并符合嚴(yán)格雪崩標(biāo)準(zhǔn)和位獨(dú)立標(biāo)準(zhǔn),沒有互補(bǔ)屬性,也不存在軟弱或者半軟弱的密鑰。因此,對(duì)于要求密碼強(qiáng)壯、加密算法容易獲取的Internet而言,CAST-128是一種能夠滿足一般應(yīng)用的很好的選擇。

盡管CAST-128支持上述12種長度的密碼,但在典型的應(yīng)用中發(fā)現(xiàn)40、64、80和128位是最有用的密碼長度。因此,只要支持這四種長度的子集對(duì)于大多數(shù)應(yīng)用就足夠了。為了避免在使用不同的密碼長度操作時(shí)發(fā)生混淆,CAST-128被認(rèn)為與名CAST5是同義的,這樣在后面加上密碼長度就不會(huì)發(fā)生歧義了。這樣,比方說使用40位密碼的CAST-128就被表示為CAST5-40;如果明確地使用128位密碼,應(yīng)該使用名稱CAST5-128。在密鑰的選擇上,CAST不像DES那樣,在CAST中,沒有弱密鑰,也沒有半弱密鑰,CAST的密鑰不存在定點(diǎn),也沒有相等的密鑰。CAST算法具有相當(dāng)高的安全性。

Blowfish加密算法
Blowfish加密算法是一種常用的強(qiáng)對(duì)稱加密算法,由于它的高效、容易實(shí)現(xiàn)等優(yōu)良性能,正越來越多地運(yùn)用于電子商務(wù)、軍事、安全通信等諸多領(lǐng)域,逐步取代了DES的地位。16輪Blowfish加密算法可以抗差分攻擊。BLOWFISH-64是可變長密鑰64位塊加密系統(tǒng)。算法可分為兩部分(密鑰擴(kuò)展部分和數(shù)據(jù)加/解密部分):密鑰擴(kuò)展部分把密鑰(至多448位)轉(zhuǎn)換為一些字密鑰序列(共4168位)。數(shù)據(jù)加(解)密部分包括16輪位操作,每一輪由密鑰變換和數(shù)據(jù)變換組成。所有的操作都為32位與運(yùn)算。每輪唯一的附加操作是四次數(shù)據(jù)查詢。

總結(jié):
在DES算法逐漸不能適應(yīng)數(shù)據(jù)安全的要求的形勢下,三種新型的同樣基于feistel結(jié)構(gòu)的加密算法被提出來,在加密強(qiáng)度上大大超越了DES。CAST的使用高度非線性S置換箱的子密鑰生成結(jié)構(gòu)使得子密鑰對(duì)于已知的密碼分析攻擊有很強(qiáng)的抗擊力。Blowfish使用加密算法本身產(chǎn)生子密鑰;RC5使用一個(gè)偽隨機(jī)序列和一系列可變長度循環(huán)移位和模加法的復(fù)雜操作。CAST-128使用專門用于子密鑰生成的S置換箱(S4~S7)的結(jié)構(gòu)提供最佳的密碼強(qiáng)度。然而,這三種加密方法都優(yōu)于DES中簡單的替代-置換結(jié)構(gòu)。同時(shí)這三種加密方法也各有其缺點(diǎn)。CAST中使用了巨大的S盒,對(duì)于一些便攜設(shè)備以及對(duì)數(shù)據(jù)安全要求較高的傳感器設(shè)備來說都是相當(dāng)大的;此外,CAST在生成子密鑰時(shí)很慢,甚至比DES還要慢,可能就不能滿足一些實(shí)時(shí)性要求較高的服務(wù)的要求。

RC5、CAST、Blowfish三種加密算法的安全性比較

淺析RC5、CAST、Blowfish加密算法比較

RC5、CAST、Blowfish三種加密算法與DES的性能比較

淺析RC5、CAST、Blowfish加密算法比較