密码算法可以分为分组密码和流密码。
由于分组密码处理长度有限,所以当处理长明文数据时,需要对分组密码算法进行迭代,迭代的方法叫做分组密码的模式。主要的模式有:
ECB模式:电子密码本模式。
ECB模式将明文分组加密后的结果直接作为密文分组。明文分组和密文分组是一一对应的关系。缺点:攻击者无需破译密码就能操纵明文(操纵密文顺序,因为明文分组和密文分组关系一一对应)。


CBC模式:密码分组链接模式。
CBC模式首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。明文分组和密文分组之间有XOR和密码算法两个步骤。


CFB模式:密文反馈模式。(将密文分组反馈到密码算法中)
CFB模式会将前一个密文分组送回到密码算法的输入端,再进行XOR运算。明文分组和密文分组之间只有XOR运算。


OFB模式:输出反馈模式。(密码算法的输入是前一个密码算法的输出)
OFB模式密码算法的输出会反馈到密码算法的输入中。通过明文分组和密码算法的输出进行XOR产生密码分组。


CTR模式:计数器模式。
CTR模式是一种通过逐次累加的计数器进行加密来生成密钥流的流密码。最终的密文分组是通过将计数器加密得到的比特序列,与明文分组进行XOR得到。

