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