Режимы использования блочных шифров

Согласно данному нами ранее определению блочного шифра, см. стр. 211, преобразования Е() и ?)(), определяющие алгоритмы зашифрования и расшифрования блочного шифра, позволяют обрабатывать блоки небольшой фиксированной длины п. [1]

Для обработки данных произвольной длины необходимо реализовать процедуру, которая позволит зашифровать или расшифровать данные произвольной длины путем многократного применения преобразования Е() или преобразования D{). Такая процедура называется режимом шифрования блочного шифра. Все множество известных режимов шифрования можно разделить па три класса.

1. Поточные шифры, которые используют преобразование Е() для выработки шифрующей двоичной последовательности. Внутреннее состояние такого шифра описывается двоичным вектором и € FJ?, длина которого совпадает с длиной блока используемого блочного шифра. В общем виде функционирование такого поточного шифра может быть описано следующим образом.

Вначале внутреннее состояние шифра инициализируется при помощи некоторого значения Iv, для которого в отечественной литературе закрепилось название синхропосылка. Далее, на каждом такте работы поточного шифра происходит изменение внутреннего состояния ш и с помощью преобразования 7 = Е(к,ш) вырабатывается гамма, используемая для шифрования сообщения.

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

2. Режимы последовательного шифрования блоков, в которых результат преобразования последующего блока шифруемого сообщения зависит от преобразования предыдущего блока. Таким образом, если в процессе зашиф- рования/расшифрования одного блока произойдет ошибка, то все последующие блоки также будут зашифрова- ны/расшифрованы ошибочно. Шифры с указанным свойством принято называть шифрами, размножающими ошибки.

К этой группе режимов шифрования можно отнести режим шифрования с зацеплением блоков (СВС).

  • 3. Режимы шифрования блочных устройств, в которых шифрование каждого блока производится независимо от других блоков шифруемого сообщения. Это свойство позволяет реализовывать независимый доступ к различным частям сообщения, а также параллельное зашифрование/расшифрование сообщений, что существенно повышает скорость работы шифра. К подобным режимам можно отнести режим простой замены, режим счетчика, режимы GCM и XTS.
  • 4. Режимы шифрования с возможностью аутентификации сообщений, в которых процедура зашифрования сообщения совмещается с процедурой вычисления кода аутентичности сообщения, то есть некоторой контрольной суммы, зависящей от секретного ключа. Данные режимы называют также режимами аутентифицирующего шифрования (на английском языке используется термин authenticated encryption). Мы будем рассматривать эти режимы в разделе 8.2.4.

В настоящее время разработано достаточно большое число режимов шифрования. Часть из них стандартизирована, например, национальным стандартом Российской Федерации ГОСТ Р 34.13- 2015 (ранее стандартом ГОСТ 28147-89), стандартом ИСО/МЭК 10116 или изложена в качестве рекомендаций американского национального института стандартизации NIST SP 800-38А.

В национальном стандарте ГОСТ Р 34.13-2015 приводится несколько режимов работы: режим простой замены, режим гам- мирования, режим гаммирования с обратной связью по выходу, режим простой замены с зацеплением, режим гаммирования с обратной связью по шифртексту и режим выработки имитовставки.

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

Далее мы опишем некоторые наиболее часто реализуемые на практике режимы шифрования применительно к произвольному блочному шифру, для которого определены преобразования зашифрования Е() и расшифрования ?>().

  • [1] Согласно [3], матрица С линейного преобразования алгоритма «Кузнечик»является MDS-матрицей, см. раздел 5.13, и не может содержать нулевых элементов.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >