加密芯片—3DES算法特點(diǎn)與應(yīng)用注意事項(xiàng)
LKT系列加密產(chǎn)品中自帶硬件3DES算法協(xié)處理器,可以有效的為用戶開發(fā)提供更多的選擇和安全性。
3DES是三重數(shù)據(jù)加密算法的通稱。它是DES算法的增強(qiáng)版,相當(dāng)于對每個數(shù)據(jù)塊應(yīng)用三次DES運(yùn)算。因?yàn)槊荑€長度的增加,安全等級和破解難度也要高于DES算法。
3DES算法的加密流程分為3步
1、明文數(shù)據(jù)分組
2、分組加密
3、分組加密結(jié)果組合
下面展開說明。
3DES算法的密鑰長度為24字節(jié),以8字節(jié)為單位按順序?qū)⒚荑€分為K1,K2,K3三部分。如果K1 = K3,則可以將密鑰長度縮減為16字節(jié)(LKT加密產(chǎn)品中的3DES算法將K1、K3設(shè)置相等,讓密鑰長度固定位16字節(jié))。第一步,在加密運(yùn)算過程中先對明文數(shù)據(jù)按8字節(jié)分成N組,不滿8字節(jié)的塊要進(jìn)行數(shù)據(jù)填充。第二步,分別對N組數(shù)據(jù)進(jìn)行加密運(yùn)算。設(shè)Ek()和Dk()代表DES算法的加密和解密過程,Mn代表第n組明文,Cn代表第n組密文,C代表最終的加密結(jié)果,則每組數(shù)據(jù)的3DES加密流程為:Cn=Ek3(Dk2(Ek1(Mn)))。第三步,將N組加密結(jié)果順序拼接在一起即完成加密運(yùn)算, C = C1C2C3......Cn。
綜上,3DES算法與DES一樣,均為塊加密算法,密文數(shù)據(jù)以8字節(jié)為單位獨(dú)立存在。若明文長度為16字節(jié),當(dāng)改變明文的前8字節(jié)時,只會影響密文的前8字節(jié),密文后8字節(jié)不變。因此,在應(yīng)用3DES算法對線路傳輸數(shù)據(jù)加密過程中,若想保證密文的整體變化,要保證每塊明文數(shù)據(jù)都是變化的。
使用者在設(shè)置密鑰的時候應(yīng)注意,密鑰的前后8字節(jié)不要完全一樣,否則就變?yōu)榱薉ES算法,安全強(qiáng)度就會下降(用戶可根據(jù)Cn=Ek3(Dk2(Ek1(Mn)))公式自行推導(dǎo))。需要特別留意的是,密鑰每字節(jié)中的最后一位是檢驗(yàn)位,不會參與到加密運(yùn)算中。例如:K1 = 0000000000000000,K2 = 0101010101010101,則K1、K2對同組數(shù)據(jù)加密的結(jié)果是一樣的。
希望本文能讓大家對3DES的算法特點(diǎn)有個更直觀的認(rèn)識,更安全有效的利用3DES算法設(shè)計數(shù)據(jù)加解密的方案,將LKT系列加密產(chǎn)品中自帶的3DES算法接口高效利用起來。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。