7.6. UMAC
125
разрабатывали свой алгоритм, большинство функций хэширования выдава-
ли 128-битовые результаты. В то время автономная атака на основе коллизий
требовала осуществить лишь
2
64
шагов — то, от чего определенно следовало
защититься. Сейчас результаты
функций хэширования имеют б´ольшие раз-
меры, и подобные атаки для них несущественны.
Так какой же из двух алгоритмов следует выбрать? Мы рекомендуем
HMAC. Затрат на его реализацию требуется ненамного больше, чем на
SHA
d
−
256(
K
k
m
)
, зато HMAC применяется уже довольно долго и удосто-
ился более пристального внимания криптоаналитиков. Мы всегда пытаемся
быть консервативными, а HMAC, безусловно, более консервативный выбор.
7.6
UMAC
Семейство функций UMAC — хороший пример того, как использовать
неопределенность в отношении
K
для получения функции вычисления MAC,
намного более быстрой, чем
функции хэширования
2
универсальной функции
хэширования (universal hash function)
. Это совсем не те функции хэширова-
ния, о которых мы говорим в этой книге. Не путайте их.
[8, 59]. Скорость
работы алгоритма UMAC может на целый порядок превышать скорость ра-
боты HMAC. Кроме того, для UMAC существуют доказательства его без-
опасности.
К сожалению,
функции UMAC имеют несколько недостатков, которые не
дают им право называться идеальными функциями вычисления MAC.
7.6.1
Размер значения
Авторы алгоритма UMAC предлагают использовать 64-битовый резуль-
тат, которого, на их взгляд, должно быть достаточно для большинства об-
ластей применения. Это стандартная практика; и еще несколько лет назад
мы бы порекомендовали то же самое. Причиной, по которой значение MAC
может быть столь небольшим, состоит в том, что осуществить атаку путем
полного перебора значений MAC в автономном режиме невозможно. Если
злоумышленник попытается подобрать значение MAC, ему нужно вступить
во взаимодействие с системой, чтобы проверить, правильно ли подобранное
значение. Поскольку хорошая система не позволит злоумышленнику аутен-
тифицировать так много сообщений, для обеспечения безопасности может
хватить даже значения MAC небольшой длины.
В последние годы, однако, мы изменили свою точку зрения и теперь счи-
таем, что длины в 64 бит недостаточно. Безопасность MAC не должна зави-
сеть от остальных частей системы. Как разработчики, мы не знаем, где будет
2
В документации UMAC слово “хэширование” применяется для определения