DES 算法提供 CBC, OFB, CFB, ECB 四种模式,MAC 是基于 ECB 实现的。
一、数据补位
DES 数据加解密就是将数据按照 8 个字节一段进行 DES 加密或解密得到一段 8 个字
节的密文或者明文,最后一段不足 8 个字节,按照需求补足 8 个字节(通常补 00 或者
FF,根据实际要求不同)进行计算,之后按照顺序将计算所得的数据连在一起即可。
这里有个问题就是为什么要进行数据补位?主要原因是 DES 算法加解密时要求数据必
须为 8 个字节。
二、ECB 模式
DES ECB(电子密本方式)其实非常简单,就是将数据按照 8 个字节一段进行 DES
加密或解密得到一段 8 个字节的密文或者明文,最后一段不足 8 个字节,按照需求补足 8
个字节进行计算,之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。
三、CBC 模式
DES CBC(密文分组链接方式)有点麻烦,它的实现机制使加密的各段数据之间有了
联系。其实现的机理如下:
加密步骤如下:
1)首先将数据按照 8 个字节一组进行分组得到 D1D2......Dn(若数据不是 8 的整数倍,
用指定的 PADDING 数据补位)
2)第一组数据 D1 与初始化向量 I 异或后的结果进行 DES 加密得到第一组密文 C1
(初始化向量 I 为全零)
3)第二组数据 D2 与第一组的加密结果 C1 异或以后的结果进行 DES 加密,得到第二
组密文 C2
4)之后的数据以此类推,得到 Cn
5)按顺序连为 C1C2C3......Cn 即为加密结果。
解密是加密的逆过程,步骤如下:
)首先将数据按照 8 个字节一组进行分组得到 C1C2C3......Cn
2)将第一组数据进行解密后与初始化向量 I 进行异或得到第一组明文 D1(注意:一
定是先解密再异或)
3)将第二组数据 C2 进行解密后与第一组密文数据进行异或得到第二组数据 D2
评论0
最新资源