这篇随笔将介绍对称加密中分组密码的工作模式 -- RT。
工作模式:
其实很愚钝,今天才突然明白这个模式是什么意思?
所谓模式,就是方法,就是加密的方法,既然是对称加密,解密方法也包括在内了。在分组密码理论上,简单的说就是一个分组经过加密,产生一个对应的分组密文,至于如何加密,没有限制,模式就对应这里的“如何加密”,从A点到B点,我们可以有多种走法,供君选择,可以是直接A到B,也可以是A到C再到B。在软件结构上也常如此,上层可能不需要知道底层如何工作,下层也不认识上层,各自做自己的分内事就好了。不知道设计者是否就是出于这样的考虑,才提出这样的概念。正如哲学所说:机制与策略分离,果真如此。为什么今天才想通,怪!可能是把加密算法(cipher algorithm)与模式(mode)弄混了吧。模式中会用到加密算法,加密算法属于模式中的一个环节。常见的分组加密算法有: DES、3DES和AES。它们都有可与之搭配的模式,参照[1]。
模式分类:
1)ECB(Electronic CodeBook)
A. 所有分组使用同一密钥,相同明文产生相同的密文,因而说是最简单的分组模式。
B. 加密函数加密,解密函数解密。
2) CBC(Cipher Block Chaining)
A. 所有分组使用同一密钥;但是,加密算法的输入是本次分组明文与前次密文的异或(第一次需要IV),这就克服了ECB相同明文产生相同密文的缺陷。
B. 加密函数加密,解密函数解密。
3) CFB(Cipher FeedBack)
A. 该模式的每个分组可以使用不同的密钥,也就成了流式密码,因而分组长度可以不全相等;
B. IV是一个移位寄存器,并且每次加解密都需要使用;
C. 类似CBC的链式结构;
D. 加密函数加密,加密函数解密。
4)OFB(Output FeedBack)
A. 很像CFB,只是使用密码算法的输出作为下一个分组的输入;
5) CTR
A. 使用唯一的COUNTER,经过密码算法得到的输出(流密钥)与明文异或得到密文,CTR有CFB的类似性质;
B. 不同于链接式的模式,该模式可以并行执行,因而效率很高;
C. 加密函数加密,加密函数解密。
--- 以上5种模式是NIST推荐的分组密码模式,见[1] ---
6) CTS
7) LRW
A. 名字很怪,是3个作者名字的合集;
B. 需要2个key;具体过程参考[3]中图。
8) PCBC
9) XTS
References:
[1]. NIST Special Publication 800-38A 2001 Edition
[2]. http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
[3]. Draft proposal for tweakable narrow-block encryption
--- 内容需要慢慢补充 ---