3DES算法密鑰長度說明 3DES加密算法作為經(jīng)典的對稱加密算法,已經(jīng)廣泛應用于各安全相關行業(yè)的數(shù)據(jù)加解密與身份認證環(huán)節(jié)之中,本文主要針對用戶使用我司加密產(chǎn)品中產(chǎn)生的密鑰長度疑問給予解答。 在介紹3DES算法之前,我們先簡述DES算法。3DES和DES算法均屬于分組加密算法,即加密前將明文按照8字節(jié)長度進行順序分組(若最后一組數(shù)據(jù)長度不足8字節(jié),就進行填充處理)。例如:若明文為16字節(jié),則將其前8字節(jié)作為明文數(shù)據(jù)塊1,后8字節(jié)作為明文數(shù)據(jù)塊2。加密時使用密鑰(長度為8字節(jié))依次對數(shù)據(jù)塊1和數(shù)據(jù)塊2進行獨立的DES加密運算,分別生成密文數(shù)據(jù)塊1和密文數(shù)據(jù)塊2,最終將兩個密文數(shù)據(jù)塊順序拼接在一起,至此完成DES加密運算。 3DES算法顧名思義,就是3重DES加密,通俗的講就是將明文數(shù)據(jù)塊進行了3次DES運算,安全強度比DES更高。此處僅以8字節(jié)明文數(shù)據(jù)進行舉例說明。3DES算法將24字節(jié)密鑰以8字節(jié)長度進行了分組,前八字節(jié)為KEY1,中間8字節(jié)為KEY2,最后8字節(jié)為KEY3。加密的時候,使用KEY1對明文數(shù)據(jù)塊1進行DES加密得到C1,使用KEY2對C1進行DES解密得到C2,再用KEY3對C2進行DES加密得到C3。解密的流程與之相反,先用KEY3對C3進行DES解密得到M3,再用KEY2對M3進行DES加密得到M2,最后用KEY1對M2進行DES解密得到M1。 可以看出,3DES算法的密鑰長度雖然為24字節(jié),但加解密運算的時候,也是拆分為8字節(jié)為一組進行DES運算的。我司的加密芯片或者加密狗中3DES密鑰長度一般設置為16字節(jié),這是因為將KEY3設置與KEY1相等的原因,但實際運算的時候,和國際通用的3DES加密算法流程一致,所以并不會影響用戶的使用。
|