ECB模式:Electronic CodeBook mode 电子密码本模式
CBC模式:Cipher Block Chaining mode 密码分组链接模式
密文分组是像链条一样互相连接的
首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密
加密第一个明文分组时,需要事先准备一个长度为一个分组的比特序列(称为:初始化向量 Initialization Vector)作为“前一个密文分组”
即使明文分组1和明文分组2的值相同,由于【与前一个密文分组进行XOR运算】,则密文分组1和密文分组2也不一定时相同的。
如果密文分组中有一些比特缺失了,则会导致缺失比特的位置之后的密文无法解密
攻击
CFB模式:Cipher FeedBack mode 密文反馈模式 所谓反馈,就是将前一个密文分组送回到密码算法的输入端。
OFB模式:Output FeedBack mode 输出反馈模式
CTR模式:CounTeR mode 计数器模式
通过逐次累加的计数器进行加密来生成密钥流的流密码。
模式 | 名称 | 优点 | 缺点 | 备注 |
---|---|---|---|---|
ECB | Electronic CodeBook 电子密码本模式 | 简单 快速 支持并行计算(加密、解密) | 明文中的重复排列会反映到密文中 通过删除、替换密文分组可以对明文进行操作 对包含某些比特错误的密文进行解密时,对应的分组会出错 不能抵御重放攻击 | 不应使用 |
CBC | Cipher Block Chaining 密文分组链接模式 | 明文的重复排列不会反映在密文中 支持并行计算(仅解密) 能够解密任意密文分组 | 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错 加密不支持并行计算 | 推荐 |
CFB | Cipher-FeedBack 密文反馈模式 | 不需要填充 支持并行计算(仅解密) 能够解密任意密文分组 | 加密不支持并行计算 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错 不能抵御重放攻击 | 推荐 |
OFB | Output-FeedBack 输出反馈模式 | 不需要填充 可事先进行加密、解密的准备 加密、解密使用相同结构 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错 | 不支持并行计算 主动攻击者反转密文分组中的某些比特时,明文分组中相应的比特也会被反转 | 推荐 |
CTR | CounTeR 计数器模式 | 不需要填充 可事先进行加密、解密的准备 加密、解密使用相同结构 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错 支持并行计算(加密、解密) | 主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转 | 推荐 |