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