1. 前言
随着计算机的发展,DES 很容易被暴力破解,DES 也一直在完善,在1999年10月25日,DES作为FIPS46-3第四次延长标准期限,其中规定优先使用 3DES,而普通DES只允许在遗留的系统中应用。
2. 介绍
密码学中,三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES),是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
3、形成过程
如 数据加密 ---- DES 加密 第 2 节
4. 算法说明
3DES使用“密钥包”,其包含3个DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。加密算法为:
C = EK3(DK2(EK1(P))
也就是说,使用K1为密钥进行DES加密,再用K2为密钥进行DES“解密”,最后以K3进行DES加密。
而解密则为其反过程:
P = DK1(EK2(DK3(C)))
即以K3解密,以K2“加密”,最后以K1解密。
每次加密操作都只处理64位数据,称为一块。
无论是加密还是解密,中间一步都是前后两步的逆。这种做法提高了使用密钥选项2 时的算法强度,并在使用密钥选项3时与DES兼容。
标准定义了三种密钥选项:
- 密钥选项1:三个密钥是独立的。
- 密钥选项2:K1和K2是独立的,而K3=K1
- 密钥选项3:三个密钥均相等,即K1=K2=K3
密钥选项1的强度最高,拥有3 x 56 = 168个独立的密钥位。
密钥选项2的安全性稍低,拥有2 x 56 = 112个独立的密钥位。该选项比简单的应用DES两次的强度较高,即使用K1和K2,因为它可以防御中途相遇攻击。
密钥选项3等同与DES,只有56个密钥位。这个选项提供了与DES的兼容性,因为第1和第2次DES操作相互抵消了。该选项不再为国家标准科技协会(NIST)所建议[2],亦不为ISO/IEC 18033-3所支持。
其他算法可以看:数据加密 ---- 总篇
附:
Android 使用实例:https://blog.csdn.net/shift_wwx/article/details/84062589