Задача аутентификации данных.
На первый взгляд может показаться, что данная задача решается простым шифрованием. Действительно, если массив данных зашифрован с использованием стойкого шифра, такого, например, как ГОСТ 28147–89, то для него практически всегда будет справедливо следующее:
- в него трудно внести изменения осмысленным образом, поскольку со степенью вероятности, незначительно отличающейся от единицы, факты модификации зашифрованных массивов данных становятся очевидными после их расшифрования – эта очевидность выражается в том, что такие данные перестают быть корректными для их интерпретатора: вместо текста на русском языке появляется белиберда, архиваторы сообщают, что целостность архива нарушена и т.д.;
- только обладающие секретным ключом шифрования пользователи системы могут изготовить зашифрованное сообщение, таким образом, если к получателю приходит сообщение, зашифрованное на его секретном ключе, он может быть уверенным в его авторстве, так как кроме него самого только законный отправитель мог изготовить это сообщение.
Тем не менее, использование шифрования в системах обработки данных само по себе неспособно обеспечить их аутентичности по следующим причинам:
1. Изменения, внесенные в зашифрованные данные, становятся очевидными после расшифрования только в случае большой избыточности исходных данных. Эта избыточность имеет место, например, если массив информации является текстом на каком-либо человеческом языке. Однако в общем случае это требование может не выполняться – если случайная модификация данных не делает их недопустимым для интерпретации со сколько-нибудь значительной долей вероятности, то шифрование массива не обеспечивает его подлинности. Говоря языком криптологии, аутентичность и секретность суть различные свойства криптосистем. Или, более просто: свойства систем обработки информации обеспечивать секретность и подлинность обрабатываемых данных в общем случае могут не совпадать.
2. Факт успешного (в смысле предыдущего пункта) расшифрования зашифрованных на секретном ключе данных может подтвердить их авторство только в глазах самого получателя. Третья сторона не сможет сделать на основании этого однозначного вывода об авторстве массива информации, так как его автором может быть любой из обладателей секретного ключа, а их как минимум два – отправитель и получатель. Поэтому в данном случае споры об авторстве сообщения не могут быть разрешены независимым арбитражем. Это важно для тех систем, где между участниками нет взаимного доверия, что весьма характерно для банковских систем, связанных с управлением значительными ценностями.
Таким образом, существование проблемы подтверждения подлинности и авторства массивов данных, отдельной от задачи обеспечения их секретности, не вызывает сомнения. В последующих разделах настоящей статьи излагаются подходы к ее решению, базирующиеся на использовании классических блочных шифров. В разделе 2 рассматриваются подходы к решению задачи подтверждения подлинности данных, а в разделе 3 – к задаче подтверждения их авторства. В принципе, для решения указанных задач может быть использован любой традиционный блочный криптографический алгоритм. В компьютерных кодах, прилагаемых к настоящей статье, автор использует наиболее знакомый и близкий ему шифр – криптоалгоритм ГОСТ 28147–89.