Основные криптографические протоколы
Обмен ключами
Распространенным приемом в криптографии является шифрование каждого передаваемого сообщения с помощью отдельного ключа. Такой ключ называется сеансовым, поскольку используется только на протяжении одного сеанса связи. Каким образом сеансовый ключ попадает в распоряжение отправителя и получателя шифрованного сообщения?
Обмен ключами для симметричных криптосистем
Предположим, что Антон и Борис, являющиеся пользователями компьютерной сети, получили секретные ключи от Дмитрия (доверенного лица, наделенного правами арбитра). Секретные ключи попали к Антону и Борису еще до начала сеанса связи, а злоумышленник Зиновий ровным счетом ничего не знает о том, какие это ключи. Тогда для обмена шифрованными сообщениями по компьютерной сети Антон и Борис могут воспользоваться следующим криптографическим протоколом:
- Антон связывается с Дмитрием и запрашивает у него сеансовый ключ для связи с Борисом.
- Дмитрий генерирует случайный сеансовый ключ и создает две шифрованных копии этого ключа – один раз Дмитрий шифрует сеансовый ключ с помощью секретного ключа Антона, второй – с помощью секретного ключа Бориса. Затем Дмитрий отсылает обе копии Антону.
- Антон расшифровывает свою копию сеансового ключа.
- Антон отправляет Борису его копию сеансового ключа.
- Борис расшифровывает свою копию сеансового ключа.
- Антон отправляет Борису сообщение, зашифрованное с использованием сеансового ключа, копия которого имеется у них обоих.
И Антон, и Борис полностью полагаются на честность Дмитрия. Если Зиновию удастся его подкупить или обмануть, ни о какой секретности обмена сообщениями между Антоном и Борисом не может быть и речи. В этом случае Зиновий получит доступ ко всем ключам, используемым абонентами компьютерной сети, и сможет прочесть шифрованные сообщения, которыми они обмениваются по сети. Для этого Зиновию достаточно аккуратно копировать всю передаваемую через нее информацию.
Другой существенный недостаток этого протокола состоит в том, что арбитр является потенциальным узким местом в обмене сообщениями между Антоном и Борисом. Если Дмитрий по какой-либо причине не сможет вовремя снабдить их ключами, шифрованная связь между ними будет прервана.
Обмен ключами для криптосистем с открытым ключом
Обычно Антон и Борис используют криптографический алгоритм с открытым ключом, чтобы договориться о сеансовом ключе, при помощи которого они будут шифровать свои данные. В этом случае протокол обмена сеансовыми ключами значительно упрощается, и Антон может послать шифрованное сообщение Борису, даже если Борис и не слышал о существовании Антона:
- Антон находит открытый ключ Бориса в справочнике, в базе данных или получает его от Дмитрия.
- Антон генерирует случайный сеансовый ключ, шифрует его при помощи открытого ключа Бориса и отправляет ему в зашифрованном виде.
- Борис расшифровывает сообщение Антона с использованием своего тайного ключа.
- Антон и Борис обмениваются сообщениями, зашифрованными на одном и том же сеансовом ключе.