工作模式又叫运算模式,是指分组密码算法在处理随意长度消息时,对多个分组进行特殊处理的技术方案。常用的工作模式有ECB、CBC、CFB、OFB等。
1.ECB
ECB是电子密码本的缩写。
该模式下,每个分组独立进行加/解密运算,不同分组间无任何关联。于是,在密钥一样的情况下,一样的明文总能产生一样的密文。
在安全性方面,该模式的特点是:明文模式不能隐藏、分组加密的输入不是随机的、一个密钥可加密多个消息、明文很轻易篡改等。
在效率方面,该模式的特点是:速度与分组算法一样、密文比明文长一个分组、不可能进行预处理、处理过程可并行进行等。
2.CBC
CBC是密码分组链接的缩写。
该模式下,在加密当前分组前,把上个分组的加密结果与当前明文分组异或后再加密,形成一个密文链;解密时类似。
该模式在安全性方面的特点是:明文模式能隐藏、分组加密的输入是随机的、一个密钥能加密多个消息、篡改明文稍微有些难等。
3.CFB
CFB是密码反馈的缩写。
设对称算法的分组长度为n位,初始向量为IV(n位),密钥为K,则x位CFB模式下(x在1与n之间),加密过程如下:
①设定一个n位长的队列,队列初始值为IV,并把明文消息分成若干个x位长的比特块。
②依次对每个x位比特块明文进行以下操作:用密钥K加密队列,把该密文中最左端的x位与x位比特块明文异或,即可获得其x位比特块密文;然后把该x位比特块密文放入队列的最右端,并丢弃队列最左端的x位。
③把全部x位比特块密文依次级联,可得到消息密文。
4.OFB
OFB是输出反馈的缩写。
该模式类似于CFB,主要区别是OFB把队列加密后密文中最左端的x位放入队列最右端,而CFB是把x位比特块密文放入队列最右端。
设对称算法的分组长度为n位,初始向量为IV(n位),密钥为K,则x位OFB模式下(x在1与n之间)的加密过程如下:
①设定一个n位长的队列,队列初始值为IV,并把明文消息分成若干个x位长的比特块。
②依次对每个x位比特块明文进行以下操作:用密钥K加密队列,把该密文中最左端的x位与x位比特块明文异或,就可得到其x位比特块密文;同时把队列加密后密文中最左端的x位放入队列的最右端,并丢弃队列最左端的x位。
③把全部x位比特块密文依次级联,就可得消息密文。