一 分组密码和流密码
分组密码:每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组。一个分组的比特数称为分组长度。
举例:DES和3DES的分组长度都是64bit。这些密码一次只能加密64bit的明文,并生成64bit的密文。
AES的分组长度时128bit,因此AES一次可加密128bit的明文,并生成128bit的密文。
流密码:对数据流进行连续处理的一类密码算法。流密码中一般以1bit、8bit或32bit等为单位进行加密和解密。
例如:一次性密码本属于流密码。
二 什么是模式
分组密码算法只能加密固定长度的分组,但是需要加密的明文可能会超过分组密码的分组长度,这时就需要对分组密码算法进行迭代,以便将一段很长的明文全部加密。而迭代的方法就称为分组密码的模式。
分组密码主要有以下5种模式:
ECB模式:Electronic CodeBook mode(电子密码本模式)
CBC模式:Cipher Block Chaining mode(密码分组链接模式)
CFB模式:Cipher FeedBack mode(密码反馈模式)
OFB模式:Output FeedBack mode(输出反馈模式)
CTR模式:CounTeR mode(计数器模式)
三 明文分组和密文分组
明文分组:指分组密码算法中作为加密对象的明文。明文分组的长度与分组密码算法的分组长度时相等的。
密文分组:指分组密码算法将明文加密之后生成的密文。