des加密过程详解(配图详解)
链接:https://www.jianshu.com/p/c44a8a1b7c38
DES解密过程:
在了解了加密过程中所有的代替、置换、异或和循环迭代之后,读者也许会认为,解密算法应该是加密的逆运算,与加密算法完全不同。恰恰相反,经过密码学家精心设计选择的各种操作,DES获得了一个非常有用的性质:加密和解密使用相同的算法!
DES加密和解密唯一的不同是密钥的次序相反。如果各轮加密密钥分别是K1,K2,K3…K16,那么解密密钥就是K16,K15,K14…K1。这也就是DES被称为对称算法的理由吧。
原文链接:https://blog.csdn.net/honeygirl_/article/details/90716328
DES加密算法中,ECB和CBC模式有什么区别?
ECB模式:
DES ECB(电子密本方式)其实非常简单,就是将数据按照8个字节一段进行DES加密或解密得到一段段的8个字节的密文或者明文,最后一段不足8个字节(一般补0或者F),按照需求补足8个字节进行计算(并行计算),之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。
优点:
简单;
有利于并行计算;
误差不会被传递;
缺点:
不能隐藏明文的模式;
可能对明文进行主动攻击;
CBC模式:
优点:
不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准;
缺点:
不利于并行计算;
误差传递;
需要初始化向量IV;
DES CBC(密文分组链接方式)有点麻烦,它的实现机制使加密的各段数据之间有了联系。其实现的机理如下:
加密步骤如下:
首先将数据按照8个字节一组进行分组得到D1D2…Dn(若数据不是8的整数倍,用指定的PADDING数据补位)
第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)
第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2
之后的数据以此类推,得到Cn
按顺序连为C1C2C3…Cn即为加密结果。