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