目录
分组加密模式
ECB模式
CBC模式
CFB/OFB都可以作为流加密
CFB模式
OFB模式
分组加密的填充 PKCS7
分组加密模式
多个分组加密互相之间如何关联
ECB模式
每个分组之间单独加密,互不关联
2个分组明文一样,结果也一样,那么只需爆破其中1个就可以了
每个分组互不关联,可以分段同时来爆破,不安全
可以通过替换某段密文来达到替换明文的目的
CBC模式
每个明文分组先和上个分组的密文块进行异或,得到的结果进行加密
第1个明文块没有上个分组的密文块,需要指定一个64比特的输入,也就是初始化向量IV
例:
明文:123456789ABCDEF0
密钥:133457799BBCDFF1
IV:0123456789ABCDEF
结果:0ecb68bac16aece0 7cbadcfa7a974bcc
第一个分组123456789ABCDEF0
123456789ABCDEF0 ^ 0123456789ABCDEF = 1317131f1317131f
DES(1317131f1317131f)=0ecb68bac16aece0
第二个分组,0808080808080808
0ecb68bac16aece0 ^ 0808080808080808 = 06c360b2c962e4e8
对06c360b2c962e4e8进行DES_ECB加密,得到7cbadcfa7a974bcc
CFB/OFB都可以作为流加密
CFB模式
明文:123456789ABCDEF0
密钥:133457799BBCDFF1
IV:0123456789ABCDEF
结果:97dc452c95b66af5
IV即0123456789ABCDEF的des加密结果85e813540f0ab405
85e813540f0ab405 与 123456789ABCDEF0 的异或结果是97dc452c95b66af5
OFB模式
明文:123456789ABCDEF0
密钥:133457799BBCDFF1
IV:0123456789ABCDEF
结果:97dc452c95b66af5
即只有一个分组时,OFB与CFB是一样一样的
分组加密的填充 PKCS7
DES分组长度为64bit
1. 明文长度不够1个分组,就需要填充。
2. 明文没有内容或者明文刚好一个分组长度,都需要再填充一个分组,
填充内容08 08 08 08 08 08 08 08
3. 其他填充的情况
ab cd ef ab cd ef ab 01
ab cd ef ab cd ef 02 02
ab cd ef ab cd 03 03 03
...
ab 07 07 07 07 07 07 07
0a 07 07 07 07 07 07 07
//如果明文里有半个字节,现在半个字节前补0再填充,0a算最终明文,填充部分解密后会去掉
5. DES的密文长度是8字节的倍数, 但密钥不存在填充,DES密钥必须8字节