цифровые подписи.

Цифровые подписи можно использовать для распространения сообщения в виде открытого текста , когда получатели должны идентифицировать и проверить отправителя сообщения. Подписывание сообщения не приводит к его изменению; он просто создает строку цифровой подписи, вы можете объединить с сообщением или передать отдельно. Цифровая подпись — это короткий фрагмент данных, зашифрованный с помощью закрытого ключа отправителя. Расшифровка данных подписи с помощью открытого ключа отправителя подтверждает, что данные были зашифрованы отправителем или кем-то, кто имел доступ к закрытому ключу отправителя.

Цифровые подписи создаются с помощью алгоритмов подписи с открытым ключом . Закрытый ключ создает подпись, и для проверки подписи необходимо использовать соответствующий открытый ключ. Этот процесс показан на следующем рисунке.

создание цифровой подписи

Создание цифровой подписи на основе сообщения состоит из двух этапов. Первый шаг включает создание хэш-значения (также известного как дайджест сообщения) из сообщения. Затем это хэш-значение подписывается с помощью закрытого ключа подписывателя. Ниже приведена иллюстрация действий по созданию цифровой подписи.

создание цифровой подписи из сообщения

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

проверка цифровой подписи

Хэш-значение состоит из небольшого объема двоичных данных, обычно около 160 бит. Для этого используется алгоритм хэширования. Некоторые из этих алгоритмов перечислены далее в этом разделе.

Все хэш-значения имеют следующие свойства независимо от используемого алгоритма:

  • Длина хэш-значения определяется типом используемого алгоритма, и его длина не зависит от размера сообщения. Наиболее распространенные длины хэш-значений — 128 или 160 бит.
  • Каждая пара не идентичных сообщений преобразуется в совершенно другое хэш-значение, даже если два сообщения отличаются только на один бит. Используя современную технологию, невозможно обнаружить пару сообщений, которые преобразуют в одно и то же хэш-значение, не нарушая алгоритм хэширования.
  • Каждый раз, когда определенное сообщение хэшируется с помощью одного и того же алгоритма, создается одно и то же хэш-значение.
  • Все алгоритмы хэширования являются односторонними. Если задано хэш-значение, восстановить исходное сообщение невозможно. На самом деле, ни одно из свойств исходного сообщения не может быть определено только с учетом хэш-значения.