Первая трудность, с которой сталкиваются новички в криптографии и программисты, реализующие криптографические функции в своих приложениях, -- это понимание концепции режимов шифрования. Режим шифрования -- это небольшой алгоритм, определяющий, как именно будут скомпанованы блоки шифртекста, полученные от шифровального алгоритма. Можно выбрать любой супер-стойкий алгоритм шифрования (будь то, например, Twofish), но при его оперировании в ненадлежащим режиме результат окажется неожиданным.
Самую лучшую иллюстрацию этой концепции опубликовал на днях Иан Григг. Сравните сами влияние режима шифрования на сокрытие исходного изображения (первая картинка) при использовании ECB (вторая картинка, каждый блок шифртекста назависим от других) и CBC (третья картинка, каждый последующий блок зависит от результата объединения всех предыдущих блоков).
|