簡(jiǎn)述3DES加密算法

之前我們聊了DES加密算法,在文章的最后我們提到了人們?yōu)榱丝朔﨑ES加密算法的不足,提出了三重DES,也就是3DES,今天我們就來(lái)簡(jiǎn)單了解一下它。

什么是3DES?

3DES,也稱為3DESede或TripleDES,是三重?cái)?shù)據(jù)加密算法,相當(dāng)于是對(duì)每個(gè)數(shù)據(jù)庫(kù)應(yīng)用三次DES的對(duì)稱加密算法,是DES的改進(jìn)版。

3DES
圖片來(lái)源于網(wǎng)絡(luò)

由于DES密碼長(zhǎng)度容易被暴力破解,所以3DES算法通過(guò)對(duì)DES算法進(jìn)行改進(jìn),增加DES的密鑰長(zhǎng)度來(lái)避免類似的攻擊,針對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行三次DES加密;因此,3DES加密算法并非什么新的加密算法,是DES的一個(gè)更安全的變形,它以DES為基本模塊,通過(guò)組合分組方法設(shè)計(jì)出分組加密算法。

3DES加密過(guò)程

3DES算法的加解密過(guò)程分別是對(duì)明文/密文數(shù)據(jù)進(jìn)行三次DES加密或解密,得到相應(yīng)的密文或明文。

假設(shè)EK()和DK()分別表示DES的加密和解密函數(shù),P表示明文,C表示密文,那么加解密的公式如下:

加密:C = EK3( DK2( EK1(P)) ),即對(duì)明文數(shù)據(jù)進(jìn)行,加密 --> 解密 --> 加密的過(guò)程,最后得到密文數(shù)據(jù);

解密:P = DK1( EK2( DK3(C)) ),即對(duì)密文數(shù)據(jù)進(jìn)行,解密 --> 加密 --> 解密的過(guò)程,最后得到明文數(shù)據(jù);

其中:K1表示3DES中第一個(gè)8字節(jié)密鑰,K2表示第二個(gè)8字節(jié)密鑰,K3表示第三個(gè)8字節(jié)密鑰,K1、K2、K3決定了算法的安全性,若三個(gè)密鑰互不相同,本質(zhì)上就相當(dāng)于用一個(gè)長(zhǎng)為168位的密鑰進(jìn)行加密。多年來(lái),它在對(duì)付強(qiáng)力攻擊時(shí)是比較安全的。若數(shù)據(jù)對(duì)安全性要求不那么高,K1可以等于K3。在這種情況下,密鑰的有效長(zhǎng)度為112位,即K1對(duì)應(yīng)KL(左8字節(jié)),K2對(duì)應(yīng)KR(右8字節(jié)),K3對(duì)應(yīng)KL(左8字節(jié))。

3DES
圖片來(lái)源于網(wǎng)絡(luò)

當(dāng)三重密鑰均相同時(shí),前兩步相互抵消,相當(dāng)于僅實(shí)現(xiàn)了一次加密,因此可實(shí)現(xiàn)對(duì)普通DES加密算法的兼容。

3DES
圖片來(lái)源于網(wǎng)絡(luò)

3DES解密過(guò)程

3DES解密過(guò)程,與加密過(guò)程相反,即逆序使用密鑰。是以密鑰3、密鑰2、密鑰1的順序執(zhí)行 解密->加密->解密。

3DES
圖片來(lái)源于網(wǎng)絡(luò)

相比DES,3DES因密鑰長(zhǎng)度變長(zhǎng),安全性有所提高,但其處理速度不高。因此又出現(xiàn)了AES加密算法,AES較于3DES速度更快、安全性更高。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。