7.2. Идеальная функция вычисления MAC
119
Вначале обсудим особенности
функции вычисления MAC. Будьте осто-
рожны: корректное использование функции вычисления MAC — процедура
намного более сложная, чем простое применение к сообщению. Мы еще вер-
немся к этой
проблеме в разделе 7.8.
7.2
Идеальная функция вычисления MAC
Вначале необходимо определить идеальную
функцию вычисления MAC.
Затем мы определим безопасную функцию вычисления MAC как такую, ко-
торую невозможно отличить от идеальной. Думаем, никого не удивит тот
факт, что идеальная
функция вычисления MAC является случайным отоб-
ражением. Пусть
n
— это длина значения MAC в битах.
Определение 8
Идеальная функция вычисления MAC — это случайное
отображение всех возможных входных значений на множество
n
-битовых
выходных значений.
Идеальная
функция вычисления MAC во многом схожа с идеальной функ-
цией хэширования. И та и другая являются случайными отображениями. Ос-
новное различие между ними заключается в более “мягком” определении без-
опасности функции вычисления MAC, что делает их более эффективными,
чем
функции хэширования.
7.3
Безопасность MAC
Как уже отмечалось, функция вычисления MAC имеет два входных ар-
гумента — ключ
K
и сообщение
m
. Ключ
K
неизвестен злоумышленнику
или, точнее, известен не полностью. В оставшейся части системы может быть
слабое место, которое обеспечит злоумышленника частичной информацией
о ключе
K
. Пусть
k
— это неопределенность, которая имеется у злоумышлен-
ника относительно значения
K
. Под словом “неопределенность” мы понимаем
количество битов значения
K
, которые неизвестны злоумышленнику. В бо-
лее общем случае, если неопределенность равна
k
, то
K
может иметь около
2
k
возможных значений (разумеется, с точки зрения злоумышленника)
1
.
Определение 9
Пусть
n
— длина значения MAC, а
k
— неопределенность
в битах, которой обладает злоумышленник относительно ключа
K
. Атака
на функцию вычисления MAC — это нетривиальный метод обнаружения
1
Для формализации неопределенности можно было бы воспользоваться понятием эн-
тропии, но это отвлекло бы нас от текущей темы обсуждения. Для самых дотошных:
k
—
это энтропия значения K (в битах) при заданном объеме информации, имеющейся у зло-
умышленника.