网络信息安全学习笔记之分组密码工作模式
1.电子密码本模式Electronic Codebook, ECB
明文分成64的分组进行加密,如果不满则填充,每个分组用同一**加密,同样明文分组加密得到相同密文
- ECB适合数据少的情况,比如安全传输过程中DES**的加密
- 若有相同的明文组,则密文中也出现相同的片段
- 对于长消息ECB不安全,且对于高度结构化的消息,使用ECB模式也很容易被**
- ECB的弱点来源于其加密过的密文分组都是独立的
2.密文分组链模式Cipher Block Chaining (CBC)
加密的输入是当前明文分组和前一密文分组的异或,形成一条链,使用相同的**,这样每一个分组的加密函数的输入与分组的关系不再固定
- 每个密文分组依赖于所有明文分组,明文消息传输出错会影响所有的密文分组
- 发送方和接收方需要共享初始向量lInitial Value(IV),必须在消息之前被加密传送
- 在消息的最后对不够的消息还需要进行填充,可以填充非数据值,或者在最后注明填充长度
C1=E(K,[IV ⊕P1])
P1=IV ⊕ D(K,C1)
都是对每一位进行操作
传输过程出错影响该组和下一组,加密过程错误向下传递直至最终
3.密码反馈模式Cipher FeedBack (CFB)
将DES转化为流加密,报文不必填充整个分组,加密和解密均为异或运算,过程接近相同
MSBs(X)表示X的最左边s位
C1=P1⊕MSBs[E(K,IV)]
P1=C1⊕MSBs[D(K,IV)]
- 当数据以字节形式或者位的形式到达都是合适 的
- 传输过程出错由于寄存器移位会导致后续内容受到影响,影响多远与寄存器位数有关
4.输出反馈模式Output FeedBack (OFB)
结构上类似CFB,但是OFB加密函数的输出被反馈到移位寄存器,而CFB是密文单元被反馈,因此OFB传输过程中的比特差错不会传播,但是比CFB更容易受到报文流攻击
5.计数器模式Counter (CTR)
- 与OFB类似,但加密的是计数器的值
- 每一个明文分组都必须使用一个不同的**和计数器值,决不能重复使用
- 可以用于高速网络加密
Ci=Pi XOR Oi
Oi=DES(K1,i)
优点:
- 高效,可以做并行加密,对高速链路的突发数据加密尤其有效
- 可以对被加密的分组进行随机存取
- 安全
- 简洁
缺点:必须坚决不重复使用**和计数器值
安全性在于计数器的变化