分组密码工作模式

根据每次加密的单位数据长度可以将对称加密算法分为流密码(Stream Cipher)和分组密码(Block Cipher)。本文讨论分组密码中算法对数据分组加解密的几种不同处理方式,称为分组密码的工作模式。

分组密码与流密码

分组密码

分组密码中,明文被分成长度相等的分组,若末尾不够组成一个分组则使用预设的内容进行填充,然后用相同的算法进行加密并组合形成密文。

分组密码包含以下几种常见的工作模式:

  • ECB(Electronic Codebook,电子密码本)
  • CBC(Cipher Block Chaining,密码分组链接)
  • CFB(Cipher Feedback,密码反馈)
  • OFB(Output FeedBack,输出反馈)
  • CTR(Counter,整数计数)
  • PCBC(Plain/Propagating Cipher Block Chaining,明文密码分组链接)
  • OCFB(Output Cipher FeedBack,输出密码反馈)

流密码

因为会介绍到具有流密码相似性质的CBC、CFB和OFB,所以顺便介绍一下流密码的分类。

流密码总体分为两类:同步流密码和自同步流密码(也即异步流密码)。

同步流密码
同步流密码指在该密码系统中,密钥流的生成独立明文消息和密文。同步要求严格,需要无错误传播,单个字符的错误不影响其他位。

自同步(self synchronization)流密码或异步流密码
其特点是具有记忆元件,密钥流由密钥和固定数量的之前的密文字符生成。自同步流密码在由于插入、删除或替换导致失去同步后,接受端接收到一定数量的正确密文后可以自动恢复同步,同步后的密文可以正常被解密。

继续阅读“分组密码工作模式”