到底什么是3倍DES

还是那句老话,这种专业技术性的问题,什么Google 百度全都不顶用,还是wikipedia靠谱。

TripleDES,通常被记为TDES,更标准的写法是TDEA(Triple Data Encryption Algorithm),3DES的写法是不标准的,应当避免。

TripleDES是在DES基础之上发展的,这个算法使用三个密钥Key1,Key2和Key3对明文依次做三次DES加解密得到密文,解密的过程则恰好反过来。

这三个Key1,Key2和Key3合在一起组成一个密钥组(key bundle)。

选择三个密钥时可以有两种方式:
1)Key1 != Key2 !=Key3 != Key1,即三个密钥各不相同,记做 3TDES,或者3TDEA
2)Key1 != Key2, Key3 = Key1,即第一次和第三次DES加密使用相同的密钥,第二次DES加密使用另外的密钥,记做2TDES,或者3TDEA。
或者说,TDES根据密钥的选择可以分为3TDES和2TDES。

对明文做处理的时候,可以三次都是DES加密过程,也可以是加密和解密相间。比较常用的是两种方式:
1)加密-加密-加密 也被记做EEE模式;
2)加密-解密-加密 也被挤作EDE模式。
其中EDE模式的使用更加广泛。这里有个地方要指出的是,如果选择Key1=Key2=Key3,采用EDE模式处理的话,TDES和DES的工作效果相同。

分组和加密强度:
DES/TDES是分组加密的算法,每个分组大小64bit。
DES的加密密钥是56bit,外加8bit的校验位。3TDES和2TDES的加密密钥分别对应是168bit和112bit。
或者说DES/2TDES/3TDES的加密强度分别是56/112/192bit。

但是针对特定攻击方式,DES/2TDES/3TDES的抗攻击性不是那么好。
DES是可以暴力破解的。
2TDES方面,“两面夹”(meet-in-middle)攻击对2TDES特别有效。2TDES对 chosen-plaintext 或者 known-plaintext 攻击的表现能力也受到怀疑,官方认为2TDES的加密强度实际只有80bit。
3TDES方面, 目前认为破解3TDES需要232 known plaintexts, 2113 steps, 290 single DES encryptions, and 288 memory,这个现在认为实际是完不成的。不过因为破解算法可以并行完成,倘若攻击者花费billion-dollor级别的预算和数年时间,通过特定明文攻击是轻而易举的事情。

DES/TDES和AES
AES是DES/TDES的“法定继承人”。相比DES/TDES,AES的分组更大,可以使用的密钥也更长。由于设计的原因,在软件环境下,TDES的计算速度要比AES的计算慢6倍。
在实际环境中AES正在逐渐取代TDES。不过TDES的设计在硬件环境下更为容易实现,例如在VPN应用中就还有使用TDES的。尽管如此,在这些硬件环境下,AES也正在慢慢取代TDES。

SP800-67是NIST对TDES的规范。

在规范的附录B中给出了一个加解密的实例,可以作为TDES实现的验证。
密钥:
Key1 = 0123456789ABCDEF
Key2 = 23456789ABCDEF01
Key3 = 456789ABCDEF0123

明文 明文16进制 密文16进制
“The quic” 5468652071756663 A826FD8CE53B855F
“k brown ” 6B2062726F776E20 CCE21C8112256FE6
“fox jump” 666F78206A756D70 68D5C05DD9B6B900

不过这里面有个小小的错误,"The quic"中的字符“i”对应的asci码应该是0x69,该规范中把它处理成了0x66,不过后面的的加密过程看起来是OK的。

我在jdk中,使用"TripleDES/ECB/Nopadding"方式通过了验证。另外还验证了此时的加密模式是EDE。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值