密碼學黑客:三重DES基礎講解

由於DES算法已經可以在顯示時間內可以暴力破解,密碼學的專家就開發出了三重DES(也叫做TDEA),就是用密鑰1,密鑰2,密鑰3進行,加密,解密,加密,看清楚了,這裡不是三個加密,而是兩個加密和一個解密,由於DES的密鑰長度實際是56比特,則三重DES的密鑰長度就是168比特,這個方法是IBM公司設計出來的,當三個3重DES的密鑰都相同時,那麼三重DES就相當於DES,那麼就要保證三個密鑰不能相同。

記住三重DES的加密工程:加密→解密→加密(三個不同的密鑰)

密碼學黑客:三重DES基礎講解

密碼學

3重DES算法

3DES算法是指使用雙長度(16字節)密鑰K=(KL||KR)將8字節明文數據塊進行3次DES加密/解密。如下所示:

Y = DES( KL[DES-1( KR[DES( KL[X] )] )] )

解密方式為:

X = DES-1( KL[DES( KR[DES-1( KL[Y] )] )] )

其中,DES( KL[X] )表示用密鑰K對數據X進行DES加密,DES-1( KR[Y] )表示用密鑰K對數據Y進行解密。

SessionKey的計算採用3DES算法,計算出單倍長度的密鑰。表示法為:SK = Session(DK,DATA)

3DES加密算法為:

VOID 3DES(BYTE DoubleKeyStr[16], BYTE Data[8], BYTE Out[8])

{

BYTE Buf1[8], Buf2[8];

DES (&DoubleKeyStr[0], Data, Buf1);

UDES(&DoubleKeyStr[8], Buf1, Buf2);

DES (&DoubleKeyStr[0], Buf2, Out);

}

密碼學黑客:三重DES基礎講解

單向加密:通過對數據進行摘要計算生成密文,密文不可逆推還原。算法代表:Base64,MD5,SHA;

雙向加密:與單向加密相反,可以把密文逆推還原成明文,雙向加密又分為對稱加密和非對稱加密。

對稱加密:指數據使用者必須擁有相同的密鑰才可以進行加密解密,就像彼此約定的一串暗號。算法代表:DES,3DES,AES,IDEA,RC4,RC5;

非對稱加密:相對對稱加密而言,無需擁有同一組密鑰,非對稱加密是一種“信息公開的密鑰交換協議”。非對稱加密需要公開密鑰和私有密鑰兩組密鑰,公開密鑰和私有密鑰是配對起來的,也就是說使用公開密鑰進行數據加密,只有對應的私有密鑰才能解密。這兩個密鑰是數學相關,用某用戶密鑰加密後的密文,只能使用該用戶的加密密鑰才能解密。如果知道了其中一個,並不能計算出另外一個。因此如果公開了一對密鑰中的一個,並不會危害到另外一個密鑰性質。這裡把公開的密鑰為公鑰,不公開的密鑰為私鑰。算法代表:RSA,DSA。


分享到:


相關文章: