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

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

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

  • Ak алгоритм генерации секретного и открытого ключей для подписи кода программы, а также проверки подписи, s и p соответственно;
  • As алгоритм генерации (проставления) подписи с использованием секретного ключа s;
  • Ap алгоритм проверки (верификации) подписи с использованием открытого ключа p.

Алгоритмы должны быть разработаны так, чтобы выполнялось основное принципиальное свойство, свойство невозможности получения нарушителем (противником) алгоритма As из алгоритма Ap.

Таким образом, если Ak алгоритм генерации ключей, тогда определим значения (s, p)=Ak(α,β) как указанные выше сгенерированные ключи, где α некоторый параметр безопасности (как правило, длина ключей), а β параметр, характеризующий случайный характер работы алгоритма Ak при каждом его вызове.

Ключ s хранится в секрете, а открытый ключ p делается общедоступным. Это делается, как правило, путем помещения открытых ключей пользователей в открытый сертифицированный справочник. Сертификация открытых ключей справочника выполняется некоторым дополнительным надежным элементом, которому все пользователи системы доверяют обработку этих ключей. Обычно этот элемент называют Центром обеспечения безопасности или Центром доверия.

Непосредственно процесс подписи осуществляется посредством алгоритма As. В этом случае значение c=As(m) есть подпись кода программы m, полученная при помощи алгоритма As и ключа s.

Процесс верификации выполняется следующим образом. Пусть m и c код программы и подпись для этого кода соответственно, Ap алгоритм верификации. Тогда, выбрав из справочника общедоступный открытый ключ p, можно выполнить алгоритм верификации: b=Ap(m, c), где предикат b{true, false}. Если b=true, то код m действительно соответствует подписи c, полученной при помощи секретного ключа s, который, в свою очередь, соответствует открытому ключу p, то есть m=m, c=c и наоборот если b=false, то код программы ложен и (или) код подписан ложным ключом.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок