the5fire

关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


三重DES概述

作者:the5fire | 标签:     | 发布:2010-11-24 12:12 a.m. | 阅读量: 11502, 11211
前面实现了基本的DES算法,但众所周知的是DES算法的安全性不是很高,究其原因还得归结到他的密钥位上,刨去8位校验位,剩下的56位密钥实在太短,以现在普通机器运行的速度,使用穷举法很快就可以破译。(这是我也是看资料看来得,没有实践)

基于上述理由所以有必要对DES进行修改,因此也就有了多重DES。所谓多重DES不过是通过多个密钥来进行重复的加密运算,其目的不过是为了增加密钥量。那到底重复多少次才合理呢,我是不晓得的,你知道的话可以告诉我\(^o^)/~。不过用的比较广泛的就是三重DES加密了。

关于三重DES加密有四种不同的模式,罗列如下:
1. DES-EEE3模式。使用三个不同密钥(k1,k2,k3),采用三次加密算法。
2. DES-EDE3模式。使用三个不同密钥(k1,k2,k3),采用加密-解密-加密算法。
3. DES-EEE2模式。使用两个不同密钥(k1 = k3,k2),采用三次加密算法。
4. DES-EDE2模式。使用两个不同密钥(k1 = k3,k2),采用加密-解密-加密算法。

从使用模式来看,前两种的总密钥长度均为168位,后两种的总密钥长度为112位。站在攻击者的角度来看,前者攻击的复杂度从O(2^56)增加到O(2^168),后两个的攻击复杂度从O(2^56)增加到O(2^112),这样就有效的克服了DES面临的穷举法攻击,据资料称也增强了抗差分分析和线性分析的能力(这个我是不太了解,因为还没搞明白差分分析和线性分析的原理)。

上述四种模式各有各的好处,不过介于现在的可行性分析,攻击复杂度的提高就意味着你在加密时要运算的复杂度也要提高,因此效率和安全也需要找到一个平衡点。
- from the5fire.com
----EOF-----

微信公众号:Python程序员杂谈


其他分类: