9.12 交错
大多数模式中,对1比特(或分组)的加密依赖于前面的比特(或分组)的加密。这就使得并行处理成为可能。例如,假定有一个工作在CBC模式下的加密硬件盒,假设它由4块加密芯片组成,其中仅有一块能在任意时间工作,其余的芯片需要得到前一芯片的结果后才开始工作。
解决方案就是交错多重加密序列(不是15.1节和15.2节讲到的多重加密)。代替使用单一的CBC链,它使用4个链。第一、第五及每隔四块的分组使用同一个IV的CBC模式下加密;第二、第六及每隔四块之后再用另一个IV在CBC模式下加密,依次类推。总的IV要比没有交错时长的多。
可把它想成是用相同的密钥和四个不同的IV对四个不同的消息进行加密。所有这些消息也都是相互交错的。
该技巧可用于提高硬件的整体加密速度。如果你有三个加密芯片,每一个加密速度是33兆比特每秒,那么你使用交错就可以对一个100兆比特每秒的单一信道进行加密。
图9.16示出CFB模式下三个并行交错的序列加密。这种思想也可以用任意数目的并行序列在CBC和OFB模式下工作。只是要记住每个序列需要自己的IV,不能共享。
图9.16 交错的三个CFB模式加密