139
возможно, даже безопасно, чтобы обрабатывать сообщения произвольной дли-
ны. (Здесь для простоты мы предположим, что сообщения для аутентификации
имеют
длину кратную n, и
что Vrfy отклоняет
РИСУНОК 4.1: Базовый CBC-MAC (для сообщений фиксированной длины).
любое сообщение, длина которого не кратная n. В следующем разделе мы рассмотрим
более
общий случай, при котором сообщения могут иметь произвольную длину.)
1. Дополните начало сообщения m его длиной |m| (зашифровано как n-битная стро-
ка), затем вычислите базовый CBC-MAC по результату; см. Рисунок 4.2. Безопас-
ность такого варианта
исходит из результатов, доказанных в следующем разделе.
Обратите внимание, что добавление |m| в конец сообщения, а затем вычисле-
ние базового CBC-MAC небезопасно.
2. Измените схему так, чтобы генерирование ключа подобрало два независи-
мых универсальных ключа k1 ∈ {0, 1}n and k2 ∈ {0, 1}n. Затем для аутентифи-
уации сообщения m, сначала вычислите базовый CBC-MAC m, используя k1 , и
пусть
t будет результатом; выведите тег tˆ := Fk2 (t).
Второй вариант имеет преимущество в том, что нет нужды знать длину сообще-
ние заранее (то есть в начале вычисления тега). Однако, есть и недостаток в ис-
пользовании ключей для F. Обратите внимание, что за счет двух дополнительных
применений псевдослучайной функции, можно сохранить единственный ключ k
и затем получить ключи k1 := Fk (1) и k2 := Fk (2) в начале вычислений. Несмотря
на это, в практике операция инициализации ключа для блочного шифра считает-
ся относительно дорогостоящей. Таким образом, необходимость в двух ключах,
даже если
они извлекаются динамически, является менее целесообразной.
Достарыңызбен бөлісу: