Режим шифрования


Режим шифрования

Режим шифрования — метод применения блочного шифра, позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. При этом для шифрования одного блока могут использоваться данные другого блока. Обычно режимы шифрования используются для модификации процесса шифрования так, чтобы результат шифрования каждого блока был уникальным вне зависимости от шифруемых данных и не позволял сделать какие-либо выводы об их структуре. Это обусловлено, прежде всего, тем, что блочные шифры шифруют данные блоками фиксированного размера, и поэтому существует потенциальная возможность утечки информации о повторяющихся частях данных шифруемых на одном и том же ключе. Существует несколько стандартных режимов шифрования.[1]

Содержание

Electronic Codebook (ECB)

Каждый блок открытого текста заменяется блоком шифротекста. В ГОСТ 28147—89 называется режимом простой замены.
Принцип шифрования:
Пусть есть сообщение P которое нужно зашифровать. Оно делится на блоки по n битов.Получаем последовательность блоков P_1,P_2,...,P_q последний из них при необходимости дополняется до длины n[2][3]. По ним определяются блоки C_1,C_2,...,C_q как результат воздействия шифрующей функции:

C_i = E_k \left( P_i \right)

где i — номера блоков, C_i и P_i — блоки зашифрованного и открытого соответственно, а E_k — функция блочного шифрования. Расшифровка аналогична:

P_i = D_k \left( C_i \right)
Шифрование в режиме ECB

Недостаток ECB, в сравнении c другими режимами шифрования — сохранение статистических особенностей открытого текста[4]:

Tux.jpg Tux ecb.jpg Tux secure.jpg
оригинальная битовая карта

изображения

криптограмма в режиме ECB

(сохранились статистические особенности)

другие режимы шифрования

(псевдослучайная последовательность)

Скорость обработки блоков в режиме ЕСВ фиксирована и определяется эффективностью реализации блочного шифра. Режим ЕСВ допускает эффективное распараллеливание вычислений. Однако конвейерная обработка блоков в данном режиме невозможна.[1]

Cipher Block Chaining (CBC)

Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования[5]. Шифрование:
Сначала так же как и в случае с ECB, первоначальное сообщение разбиваем на блоки, при необходимости дополнив последний до длины n[6], далее следуют действия:

C_0=IV
C_i = E_k \left( P_{i} \oplus C_{i-1} \right)

где i — номера блоков, IV — вектор инициализации (синхропосылка), C_i и P_i — блоки зашифрованного и открытого текстов соответственно, а E_k — функция блочного шифрования. Расшифровка:

P_i=C_{i-1} \oplus D_k \left( C_{i} \right)
Шифрование в режиме сцепления блоков шифротекста

Данный тип шифрования имеет ряд недостатков, при атаках:
- возможность определения начала изменения данных при изменении шифротекста
- возможность переделать открытый текст при перемещении блоков
- подмена шифротекста с следующим за ней изменением открытого текста

Режим CBC является режимом устраняющим недостатки режима ECB, что происходит следующим образом: каждый блок открытого текста маскируется соответственно блоком шифротекста, полученном на предыдущем этапе. Скорость обработки в данном режиме также определяется скоростью шифра, при этом не ниже производительности блочного шифра — задержка при выполнении операции XOR пренебрежимо мала. Процедура шифрования в режиме СВС трудно распараллеливается, процедура дешифрования легко распараллеливается.[1]

Cipher Feedback (CFB)

Режим обратной связи по шифротексту, режим гаммирования с обратной связью (англ. Cipher Feedback Mode, CFB)[5]. Для шифрования следующего блока открытого текста он складывается по модулю 2 с перешифрованным (блочным шифром) результатом шифрования предыдущего блока.

C_0 = IV
C_i = E_k \left( C_{i-1} \right) \oplus P_i
P_i = E_k \left( C_{i-1} \right) \oplus C_i
Шифрование в режиме обратной связи по шифротексту

Криптостойкость СFВ определяется криптостойкостью используемого шифра. Фиксированные блоки открытого текста маскируются блоками шифротекста.Если в режиме СFВ с полноблочной обратной связью имеется два идентичных блока шифротекста, результат, например, DES-шифрования на следующем шаге будет тем же. Скорость шифрования СFВ-режима с полноблочной обратной связью та же, что и у блочного шифра, причем возможности распараллеливания процедуры шифрования ограничены.[1]

Output Feedback (OFB)

Режим (OFB)[5] обратной связи вывода превращает блочный шифр в синхронный шифрпоток: это генерирует ключевые блоки, которые являются результатом сложения с блоками открытого текста, чтобы получить зашифрованный текст. Так же, как с другими шифрами потока, зеркальное отражение в зашифрованном тексте производит зеркально отраженный бит в открытом тексте в том же самом местоположении. Это свойство позволяет многим кодам с исправлением ошибок функционировать как обычно, даже когда исправление ошибок применено перед кодированием.

Из-за симметрии операции сложения, шифрование и расшифрование похожи:

C_i=P_i\oplus O_i

P_i=C_i\oplus O_i

O_i=E_k(O_{i-1})

O_0=IV

Шифрование в режиме OFB
Расшифрование в режиме OFB


Каждая операция блочного шифра обратной связи вывода зависит от всех предыдущих и поэтому не может быть выполнена параллельно. Однако, из-за того, что открытый текст или зашифрованный текст используются только для конечного сложения, операции блочного шифра могут быть выполнены заранее, позволяя выполнить заключительное шифрование параллельно с открытым текстом.
Обратная связь по выходу на k разрядов не рекомендуется из соображений криптостойкости. Режим OFB имеет следующее преимущество по сравнению с режимом CFB: ошибки, возникающие в результате передачи по каналу с шумом, при дешифровании не «размазываются» по всему шифротексту, а локализуются в пределах одного блока. Однако открытый текст может быть изменен путем определенных манипуляций с блоками шифротекста. Несмотря на то, что OFB-шифрование не поддается распараллеливанию, эффективность процедуры может быть повышена за счет предварительной генерации независимой последовательности блоков.[1]

Данный метод называется также "режим обратной связи по выходу".

OFB также предпологает некое усовершенствование касающееся метода генерации независимой последовательности блоков: для получения очередного блока предлагается шифровать не с O_i, а c O_i + IV(mod 2^{64}), где IV некоторый вектор инициализации.

Counter Mode (CTR)

Режим Счетчика (Counter Mode-CTR)[5] предполагает возврат на вход соответствующего алгоритма блочного шифрования значения счетчика, накопленного с момента старта. Увеличивая значение счетчика, алгоритм блочного шифрования образует строку битов, которая используется в качестве бегущего ключа шифра Вернама, т.е. к бегущему ключу и блокам исходного сообщения применяются операции XOR. Чтобы обеспечивать случайность, величина приращения может зависеть от номера блока. Исходный текст и блок зашифрованного текста имеют один и тот же размер блока, как и основной шифр (например, DES или AES).[7] Режим CTR предусматривает следующие операции.

Шифрование в режиме CTR

ВВОД: Ctr_i,P_i;

ВЫВОД: Ctr_i,C_i;

C_i \leftarrow P_i \oplus \varepsilon (Ctr_i); i=1,2,\ldots,m
Расшифровка в режиме CTR

ВВОД: Ctr_i,C_i;

ВЫВОД: P_i,;

P_i \leftarrow C_i \oplus \varepsilon (Ctr_i) ;  i=1,2,\ldots,m


  • \varepsilon()алгоритм шифрования с помощью соответствующего блочного шифра;
  •  P_1, P_2, \ldots, P_m m последовательных сегментов исходного сообщения, подвергающегося обработке;
    • если m-й сегмент короче других сегментов, он дополняется до стандартной длины;
    • в некоторых режимах шифрования размер сегмента сообщения равен размеру блока, а в других режимах он может быть меньше;
  •  C_1,C_2,\ldots,C_m m последовательных сегментов зашифрованного сообщения, являющегося результатом применения определенного режима шифрования.

При отсутствии обратной связи алгоритмы шифрования и расшифровки в режиме CTR могут выполняться параллельно. Это обеспечивает режиму CTR преимущество перед режимами Cipher Feedback (CFB) и Output Feedback (OFB).

Propagating Cipher Block Chaining (РСВС)

Недостатки режима CBC привели к созданию усовершенстванного режима распростаняющегося сцепления блоков шифра (Propagating Cipher Block Chaining, РСВС)[5]. Естественно этот режим похож на CBC за исключением того, что предыдущий блок открытого текста и предыдущий блок шифротекста подвергается операции XOR с текущем блоком открытого текста перед шифрованием или после него.[1]
c_i = E_k \left( m_{i} \oplus m_{i-1} \oplus c_{i-1} \right)
Сответственно дешифрование: m_i = D_k(c_{i}) \oplus c_{i-1} \oplus m_{i-1}
где m_{0} \oplus m_{0} - вектор иницилизации
Режим шифрования РСВС применяется в протоколе Kerberos 4 версии и позволяет обнаруживать ошибки. Данный режим шифрования не является федеральным или международным стандартом. Режим РСВС — вариант режима СВС, обладающий специфическим свойством — ошибка шифротекста приводит к неправельному дешифрированию всех последующих блоков. Это соответственно означает, что проверка стандартного блока в конце сообщения обеспечивает целостность всего сообщения.

Шифрование в режиме PCBC


Конечно этот режим не лишен недостатков, так перестановка двух блоков шифротекста приводит к неправильной расшифровке двух соответсвующих блоков открытоко текста, но из-за XOR над открытым текстом и шифротекстом, дальнейшие ошибки компенсируются. Поэтому, если при проверке целостности проверяются только несколько последних блоков расшифрованного текста, можно получить частично испорченное сообщение. Хотя никто еще не воспользовался этой уязвимостью в Kerberos, но в 5 версии уже перешли на режим CBC.

Initialization vector(IV)

В криптографии, вектор инициализации (IV) представляет собой некоторое число, как правило оно должно быть случайным или псевдослучайным[8]. Случайность имеет решающее значение для достижения семантической безопасность, которая при повторном использовании схемы под тем же ключом не позволит злоумышленнику вывести отношения между сегментами зашифрованное сообщение. Для блочных шифров, использование IV описывается режимами работы. Рандомизация требуется также для других примитивов, таких как универсальная хэш-функции и коды аутентификации сообщений на их основе.

В таких режимах шифрования, как CBC, CFB и OFB на вход подаётся вектор инициализации (IV). Причём как отправитель, так и получатель в начале сеанса связи должны иметь один и тот же IV. Значение IV вовсе не обязано быть секретным и вполне может быть передано вместе с первым блоком шифротектса. Что действительно важно, так это то, что в режимах CBC и CFB это значение должно быть непредсказуемым, а в режиме OFB – уникальным[6].

Непредсказуемости в режимах CBC и CFB можно достичь несколькими способами. Например, можно подвергнуть преобразованию той же функцией значение какого-либо счётчика (скажем счётчика сообщений). Или использовать ГПК для генерации псевдослучайной последовательности нужной длины.

В режиме OFB вектор инициализации не обязан быть непредсказуемым, зато он должен быть уникален для всех сеансов связи в которых в OFB используется один и тот же секретный ключ шифрования K. Этого можно достичь опять же используя счётчик сообщений. Если же не следовать этому требованию, то секретность сообщения в режиме OFB может быть легко скомпрометирована. Одним из следствий этого требования является то, что очередной вектор инициализации для режима OFB нельзя генерировать путём применения функции с тем же ключём K.

Выбор режима шифрования

Выбор режима шифрования зависит от поставленной вами цели. Если вам важны скорость и простота, то ECB самым простым и быстрым способом использования блочных шифров. Но ECB очень просто криптоанализировать. Хорошо подходит для шифрования других ключей, так как данные малого размера и случайны. То недостатки ECB сказываются не сильно.

Для обычного открытого текста можно использовать CBC, CFB или OFB. Для шифрования файлов лучше пользоваться СBC. Значительно увеличивается безопасность, при появлении ошибок в хранимых данных почти никогда не бывает сбоев синхронизации. Конкретный режим зависит от ваших требований. В целом выбор метода шифрования это поиск компромисса между эффективностью и производительностью [9]

Литература

  • Брюс Шнайер «Прикладная криптография».
  • В.В.Ященко «Введение в криптографию».
  • А.П.Чмора «Современная прикладная криптография».

Ссылки




Wikimedia Foundation. 2010.

Смотреть что такое "Режим шифрования" в других словарях:

  • режим шифрования — — [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23] Тематики защита информации EN ciphering mode …   Справочник технического переводчика

  • режим шифрования только информационных данных — Режим шифрования без шифрования заголовков, данных управления и контроля. [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23] Тематики защита информации EN encryption of data only mode …   Справочник технического переводчика

  • режим (шифрования Р - кода) AS — [РТМ 68 14 01] Тематики спутниковая технология геодезических работ Обобщающие термины средства спутниковых определений EN anti spoofing …   Справочник технического переводчика

  • режим шифрования на постоянном ключе — — [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23] Тематики защита информации EN fixed cipher mode …   Справочник технического переводчика

  • режим шифрования с обратной связью по шифртексту — РШО — [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23] Тематики защита информации Синонимы РШО EN cipher feedback modeCFM …   Справочник технического переводчика

  • Режим — Слово режим (фр. regime от лат. regimen управление) используется в нескольких значениях. 1. Чётко установленный порядок, распорядок: Режим дня точно размеренный распорядок действий на день. Режим работы откорректированный порядок работы и отдыха… …   Википедия

  • Режим (значения) — Содержание 1 Для человека 2 В государстве 3 В на …   Википедия

  • Режим сцепления блоков шифротекста — (англ. Cipher Block Chaining, CBC)  один из режимов шифрования для симметричного блочного шифра с использованием механизма обратной связи. Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с… …   Википедия

  • Режим обратной связи по шифротексту — Режим обратной связи по шифротексту, режим гаммирования с обратной связью (англ. Cipher Feedback Mode, CFB)  один из вариантов использования симметричного блочного шифра, при котором для шифрования следующего блока открытого текста он… …   Википедия

  • Режим электронной кодовой книги — (англ. Electronic Codebook, ECB)  один из вариантов использования симметричного блочного шифра, при котором каждый блок открытого текста заменяется блоком шифротекста. В ГОСТ 28147 89 называется режимом простой замены. Шифрование может… …   Википедия