Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Защ_инф_5гл.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
398.34 Кб
Скачать

5.3.Электронная цифровая подпись

Основываясь на идее использования односторонней функции с потайным ходом, Диффи и Хеллман предложили структуру криптосистемы с открытыми ключами для сети с многими абонентами. Каждый абонент, например i-ый, случайным образом выбирает некоторое значение параметра и держит его в секрете. Далее он формирует открытый ключ по известному всем пользователям алгоритму и предоставляет его для опубликования в открытом справочнике. Любой другой абонент, например, j-ый, может послать i-тому абоненту секретное сообщение С. Для этого он использует открытый ключ шифрования и вычисляет криптограмму , которую посылает i-му абоненту. Используя секретный ключ , абонент i вычисляет исходный открытый текст .

Авторы этой обобщенной схемы открытого шифрования показали возможность ее использования для получения цифровых подписей. В общем случае цифровая подпись представляет собой некоторое число со специфической структурой, которое допускает проверку с помощью открытого ключа того факта, что оно было выработано для некоторого сообщения с использованием секретного ключа. Для реализации цифровой подписи необходимо выбрать такую одностороннюю функцию с потайным ходом (с секретом) fz , для которой при всех значениях параметра z область определения функции fz совпадает с областью ее значений. При этом условии для любого сообщения, которое может быть представлено в виде числа из области определения функции fz (x), абонент i может сформировать с помощью секретного ключа число S == fi (M). Если сообщение слишком велико, то его можно разбить на части необходимого размера и каждую из них подписать независимо.

Каждый пользователь криптосистемы может по значению S и открытому ключу восстановить сообщение М. Если М представляет собой осмысленное сообщение или может быть сопоставлено с таковым по некоторому заранее оговоренному правилу, то значение S может рассматриваться как цифровая подпись абонента i под сообщением М. Действительно, только владелец секретного ключа может выработать секретный текст S, который с помощью соответствующего открытого ключа дешифруется в осмысленное сообщение М.

Абонент i может послать абоненту j также секретное сообщение с подписью. Для этого он зашифровывает М с помощью открытого ключа и известного алгоритма ассиметричного шифрования и получает зашифрованный текст , который может расшифровать только владелец секретного ключа , т.е. .

Использование протоколов на основе симметричных криптографических методов предполагает, что две стороны доверяют друг другу. Криптосистемы с открытым ключом (асимметричные криптосистемы) позволяют реализовать протоколы взаимодействия сторон, которые не доверяют друг другу. Системы электронной цифровой подписи являются одним из важнейших примеров такого типа.

5.4. Цифровая подпись Эль-Гамаля

Рассмотрим систему цифровой подписи, носящую имя ее изобретателя Эль-Гамаля и основанную на схеме формирования открытых и секретных ключей, которая используется в методе Диффи-Хеллмана. Пусть мы имеем большое простое число р, такое, что разложение числа р - 1 содержит по крайней мере один большой простой множитель, и первообразный корень по модулю р.

Механизм подписывания состоит в следующем. Некоторый абонент А выбирает секретный ключ хA , по которому формирует открытый ключ . Подписью абонента А под документом М (подписываемое сообщение должно иметь длину меньше простого модуля р, т.е. М < р) служит пара чисел (r, s), где 0  r < р - 1 и 0  s < р - 1, которое удовлетворяет уравнению

Данное уравнение служит для проверки того факта, что документ подписан абонентом А. Значение уA == i является открытым ключом абонента А и доступно для всех пользователей, что позволяет каждому возможность убедиться в том, что данное сообщение действительно подписано абонентом А, iA.

Данная система электронной цифровой подписи основана на том, что только действительный владелец секретного ключа а может выработать пару чисел (r,s), удовлетворяющую уравнению проверки подписи. Используя значение а, абонент А вырабатывает подпись по следующему алгоритму:

  1. Сгенерировать случайное число k, удовлетворяющее условию: 0<k<р-1 и НОД(k, р- 1) = 1.

  2. Вычислить: r ==k (mod p),

  3. Вычислить s из уравнения

4. Сформировать подпись как .

Из теории чисел известно, что последнее уравнение имеет решение для s, если НОД(k, р - 1) ==1. Это уравнение получается путем подстановки в уравнение проверки подписи значения r = k mod р:

На приеме подпись проверяется путем проверки тождества по принятым М, и s, т.е.

Из двух последних формул видно, что владелец секретного ключа может подписать документ, а его подпись может быть проверена по его открытому ключу. Нахождение пары чисел (r,s) без знания секретного ключа вычислительно сложно. Различных подписей, соответствующих данному документу может быть чрезвычайно много (заметим, что k может иметь разные значения), но выработать правильную подпись может только владелец секретного ключа. Множество возможных подписей отличаются значением r, но для данного r найти соответствующее значение s без знания секретного ключа практически невозможно. Для вычисления секретного ключа по открытому необходимо решить задачу дискретного логарифмирования, которая является вычислительно сложной.

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

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