对称(与分组)加密算法之3DES原理详谈
3DES概述
英文:Triple DES
看名字就知道和DES有关系,它的原理是使用两条不同的56bit的**对数据进行三次加密,是DES的进化版
意义:DES的**长度为64bit,长度不算是很长,被**的可能性也比较高,所以将**长度增加到192bit,长度是DES的三倍,所以称为3DES。顾名思义2DES的**长度也就是128bit,2DES比较少见。增加长度的意义是为了避免暴力**(**)。
3DES的加密过程
重复三次DES运算,就是先加密然后解密然后再加密
3DES继承了DES的什么特性
首先DES和3DES是完全兼容的,3DES加密的,DES是能解密的,反之,用DES精密度,3DES也是能够解密,这里概况起来有点笼统,这个点不是很重要,不懂也无所谓。
既然是继承自DES的那当然遗传了DES特性了
第一点:同样是对称加密算法
第二点:都是分组加密算法
第三点:是可逆的
第四点:三个参数入口:Key、Data、Mode
加密与解密
先来看张图(画得不是很好)
总所周知DES的安全性不依赖算法,而依赖于**的复杂程度(长度、扩展长度、混乱程度),也就是说K1、K2、K3决定了算法的安全性,三个**可以相同也可以不相同,相同的话还不如使用DES就好,但是如若不相同就相当于使用一个长度为168的**,这如果没有几张2080it交火那就别跑字典了乖乖玩监听。
具体实现:
设DS()和JJ()代表DES的加密和解密过程,K代表**,M是明文,L是密文,可得:
加密过程为:L=DS3(JJ2(DS1(M)))
由加密过程可得解密过程为:M=JJ1(DS2(DS3(L)))
解释
加密解释:由图片可以得知3DES在加密前会先将**分成三组,分别是K1、K2、K3,首先利用第一把钥匙也就是K1进行加密,然后再利用K2进行解密(这个时候如果是不同的钥匙解密肯定失败,也就是会得到一“坨”乱码)最后再使用最后一把也就是K3进行再次加密得到最后的密文
解密解释:解密的过程其实就是加密的逆过程,这一点和DES一样。看图可知,先利用K3对密文进行解密处理,再使用K2进行加密,最后利用K1进行解密,就可以得到原来的明文
总结:
1.3DES是DES的进化版
2.3DES继承了DES很多的优缺点,就像是在练伪音,会继承本音的特点一样
3.3DES需要的数据空间是DES的三倍
…
其他链接
哔哩哔哩
会同步该博客发一些自制视频
微博
用的比较少
Github
一些源代码
知乎
不懂的我一般会在上面提问
简书
同步该博客内容相同
个人联系方式
QQ:2446264712
微信:X15019749137
有意添加请备注 啊啊啊啊