Наверное, наиболее ярким проявлением всех преимуществ шифрования с открытым ключом является технология
цифровых или
электронных подписей. Она основана на математическом преобразовании, комбинирующем данные с секретным ключом таким образом, что:
- Только владелец секретного ключа может создать цифровую подпись.
- Любой пользователь, обладающий соответствующим открытым ключом, может проверить истинность цифровой подписи.
- Любая модификация подписанных данных (даже изменение одного бита) делает неверной цифровую подпись.
Цифровые подписи гарантируют целостность (integrity) и подлинность (nonrepudiation) данных. Когда данные распространяются открытым текстом (без шифрования), получатели должны иметь возможность проверки, что данные в сообщении не были изменены.
Добавление подписи не изменяет содержания данных: в этом случае генерируется цифровая подпись, которая может быть связана с данными или передаваться отдельно.
Для выполнения этой операции клиентская программа создает дайджест, снимок данных, используя метод хэширования (например, MDS). Программа использует ваш личный ключ для шифрования дайджеста и подписывает данные или сообщение с помощью вашего сертификата, добавляя ваш открытый ключ. Соответствующая программа адресата сообщения использует открытый ключ для расшифровки дайджеста, затем использует тот же алгоритм хэширования для создания другого дайджеста данных. Данная программа затем сравнивает два дайджеста сообщений. Если они идентичны, то подтверждаются целостность и подлинность данных сообщения.