ВМАК
VMAC — это блочного шифра на основе алгоритм кода аутентификации сообщений (MAC) с использованием универсального хеша, предложенный Тедом Кровецом и Вэй Даем в апреле 2007 года. Алгоритм был разработан для обеспечения высокой производительности, подкрепленной формальным анализом. [ нужна ссылка ]
VMAC разработан для обеспечения исключительной производительности программного обеспечения на 64-битных архитектурах ЦП, сохраняя при этом хорошую производительность на 32-битных архитектурах. [ нужна ссылка ] Измеренные скорости составляют половину цикла процессора на байт (cpb) на 64-битных архитектурах, менее пяти cpb на 32-битных процессорах для настольных ПК и около десяти cpb на встроенных 32-битных архитектурах. [1] Близкий вариант VMAC, оптимизированный для 32-битных архитектур, представлен UMAC .
Обзор [ править ]
VMAC — это MAC в стиле Вегмана и Картера. [2] [3] Быстрая «универсальная» хэш-функция используется для хеширования входного сообщения M в короткую строку. [ нужна ссылка ] Затем эта короткая строка объединяется путем добавления с псевдослучайным блоком, в результате чего получается тег VMAC. Безопасность зависит от того, что отправитель и получатель совместно используют случайно выбранную секретную хеш-функцию и псевдослучайный блокнот. Это достигается за счет использования ключевой хэш-функции H и псевдослучайной функции F. Тег генерируется путем выполнения вычислений
Tag = HK1(M) + FK2(Nonce)
где K1 и K2 — секретные случайные ключи, используемые отправителем и получателем, а Nonce — значение, которое меняется с каждым сгенерированным тегом. Получателю необходимо знать, какой одноразовый номер использовал отправитель, поэтому необходимо использовать какой-то метод синхронизации одноразовых номеров. Это можно сделать, явно отправив 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 или Н/2 120 . В прикладной реализации VMAC, использующей AES для создания ключей и блокнотов, вероятность подделки увеличивается на небольшую величину, что связано с безопасностью AES. Пока AES безопасен, этот небольшой дополнительный член не имеет значения для любой практической атаки. Более подробную информацию смотрите в спецификации. Анализ безопасности VMAC провели авторы Вэй Дай и Тед Кровец. [ нужна ссылка ] [4]
Реализации [ править ]
Ссылки [ править ]
- ^ Т. Кровец и В. Дай (2007). «VMAC: код аутентификации сообщения с использованием универсального хеширования» . Рабочая группа КФРГ . IETF . Проверено 12 августа 2010 г.
- ^ Дж. Картер; М. Вегман (1977). «Универсальные классы хэш-функций (Расширенное резюме)». Материалы девятого ежегодного симпозиума ACM по теории вычислений - STOC '77 . АКМ. стр. 106–112. дои : 10.1145/800105.803400 . S2CID 1302091 .
- ^ Дж. Картер; М. Вегман (1981). «Новые хэш-функции и их использование при аутентификации и установлении равенства» . Журнал компьютерных и системных наук . 22 (3): 265–279. дои : 10.1016/0022-0000(81)90033-7 .
- ^ Т. Кровец (2007). «Аутентификация сообщений в 64-битных архитектурах» (PDF) . Избранные области криптографии . Конспекты лекций по информатике. Том. 4356. Шпрингер-Верлаг. стр. 327–341. дои : 10.1007/978-3-540-74462-7_23 . ISBN 978-3-540-74461-0 . ISSN 0302-9743 .
- ^ «vmac.h (исходный код)» . Проверено 13 ноября 2022 г.
- ^ «vmac.c (исходный код)» . Проверено 13 ноября 2022 г.
- ^ «Crypto++: исходный файл vmac.h» . www.cryptopp.com .
- ^ «Crypto++: исходный файл vmac.cpp» . www.cryptopp.com .
- ^ Кровец, Тед (22 апреля 2007 г.). «Неоптимизированная, простая эталонная реализация VMAC» . Проверено 13 ноября 2022 г.
Внешние ссылки [ править ]
- VMAC: код аутентификации сообщения с использованием универсального хеширования — Интернет-проект
- Домашняя страница VMAC
- Запись в вики Cryptolounge VMAC. Архивировано 2 апреля 2010 г. на Wayback Machine.