Код аутентификации сообщения - Message authentication code

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

Определения

Неформально система кодов аутентификации сообщений состоит из трех алгоритмов:

  • Алгоритм генерации ключей выбирает ключ из ключевого пространства равномерно и случайным образом.
  • Алгоритм подписи эффективно возвращает тег с учетом ключа и сообщения.
  • Алгоритм проверки эффективно проверяет подлинность сообщения с учетом ключа и тега. То есть вернуться принято когда сообщение и тег не были подделаны или подделаны, и в противном случае возвращаются отклоненный.

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

Формально код аутентификации сообщения (MAC) система представляет собой тройку эффективных[2] алгоритмы (грамм, S, V) удовлетворение:

  • грамм (генератор ключей) дает ключ k на входе 1п, куда п - параметр безопасности.
  • S (подпись) выводит тег т на ключе k и входная строка Икс.
  • V (проверка) результатов принято или же отклоненный на входах: ключ k, Струна Икс и тег т.

S и V должны удовлетворять следующим требованиям:

Pr [ kграмм(1п), V( k, Икс, S(k, Икс) ) = принято ] = 1.[3]

MAC - это неподдельный если для каждого эффективного противника А

Pr [ kграмм(1п), (Икс, т) ← АS(k, · )(1п), Икс ∉ Запрос (АS(k, · ), 1п), V(k, Икс, т) = принято] <пренебрежение (п),

куда АS(k, · ) означает, что А имеет доступ к оракулу S(k, ·) И Query (АS(k, · ), 1п) обозначает множество запросов на S сделан А, который знает п. Очевидно, мы требуем, чтобы противник не мог напрямую запросить строку Икс на S, поскольку в противном случае противник может легко получить действительный тег.[4]

Безопасность

Хотя функции MAC похожи на криптографические хеш-функции, у них разные требования к безопасности. Чтобы считаться безопасной, функция MAC должна сопротивляться экзистенциальная подделка под атаки с выбранным открытым текстом. Это означает, что даже если злоумышленник имеет доступ к оракул который обладает секретным ключом и генерирует MAC для сообщений по выбору злоумышленника, злоумышленник не может угадать MAC для других сообщений (которые не использовались для запроса оракула) без выполнения недопустимых объемов вычислений.

MAC отличаются от цифровые подписи поскольку значения MAC генерируются и проверяются с использованием одного и того же секретного ключа. Это означает, что отправитель и получатель сообщения должны согласовать один и тот же ключ до начала связи, как в случае с симметричное шифрование. По той же причине MAC не предоставляют свойство неотречение предлагается подписями специально в случае общесетевого поделился секретом ключ: любой пользователь, который может проверить MAC, также способен генерировать MAC для других сообщений. Напротив, цифровая подпись создается с использованием закрытого ключа пары ключей, что является криптографией с открытым ключом.[2]. Поскольку этот закрытый ключ доступен только его держателю, цифровая подпись доказывает, что документ был подписан не кем иным, как этим держателем. Таким образом, цифровые подписи обеспечивают защиту от авторства. Однако предотвращение отказа от авторства может быть обеспечено системами, которые надежно связывают информацию об использовании ключа с ключом MAC; один и тот же ключ есть у двух человек, но у одного есть копия ключа, который может использоваться для генерации MAC, а у другого есть копия ключа в аппаратный модуль безопасности это разрешает только проверку MAC. Обычно это делается в финансовой сфере.[нужна цитата ]

Коды целостности сообщений

Период, термин код целостности сообщения (MIC) часто заменяется термином MAC, особенно в коммуникациях,[5] чтобы отличить это от использования MAC смысл MAC-адрес (за адрес управления доступом к среде). Однако некоторые авторы[6] используйте MIC для обозначения Дайджест сообщения, который отличается от MAC - дайджест сообщения не использует секретные ключи. Это отсутствие безопасности означает, что любой дайджест сообщения, предназначенный для измерения целостности сообщения, должен быть зашифрован или иным образом защищен от взлома. Алгоритмы дайджеста сообщения создаются таким образом, чтобы данное сообщение всегда создавало один и тот же дайджест сообщения, если для генерации обоих используется один и тот же алгоритм. И наоборот, алгоритмы MAC предназначены для создания совпадающих MAC только в том случае, если одно и то же сообщение, секретный ключ и вектор инициализации вводятся в один и тот же алгоритм. В дайджестах сообщений не используются секретные ключи, поэтому они, будучи взяты сами по себе, являются гораздо менее надежным средством измерения целостности сообщения, чем MAC. Поскольку MAC-адреса используют секретные ключи, их не обязательно шифровать, чтобы обеспечить такой же уровень надежности.

RFC 4949 рекомендует избегать термина «код целостности сообщения» (MIC) и вместо этого использовать «контрольная сумма ", "код обнаружения ошибки ", "хэш "," хэш с ключом "," код аутентификации сообщения "или" защищенная контрольная сумма ".

Выполнение

Алгоритмы MAC могут быть построены из других криптографических примитивов, таких как криптографические хеш-функции (как и в случае с HMAC ) или из блочный шифр алгоритмы (OMAC, СКК, GCM, и PMAC ). Однако многие из самых быстрых алгоритмов MAC, таких как UMAC -VMAC и Поли1305-AES построены на основе универсальное хеширование.[7]

Хэш-алгоритмы с внутренними ключами, такие как SipHash также по определению являются MAC; они могут быть даже быстрее, чем MAC-адреса на основе универсального хеширования.[8]

Кроме того, алгоритм MAC может намеренно объединять два или более криптографических примитива, чтобы поддерживать защиту, даже если один из них позже окажется уязвимым. Например, в Безопасность транспортного уровня (TLS), входные данные разбивается на половины, каждая из которых обрабатывается отдельным примитивом хеширования (SHA-1 и SHA-2 ) тогда XORed вместе для вывода MAC.

Стандарты

Существуют различные стандарты, определяющие алгоритмы MAC. К ним относятся:

  • FIPS PUB 113 Проверка подлинности компьютерных данных,[9] выведен в 2002 г.,[10] определяет алгоритм, основанный на DES.
  • FIPS PUB 198-1 Код аутентификации сообщения с ключом-хешем (HMAC)[11]
  • ИСО / МЭК 9797-1 Механизмы, использующие блочный шифр[12]
  • ISO / IEC 9797-2 Механизмы, использующие выделенную хеш-функцию[13]
  • ISO / IEC 9797-3 Механизмы, использующие универсальную хеш-функцию[14]
  • ISO / МЭК 29192-6 Легкая криптография - Коды аутентификации сообщений[15]

ИСО / МЭК 9797-1 и -2 определяют общие модели и алгоритмы, которые могут использоваться с любым блочным шифром или хэш-функцией, а также с множеством различных параметров. Эти модели и параметры позволяют определять более конкретные алгоритмы путем назначения параметров. Например, алгоритм FIPS PUB 113 функционально эквивалентен алгоритму MAC 1 ISO / IEC 9797-1 с методом заполнения 1 и алгоритму блочного шифрования DES.

Пример использования MAC

MAC.svg

[16]В этом примере отправитель сообщения запускает его через алгоритм MAC для создания тега данных MAC. Затем сообщение и тег MAC отправляются получателю. Приемник, в свою очередь, запускает часть сообщения передачи через тот же алгоритм MAC, используя тот же ключ, создавая второй тег данных MAC. Затем приемник сравнивает первый MAC-тег, полученный при передаче, со вторым сгенерированным MAC-тегом. Если они идентичны, получатель может с уверенностью предположить, что сообщение не было изменено или подделано во время передачи (целостность данных ).

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

Одноразовый MAC

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

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

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

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

Смотрите также

Примечания

  1. ^ Предполагается, что самый сильный противник имеет доступ к алгоритму подписи, не зная ключа. Однако ее окончательное поддельное сообщение должно отличаться от любого сообщения, которое она выбрала для запроса алгоритма подписи ранее. См. Обсуждения Pass до def 134.2.
  2. ^ а б Теоретически эффективный алгоритм работает в пределах вероятностного полиномиального времени.
  3. ^ Пас, защита 134,1
  4. ^ Пас, защита 134,2
  5. ^ IEEE 802.11: Характеристики управления доступом к среде (MAC) и физического уровня (PHY) беспроводной локальной сети (PDF). (Редакция 2007 г.). IEEE-SA. 12 июня 2007 г. Дои:10.1109 / IEEESTD.2007.373646. ISBN  978-0-7381-5656-9.
  6. ^ Фред Б. Шнайдер, Хэши и дайджесты сообщений, Корнельский университет
  7. ^ «VMAC: код аутентификации сообщения с использованием универсального хеширования». CFRG рабочая группа. Получено 16 марта 2010.
  8. ^ Жан-Филипп Аумассон и Дэниел Дж. Бернштейн (2012-09-18). «SipHash: быстрый PRF с коротким вводом» (PDF).
  9. ^ «FIPS PUB 113 Проверка подлинности компьютерных данных". Архивировано из оригинал на 2011-09-27. Получено 2010-10-10.
  10. ^ «Публикации федеральных стандартов обработки информации, отозванные FIPS, перечисленные по номеру». Архивировано из оригинал на 2010-08-01. Получено 2010-10-10.
  11. ^ Код аутентификации сообщения с ключом-хешем (HMAC)
  12. ^ ИСО / МЭК 9797-1 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр.
  13. ^ ИСО / МЭК 9797-2 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 2: Механизмы, использующие выделенную хеш-функцию.
  14. ^ ИСО / МЭК 9797-3 Информационные технологии. Методы безопасности. Коды аутентификации сообщений (MAC). Часть 3. Механизмы, использующие универсальную хеш-функцию.
  15. ^ ИСО / МЭК 29192-6 Информационные технологии. Облегченная криптография. Часть 6. Коды аутентификации сообщений (MAC)
  16. ^ «Обзор безопасности Mac», Библия безопасности Mac®, Wiley Publishing, Inc., 2011-11-01, стр. 1–26, Дои:10.1002 / 9781118257739.ch1, ISBN  9781118257739
  17. ^ Симмонс, Густав (1985). «Теория аутентификации / теория кодирования». Достижения в криптологии: материалы CRYPTO 84. Берлин: Springer. С. 411–431. ISBN  00000000 Проверять | isbn = значение: длина (помощь).
  18. ^ Николопулос, Георгиос М .; Фишлин, Марк (2020). «Информационно-безопасная аутентификация источника данных с использованием квантовых и классических ресурсов». Криптография. 4 (4): 31. arXiv:2011.06849. Дои:10.3390 / криптография4040031. S2CID  226956062.

Рекомендации

  • Гольдрайх, Одед (2001), Основы криптографии I: Основные инструменты, Кембридж: Издательство Кембриджского университета, ISBN  978-0-511-54689-1
  • Гольдрайх, Одед (2004), Основы криптографии II: основные приложения (1. изд. Ред.), Кембридж [u.a.]: Cambridge Univ. Нажмите, ISBN  978-0-521-83084-3
  • Проходи, Рафаэль, Курс криптографии (PDF), получено 31 декабря 2015[1]

внешняя ссылка

  1. ^ 11-12-20C8