Код аутентификации сообщения
В криптографии MAC код аутентификации сообщения ( аутентификации ), иногда называемый тегом аутентификации , представляет собой короткий фрагмент информации, используемый для и проверки целостности сообщения. Другими словами, подтвердить, что сообщение пришло от заявленного отправителя (его подлинность) и не было изменено (его целостность). Значение MAC позволяет верификаторам (у которых также есть секретный ключ) обнаруживать любые изменения в содержимом сообщения.
Терминология
[ редактировать ]Термин «код целостности сообщения» ( MIC ) часто заменяют термин MAC , особенно в средствах связи. [ 1 ] чтобы отличить его от использования последнего в качестве адреса управления доступом к среде передачи ( MAC-адреса ). Однако некоторые авторы [ 2 ] используйте MIC для ссылки на дайджест сообщения , целью которого является только уникальная, но непрозрачная идентификация одного сообщения. RFC 4949 рекомендует избегать термина « код целостности сообщения» (MIC) и вместо этого использовать контрольную сумму , код обнаружения ошибок , хэш , ключевой хэш , код аутентификации сообщения или защищенную контрольную сумму .
Определения
[ редактировать ]Неформально система кодов аутентификации сообщений состоит из трех алгоритмов:
- Алгоритм генерации ключей выбирает ключ из пространства ключей равномерно случайным образом.
- Алгоритм подписи эффективно возвращает тег с учетом ключа и сообщения.
- Алгоритм проверки эффективно проверяет подлинность сообщения с использованием того же ключа и тега. То есть возврат принимается , если сообщение и тег не были подделаны или подделаны, а в противном случае возврат отклонен .
Код аутентификации безопасного сообщения должен противостоять попыткам злоумышленника подделать теги для произвольных, выбранных или всех сообщений , в том числе в условиях известного или выбранного сообщения . Должно быть вычислительно невозможно вычислить действительный тег данного сообщения без знания ключа, даже если в худшем случае мы предполагаем, что злоумышленник знает тег любого сообщения, кроме рассматриваемого. [ 3 ]
Формально система кода аутентификации сообщения ( MAC ) представляет собой тройку эффективных [ 4 ] алгоритмы ( G , S , V ), удовлетворяющие:
- G (генератор ключей) выдает ключ k на входе 1 н , где n — параметр безопасности.
- S (подпись) выводит тег t на ключ k и входную строку x .
- V (проверка) выходные данные приняты или отклонены на входах: ключ k , строка x и тег t .
S и V должны удовлетворять следующему:
- Пр [ k ← G (1 н ), V ( k , Икс , S ( k , Икс ) ) = принято ] знак равно 1 . [ 5 ]
МАК невозможно подделать, если для каждого эффективного противника А
- Пр [ k ← G (1 н ), ( Икс , т ) ← А S ( k , · ) (1 н ), x ∉ Query( A S ( k , · ) , 1 н ), V ( k , x , t ) = принято ] < negl( n ) ,
где А S ( k , · ) означает, что A имеет доступ к оракулу S ( k , · ), а Query( A S ( k , · ) , 1 н ) обозначает множество запросов к S, сделанных пользователем A , который знает n . Очевидно, мы требуем, чтобы любой противник не мог напрямую запросить строку x в S , поскольку в противном случае этот противник может легко получить действительный тег. [ 6 ]
Безопасность
[ редактировать ]Хотя функции MAC похожи на криптографические хеш-функции , они предъявляют разные требования к безопасности. Чтобы считаться безопасной, функция MAC должна противостоять экзистенциальной подделке при атаках с использованием выбранных сообщений . Это означает, что даже если злоумышленник имеет доступ к оракулу , который обладает секретным ключом и генерирует MAC-адреса для сообщений по выбору злоумышленника, злоумышленник не может угадать MAC-адрес для других сообщений (которые не использовались для запроса оракула), не выполняя при этом невыполнимые действия. вычислений.
MAC отличаются от цифровых подписей , поскольку значения MAC генерируются и проверяются с использованием одного и того же секретного ключа. Это означает, что отправитель и получатель сообщения должны согласовать один и тот же ключ перед началом связи, как в случае с симметричным шифрованием . По той же причине MAC не обеспечивают свойство неотказуемости, обеспечиваемое подписями, особенно в случае общесетевого общего секретного ключа: любой пользователь, который может проверить MAC, также способен генерировать MAC для других сообщений. Напротив, цифровая подпись генерируется с использованием закрытого ключа пары ключей, что представляет собой криптографию с открытым ключом. [ 4 ] Поскольку этот закрытый ключ доступен только его владельцу, цифровая подпись доказывает, что документ был подписан никем иным, как этим владельцем. Таким образом, цифровые подписи действительно обеспечивают неотказуемость. Однако неотказуемость может быть обеспечена системами, которые надежно привязывают информацию об использовании ключа к ключу MAC; один и тот же ключ принадлежит двум людям, но у одного есть копия ключа, которую можно использовать для генерации MAC, а у другого есть копия ключа в аппаратном модуле безопасности , который разрешает только проверку MAC. Обычно это делается в финансовой сфере. [ нужна ссылка ]
Выполнение
[ редактировать ]Алгоритмы MAC могут быть созданы из других криптографических примитивов, таких как криптографические хеш-функции (как в случае HMAC ) или из блочного шифрования алгоритмов ( OMAC , CCM , GCM и PMAC ). Однако многие из самых быстрых алгоритмов MAC, такие как UMAC - VMAC и Poly1305-AES , построены на основе универсального хеширования . [ 7 ]
Алгоритмы хеширования с внутренним ключом, такие как SipHash, также по определению являются MAC; они могут быть даже быстрее, чем MAC на основе универсального хеширования. [ 8 ]
Кроме того, алгоритм MAC может намеренно комбинировать два или более криптографических примитива, чтобы поддерживать защиту, даже если позже один из них окажется уязвимым. Например, в версиях Transport Layer Security (TLS) до 1.2 входные данные разбиваются пополам, каждая из которых обрабатывается с помощью другого примитива хеширования ( SHA-1 и SHA-2 ), а затем объединяется с помощью XOR для вывода MAC.
Одноразовый MAC
[ редактировать ]Универсальное хеширование и, в частности, попарно независимые хеш-функции обеспечивают безопасный код аутентификации сообщения, если ключ используется не более одного раза. Это можно рассматривать как одноразовый блокнот для аутентификации. [ 9 ]
Простейшая такая попарно независимая хэш-функция определяется случайным ключом key = ( a , b ) , а тег MAC для сообщения m вычисляется как tag = ( am + b ) mod p , где p — простое число.
В более общем смысле, k -независимые хэш- функции обеспечивают безопасный код аутентификации сообщения, если ключ используется менее k раз для k -независимых функций хеширования.
Коды аутентификации сообщений и аутентификация источника данных также обсуждались в рамках квантовой криптографии. В отличие от других криптографических задач, таких как распределение ключей, для довольно широкого класса квантовых MAC было показано, что квантовые ресурсы не дают никаких преимуществ перед безусловно безопасными одноразовыми классическими MAC. [ 10 ]
Стандарты
[ редактировать ]Существуют различные стандарты, определяющие алгоритмы MAC. К ним относятся:
- FIPS PUB 113 Аутентификация компьютерных данных , [ 11 ] снят в 2002 году, [ 12 ] определяет алгоритм, основанный на DES .
- FIPS PUB 198-1 Код аутентификации сообщения с использованием хэш-ключа (HMAC) [ 13 ]
- NIST SP800-185 Производные функции SHA-3: cSHAKE, KMAC, TupleHash и ParallelHash. [ 14 ]
- ISO/IEC 9797-1 Механизмы, использующие блочный шифр. [ 15 ]
- ISO /IEC 9797-2 Механизмы, использующие специальную хеш-функцию. [ 16 ]
- ISO /IEC 9797-3 Механизмы, использующие универсальную хеш-функцию. [ 17 ]
- ISO /IEC 29192-6 Облегченная криптография. Коды аутентификации сообщений. [ 18 ]
ISO/IEC 9797-1 и -2 определяют общие модели и алгоритмы, которые можно использовать с любым блочным шифром или хэш-функцией, а также с множеством различных параметров. Эти модели и параметры позволяют определять более конкретные алгоритмы путем назначения параметров. Например, алгоритм FIPS PUB 113 функционально эквивалентен алгоритму MAC ISO/IEC 9797-1 1 с методом заполнения 1 и алгоритму блочного шифрования DES.
Пример использования MAC
[ редактировать ][ 19 ] В этом примере отправитель сообщения пропускает его через алгоритм MAC для создания тега данных MAC. Затем сообщение и тег MAC отправляются получателю. Приемник, в свою очередь, пропускает часть сообщения через тот же алгоритм MAC, используя тот же ключ, создавая вторую метку данных MAC. Затем приемник сравнивает первый тег MAC, полученный при передаче, со вторым сгенерированным тегом MAC. Если они идентичны, получатель может с уверенностью предположить, что сообщение не было изменено или подделано во время передачи ( целостность данных ).
Однако, чтобы получатель мог обнаружить атаки повторного воспроизведения , само сообщение должно содержать данные, гарантирующие, что это же сообщение может быть отправлено только один раз (например, отметка времени, порядковый номер или использование одноразового MAC ). В противном случае злоумышленник может, даже не разобравшись в его содержании, записать это сообщение и воспроизвести его позже, получив тот же результат, что и исходный отправитель.
См. также
[ редактировать ]- Контрольная сумма
- CMAC
- HMAC (код аутентификации сообщения на основе хеша)
- НЕ
- ММХ-Барсук MAC
- Поли1305
- Аутентифицированное шифрование
- UMAC
- ВМАК
- СипХэш
- КМАК
Примечания
[ редактировать ]- ^ Стандарт IEEE для информационных технологий. Телекоммуникации и обмен информацией между системами. Локальные и городские сети. Особые требования. Часть 11. Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) (PDF) . (редакция 2007 г.). IEEE-SA . 12 июня 2007 г. doi : 10.1109/IEESTD.2007.373646 . ISBN 978-0-7381-5656-9 . Архивировано из оригинала (PDF) 13 октября 2008 года.
- ^ «Системная безопасность CS 513 — хэши и дайджесты сообщений» . www.cs.cornell.edu . Проверено 20 декабря 2023 г.
- ^ Предполагается, что самый сильный противник имеет доступ к алгоритму подписи, не зная ключа. Однако ее окончательное поддельное сообщение должно отличаться от любого сообщения, которое она выбрала для запроса алгоритма подписи ранее. См. обсуждения Pass перед версией 134.2.
- ^ Jump up to: а б Теоретически эффективный алгоритм работает за вероятностно-полиномиальное время.
- ^ Пас, защита 134.1
- ^ Пас, защита 134,2
- ^ «VMAC: код аутентификации сообщения с использованием универсального хеширования» . Рабочая группа КФРГ . Проверено 16 марта 2010 г.
- ^ Жан-Филипп Омассон и Дэниел Дж. Бернштейн (18 сентября 2012 г.). «SipHash: быстрый PRF с коротким вводом» (PDF) .
- ^ Симмонс, Густав (1985). «Теория аутентификации/теория кодирования». Достижения в криптологии – Труды CRYPTO 84 . Берлин: Шпрингер. стр. 411–431.
- ^ Николопулос, Георгиос М.; Фишлин, Марк (2020). «Информационно-безопасная аутентификация источника данных с использованием квантовых и классических ресурсов» . Криптография . 4 (4): 31. arXiv : 2011.06849 . дои : 10.3390/cryptography4040031 . S2CID 226956062 .
- ^ «FIPS PUB 113 Аутентификация компьютерных данных » . Архивировано из оригинала 27 сентября 2011 года . Проверено 10 октября 2010 г.
- ^ «Публикации федеральных стандартов обработки информации, изъятые из списка FIPS, перечисленные по номерам» . Архивировано из оригинала 1 августа 2010 года . Проверено 10 октября 2010 г.
- ^ « Код аутентификации сообщения с использованием хэш-ключа (HMAC) » (PDF) . Проверено 20 декабря 2023 г.
- ^ Производные функции SHA-3 nvlpubs.nist.gov
- ^ «ИСО/МЭК 9797-1:2011» . ИСО . Проверено 20 декабря 2023 г.
- ^ «ИСО/МЭК 9797-2:2011» . ИСО . Проверено 20 декабря 2023 г.
- ^ «ИСО/МЭК 9797-3:2011» . ИСО . Проверено 20 декабря 2023 г.
- ^ «ИСО/МЭК 29192-6:2019» . ИСО . Проверено 20 декабря 2023 г.
- ^ «Обзор безопасности Mac», Библия безопасности Mac® , Wiley Publishing, Inc., 1 ноября 2011 г., стр. 1–26, doi : 10.1002/9781118257739.ch1 , ISBN 9781118257739
Ссылки
[ редактировать ]- Гольдрайх, Одед (2001), Основы криптографии I: Основные инструменты , Кембридж: Издательство Кембриджского университета, ISBN 978-0-511-54689-1
- Гольдрайх, Одед (2004), Основы криптографии II: Основные приложения (1-е изд.), Кембридж [ua]: Cambridge Univ. Пресса, ISBN 978-0-521-83084-3
- Пасс, Рафаэль, Курс криптографии (PDF) , получено 31 декабря 2015 г. [ 1 ]
Внешние ссылки
[ редактировать ]- ^ 11-12-20C8