Message authentication code

Message authentication code

Message authentication code

MAC (имитовставка, англ. message authentication code — код аутентичности сообщения) — средство обеспечения имитозащиты в протоколах аутентификации сообщений с доверяющими друг другу участниками — специальный набор символов, который добавляется к сообщению и предназначен для обеспечения его целостности и аутентификации источника данных.

MAC обычно применяется для обеспечения целостности и защиты от фальсификации передаваемой информации.

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

Для защиты от фальсификации (имитации) сообщения применяется имитовставка, выработанная с использованием секретного элемента (ключа), известного только отправителю и получателю.

Содержание

Обзор

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

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

CBC-MAC: Простейшим способом создать зависящую от ключа имитовставку — шифрование сообщения блочным алгоритмом в режимах CBC или CFB. Имитовставкой является последний шифрованный блок, зашифрованный в этих режимах. Потенциальная проблема, связанная с безопасностью этого метода, состоит в том, что получатель должен знать ключ, и этот ключ позволяет ему генерировать сообщения с тем же значением имитовставки, что и у присланного сообщения, таким образом, имитовставка на основе симметричного шифра не дает знания — отправитель или получатель сформировал эту имитовставку. Таким образом, имитовставка на основе симметричного шифра не заменяет собой электронную подпись.

Имитовставка по ГОСТ 28147-89

Имитовставка по ГОСТ 28147-89 — это контрольный вектор, используемый для проверки аутентификации и целостности (имитозащиты). Имитовставка вырабатывается 16-цикловым алгоритмом ГОСТа (ГОСТ 28147-89). Вектор имитовставки — это 32 младших бита последнего блока Bn шифртекста, вырабатываемого в этом режиме. Вырабатываемые блоки связаны следующими соотношениями: B1 = Ek(T1),Bi = Ek(Bi − 1 + Ti),i = 2,3... где Ек — подстановка, реализуемая 16-цикловым алгоритмом ГОСТа на ключе к, Ti — i бит открытого текста, Bi — i бит шифртекста.

MAA

MAA (Message Authenticator Algorithm) — Алгоритм проверки подлинности сообщений.

Этот алгоритм является стандартом ISO. Он выдает 32-битовое хэш-значение и был спроектирован для мэйнфреймов с быстрыми инструкциями умножения.

v=v<<<1

e=v xor w

x=((((e+y) mod 2^32)۷A۸C)*(x xor Mi))mod 2^32-1

y=((((e+x) mod 2^32)۷B۸D)*(y xor Mi))mod 2^32-1

Эти действия повторяются для каждого блока сообщений, Mi, и результирующее хэш-значение получается с помощью XOR x и y. Переменные v и e зависят от ключа. A, B, C и D являются константами. Возможно, этот алгоритм широко используется, но он достаточно не безопасен. Он был разработан давным давно и не слишком сложный.

Методы Джунемана

Сначала разделим сообщение на m-битовые блоки. Затем:

H0 = I, где I — секретный ключ
Hi = (Hi − 1 + Mi)2modp, где p простое число меньше 2m − 1.

Джунеман предлагает n=16 и p = 231 − 1. Также он предлагает, чтоб H1 использовался в качестве дополнительного ключа, а действительное сообщение начиналось бы с H2. Из-за множества вскрытий типа "дня рождения", было предложено вычислять QCMDC 4 раза, использую результат одной итерации в качестве 4 для следующей итерации, а за тем результаты объединяются в 128-битовое хэш-значение. В дальнейшем эта идея была усилена за счет параллельного выполнения 4-х итераций с поперечными связями между ними. Эта схема была взломана Копперсмитом.

Другие методы

CBC-MAC

В качестве MAC берётся последний блок сообщения зашифрованного блочным алгоритмом в режимах CBC или СFB. Недостатки. Получатель должен знать ключ, что позволит ему генерировать сообщение с тем же MAC.

RIPE-MAC

Был придуман Бартом Пренелом в рамках проекта RIPE. Использует DES в качестве функции блочного шифрования. Существует две модификации данного алгоритма:
RIPE-MAC 1 — использует одно шифрование DES на каждый 64-битный блок сообщения.
RIPE-MAC 3 — использует тройное шифрование DES на каждый 64-битный блок сообщения.
1.Длина сообщения увеличивается, так что бы она была кратна 64.
2.Сообщение разбивается на 64-битные блоки.
3.К сообщению применяется хэш-функция зависящая от ключа(DES или тройной DES).
4.Значени хеш-функции получение на 3 шаге ещё раз шифруется DES, с ключом полученным из ключа, который использовался на 3 шаге.

IBC-MAC

Так же использовалась в рамках проекта RIPE. Вероятность вскрытия IBC-MAC может быть оценена количественно. Ядром функции является
Hi = ((Mi mod p) + v) mod 2n
Секретный ключ представляет собой пару чисел p и v
p — n-битное простое число.
v — случайное число меньше 2n.
Mi — получается с помощью процедуры дополнения.
Каждое сообщение должно хэшироваться новым ключом.
Вероятность вскрытия, однонаправленность и устойчивость к столкновениям могут оцениваться количественно, изменяя их можно задавать нужный уровень безопасности.
Минус в том, что выбранный уровень безопасности ограничивает размер хэшируемого сообщения.

Двунаправленный MAC

Этот MAC выдает хэш-значение, которое в два раза длиннее блока алгоритма. Сначала для сообщения вычисляется CBC- MAC. Затем вычисляется CBC- MAC сообщения с обратным порядком блоков. Двунаправленный MAC просто является объединением этих двух значений. К сожалению эта схема не безопасна.

Однонаправленная хэш-функция MAC

В качестве MAC может быть использована и однонаправленная хэш-функция.

Например, пусть пользователи А и В используют общий ключ К, и А хочет отправить В MAC сообщение М. А объединяет К и М, и вычисляет однонаправленную хэш-функцию объединения: Н(К,М). Это хэш-значение и является кодом MAC. Так как В знает К, он может воспроизвести результат А, а третий пользователь С, которому ключ неизвестен, не сможет это сделать.

С методами MD-усиления этот способ работает, но есть серьезные проблемы. Пользователь С всегда может добавить новые блоки к концу сообщения и вычислить правильный MAC. Это вскрытие может быть предотвращено, если к началу сообщения добавить его длину, но это тоже не безопасно. Лучше добавлять ключ к концу сообщения, Н(М,К), но при этом также возникают проблемы. Если Н однонаправленная функция, которая не защищена от столкновений, С может подделывать сообщения. Еще лучше Н(К,М,К) или Н(К1,М,К2), где К1 и К2 различны. Безопасными кажутся следующие конструкции:

Н(К1, Н(К2,М))

Н(К, Н(К,М))

Н(К, р, М, К)), где р дополняет К до полного блока сообщения.

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

Или можно использовать однонаправленную хэш-функцию и симметричный алгоритм. Сначала хэшируем файл, потом зашифровываем хэш-значение. Это безопаснее, чем сначала шифровать файл, а затем хэшировать зашифрованный файл, но эта схема чувствительна к тому же вскрытию, что и конструкция Н(М,К).

MAC с использованием потокового шифра

Эта схема MAC использует потоковые шифры. Криптографически безопасный генератор псевдослучайных битов демультиплексирует поток сообщения на два подпотока. Если на выходе генератора битов ki единиц, то текущий бит сообщения mi отправляется в первый подпоток, если ноль, то mi отправляется во второй подпоток. Каждый подпоток отправляется на свой LFSR. Выходом MAC просто является конечное состояние обоих регистров.

К несчастью этот метод небезопасен по отношению к небольшим изменениям в сообщении. Например, если изменить последний бит сообщения, то для создания поддельного MAC нужно будет изменить только 2 бита соответствующего MAC; это может быть выполнено с заметной вероятностью.

Литература

  • Словарь криптографических терминов / Под ред. Б.А. Погорелова и В.Н. Сачкова.. — М.: МЦНМО, 2006. — С. 94. — ISBN 5-94057-257-X

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Message authentication code" в других словарях:

  • Message Authentication Code — Code d authentification de message Un code d authentification de message (MAC, Message Authentication Code) est un code accompagnant des données dans le but d assurer l intégrité de ces dernières, en permettant de vérifier qu elles n ont subi… …   Wikipédia en Français

  • Message authentication code — Code d authentification de message Un code d authentification de message (MAC, Message Authentication Code) est un code accompagnant des données dans le but d assurer l intégrité de ces dernières, en permettant de vérifier qu elles n ont subi… …   Wikipédia en Français

  • Message Authentication Code —   [Abk. MAC; dt. »Mitteilungsbeglaubigungscode«], digitale Signatur …   Universal-Lexikon

  • Message authentication code — In cryptography, a message authentication code (often MAC) is a short piece of information used to authenticate a message. A MAC algorithm, sometimes called a keyed (cryptographic) hash function, accepts as input a secret key and an arbitrary… …   Wikipedia

  • Message Authentication Code — Ein Message Authentication Code (MAC) dient dazu, Gewissheit über den Ursprung von Daten oder Nachrichten zu erhalten und ihre Integrität zu überprüfen.[1] MAC Algorithmen erfordern zwei Eingabeparameter, erstens die zu schützenden Daten und… …   Deutsch Wikipedia

  • Message authentication code — MAC o Message authentication code es un código alfanumérico que se genera para un determinado mensaje, y que sirve para asegurar la autenticación de origen y destino de la comunicación. Utiliza una clave simétrica que, concatenada con el texto… …   Enciclopedia Universal

  • Message authentication code field — (MAC)   An ISO term. See preferred term Message Authentication Code (MAC) …   International financial encyclopaedia

  • Message Authentication Code — (MAC)   An ISO term. A code in a message between the sender and the receiver used to validate the source and part or all of the text of the message. The code is the result of an agreed calculation.   ISO Funds Transfer Messages term. 16x.   ISO… …   International financial encyclopaedia

  • Message authentication code — Contenido 1 Definición 2 Función MAC ideal 3 Propiedad de seguridad de las funciones MAC 4 Tipos de funciones MAC …   Wikipedia Español

  • Message Authentication Code - MAC — A security code that is typed in by the user of a computer to access accounts or portals. This code is attached to the message or request sent by the user. Message authentication codes (MACs) attached to the message must be recognized by the… …   Investment dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»