密码学黑客:三重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。


分享到:


相關文章: