ИСО/МЭК 9797-1

ISO/IEC 9797-1 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр. [1] — это международный стандарт , определяющий методы расчета кода аутентификации сообщения (MAC) по данным.

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

Поскольку стандарт описывает модель, а не конкретный алгоритм, пользователи стандарта должны указать все конкретные параметры и параметры, которые будут использоваться , чтобы обеспечить однозначный расчет MAC.

Модель [ править ]

Модель генерации MAC состоит из шести этапов:

  1. Заполнение данных кратным размеру шифровального блока
  2. Разделение данных на блоки
  3. Первоначальное преобразование первого блока данных
  4. Итерация по оставшимся блокам данных
  5. Выходное преобразование результата последней итерации
  6. Усечение результата до необходимой длины

Для большинства шагов стандарт предоставляет несколько вариантов выбора и/или допускает некоторую конфигурацию.

Заполнение [ править ]

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

Метод заполнения 1 [ править ]

При необходимости добавьте биты со значением 0 в конец данных, пока дополненные данные не станут кратными n . (Если исходные данные уже были кратны n , биты не добавляются.)

Метод заполнения 2 [ править ]

Добавьте один бит со значением 1 в конец данных. Затем, если необходимо, добавьте биты со значением 0 в конец данных, пока дополненные данные не станут кратными n .

Метод заполнения 3 [ править ]

Дополненные данные включают (в этом порядке):

  • Длина недополненных данных (в битах), выраженная в двоичном формате с прямым порядком байтов в n битах (т. е. один блок шифрования).
  • Недополненные данные
  • Столько (возможно, ни одного) битов со значением 0, сколько необходимо, чтобы общая длина была кратна n битам.

Нет необходимости передавать или сохранять биты заполнения, поскольку получатель может восстановить их, зная длину недополненных данных и используемый метод заполнения.

Разделение [ править ]

Дополненные данные D разбиваются на q блоков D 1 , D 2 , ... D q , каждый из которых имеет длину n , подходящих для блочного шифра.

Начальная трансформация [ править ]

Криптографическая операция выполняется над первым блоком ( D1 ) для создания промежуточного H1 блока . Определены два начальных преобразования:

Начальная трансформация 1 [ править ]

D1 : ключом К зашифрован

ЧАС 1 знак равно е K ( D 1 )

Начальная трансформация 2 [ править ]

D1 : шифруется ключом К , а затем вторым ключом К »

ЧАС 1 = е К » К ( D 1 ))

Итерация [ править ]

Блоки H 2 ... H q вычисляются путем шифрования с помощью ключа K побитового блока исключающего или соответствующего блока данных и предыдущего H- .

для я = 2 до q
ЧАС я знак равно е K ( D я ЧАС я -1 )

Если имеется только один блок данных ( q =1), этот шаг пропускается.

Выходное преобразование [ править ]

Криптографическая операция (необязательно) выполняется над выходным блоком H q последней итерации для создания блока G . Определены три выходных преобразования:

Выходное преобразование 1 [ править ]

H q используется без изменений:

г = ч q

Выходное преобразование 2 [ править ]

H q шифруется ключом K ′:

грамм знак равно е K ( ЧАС q )

Выходное преобразование 3 [ править ]

H q расшифровывается ключом K ′, а результат шифруется ключом K :

г знак равно е K ( d K ( ЧАС q ))

Усечение [ править ]

MAC получается путем усечения блока G (сохраняя самые левые биты, отбрасывая самые правые биты) до необходимой длины.

Конкретные алгоритмы [ править ]

Общая модель номинально допускает любую комбинацию опций для каждого этапа заполнения, начального преобразования, выходного преобразования и усечения. Однако стандарт определяет четыре конкретные комбинации начального и выходного преобразования и (где это необходимо) получения ключа, а также две дополнительные комбинации, основанные на дублирующих параллельных вычислениях. В стандарте эти комбинации обозначаются как «Алгоритм MAC 1» – «Алгоритм MAC 6».

MAC-алгоритм 1 [ править ]

Этот алгоритм использует начальное преобразование 1 и выходное преобразование 1.

Требуется только один ключ K. ,

(Если используется блочный шифр DES , это эквивалентно алгоритму, указанному в FIPS PUB 113 «Аутентификация компьютерных данных» . [2] )

Алгоритм 1 широко известен как CBC-MAC . [3]

MAC-алгоритм 2 [ править ]

Этот алгоритм использует начальное преобразование 1 и выходное преобразование 2.

Требуются два ключа, K и K ′, но K ′ может быть получен из K .

MAC-алгоритм 3 [ править ]

Этот алгоритм использует начальное преобразование 1 и выходное преобразование 3.

Требуются два независимых ключа, K и K ′.

Алгоритм 3 также известен как Retail MAC . [4]

MAC-алгоритм 4 [ править ]

Этот алгоритм использует начальное преобразование 2 и выходное преобразование 2.

Требуются два независимых ключа, K и K ', с третьим ключом K ', производным от K '.

MAC-алгоритм 5 [ править ]

Алгоритм 5 MAC содержит два параллельных экземпляра алгоритма 1 MAC. Первый экземпляр работает с исходными входными данными. Второй экземпляр работает с двумя вариантами ключа, сгенерированными из исходного ключа путем умножения в поле Галуа . Окончательный MAC вычисляется побитовым исключающим или из MAC, сгенерированных каждым экземпляром алгоритма 1. [5]

Алгоритм 5 также известен как CMAC . [6]

MAC-алгоритм 6 [ править ]

Этот алгоритм включает в себя два параллельных экземпляра алгоритма MAC 4. Окончательный MAC представляет собой побитовое исключающее ИЛИ MAC, сгенерированных каждым экземпляром алгоритма 4. [7]

Каждый экземпляр алгоритма 4 использует другую пару ключей ( K и K '), но эти четыре ключа получены из двух независимых базовых ключей.

Вывод ключа [ править ]

Алгоритмы MAC 2 (опционально), 4, 5 и 6 требуют получения одного или нескольких ключей из другого ключа. Стандарт не требует какого-либо конкретного метода получения ключей, хотя обычно требует, чтобы производные ключи отличались друг от друга.

В стандарте приведены некоторые примеры методов получения ключей, такие как «дополнение альтернативными подстроками из четырех битов K, начиная с первых четырех битов». Это эквивалентно побитовому исключающему ИЛИ каждого байта ключа с помощью F0 ( hex ).

Полная спецификация расчета MAC [ править ]

Чтобы полностью и однозначно определить расчет MAC, пользователь ISO/IEC 9797-1 должен выбрать и указать:

  • Алгоритм блочного шифрования e
  • Метод заполнения (от 1 до 3)
  • Конкретный алгоритм MAC (от 1 до 6)
  • Длина MAC
  • Метод(ы) получения ключа, если необходимо, для алгоритмов MAC 2, 4, 5 или 6.

Анализ безопасности алгоритмов [ править ]

Приложение B стандарта представляет собой анализ безопасности алгоритмов MAC. В нем описываются различные криптографические атаки на алгоритмы, в том числе атака с восстановлением ключа , восстановление ключа методом перебора и атака по случаю дня рождения , а также анализируется устойчивость каждого алгоритма к этим атакам.

Ссылки [ править ]

  1. ^ ISO / IEC 9797-1: 2011 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр.
  2. ^ «FIPS PUB 113 — Аутентификация компьютерных данных» . Национальный институт стандартов и технологий . Архивировано из оригинала 27 сентября 2011 г. Проверено 1 октября 2011 г.
  3. ^ ISO / IEC 9797-1: 2011 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр . Введение.
  4. ^ ISO/IEC 9797-1 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр . Международная организация по стандартизации. 2011. с. 11.
  5. ^ ISO/IEC 9797-1 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр . Международная организация по стандартизации. 2011. с. 12.
  6. ^ ISO/IEC 9797-1 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр . Международная организация по стандартизации. 2011. с. 13.
  7. ^ ISO/IEC 9797-1:1999 Информационные технологии. Методы обеспечения безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр . Заменен ISO/IEC 9797-1:2011, который (в соответствии с предисловие последнего ) имеет другой алгоритм 6.