Triple Data Encryption Standard(TDES) - 基本介绍

来源:互联网 发布:java 执行外部命令 编辑:程序博客网 时间:2024/05/29 12:23

本文翻译自维基百科:http://en.wikipedia.org/wiki/Triple_DES

Triple Des

密码学中,Triple Des是三重数据加密算法(Triple Data Encryption Algorithm)对称块密码的通称,该算法对每个数据块作了3次的DES密码算法。

最初DES的密钥长度为56bits,在DES算法被设计时这个长度是足够的,但是随着计算机计算能力的不断提升使暴力攻击变得可行。Triple Des提供相对简单的方式通过增加密钥长度来抵挡暴力攻击,而无需去设计一个完全新的块密码算法。

标准

三重数据加密算法定义在如下标准:

  • ANS X9.52-1998 Triple Data Encryption Algorithm Modes of Operation(撤销)
  • FIPS PUB 46-3 Data Encryption Standard(DES)(撤销)
  • NIST Special Publication 800-67 Revision 1 Recommendation for the Triple Encryption Algorithm(TDEA) Block Cipher
  • ISO/IEC 18033-3:2010: Part 3:Block ciphers
算法命名
早起的标准(ANS X9.52 出版于1998)将该算法描述为“三重数据加密算法(TDEA)”,也就是三重操作的数据加密算法规定于ANSI X3.92,
该标准中没有提及术语“Triple DES”或“DES”.FIPS PUB 46-3(1999)定义了“三重数据加密算法(TDEA)”,也使用了术语DES和Triple DES.
NIST SP 800-67(2004, 2008, 2012)主要使用术语TDEA,但也提及了Triple DES. ISO/IEC 18033-3(2005)使用TDEA.
然而没有一个标准定义该算法使用术语3DES,该属于被适用于一些供应商、用户和密码学者。

算法
Triple DES使用一个由3个DES密钥K1,K2和K3组成的密钥对(key bundle),每个密钥56位(不包括校验位)。
加密算法:
密文 = EK3(DK2(EK1(明文)))
也就是用K1 对明文DES加密,K2 DES解密,最后K3 DES解密
解密算法相反:
明文=DK1(EK2(DK3(密文)))
每3次加密操作加密64位的数据块。
TripleDes通过使用密钥选项2改善算法强度,并且通过密钥选项3提供向后兼容

密钥选项
标准定义了3个密钥选项:
  • 密钥选项1:所有密钥均独立
  • 密钥选项2:K1和K2独立,K3=K1
  • 密钥选项3:   K1=K2=K3
密钥选项1最安全,带3*56=168独立密钥位
密钥选项2低安全,带2*56=112密钥位。该选项安全性是简单的DES加密的两倍,因为他能抵挡meet-in-the-middle 攻击
密钥选项3等同于DES,56位密钥。该选项NIST不再建议使用,并且IS0/IEC 18033-3不支持。

多个块的加密

安全
通常,Triple DES使用3个独立密钥(密钥选项1),有168位的密钥长度,但由于meet-in-the-middle attack,有效的安全
只提供112位密钥长度。密钥选项2减少有效密钥长度为112位(K3=K1)。该选项对chosen-plaintext 或known-plaintext
攻击敏感,最后,NIST将Triple DES设计为只有80位密钥长度。
对密钥选项1的最强攻击需要大约232 known plaintexts, 2113 steps, 290 single DES encryptions, and 288 memory,
目前来说这时不现实的,NIST考虑密钥选项1被使用到2030年。攻击者试图寻找许多密码密钥中的任意一个,有一种
memory-efficient 攻击,该攻击将要从228密钥中找到一个,对少数的已筛选的明文使用密钥进行大约284解密操作。

使用
电子支付产业使用Triple DES,并且开发和发表基于Triple DES的标准。
微软OneNote,Outlook2007和System Center Configuration Manager2012为密码使用TripleDES来保护用户内容和系统数据。

0 0
原创粉丝点击