一、DES算法简介
1、DES算法介绍
2、工作模式
1)ECB模式
DES ECB(电子密本方式)其实非常简单,就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,按照需求补足8个字节进行计算,之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。
2)CBC模式
DES CBC(密文分组链接方式)有点麻烦,它的实现机制使加密的各段数据之间有了联系。其实现的机理如下:
加密步骤如下:
a)首先将数据按照8个字节一组进行分组得到D1、D2......Dn(若数据不是8的整数倍,用指定的PADDING数据补位)
b)第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)
c)第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2
d)之后的数据以此类推,得到Cn
e)按顺序连为C1C2C3......Cn即为加密结果。
解密是加密的逆过程,步骤如下:
a)首先将数据按照8个字节一组进行分组得到C1C2C3......Cn
b)将第一组数据进行解密后与初始化向量I进行异或得到第一组明文D1(注意:一定是先解密再异或)
c)将第二组数据C2进行解密后与第一组密文数据进行异或得到第二组数据D2