Универсальный MAC (UMAC): криптографический код аутентификации сообщений, обеспечивающий целостность и подлинность данных. Параллельные вычисления для скорости!
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Тип кода аутентификации сообщения – криптографический код аутентификации.
Type of message authentication code
a cryptographic authentication code
В криптографии код аутентификации сообщения, основанный на универсальном хешировании, или 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.
In cryptography, a message authentication code based on universal hashing, or UMAC, is a type of message authentication code (MAC) calculated choosing a hash function from a class of hash functions according to some secret (random) process and applying it to the message. The resulting digest or fingerprint is then encrypted to hide the identity of the hash function used. As with any MAC, it may be used to simultaneously verify both the data integrity and the authenticity of a message. In contrast to traditional MACs, which are serializable, UMAC can be executed in parallel. Thus as machines continue to offer more parallel processing capabilities, the speed of implementing UMAC will increase. A specific type of UMAC, also commonly referred to just UMAC, is specified in RFC 4418, it has provable cryptographic strength and is usually a lot less computationally intensive than other MACs. UMAC's design is optimized for 32 bit architectures with SIMD support, with a performance of 1 CPU cycle per byte (cpb) with SIMD and 2 cpb without SIMD. A closely related variant of UMAC that is optimized for 64 bit architectures is given by VMAC, which has been submitted to the IETF as a draft but never gathered enough attention for becoming a standardized RFC.
Универсальная хешировка
Предположим, что хеш-функция выбрана из класса хеш-функций H, который отображает сообщения в D – множество возможных дайджестов сообщений. Этот класс называется универсальным, если для любой пары различных сообщений существует не более чем |H|/|D| функций, отображающих их в один и тот же элемент D.
Let's say the hash function is chosen from a class of hash functions H, which maps messages into D, the set of possible message digests. This class is called universal if, for any distinct pair of messages, there are at most |H|/|D| functions that map them to the same member of D.
Это означает, что если злоумышленник хочет заменить одно сообщение другим и, с его точки зрения, хеш-функция была выбрана совершенно случайно, вероятность того, что UMAC не обнаружит его модификацию, не превышает 1/|D|. Однако это определение недостаточно строгое – если возможные сообщения – 0 и 1, D = {0, 1}, а H состоит из операции тождества и отрицания, то H является универсальным. Но даже если дайджест зашифрован модульным сложением, злоумышленник может изменить сообщение и дайджест одновременно, и получатель не заметит разницы.
This means that if an attacker wants to replace one message with another and, from his point of view, the hash function was chosen completely randomly, the probability that the UMAC will not detect his modification is at most 1/|D|. But this definition is not strong enough — if the possible messages are 0 and 1, D={0,1} and H consists of the identity operation and not, H is universal. But even if the digest is encrypted by modular addition, the attacker can change the message and the digest at the same time and the receiver wouldn't know the difference.