Проблема аутентификации данных и блочные шифры

       

Задача аутентификации данных.


На первый взгляд может показаться, что данная задача решается простым шифрованием.  Действительно, если массив данных зашифрован с использованием стойкого шифра, такого, например, как ГОСТ 28147–89, то для него практически всегда будет справедливо следующее:

  • в него трудно внести изменения осмысленным образом, поскольку со степенью вероятности, незначительно отличающейся от единицы, факты модификации зашифрованных массивов данных становятся очевидными после их расшифрования – эта очевидность выражается в том, что такие данные перестают быть корректными для их интерпретатора: вместо текста на русском языке появляется белиберда, архиваторы сообщают, что целостность архива нарушена и т.д.;
  • только обладающие секретным ключом шифрования пользователи системы могут изготовить зашифрованное сообщение, таким образом, если к получателю приходит сообщение, зашифрованное на его секретном ключе, он может быть уверенным в его авторстве, так как кроме него самого только законный отправитель мог изготовить это сообщение.
  • Тем не менее, использование шифрования в системах обработки данных само по себе неспособно обеспечить их аутентичности по следующим причинам:

    1.    Изменения, внесенные в зашифрованные данные, становятся очевидными после расшифрования только в случае большой избыточности исходных данных.  Эта избыточность имеет место, например, если массив информации является текстом на каком-либо человеческом языке.  Однако в общем случае это требование может не выполняться – если случайная модификация данных не делает их недопустимым для интерпретации со сколько-нибудь значительной долей вероятности, то шифрование массива не обеспечивает его подлинности.  Говоря языком криптологии, аутентичность и секретность суть различные свойства криптосистем.  Или, более просто: свойства систем обработки информации обеспечивать секретность и подлинность обрабатываемых данных в общем случае могут не совпадать.

    2.    Факт успешного (в смысле предыдущего пункта) расшифрования зашифрованных на секретном ключе данных может подтвердить их авторство только в глазах самого получателя.  Третья сторона не сможет сделать на основании этого однозначного вывода об авторстве массива информации, так как его автором может быть любой из обладателей секретного ключа, а их как минимум два – отправитель и получатель.  Поэтому в данном случае споры об авторстве сообщения не могут быть разрешены независимым арбитражем.  Это важно для тех систем, где между участниками нет взаимного доверия, что весьма характерно для банковских систем, связанных с управлением значительными ценностями.

    Таким образом, существование проблемы подтверждения подлинности и авторства массивов данных, отдельной от задачи обеспечения их секретности, не вызывает сомнения.  В последующих разделах настоящей статьи излагаются подходы к ее решению, базирующиеся на использовании классических блочных шифров.  В разделе 2 рассматриваются подходы к решению задачи подтверждения подлинности данных, а в разделе 3 – к задаче подтверждения их авторства.  В принципе, для решения указанных задач может быть использован любой традиционный блочный криптографический алгоритм.  В компьютерных кодах, прилагаемых к настоящей статье, автор использует наиболее знакомый и близкий ему шифр – криптоалгоритм ГОСТ 28147–89.



    Содержание раздела