Электронная цифровая подпись представляет собой небольшое количество информации, передаваемой вместе с подписываемым электронным сообщением.
Алгоритм использования ЭЦП включает:
• процедуру постановки подписи;
• процедуру проверки подписи.
В процедуре подписания используется секретный ключ отправителя сообщения, в процедуре проверки — открытый ключ отправителя.
Подписание электронного сообщения ЭЦП. Подписание электронного сообщения ЭЦП состоит в вычислении при помощи программы»подпись» некоторого числа m = h(M) и последующего шифрования числа m секретным ключом с использованием алгоритма шифрования.
Число m получается в результате обработки исходного сообщения хэш-функцией. Хэш-функция преобразует исходный текст произвольной длины (от пустого сообщения до файла в несколько мегабайт) в стандартное сообщение определенной длины. В отечественном алгоритме ЭЦП ГОСТ Р 34.10—94 этот размер определен равным 32 байтам.
Процедуру подписания можно описать математической формулой
|
|
S = f (m, Ks) = f (h(M), Ks),
где M — текст исходного сообщения, Ks — секретный ключ, h(M) — функция хэширования, f — алгоритм шифрования, S — цифровая подпись.
Хэш-функция должна удовлетворять определенным требованиям. Необходимо, чтобы результат обработки исходного текста хэш-функцией однозначно соответствовал исходному сообщению и изменялся при любой модификации последнего. Результат обработки исходного текста хэш-функцией должен вычисляться таким образом, чтобы для любого сообщения М было бы невозможно подобрать такое сообщение М', для которого h(M) = h(M'). К наиболее известным функциям хэширования относятся:
• отечественный стандарт ГОСТ Р 34.11—94. Вычисляет хэш-значение размером 32 байта;
• MDx (Message Digest) — семейство алгоритмов хэширования, которые наиболее распространены за рубежом. Например, алгоритм MD5 применяется в последних версиях Microsoft Windows для преобразования пароля пользователя в 16-байтное число;
• SHA-1 (Secure Hash Algorithm) — алгоритм вычисления 20-байтного хэш-значения входных данных. Он широко распространен в сетевых протоколах защиты информации.
После шифрования числа m секретным ключом с использованием одного из алгоритмов шифрования получаем электронную цифровую подпись сообщения М. Она передается вместе с самим сообщением.
В качестве алгоритмов шифрования используются следующие алгоритмы:
• RSA;
• DSA (Digital Signature Algorithm), который предусматривает применение в качестве хэш-функции алгоритма SHA;
• отечественные стандарты хэширования ГОСТ Р 34.10—94 и ГОСТ Р 34.11—94 [100, 101], который шифрует исходные данные, используя другой отечественный криптостандарт ГОСТ 28147-89;
|
|
• новый стандарт ГОСТ Р 34.10—2001;
• алгоритм фирмы ЛАНКрипто.
Процедура проверки. Получатель сообщения, подписанного ЭЦП, на основании принятого сообщения М вычисляет хэш-функцию h(M), затем при помощи открытого ключа отправителя расшифровывает ЭЦП и получает отправленное значение m = h(M).
Из сопоставления принятого значения m и вычисленного делается заключение о подлинности электронного сообщения.
Метод ЭЦП и методы асимметричных алгоритмов шифрования различаются принципиально. При ассиметричном шифровании для шифрования сообщения используется открытый ключ получателя, а при расшифровке шифротекста получатель использует свой закрытый (секретный) ключ. В алгоритме ЭЦП для подписания хеш-функции требуется секретный ключ автора сообщения, а для проверки ЭЦП — открытый ключ автора сообщения.