Набивка
Набивка используется также, как и в режиме ECB, но в некоторых приложениях размер шифротекст должен в точности совпадать с размером открытого текста. Может быть, зашифрованный файл должен занять в точности тот же объем памяти, что и файл открытого текста. В этом случае последний короткий блок придется шифровать иначе. Пусть последний блок состоит из l битов. Зашифровав последний полный блок, снова зашифруйте шифротекст, выберите старшие l битов и выполните для них и короткого блока операцию XOR, создавая шифротекст. Эта процедура показана на Рис. -4.
Рис. -4. Шифрование короткого последнего блока в режиме CBС.Слабость этого способа в том, что хотя Мэллори не сможет раскрыть последний блок шифротекста, он может систематически изменять его, меняя отдельные биты шифротекста. Если последние несколько битов шифротекста содержат важную информацию, это опасно. Если последние биты просто содержат совет по домоводству, то ничего страшного.
Лучшим способом является похищение щифротекста (см. Рис. -5) [402]. Pn-1 - последний полный блок открытого текста, Pn - заключительный, короткий блок открытого текста. Сn-1 - последний полный блок шифротекста, Сn - заключительный, короткий блок шифротекста. C' - это просто промежуточный результат, не являющийся частью переданного шифротекста. Преимуществом этого метода является то, что все биты открытого текста сообщения проходят через алгоритм шифрования.
Рис. -5. Похищение шифротекста в режиме CBС.