encryption加密之分组模式
之前我们说的
DES,AES
都是属于分组密码
他们只能加密固定长度的明文
所以如果我们要加密任意长度的明文
我们要对密码进行分组迭代加密
这种分组迭代加密的方法就称为
分组密码的模式
也就是分组模式
分组模式主要有
1.ECB 电子密码本模式
2.CBC 密文分组链接模式
3.CFB 密文反馈模式
4.OFB 输出反馈模式
5.CTR 计数器模式
先说第一种ECB
1.ECB
Electronic Code Book
电子密码本模式
这种是最简单的加密模式
明文被分成固定大小的块(分组),然后每个块被单独加密
但是这种分组模式不太安全
因为一旦有一个块被破解
那么使用相同的方法就可以破解所有的块
2.
CBC模式
Cipher Block Chaining
密文分组链接
这种模式是要每一个分组和之前一个分组加密后的数据进行XOR亦或操作
然后再进行加密
每一个数据块进行加密之前需要用初始化向量IV(initial vector)
进行亦或操作
3.
CFB模式
Cipher FeedBack
密文反馈模式
CBC和CFB有点像
CBC是先亦或,再加密
CFB是先加密,再亦或
4.
再来说OFB模式
Output-Feedback
输出反馈模式
在OFB模式中,加密算法的输出会反馈到密码算法的输入中
也就是上一个分组密码的算法的输出是
当前分组密码算法的输入
OFB与CFB模式的对比
OFB和CFB的区别在于密码算法的输入
CFB当中,密码算法的输入是前一个密文的分组
OFB当中,密码算法的输入是前一个密码算法的输出
5.
CTR模式
counter CounTeR
计数器模式
CTR模式是一种通过将逐次累加的计数器进行加密
来生成密钥流的流密码
CTR模式中,每个分组对应一个逐次累加的计数器,
并通过对计数器进行加密来生成密钥流。
就是说最终的密文分组是通过将计数器加密
得到的比特序列与明文分组进行XOR而得
总结一下五种分组模式
1.电子密码本模式 ECB
2.密文链接模式 CBC 推荐
3.密文反馈模式 CFB
4.输出反馈模式 OFB
5.计数器模式 CTR 推荐