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

Информация, используемая для аутентификации сообщений и проверки целостности

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

Терминология

Термин код целостности сообщения ( MIC ) часто заменяется термином MAC , особенно в коммуникациях [1], чтобы отличить его от использования последнего в качестве адреса управления доступом к среде ( MAC-адрес ). Однако некоторые авторы [2] используют MIC для обозначения дайджеста сообщения , который направлен только на уникальную, но непрозрачную идентификацию одного сообщения. RFC 4949 рекомендует избегать термина код целостности сообщения (MIC) и вместо этого использовать контрольную сумму , код обнаружения ошибок , хэш , ключевой хэш , код аутентификации сообщения или защищенную контрольную сумму .

Определения

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

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

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

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

  • G (генератор ключей) выдает ключ k на входе 1 n , где n — параметр безопасности.
  • S (подписание) выводит тег t на ключе k и входной строке x .
  • V (проверка) выводит принятые или отклоненные входные данные: ключ k , строка x и тег t .

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

Pr [ kG (1 n ), V ( k , x , S ( k , x ) ) = принято ] = 1 . [5]

MAC невозможно подделать , если для каждого эффективного противника A

Pr [ kG (1 n ), ( x , t ) ← A S ( k , · ) (1 n ), x ∉ Запрос( A S ( k , · ) , 1 n ), V ( k , x , t ) = принято ] < negl( n ) ,

где A S ( k , · ) обозначает, что A имеет доступ к оракулу S ( k , · ), а Query( A S ( k , · ) , 1 n ) обозначает набор запросов к S , сделанных A , который знает n . Очевидно, мы требуем, чтобы любой противник не мог напрямую запрашивать строку x в S , поскольку в противном случае этот противник может легко получить действительный тег. [6]

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

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

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

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

Выполнение

Алгоритмы MAC могут быть построены из других криптографических примитивов, таких как криптографические хэш-функции (как в случае HMAC ) или из алгоритмов блочного шифрования ( OMAC , CCM , GCM и PMAC ). Однако многие из самых быстрых алгоритмов MAC, такие как UMAC - VMAC и Poly1305-AES , построены на основе универсального хэширования . [8]

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

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

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

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

Простейшая такая попарно независимая хеш-функция определяется случайным ключом, key = ( a , b ) , а тег MAC для сообщения m вычисляется как tag = ( am + b ) mod p , где p — простое число.

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

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

Стандарты

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

  • FIPS PUB 113 «Аутентификация компьютерных данных» [12] , отозванный в 2002 году [13] , определяет алгоритм на основе DES .
  • FIPS PUB 198-1 Код аутентификации сообщения с хэш-ключом (HMAC) [14]
  • Производные функции NIST SP800-185 SHA-3: cSHAKE, KMAC, TupleHash и ParallelHash [15]
  • ISO/IEC 9797-1 Механизмы, использующие блочный шифр [16]
  • ISO /IEC 9797-2 Механизмы, использующие выделенную хэш-функцию [17]
  • ISO /IEC 9797-3 Механизмы, использующие универсальную хэш-функцию [18]
  • ISO /IEC 29192-6 Облегченная криптография — Коды аутентификации сообщений [19]

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

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

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

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

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

Примечания

  1. ^ Стандарт IEEE для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Специальные требования - Часть 11: Характеристики управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) (PDF) . (редакция 2007 г.). IEEE-SA . 12 июня 2007 г. doi :10.1109/IEEESTD.2007.373646. ISBN 978-0-7381-5656-9. Архивировано из оригинала (PDF) 13 октября 2008 г.
  2. ^ "CS 513 System Security -- Хэши и дайджесты сообщений". www.cs.cornell.edu . Получено 20 декабря 2023 г. .
  3. ^ Предполагается, что сильнейший противник имеет доступ к алгоритму подписи, не зная ключа. Однако его окончательное поддельное сообщение должно отличаться от любого сообщения, которое он выбрал для запроса алгоритма подписи ранее. См. обсуждения Пасса перед определением 134.2.
  4. ^ ab Теоретически эффективный алгоритм работает за вероятностно-полиномиальное время.
  5. ^ Пас, защита 134.1
  6. ^ Пас, защита 134.2
  7. ^ Бхаумик, Ритам; Чакраборти, Бишваджит; Чхве, Вонсок; Дутта, Авиджит; Говинден, Жером; Шен, Яобин (2024). «Обеспечение безопасности MAC с приложениями к общей композиции». В Рейзин Леонид; Стебила, Дуглас (ред.). Достижения криптологии – КРИПТО 2024 . Конспекты лекций по информатике. Том. 14923. Чам: Springer Nature Switzerland. стр.  425–462 . doi : 10.1007/978-3-031-68385-5_14. ISBN 978-3-031-68385-5.
  8. ^ "VMAC: Код аутентификации сообщений с использованием универсального хеширования". Рабочая группа CFRG . Получено 16 марта 2010 г.
  9. ^ Жан-Филипп Омассон и Дэниел Дж. Бернстайн (18 сентября 2012 г.). «SipHash: быстрый PRF с коротким входом» (PDF) .
  10. ^ Симмонс, Густавус (1985). «Теория аутентификации/теория кодирования». Достижения в криптологии – Труды CRYPTO 84. Берлин: Springer. С.  411– 431.
  11. ^ Николопулос, Георгиос М.; Фишлин, Марк (2020). «Информационно-теоретически безопасная аутентификация источника данных с квантовыми и классическими ресурсами». Криптография . 4 (4): 31. arXiv : 2011.06849 . doi : 10.3390/cryptography4040031 . S2CID  226956062.
  12. ^ "FIPS PUB 113 Аутентификация компьютерных данных". Архивировано из оригинала 27 сентября 2011 г. Получено 10 октября 2010 г.
  13. ^ "Публикации федеральных стандартов обработки информации, отозванные FIPS, перечисленные по номеру". Архивировано из оригинала 1 августа 2010 г. Получено 10 октября 2010 г.
  14. ^ "Код аутентификации сообщения с хэш-ключом (HMAC)" (PDF) . Получено 20 декабря 2023 г. .
  15. ^ Производные функции SHA-3 nvlpubs.nist.gov
  16. ^ "ISO/IEC 9797-1:2011". ISO . Получено 20 декабря 2023 г. .
  17. ^ "ISO/IEC 9797-2:2011". ISO . Получено 20 декабря 2023 г. .
  18. ^ "ISO/IEC 9797-3:2011". ISO . Получено 20 декабря 2023 г. .
  19. ^ "ISO/IEC 29192-6:2019". ISO . Получено 20 декабря 2023 г. .
  20. ^ "Обзор безопасности Mac", Библия безопасности Mac® , Wiley Publishing, Inc., 1 ноября 2011 г., стр.  1–26 , doi :10.1002/9781118257739.ch1, ISBN 9781118257739

Ссылки

  • Голдрайх, Одед (2001), Основы криптографии I: Базовые инструменты , Кембридж: Cambridge University Press, ISBN 978-0-511-54689-1
  • Голдрайх, Одед (2004), Основы криптографии II: Основные приложения (1-е изд.), Кембридж [ua]: Cambridge Univ. Press, ISBN 978-0-521-83084-3
  • Пасс, Рафаэль, Курс криптографии (PDF) , получено 31 декабря 2015 г.[1]
  • Запись RSA Laboratories на MAC
  • Лекция Рона Ривеста о MAC
  1. ^ 11-12-20C8
Получено с "https://en.wikipedia.org/w/index.php?title=Message_authentication_code&oldid=1271122130"