分组密码把消息作数据分组处理,而多数消息的长度一般比分组密码的消息分组的长度大。把长的消息分成一串连着排的消息分组,密码一次处理1个分组。分组密码算法是数据安全的一个基本手段,在基本的分组密码算法后紧跟着设计了很多不一样的运行模式。当明文的长度不为分组的整数倍时,要填充明文来确保分组的顺利实施;主要有PCS7、IS09797M2、ANSI X9.23、ISO10126、全0填充与无填充等填充模式。
1.电码本模式
ECB模式为最简单的运行模式,一次加解密一个分组。ECB是确定性的,在密钥一致时用ECB模式把明文加密2次得到的密文分组也是一样的。
2.密码分组链模式
CBC模式的第1个密文分组Ci的计算得用一个特别的输入分组C0,通常叫初始向量V,Ⅳ是一个随机的n bit分组,每到会话加密的时候均得用一个新的随机Ⅳ。用CBC模式可使每个密码分组不只依靠对应的原文分组,还有所有以前的数据分组。
3.输出反馈模式
OFB模式是把基本分组密码的持续输出分组的分段回送至移位寄存器中,j位输出反馈仅把加密输出的j位用在反馈输入,也需初始向量IV。OFB的加解密过程相同。
4.密码反馈模式
CFB模式在结构上与OFB相似,它的特点是在反馈相继的密码分段,从模式的输出返回作为基础分组密码算法的输入,位的密码反馈把位的密文用在反馈输入,同样需要初始向量Ⅳ。CFB里基本分组密码的加密函数用在加、解密的两端,所以基本分组密码函数可是任意单项变换。CFB模式可思考用至流密码的密钥生成器。
5.计数器模式
CTR模式用与明文分组规模一样的计数器长度,但加密不一样的分组用的计数器值一定得不一样,它的特征是把计数器从初始值计数得到的值当做基础分组密码算法的输入。CTR的加解密过程相同,加密时计数器值经过加密算法得到的结果和明文分组进行异或产生密文。解密时用一样的计数器值序列,计数器值通过加密算法变换以后的结果和密文分组异或就能恢复明文。CTR模式没有反馈,加密和解密可同时实施。
6.密文挪用模式
密文挪用模式是处理随意长度的明文数据,并得到长度一样的密文数据。