Интернет магазин китайских планшетных компьютеров



Компьютеры - UMAC - Генерация UMAC-тегов

16 июня 2011


Оглавление:
1. UMAC
2. Функция создания ключа и псевдослучайной последовательности
3. Генерация UMAC-тегов
4. Вопросы безопасности



Генерация UMAC-тегов происходит с помощью UHASH функции при использовании Nonce значении и полученной до этого строчки. Их длина может быть 4, 8, 12 или 16 байт.

Вход:

  • K — строка длиной KEYLEN байт
  • M — строка длиной меньше 2^67 бит
  • Nonce — случайное число от 1 до BLOCKLEN байт
  • TagLen — целое 4, 8, 12 или 16

Выход:

  • Тег, последовательность байтов длиной taglen

Алгоритм вычисление тегов:

HashedMassage = UHASH
Pad = PDF
Tag = Pad xor HashedMassage

UMAC-32 UMAC-64 UMAC-96 UMAC-128

Данные обозначения содержат в своем названии определенное значение длины тега:

  • UMAC-32 = UMAC
  • UMAC-64 = UMAC
  • UMAC-96 = UMAC
  • UMAC-128 = UMAC

Универсальная функция хэширования

UHASH — универсальная функция хеширования, сердцевина алгоритма UMAC. UHASH — функция работает в три этапа. Сначала к входному сообщению применяется L1-HASH, потом к этому результату применяется L2-HASH и, наконец, к результату применяется L3-HASH . Если при этом длина входного сообщения не более 1024 бит, то L2-HASH не используется. Так как функция L3-Hash возвращает только слово длины 4 байта, то если требуется получить хэш длины больше 4 байт, то функция L3-Hash не используется.

Универсальная функция

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

L1-Hash — первый этап

L1-Hash разбивает сообщения на куски из 1024 байт и к каждому куску применяет алгоритм хеширования называемый NH. Выходной результат алгоритма NH в 128 раз меньше входного.

L2-Hash — второй этап

L2-Hash работает с выходом L1-Hash, использует полиномиальный алгоритм POLY. Второй этап хеширования используется, только если длина входного сообщения больше 16 мегабайт. Использование алгоритма POLY требуется для того, чтобы избежать временную атаку. На выходе из алгоритма POLY получается 16 байтное число.

L3-HASH — третий этап

Этот этап требуется для того чтобы из выходных 16 байтов алгоритма L2-Hash получить 4-байтное значение.



Просмотров: 3212


<<< Two-Track-MAC
VEST >>>