Проблема аутентификации данных и блочные шифры

       

Выработка кода аутентификации сообщений.


Выработка кода аутентификации сообщений с использованием процедуры криптографического преобразования данных официально или полуофициально закреплена во многих стандартах на алгоритмы шифрования.  Так, например, в различных комментариях к стандарту шифрования США рекомендуется использовать DES для выработки контрольной комбинации [5].  Российский стандарт шифрования ГОСТ 28147?89 [6] явным образом предусматривает режим выработки имитовставки, которая является не чем иным, как образцом MAC.

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

C=CK(T)=EK(TEK(TEK(...ÅEK(Tm)))).

Схема алгоритма выработки MAC приведена на рисунке 1.

Øàã 0.    Входные данные – массив данных  T, разбитый на  m  блоков фиксированного размера, равного размеру блока данных использованного шифра (для большинства наиболее известных шифров – 64 бита):  T=(T1,T2,...,Tm).  Последний блок данных Tm  каким-либо способом дополняется до полного блока данных, если имеет меньший размер.

Øàã 1.    MAC получает нулевое начальное значение.

Следующий шаг алгоритма 2 выполняются последовательного для каждого блока исходных данных в порядке их следования.

Øàã 2.    Побитовая сумма по модулю 2 очередного блока исходных данных  Ti  c текущим значением MAC  S  подвергается преобразованию по алгоритму зашифрования, результат становится новым текущим значением MAC.

     Рис. 1.  Алгоритм выработки      кода аутентификации для      массива данных.

Øàã 3.    Результатом работы алгоритма – MAC для входного массива данных – является последнее текущее значение MAC, полученное на шаге 2.


Рассмотрим свойства криптографических преоб­разований  EK, используемых для шифрования данных, и определим те из них, которые необходимы при выработке MAC:

1.    Преобразование данных должно использовать в ка­честве параметра секретный ключ  K.  Его секретность определяет секретность зашифрованных данных.

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

3.    Преобразование данных должно быть обратимым – для того, чтобы была осуществима процедура расшифрования.

Если шифрующее преобразование  EK  предполагается использовать для выработки кода аутентификации, выполнение третьего свойства не требуется, так как при этом преобразование всегда выполняется в одну сторону.  Кроме того криптостойкость алгоритма преобразования может быть несколько ниже, чем при шифровании, и это не приведет к снижению надежности всей схемы.  Действительно, при выработке MAC в распоряжении криптоаналитика есть только один блок данных – MAC, который является функцией сразу всех блоков исходного текста, а при зашифровании в его распоряжении есть набор блоков шифротекста, каждый из которых зависит только от одного блока исходного текста.  Очевидно, в первом случае его задача существенно сложнее.  Именно по этой причине в ГОСТе 28147–89 для выработки имитовставки используется упрощенный 16-раундовый цикл преобразования, тогда как для шифрования – полный 32-раундовый.


Содержание раздела