Глава 7. Коды аутентичности сообщений
использоваться — или неправильно использоваться — значение MAC
3
. Одни
системы допускают большое количество попыток аутентификации поддель-
ных сообщений. Другие неправильно используют функцию вычисления MAC,
что оборачивается сплошными неприятностями. Мы не хотим усложнять свои
системы многочисленными перекрестными зависимостями. Структура крип-
тографических систем столь сложна, что дальнейшее ее усложнение было
бы катастрофой. Вот почему нам нужно 128-битовое значение MAC. Вообще
говоря, согласно нашему правилу проектирования 3 (см. раздел 4.5.8), сле-
довало бы использовать 256-битовое значение MAC — это бы гарантировало
обеспечение 128-битового уровня безопасности даже по отношению к ата-
кам, в основе которых лежит парадокс задачи о днях рождения. Если это
возможно, используйте 256-битовое значение MAC. К сожалению, поскольку
в большинстве систем на данный момент используются 64- или 96-битовые
значения MAC, доказать необходимость 256-битовых значений будет очень
трудно (особенно потому, что значение MAC отсылается вместе с самим со-
общением и таким образом непосредственно влияет на стоимость пересылки).
Если вы используете хорошую функцию вычисления MAC и не боитесь атак
на основе коллизий, вам будет вполне достаточно и 128-битового значения.
7.6.2
Выбор функции
Существует еще один, более важный вопрос: какую функцию UMAC вы-
брать? В исходной статье, посвященной алгоритму UMAC [8], определялось
четыре различные функции: UMAC-STD-30, UMAC-STD-60, UMAC-MMX-30
и UMAC-MMX-60. В более новом черновике RFC [59] предлагается значитель-
ное изменение структуры алгоритма и еще две функции: UMAC16 и UMAC32.
Говоря точнее, этот черновик содержит определение функции UMAC с ше-
стью параметрами, а UMAC16 и UMAC32 — лишь два рекомендуемых набора
значений этих параметров.
Казалось бы, нам остается только выбрать один из наборов параметров,
но какой именно? Параметры оказывают значительное влияние на эффек-
тивность UMAC. Одни из них работают быстрее на машинах с прямым по-
рядком байтов, а другие — с обратным. Одни параметры хорошо подходят
для Pentium MMX, а другие — для других 32-разрядных процессоров. Одни
используют команды беззнакового, а другие — знакового умножения. Этот
список можно продолжать до бесконечности. Что бы вы ни выбрали, навер-
няка найдется кто-нибудь, кто обвинит вас в неправильном использовании
особенностей оборудования, поскольку задержка в производительности мо-
жет быть весьма значительной. На каждой конкретной платформе скорость
3
Неправильное использование значения MAC встречается сплошь и рядом. Например,
протокол IKE в IPSec [40] использует функцию вычисления MAC в тех ситуациях, когда
сообщение является секретным, но ключ известен!
7.6. UMAC
127
работы UMAC может различаться в 3-5 раз, в зависимости от точного набора
значений параметров, а разные платформы предпочитают различные наборы
параметров.
Ужасающее изобилие функций UMAC — результат непомерного стремле-
ния к оптимизации. В погоне за высокими скоростями разработчики UMAC
создали версии функций на все случаи жизни, поскольку в каждой ситуации
требуется выполнение конкретных оптимизаций.
Мы не согласны с этим подходом. Он имеет преимущества в краткосроч-
ной перспективе, однако обладает существенным недостатком в аспекте дол-
говременного пользования. В отличие от HMAC или SHA-1, у алгоритма
UMAC нет единого стандарта. Разные разработчики используют разные вер-
сии UMAC. Чтобы осуществлять взаимодействие между такими системами,
понадобится реализовать сразу несколько версий UMAC. Многие библиотеки
позволяют выбирать набор параметров UMAC только во время компиляции,
что создает целый ряд проблем, если приложению нужны две или более вер-
сии UMAC. Кроме того, на протяжении времени жизни криптографической
системы — а это 20-30 лет — архитектура процессоров претерпит немало
изменений. При таких условиях микрооптимизация, основанная на текущей
архитектуре, просто не имеет будущего.
7.6.3
Платформенная гибкость
Как уже отмечалось, разные версии UMAC оптимизированы для конкрет-
ных платформ. Более того, каждая версия выдвигает достаточно строгие
требования к своей платформе. Если у вас есть процессор с быстрой ко-
мандой умножения и достаточный объем памяти, UMAC способен достичь
очень высоких скоростей. Тем не менее, на наш взгляд, он не сможет развить
нужной производительности при работе со смарт-картами или другими 8-раз-
рядными устройствами с ограниченным объемом памяти. Требования UMAC
к временному хранилищу данных очень высоки, а смарт-карты всегда имеют
ограниченный объем памяти.
Из этого следует, что UMAC подходит для современных настольных си-
стем и не подходит для процессоров с малой разрядностью
4
. Мы также счи-
таем, что эффективные аппаратные реализации UMAC обходятся слишком
дорого по сравнению с альтернативными алгоритмами наподобие HMAC. Ал-
4
Некоторые уже давно твердят о том, что процессоры с малой разрядностью безна-
дежно устарели и в течение нескольких лет будут вытеснены новыми, более мощными
процессорами. Мы с этим не согласны. Процессоры с малой разрядностью применяются
уже несколько десятилетий. Они не вымирают, а просто переходят в еще более “мелкие”
системы.. Появившиеся на свет в начале 1970-х годов 8-разрядные процессоры до сих пор
счастливо живут и здравствуют, хотя по прогнозам должны были бы исчезнуть, как ми-
нимум, 10 лет назад.
128
Достарыңызбен бөлісу: |