Схема создания и проверки ЭЦП на основе алгоритма RSA
Функция вычисления подписи на основе документа и секретного ключа пользователя
вычисляет собственно подпись. В зависимости от алгоритма функция вычисления
подписи может быть детерминированной или вероятностной. Детерминированные функции
всегда вычисляют одинаковую подпись по одинаковым входным данным. Вероятностные
функции вносят в подпись элемент случайности, что усиливает криптостойкость
алгоритмов ЭЦП. Однако, для вероятностных схем необходим надёжный источник
случайности (либо аппаратный генератор шума, либо криптографически надёжный
генератор псевдослучайных бит), что усложняет реализацию.
В настоящее время детерминированные схемы практически не используются.
Даже в изначально детерминированные алгоритмы сейчас внесены модификации, превращающие
их в вероятностные (так, в алгоритм подписи RSA вторая версия стандарта PKCS#1
добавила предварительное преобразование данных (OAEP), включающее в себя, среди
прочего, зашумление).
Функция проверки подписи проверяет, соответствует ли данная подпись данному документу
и открытому ключу пользователя. Открытый ключ пользователя доступен всем, так
что любой может проверить подпись под данным документом.
Поскольку подписываемые документы — переменной (и достаточно большой) длины, в
схемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для
вычисления хэша используются криптографические хэш-функции, что гарантирует
выявление изменений документа при проверке подписи. Хэш-функции не являются
частью алгоритма ЭЦП, поэтому в схеме может быть использована любая надёжная хэш-функция.
Алгоритмы ЭЦП делятся на два больших класса: обычные цифровые подписи и
цифровые подписи с восстановлением документа. Обычные цифровые подписи
необходимо пристыковывать к подписываемому документу. К этому классу относятся,
например, алгоритмы, основанные на эллиптических кривых (ECDSA, ГОСТ Р 34.10-2001,
ДСТУ 4145-2002). Цифровые подписи с восстановлением документа содержат в себе
подписываемый документ: в процессе проверки подписи автоматически вычисляется
и тело документа. К этому классу относится один из самых популярных алгоритмов — RSA.
Следует различать электронную цифровую подпись и код аутентичности сообщения,
несмотря на схожесть решаемых задач (обеспечение целостности документа и н
еотказуемости авторства). Алгоритмы ЭЦП относятся к классу асимметричных
алгоритмов, в то время как коды аутентичности вычисляются по симметричным схемам.
Защищённость
Цифровая подпись обеспечивает:
Вероятностная схема подписи Рабина
Управление ключами
Важной проблемой всей криптографии с открытым ключом, в том числе и систем ЭЦП,
является управление открытыми ключами. Необходимо обеспечить доступ любого
пользователя к подлинному открытому ключу любого другого пользователя, защитить
эти ключи от подмены злоумышленником, а также организовать отзыв ключа в случае
его компрометации.
Задача защиты ключей от подмены решается с помощью сертификатов. Сертификат
позволяет удостоверить заключённые в нём данные о владельце и его открытый
ключ подписью какого-либо доверенного лица. В централизованных системах
сертификатов (например PKI) используются центры сертификации, поддерживаемые
доверенными организациями. В децентрализованных системах (например PGP) путём
перекрёстного подписывания сертификатов знакомых и доверенных людей каждым
пользователем строится сеть доверия.
Управлением ключами занимаются центры распространения сертификатов. Обратившись
к такому центру пользователь может получить сертификат какого-либо пользователя,
а также проверить, не отозван ли ещё тот или иной открытый ключ.
Flash пример
Дополнительные понятия
Сертификат