Криптография с открытым ключом
Криптографическая система с открытым ключом (или асимметричное шифрование) может существовать в двух видах, в зависимости от преследуемой цели:
- зашифровать сообщение, чтобы его мог прочитать только получатель
- зашифровать сообщение, чтобы любой мог его прочитать, тем самым подтверждая (authenticate) личность отправителя - цифровая подпись (ЭЦП).
В обоих случаях используется система шифрования с открытым ключом (ассиметричная). У каждого из участников транзакции существуют два ключа: закрытый (private) и открытый (public). К закрытому ключу имеет доступ только владелец этого ключа. Публичный ключ открыто доступен всем. Пересылаемое сообщение может быть зашифровано любым из пары ключей, а расшифровано оставшимся ключом. Из закрытого ключа можно получить открытый ключ, но не наоборот.
- Шифрование сообщения для того, чтобы только получатель мог его прочитать.
Берется публичный ключ получателя, шифруется сообщение и осуществляется его передача. Т.к. закртый ключ находится только у получателя, то только он сможет это сообщение расшифровать.
- Шифрование с целью подтверждение личности отправителя (цифровая подпись).
Отправитель подписывает сообщение своим закрытым ключом и любой участник может прочитать сообщение используя публичный ключ отправителя. Но поскольку только публичный ключ отправителя может расшифровать сообщение зашифрованное закрытым ключом, то расшифровка подтверждает личность отправителя (т.к. только у него есть доступ к закрытому ключу).
Принцип работы цифровой подписи
- Берется подписываемый документ и вычисляется его hash-функция
- Hash-функция шифруется закрытым ключем отправителя документа
- Hash-функция и документ отправляются получателю
- Получатель дешифрует hash-функцию с помощью открытого ключа отправителя
- Получатель самостоятельно высчитывает hash-функцию документа и сравнивает ее с дешифрованной hash-функцией
Сертификат
Сертификаты позволяют идентифицировать участвующую в обмене сторону. Цифровой сертификат представляет собой документ определенного формата, содержащий такую информацию, как, например, имя, порядковый номер, название компании, подразделения или IP-адрес организации. Сертификат также содержит экземпляр открытого ключа соответствующей стороны. Сам сертификат подписывается центром сертификации - некоторой третьей стороной, которой получатель сертификата полностью доверяет идентифицировать узлы и выдавать цифровые сертификаты. Для того чтобы проверить подпись центра сертификации в системе должен быть установлен корневой сертификат центра сертификации.
Таким образом, сертификат может выполнять две функции: аутентификацию и шифрование. Аутентификация достигается сл. образом - отправитель шифрует сообщение своим закрытым ключом, получатель проверяет подлинность отправителя с использованием его сертификата, т.к. в нем содержится открытый ключ отправителя и он выдан доверяющим центром сертификации, расшифровав сообщение, получатель уверен, что его отправил отправитель. Шифрование достигается сл. образом - отправитель берет открытый ключ и сертификата получателя и шифрует им сообщение, только владелец закрытого ключа парного открытому из сертификата, т.е. получатель, сможет его расшифровать, используя свой закрытый ключ.