Базовый протокол ЕКЕ

Алиса и Боб (два пользователя, клиент и сервер, или кто угодно) имеют общий пароль Р. Используя сле­дующий протокол, они могут проверить подлинность друг друга и генерировать общий сеансовый ключ К.

(1) Алиса Случайным образом генерирует пару "открытый ключ/закрытый ключ" . Она шифрует открытый
ключ К' с помощью симметричного алгоритма, используя Р в качестве ключа: Е^К1). Она посылает Бобу

А, ЕР(К')

(2) Боб знает Р. Он расшифровывает сообщение, получая К'. Затем он генерирует случайный сеансовый ключ
К шифрует его открытым ключом, который он получил от Алисы, а затем используя Р качестве ключа. Он
посылает Алисе

ЕРК{К)

(3) Алиса расшифровывает сообщение, получая К. Она генерирует случайную строку RA, шифрует ее с помо­
щью К и посылает Бобу

Ee{Ra)

(4) Боб расшифровывает сообщение, получая RA. Он генерирует другую случайную строку, RB, шифрует обе
строки ключом К и посылает Алисе результат.

EdRA,RB)

(5) Алиса расшифровывает сообщение, получая RA и RB. Если строка RA, полученная от Боба, - это та самая
строка, которую она послала Бобу на этапе (3), она, используя К, шифрует RB и посылает ее Бобу.

EdRB)

(6) Боб расшифровывает сообщение, получая RB. Если строка RB, полученная от Алисы, - это та самая строка,
которую он послал ей на этапе (4), завершен. Теперь обе стороны могут обмениваться информацией, ис­
пользуя К в качестве сеансового ключа.


На этапе (3) и Алиса, и Боб знают К'и К. К- это сеансовый ключ, он может быть использован для шифров а-ния всех других сообщений, которыми обмениваются Алиса и Боб. Ева, сидя между Алисой и Бобом, знает только ЕР{К% ЕРК(К) и несколько сообщений, зашифрованных К. В других протоколах Ева могла бы попро­бовать угадать Р (люди все время любят выбирать плохие пароли, и если Ева достаточно умна, она может этот пароль) и затем проверить свои предположения. В рассматриваемом протоколе Ева не может проверять свои предположения, не вскрыв при этом и алгоритм с открытым ключом . И, если К' и К выбираются случайным образом, то эта проблема будет непреодолимой.

Ответная часть протокола, этапы (3) - (6), обеспечивает подтверждение. Этапы (3) - (5) доказывают Алисе, что Боб знает К, этапы (4) - (6) доказывают Бобу, что Алиса знает К. Обмен метками времени, используемый в протоколе Kerberos, решает ту же задачу.

ЕКЕ может быть реализован с множеством алгоритмов с открытыми ключами : RSA, ElGamal, Diffie-Hellman. Проблемы с безопасностью возникают при реализации ЕКЕ с алгоритмом рюкзака (даже без учета проблем безопасности, присущих самим алгоритмам рюкзака): нормальное распределение шифротекста сооб­щений сводит на нет преимущества ЕКЕ.