Введение

Тип кода аутентификации сообщения – криптографический код аутентификации.

В криптографии код аутентификации сообщения, основанный на универсальном хешировании, или UMAC, является типом кода аутентификации сообщения (MAC), вычисляемым путем выбора хэш-функции из класса хэш-функций в соответствии с некоторым секретным (случайным) процессом и применения ее к сообщению. Полученный дайджест или отпечаток затем шифруется для сокрытия используемой хэш-функции. Как и любой MAC, он может использоваться для одновременной проверки целостности данных и подлинности сообщения. В отличие от традиционных MAC, которые являются последовательными, UMAC может выполняться параллельно. Таким образом, по мере развития параллельных вычислительных возможностей машин, скорость реализации UMAC будет возрастать. Конкретный тип UMAC, также часто называемый просто UMAC, специфицирован в RFC 4418, он обладает доказанной криптографической стойкостью и обычно значительно менее требователен к вычислительным ресурсам, чем другие MAC. Конструкция UMAC оптимизирована для 32-битных архитектур с поддержкой SIMD, обеспечивая производительность в 1 цикл процессора на байт (cpb) с SIMD и 2 cpb без SIMD. Близкий вариант UMAC, оптимизированный для 64-битных архитектур, представлен VMAC, который был предложен в IETF в качестве проекта, но не получил достаточного внимания для стандартизации в RFC.

Универсальная хешировка

Предположим, что хеш-функция выбрана из класса хеш-функций H, который отображает сообщения в D – множество возможных дайджестов сообщений. Этот класс называется универсальным, если для любой пары различных сообщений существует не более чем |H|/|D| функций, отображающих их в один и тот же элемент D.

Это означает, что если злоумышленник хочет заменить одно сообщение другим и, с его точки зрения, хеш-функция была выбрана совершенно случайно, вероятность того, что UMAC не обнаружит его модификацию, не превышает 1/|D|. Однако это определение недостаточно строгое – если возможные сообщения – 0 и 1, D = {0, 1}, а H состоит из операции тождества и отрицания, то H является универсальным. Но даже если дайджест зашифрован модульным сложением, злоумышленник может изменить сообщение и дайджест одновременно, и получатель не заметит разницы.