Рассказываем про режимы шифрования в новом выпуске #криптословаря! Выбор надёжного алгоритма шифрования и большой длины ключа ещё не гарантируют защиту данных. Важную роль играет выбор подходящего режима шифрования.
Для блочных шифров известны следующие режимы: ▪️ECB (Electronic Codebook) — режим простой замены (электронная кодовая книга);
▪️CBC (Cipher Block Chaining) — режим простой замены с зацеплением (или режим сцепления блоков шифртекста);
▪️CTR (Counter) — режим гаммирования (или «режим счётчика»);
▪️CFB (Cipher Feedback) — режим гаммирования с обратной связью по шифртексту;
▪️OFB (Output Feedback) — режим гаммирования с обратной связью по выходу;
▪️GCM (Galois/Counter Mode) — режим с аутентификацией Галуа и др.
📍
Режимы определяют, как именно шифруются блоки открытого текста. Связываются ли они между собой, можно ли шифровать данные параллельно, нужен ли вектор инициализации (IV), защищены ли данные от подмены и другие особенности.
🔴
Типичная ошибка — выбор неподходящего режима шифрования в угоду простоте реализации. Например, в режиме ECB одинаковые блоки открытого текста дают одинаковые блоки шифртекста. Поэтому структура зашифрованных данных определяется даже без расшифрования, а криптоанализ упрощается по типовым заголовкам файлов и другим известным данным.
Режим CBC менее предсказуем из-за добавления случайного вектора IV, но без отдельной аутентификации он уязвим к подмене векторов и другим атакам (см. padding oracle в TLS 1.2).
❗️Другие режимы без аутентификации также не рекомендовано применять в любых сценариях, где возможно активное вмешательство третьей стороны. Поэтому в современных транспортных протоколах используются режимы, основанные на принципах аутентифицированного шифрования со связанными данными (AEAD).
📌
Одним из его представителей стал разработанный при участии российской компании «Криптонит» мультилинейный режим с аутентификацией Галуа (MGM). Он одновременно обеспечивает конфиденциальность и целостность, представляя аналог режима GCM в отечественных криптографических системах.