3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
3DES使用“密钥包”,其包含3个DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。加密算法为:
密文 = EK3(DK2(EK1(平文)))也就是说,使用K1为密钥进行DES加密,再用K2为密钥进行DES“解密”,以K3进行DES加密。
而解密则为其反过程:
平文 = DK1(EK2(DK3(密文)))即以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,因为它可以防御中途相遇攻击(英语:meet-in-the-middle attack)。
密钥选项3等同与DES,只有56个密钥位。这个选项提供了与DES的兼容性,因为第1和第2次DES操作相互抵消了。该选项不再为国家标准科技协会(NIST)所建议,亦不为ISO/IEC 18033-3所支持。
普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由於中途相遇攻击(英语:meet-in-the-middle attack),它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱,因此NIST认定它只有80位的安全性。
对密钥选项1的已知攻击需要约232组已知明文,2113部,290次DES加密以及288位内存(该论文提到了时间和内存的其它分配方案)。这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择平文和约284次加密操作找到228个目标密钥中的一个。
更多精彩内容,请登入维库电子通(wiki.dzsc.com)
维库电子通,电子知识,一查百通!
已收录词条48237个