Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

VMAC разработан для обеспечения исключительной производительности программного обеспечения на 64-разрядных архитектурах ЦП и при этом хорошо работает на 32-разрядных архитектурах. [ необходима цитата ] Измеренные скорости составляют половину цикла ЦП на байт (cpb) на 64-битных архитектурах, менее пяти cpb на настольных 32-битных процессорах и около десяти cpb на встроенных 32-битных архитектурах. [1] Тесно связанный вариант VMAC, оптимизированный для 32-разрядных архитектур, предоставляется UMAC .

Обзор [ править ]

VMAC - это MAC в стиле Вегмана и Картера. [2] [3] Быстрая «универсальная» хеш-функция используется для хеширования входного сообщения M в короткую строку. [ необходима цитата ] Затем эта короткая строка объединяется путем добавления с псевдослучайным блокнотом, в результате чего получается тег VMAC. Безопасность зависит от того, что отправитель и получатель используют случайно выбранную секретную хеш-функцию и псевдослучайную панель. Это достигается за счет использования хэш-функции H с ключом и псевдослучайной функции F. Тег генерируется путем выполнения вычисления.

 Тег = H K1 (M) + F K2 (Nonce)

где K1 и K2 - секретные случайные ключи, общие для отправителя и получателя, а Nonce - это значение, которое изменяется с каждым сгенерированным тегом. Получатель должен знать, какой одноразовый номер был использован отправителем, поэтому необходимо использовать какой-либо метод синхронизации одноразовых номеров. Это можно сделать, явно отправив одноразовый номер вместе с сообщением и тегом или согласившись на использование какого-либо другого неповторяющегося значения, такого как порядковый номер. Необязательно хранить одноразовый номер в секрете, но необходимо позаботиться о том, чтобы в течение срока действия ключа VMAC для каждого сообщения использовался другой одноразовый номер.

VMAC использует функцию, называемую VHASH (также указанную в этом документе), в качестве хеш-функции H с ключом и псевдослучайную функцию F, реализация которой по умолчанию использует блочный шифр AES. VMAC допускает длину тега любого 64-битного числа, кратного размеру блока используемого блочного шифра. При использовании AES это означает, что VMAC может создавать 64- или 128-битные теги.

Теория MAC Вегмана-Картера и анализ VMAC показывают, что если «создать экземпляр» VMAC с действительно случайными ключами и блоками, то вероятность того, что злоумышленник (даже вычислительно неограниченный) создаст правильный тег для сообщений по своему выбору, меньше чем 1/2 60 или 1/2 120, когда теги имеют длину 64 или 128 бит соответственно. Когда злоумышленник совершает N попыток подделки, вероятность правильного получения одного или нескольких тегов линейно возрастает до менее чем N / 2 60 или N / 2120.. В прикладной реализации VMAC, использующей AES для создания ключей и панелей, эти вероятности подделки увеличиваются на небольшую величину, связанную с безопасностью AES. Пока AES безопасен, этот небольшой дополнительный член не имеет значения для любой практической атаки. Более подробную информацию см. В спецификации. Авторы Вэй Дай и Тед Кровец провели анализ безопасности VMAC. [ необходима ссылка ] [4]

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

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

  1. ^ Т. Krovetz и W. Dai (2007). «VMAC: код аутентификации сообщения с использованием универсального хеширования» . CFRG Рабочая группа . IETF . Проверено 12 августа 2010 .
  2. ^ Дж. Картер; М. Вегман (1977). «Универсальные классы хеш-функций». Материалы девятого ежегодного симпозиума ACM по теории вычислений . ACM: 106–112.
  3. ^ Дж. Картер; М. Вегман (1981). «Новые хеш-функции и их использование при аутентификации и установлении равенства». Журнал компьютерных и системных наук . 22 : 265–279. DOI : 10.1016 / 0022-0000 (81) 90033-7 .
  4. ^ Т. Krovetz (2006). «Аутентификация сообщений на 64-битных архитектурах» (PDF) . Конспект лекций по информатике, Материалы 13-й международной конференции по избранным направлениям криптографии . Springer-Verlag: 327–341. ISSN 0302-9743 .  
  5. ^ http://www.fastcrypto.org/vmac/vmac.h
  6. ^ http://www.fastcrypto.org/vmac/vmac.c
  7. ^ "Crypto ++: исходный файл vmac.h" . www.cryptopp.com .
  8. ^ "Crypto ++: исходный файл vmac.cpp" . www.cryptopp.com .
  9. ^ http://www.fastcrypto.org/vmac/vmac.txt

Внешние ссылки [ править ]

  • VMAC: код аутентификации сообщений с использованием универсального хеширования - Интернет-проект
  • Домашняя страница VMAC
  • Запись Cryptolounge вики VMAC