对称加密算法都会使用加密模式,比如 cbc模式 ecb 模式等。本文介绍四种常见的加密模式:ECB、CBC、CFB、OFB。
电子密码本模式 Electronic Code Book(ECB):
原理如下图:
明文被分成等长的小块(长度取决于加密算法的加密单位)、每一块使用秘钥单独加密成密文,小块之间相互独立。
优点:
1.简单;
2.每个加密块相互独立,没有依赖关系,有利于并行计算,且 误差不会被传送
缺点:
不安全,易破解。
加密块链模式 Cipher Block Chaining(CBC):
原理如下图:
将明文分成固定长度,将前面一个加密块输出的密文与下一个要加密的明文块进行XOR(异或)操作计算,将计算结果再用密钥进行加密得到密文
第一明文块加密的时候,因为前面没有加密的密文,所以需要一个初始化向量(IV)
优点:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文。
缺点:
1.每个加密块依赖于前一个加密快,不利于并行计算;且若有误差,影响后面的块,即误差传递;
2.需要初始化向量IV
加密反馈模式 Cipher Feedback Mode(CFB):
原理如下图:
用一个length位的位移寄存器(length 为加密算法的加密单位),每次处理n位的数据(n通常为8,一字节),加密过程是对位移寄存器进行加密。
使用加密后的位移寄存器的高n位与n位明文加密的密文块,再使用密文填充寄存器,重复这个过程。
优点:
1.分组密码转化为流模式;
2.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.误差传送:一个明文单元损坏影响多个单元;
3.需要IV;
输出反馈模式 Output Feedback Mode(OFB):
原理如下图:
用一个length位的位移寄存器(length 为加密算法的加密单位),每次处理n位的数据(n通常为8,一字节),加密过程是对位移寄存器进行加密。
使用加密后的位移寄存器的高n位与n位明文加密的密文块,再使用位移寄存器加密结果高n位移至最后,填充寄存器,重复这个过程。
优点:
1.分组密码转化为流模式;
2.可以及时加密传送小于分组的数据;
3.每个加密快都是与位移寄存器异或计算,相互之间没有依赖关系,避免的误差传送。
缺点:
不利于并行计算;
参考资料:http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html