Чередование
В большинстве режимов шифрование бита (или блока) зависит от шифрования предыдущих битов (или блоков). Часто это делает невозможным распараллелить шифрование. Например, рассмотрим аппаратное устройство, выполняющее шифрование в режиме CBC. Даже если блок содержит четыре микросхемы шифрования, работать может только одна. Следующей микросхеме для начала работы нужны результаты работы предыдущей.
Решением является чередование нескольких потоков шифрования. (Это не множественное шифрование, оно рассматривается в разделах 15.1 и 15.2). Вместо одной цепочки CBC используются четыре. Первый, пятый и, далее, каждый четвертый блок шифруются в режиме CBC с одним IV. Второй, шестой и, далее, каждый четвертый блок шифруются в режиме CBC с другим IV, так далее. Полный IV намного длиннее, чем без чередования.
Представьте себе шифрование четырех различных сообщений одним ключом с четырьмя различными IV. Все эти сообщения чередуются.
Этот прием также может быть использован для повышения общей скорости аппаратного шифрования. Если у вас есть три шифрующих микросхемы, каждая из которых способна шифровать со скоростью 33 Мбит/с, вы можете, чередуя их, шифровать 100 Мбит/с канал данных.
На Figure 9.16 показаны три параллельных потока, чередующихся в режиме CFB. Эта идея применима также к режимам CBC и OFBдля любого числа параллельных потоков. Только не забывайте, что для каждого потока нужен свой собственный IV. Не экономьте.
Рис. -16. Чередование трех шифрований CFB.