цифровые подписи.
Цифровые подписи можно использовать для распространения сообщения в виде открытого текста , когда получатели должны идентифицировать и проверить отправителя сообщения. Подписывание сообщения не приводит к его изменению; он просто создает строку цифровой подписи, вы можете объединить с сообщением или передать отдельно. Цифровая подпись — это короткий фрагмент данных, зашифрованный с помощью закрытого ключа отправителя. Расшифровка данных подписи с помощью открытого ключа отправителя подтверждает, что данные были зашифрованы отправителем или кем-то, кто имел доступ к закрытому ключу отправителя.
Цифровые подписи создаются с помощью алгоритмов подписи с открытым ключом . Закрытый ключ создает подпись, и для проверки подписи необходимо использовать соответствующий открытый ключ. Этот процесс показан на следующем рисунке.
Создание цифровой подписи на основе сообщения состоит из двух этапов. Первый шаг включает создание хэш-значения (также известного как дайджест сообщения) из сообщения. Затем это хэш-значение подписывается с помощью закрытого ключа подписывателя. Ниже приведена иллюстрация действий по созданию цифровой подписи.
Для проверки подписи требуется как сообщение, так и подпись. Во-первых, хэш-значение должно быть создано из сообщения так же, как и подпись. Затем это хэш-значение проверяется на соответствие сигнатуре с помощью открытого ключа подписывателя. Если хэш-значение и подпись совпадают, вы можете быть уверены, что сообщение действительно является тем, которое подписывал подписыватель, и что оно не было изменено. На следующей схеме показан процесс проверки цифровой подписи.
Хэш-значение состоит из небольшого объема двоичных данных, обычно около 160 бит. Для этого используется алгоритм хэширования. Некоторые из этих алгоритмов перечислены далее в этом разделе.
Все хэш-значения имеют следующие свойства независимо от используемого алгоритма:
- Длина хэш-значения определяется типом используемого алгоритма, и его длина не зависит от размера сообщения. Наиболее распространенные длины хэш-значений — 128 или 160 бит.
- Каждая пара не идентичных сообщений преобразуется в совершенно другое хэш-значение, даже если два сообщения отличаются только на один бит. Используя современную технологию, невозможно обнаружить пару сообщений, которые преобразуют в одно и то же хэш-значение, не нарушая алгоритм хэширования.
- Каждый раз, когда определенное сообщение хэшируется с помощью одного и того же алгоритма, создается одно и то же хэш-значение.
- Все алгоритмы хэширования являются односторонними. Если задано хэш-значение, восстановить исходное сообщение невозможно. На самом деле, ни одно из свойств исходного сообщения не может быть определено только с учетом хэш-значения.