Глава 7
Коды аутентичности сообщений
Код аутентичности сообщения (message authentication code — MAC)
представляет собой число, которое мешает злоумышленнику подделывать со-
общения. Применение шифрования не дает злоумышленнику читать текст
сообщений, но ни в коей мере не мешает ему изменять эти сообщения. На
помощь приходит MAC. Как и функции шифрования, коды аутентичности
сообщений используют секретный ключ
K
, известный пользователям А и Б,
но неизвестный злоумышленнику Е. Пользователь А отсылает пользователю
Б не только само сообщение
m
, но и значение MAC этого сообщения, вычис-
ленное с помощью соответствующей функции. Пользователь Б проверяет,
соответствует ли значение MAC, полученное вместе с сообщением, настояще-
му значению MAC этого сообщения. Если значения не совпадают, сообщение
отбрасывается как не прошедшее аутентификацию. Теперь злоумышленник
Е не сможет изменить сообщение: не зная ключа
K
, он не сможет подсчитать
правильное значение MAC, которое следовало бы отправить вместе с изме-
ненным сообщением.
В этой главе речь идет только об аутентификации. Как комбинировать
шифрование и аутентификацию, рассматривается в главе 8, “Безопасный ка-
нал общения”.
7.1
Что такое MAC
Код аутентичности сообщения, или MAC, — это функция, которая при-
нимает на вход два аргумента (ключ
K
фиксированной длины и сообщение
m
произвольной длины) и выдает значение фиксированной длины. Функцию
вычисления MAC мы будем обозначать как MAC(
K, m
)
. Для обеспечения
аутентификации сообщения пользователь А отсылает не только сообщение
m
, но и код аутентичности этого сообщения MAC(
K, m
)
.
118
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 (в битах) при заданном объеме информации, имеющейся у зло-
умышленника.
120
Достарыңызбен бөлісу: |