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