密码学 / 密码学理论 · 2021年10月22日 0

分组密码—CTR计时器模式

一、概述

Counter Mode Encryption

CTR模式是一种通过将逐此累加的计数器进行加密来生成密钥流的流密码工作模式。

CTR模式中,每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。也就是说,最终的密文分组是通过将计数器得到的比特序列,与明文分组进行XOR而得到的。

直接看图

tips:

  1. 分组之间没有直接关系,这是和CFB、OFB的差距,联系的唯一途径在于计数器,计数器每次+1即可
  2. 解密与加密过程中的小模块皆为加密,也就是说从宏观上来看,加解密算法除了输入的数据不同外,其过程是完全一致的,这点和CFB、OFB很类似
  3. xFB采用的是移位寄存器(IV),这里是计数器。

二、特点

CTR模式的加密和解密使用了完全相同的结构,因此在程序实现上比较容易。这一特点和同为流密码的OFB模式是一样的。

CTR模式中可以以任意顺序对分组进行加密和解密,因此在加密和解密时需要用到“计数器”的值,可以由nonce和分组序号直接计算出来。这一性质是OFB模式所不具备的。

能够以任意顺序处理分组,就意味着能够实现并行计算。在职场并行计算的系统中,CTR模式的速度是非常快的。

三、错误传播和安全性

1、错误传播

CTR模式也具备和OFB模式差不都的性质。假设CTR模式的密文分组有一个比特反转了,则解密后的明文分组中仅有与之对应的比特会被反转,这一错误不会放大。

对应位置,相同数量

2、安全性

与之相对的,主动攻击者Mallory可以通过反转密文分组中的某些比特,引起解密后明文中的相应比特也发生反转。这一弱点和OFB模式是相同的。

同样的,他也不具备认证性:CTR模式的缺点是没有错误传播,因此不适合用于数据完整性认证。

不过CTR模式模式具备一个比OFB模式要好的性质。在OFB模式中,如果对密钥流的一个分组进行加密后期结果碰巧和加密前是相同的,那么这一分组之后的密钥流就会变成同一值的不断反复。在CTR模式中就不存在这一问题。