9.9 计数器模式

    计数模式下的分组密码算法使用序列号作为算法的输入[824,498,715]。不是用加密算法的输出填充寄存器,而是将一个计数器输入到寄存器中。每一个分组完成加密后,计数器都要增加某个常数,典型值是1。该模式的同步和错误扩散特性同OFB模式完全一样。计数模式解决了OFB模式小于分组长度的n-比特输出问题。

    没有什么是专供计数器用的,它不必根据可能的输入计数。你可以使用16、17章讲到的如何随机序列发生器作为分组算法的输入,而不管其密码上是否安全。

计数模式中的序列密码

    计数模式中的序列密码算法有简单的下一状态函数和复杂的依赖于密钥的输出函数。这种技术,如图9.14所示,在文献[498,715]中提出的。下一状态函数可以是跟计数器一样简单的东西,只要在前一状态上加1就行。

    使用计数模式序列密码算法,不用先生成前面所有的密钥位,就可直接生成第i 个密钥比特ki 。简单的手工设置计数器到第i 个内部状态,然后产生该比特。这在保密随机访问数据文件时是非常有用。你不用解密整个文件就可以直接解密某个特殊数据分组。 

图 9.14 计数模式下的密钥流发生器