
3DES加密算法的源代码。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
3DES(又称三重数据加密算法,TDEA)是一种块密码,它实质上是对每个数据块重复应用三次DES加密算法。最初定义该算法的标准(ANS X9.52,1998年发布)将其描述为“三重数据加密算法(TDEA)”,即为ANSI X3.92中定义的数据加密算法(DEA)的三次重复操作,并且完全未使用“3DES”或“DES”这一术语。FIPS PUB 46-3(1999)则定义了“三重数据加密算法”(TDEA),同样采用了“Triple DES”和“DES”这两个名称。该标准在概念上将“数据加密算法”(DEA)和“DES”互换使用,并以此作为对DES的定义:数据加密标准(DES)应包含下文所述的数据加密算法(DES[4])以及三重数据加密算法(TDEA,正如ANSI X9.52中所描述的)。NIST SP 800-67(2004,2008[5])主要使用了术语TDEA,但也提到了“Triple DES(TDEA)”。ISO/IEC 18033-3(2005)使用了“TDEA”,并指出其是通称Triple DES(数据加密标准)。值得注意的是,没有一个正式的标准使用术语“3DES”。 3DES算法采用“密钥包”,其中包含三个独立的DES密钥:K1、K2和K3,每个密钥均为56位 (不包括奇偶校验位)。 加密过程如下:密文 = EK3(DK2(EK1(平文)))。也就是说,首先使用K1进行DES加密,然后使用K2进行相应的“解密”操作,最后以K3再次进行DES加密。而解密过程则相反:平文 = DK1(EK2(DK3(密文)))。每次操作处理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两次;此外, 密钥选项3与 DES 兼容, 因为第一次和第二次 DES 操作相互抵消, 因此不再被国家标准科技协会 (NIST) 建议, 也未被 ISO/IEC 18033-3 所支持。
全部评论 (0)


