It's our wits that make us men.

2019/5/7 《图解密码技术》第四章

Posted on By LuLu

《图解密码技术》第四章

  • 值:nonce.

OFB模式

什么是OFB模式

OFB模式:输出反馈模式,Output-Feedback模式。密码算法的输出会反馈到密码算法的输入中。

img

OFB模式是将“明文分组”和“密码算法的输出”进行XOR来产生“密文分组”,与CFB模式相似

img

初始化向量

CBC/CFB/OFB模式都需要初始化向量,一般来说,在每次加密时生成一个不同的随机比特序列作为初始化向量。

OFB模式与CFB模式的对比

两者的区别仅仅在于密码算法的输入。

  • CFB模式中,密码算法的输入是前一个密码分组,也就是将密文分组反馈到密码算法中
  • OFB模式中,密码算法的输入是密码算法的前一个输出,也就是将输出反馈给密码算法

img

  • CFB模式中,只能按顺序加密分组
  • OFB模式中,加密生成密钥流的操作和进行XOR运算的操作是可以并行的。

CTR模式

CTR模式:计数器模式,CounTeR模式。是一种通过将逐次累加的计时器进行加密来生成密钥流的流密码。

每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。

img

img

计数器的生成方法

每次加密时都会生成一个不同的值作为计数器的初始值,分组为16字节时,前八个字节是nonce,后八个字节为分组序号。加密过程中会发生如下变化:

img

因此,每个分组中得到计数器的值都不同,加密所得到的密钥流也不同。

OFB模式与CTR模式的对比

  • 两者都属于流密码。
  • OFB模式将加密的输出反馈到输入,而CTR模式则是将计数器的值用作输入。

CTR的特点

  • 与OFB模式一样,在程序实现上比较容易
  • 可以以任意顺序对分组进行加密和解密,OFB模式不具备。计数器的值由nonce和分组序号可以计算出来
    • 任意顺序处理分组意味着能够实现并行计算,速度非常快。

错误与机密性

CTR模式具备与OFB模式差不多的性质。若有一个密文分组被反转,则只有与之对应的比特会被反转,不会放大错误。

在OFB中,如果一个分组进行加密后碰巧和加密前是相同的,那么这个分组之后的密钥流就会变成同一值的不断反复,而CTR模式不存在这个问题。

几种模式的总结比较

img