Шифрование передаваемых через Интернет данных позволяет защитить их от посторонних лиц. Однако для полной безопасности должна быть уверенность в том, что второй участник транзакции является тем лицом, за которое он себя выдает. В бизнесе наиболее важным идентификатором личности заказчика является его подпись. В электронной коммерции применяется электронный эквивалент традиционной подписи — цифровая подпись . С ее помощью можно доказать не только то, что транзакция была инициирована определенным источником, но и то, что информация не была испорчена во время передачи.
Как и в шифровании, технология электронной подписи использует либо секретный ключ (в этом случае оба участника сделки применяют один и тот же ключ), либо открытый ключ (при этом требуется пара ключей — открытый и личный). И в данном случае более просты в использовании и более популярны методы с открытым ключом (такие, как RSA)
Хэш-функции являются одним из важных элементов криптосистем на основе ключей и используются для обнаружения факта модификации сообщения, то есть для электронной подписи. Их относительно легко вычислить, но почти невозможно расшифровать. Хэш-функция имеет исходные данные переменной длины и возвращает строку (иногда называемую дайджестом сообщения — MD) фиксированного размера, обычно 128 бит.
Существует несколько защищенных хэш-функций: Message Digest 5 (MD-5), Secure Hash Algorithm (SHA) и др. Они гарантируют, что разные документы будут иметь разные электронные подписи, и что даже самые незначительные изменения документа вызовут изменение его дайджеста.
Рассмотрим, как работает технология цифровой подписи, использующая алгоритм RSA. Предположим, вы хотите послать сообщение. В этом случае порядок работы следующий: 1. При помощи хеш-функции вы получаете дайджест — уникальным образом сжатый вариант исходного текста. 2. Получив дайджест сообщения, вы шифруете его с помощью личного ключа RSA, и дайджест превращается в цифровую подпись. 3. Вы посылаете вместе с самим сообщением цифровую подпись. 4. Получив послание, получатель расшифровывает цифровую подпись с помощью вашего открытого ключа и извлекает дайджест сообщения. 5. Получатель, применяя для сообщения ту же хэш-функцию, что и вы, получает свой сжатый вариант текста и сравнивает его с дайджестом, восстановленным из подписи. Если они совпадают, то это значит, что подпись правильная и сообщение действительно поступило от вас. В противном случае сообщение либо отправлено из другого источника, либо было изменено после создания подписи.
При аутентификации личности отправителя открытый и личный ключи играют роли, противоположные тем, что они выполняли при шифровании. Так, в технологии шифрования открытый ключ используется для зашифровки, а личный — для расшифровки. При аутентификации с помощью подписи все наоборот. Кроме того, подпись гарантирует только целостность и подлинность сообщения, но не его защиту от посторонних глаз. Для этого предназначены алгоритмы шифрования. Например, стандартная технология проверки подлинности электронных документов DSS (Digital Signature Standard) применяется в США компаниями, работающими с государственными учреждениями. Однако у технологии RSA более широкие возможности в силу того, что она служит как для генерации подписи, так и для шифрования самого сообщения. Цифровая подпись позволяет проверить подлинность личности отправителя: она основана на использовании личного ключа автора сообщения и обеспечивает самый высокий уровень сохранности информации.