3DES加密主要函数
void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
DES_key_schedule *ks2, DES_key_schedule *ks3)
{
register DES_LONG l, r;
l = data[0];
r = data[1];
IP(l, r);
data[0] = l;
data[1] = r;
DES_encrypt2((DES_LONG *)data, ks1, DES_ENCRYPT);
DES_encrypt2((DES_LONG *)data, ks2, DES_DECRYPT);
DES_encrypt2((DES_LONG *)data, ks3, DES_ENCRYPT);
l = data[0];
r = data[1];
FP(r, l);
data[0] = l;
data[1] = r;
}
void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
DES_key_schedule *ks2, DES_key_schedule *ks3)
{
register DES_LONG l, r;
l = data[0];
r = data[1];
IP(l, r);
data[0] = l;
data[1] = r;
DES_encrypt2((DES_LONG *)data,
本文介绍了OpenSSL中3DES的加密和解密过程,详细解析了加密顺序与解密顺序的相反操作。在3DES中,24字节的密钥被分为三组,每组8字节,分别用于加密和解密。解密过程与加密过程相反,使用了key1、key2、key3进行三次加密和解密操作。2DES实现则是将key3替换为key1,遵循相同的步骤。
订阅专栏 解锁全文

1099

被折叠的 条评论
为什么被折叠?



