簡述3DES加密算法

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

什么是3DES?

3DES,也稱為3DESede或TripleDES,是三重數(shù)據(jù)加密算法,相當于是對每個數(shù)據(jù)庫應用三次DES的對稱加密算法,是DES的改進版。

3DES
圖片來源于網絡

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

3DES加密過程

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

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

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

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

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

3DES
圖片來源于網絡

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

3DES
圖片來源于網絡

3DES解密過程

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

3DES
圖片來源于網絡

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

免責聲明:素材源于網絡,如有侵權,請聯(lián)系刪稿。