Базовый протокол EKE
Алиса и Боб (два пользователя, клиент и сервер, или кто угодно) имеют общий пароль P. Используя следующий протокол, они могут проверить подлинность друг друга и генерировать общий сеансовый ключ K.
(1) Алиса Случайным образом генерирует пару "открытый ключ/закрытый ключ". Она шифрует открытый ключ K' с помощью симметричного алгоритма, используя Pв качестве ключа: EP(K'). Она посылает Бобу
A, EP(K')
(2) Боб знает P. Он расшифровывает сообщение, получая K'. Затем он генерирует случайный сеансовый ключ K шифрует его открытым ключом, который он получил от Алисы, а затем используя P качестве ключа. Он посылает Алисе
EP(EK'(K)
(3) Алиса расшифровывает сообщение, получая K. Она генерирует случайную строку RA, шифрует ее с помощью K и посылает Бобу
EK(RA)
(4) Боб расшифровывает сообщение, получая RA. Он генерирует другую случайную строку, RB, шифрует обе строки ключом K и посылает Алисе результат.
EK(RA,RB)
(5) Алиса расшифровывает сообщение, получая RAи RB. Если строка RA, полученная от Боба, - это та самая строка, которую она послала Бобу на этапе (3), она, используя K, шифрует RBи посылает ее Бобу.
EK(RB)
(6) Боб расшифровывает сообщение, получая RB. Если строка RB, полученная от Алисы, - это та самая строка, которую он послал ей на этапе (4), завершен. Теперь обе стороны могут обмениваться информацией, используя Kв качестве сеансового ключа.
На этапе (3) и Алиса, и Боб знают K'и K. K- это сеансовый ключ, он может быть использован для шифрования всех других сообщений, которыми обмениваются Алиса и Боб. Ева, сидя между Алисой и Бобом, знает только EP(K'), EP(EK'(K)и несколько сообщений, зашифрованных K. В других протоколах Ева могла бы попробовать угадать P(люди все время любят выбирать плохие пароли, и если Ева достаточно умна, она может этот пароль) и затем проверить свои предположения. В рассматриваемом протоколе Ева не может проверять свои предположения, не вскрыв при этом и алгоритм с открытым ключом. И, если K'и Kвыбираются случайным образом, то эта проблема будет непреодолимой.
Ответная часть протокола, этапы (3) - (6), обеспечивает подтверждение. Этапы (3) - (5) доказывают Алисе, что Боб знает K,этапы (4) - (6) доказывают Бобу, что Алиса знает K. Обмен метками времени, используемый в протоколе Kerberos, решает ту же задачу.
EKE может быть реализован с множеством алгоритмов с открытыми ключами: RSA, ElGamal, Diffie-Hellman. Проблемы с безопасностью возникают при реализации EKE с алгоритмом рюкзака (даже без учета проблем безопасности, присущих самим алгоритмам рюкзака): нормальное распределение шифротекста сообщений сводит на нет преимущества EKE.
Дата добавления: 2021-01-26; просмотров: 336;