Обмен зашифрованными ключами
(
англ.
Encrypted Key Exchange, EKE
) — протокол, разработанный Стивом Белловином и Майклом Мерритом
. EKE работает при условии, что у пользователей до начала работы протокола есть общий секрет. Протокол позволяет формировать сеансовый ключ для установления защищенного соединения. Для каждого сеанса генерируется новый сессионный ключ.
Содержание
Предисловие
Данный протокол использует симметричное и асимметричное шифрование. В каждой сессии протокола генерируется случайным образом открытый ключ и шифруется на имеющимся у сторон секретном ключе. Использование двух видов шифрования - главная особенность данного протокола. В качестве общего секрета в схеме может выступать пароль, что делает данный протокол удобным при использовании в системах, где общий секрет является паролем.
Протокол EKE
Алиса и Боб обладают общим секретом P. Используя протокол EKE у них есть возможность генерировать общий сеансовый ключ K.
Алиса генерирует случайную пару открытый-закрытый ключ, шифрует симметричным шифрованием открытый ключ K' с использованием общего секрета P в качестве ключа. Посылает Боб.
Боб, зная общий секрет, расшифровывает сообщение и получает ключ K'. Далее - случайным образом генерирует сеансовый ключ k, шифрует его открытым ключом K' и общим секретом P. Посылает Алиса.
Алиса получает общий сеансовый ключ k, расшифровывая сообщение. Генерирует случайную строку
, шифрует её на k. Посылает Боб.
Боб получает строку Алисы, расшифровывая сообщение. Далее - генерирует свою случайную строку
. Общим сеансовым ключом шифрует обе строки, передает зашифрованные строки Алисе.
Алиса получает
и
, расшифровывая сообщение. Значение
,полученное от Боба, сравнивается с тем, что было выбрано в пункте (3). Если значения совпадают, то Алиса шифрует
на ключе и посылает Бобу.
Боб получает
, расшифровывая сообщение. Значение
,полученное от Алисы, сравнивается с тем, что было выбрано в пункте (4). Если значения совпадают, то работа протокола завершена - участники могут обмениваться сообщениями используя при их шифровании ключ k.
Стойкость к атакам
В результате работы протокола пассивный криптоаналитик Ева может получить доступ только к
и
, а также к сообщениям, зашифрованным на общем сессионном ключе k. Так как в алгоритме используется схема асимметричного шифрования и ключи K' и k выбираются случайно, Ева не сможет подобрать P. Таким образом общий секрет P может быть простым паролем, который в состоянии запомнить человек.
Этапы 3-6 обеспечивают подтверждение. На этапах 3-5 Алиса удостоверяется, что Боб знает общий сеансовый ключ. На этапах 4-6 Боб удостоверяется, что Алиса знает общий сеансовый ключ. Эта же задача решается в протоколе Kerberos посредством обмена метками времени.
Реализации
При реализации данного протокола возможно использование многих алгоритмов с открытыми ключами, но также надо учитывать, что ограничения методов шифрования на ключи могут дать взломщику дополнительные возможности для проведения атак. Использование случайных последовательностей в данном протоколе сделает атаку "брут-форсом" невозможной.
Реализация EKE с использованием системы Эль-Гамаля
Преимущества
При использовании схемы Эль-Гамаля
возможно упрощение основного протокола.
Инициализация
Значения g - порождающий элемент группы и p - модуль, по которому производятся вычисления, выбираются для всех пользователей протокола. Также в соответствии с протоколом EKE у пользователей есть общий секрет r. Тогда
- открытый ключ.
Работа протокола
В данном алгоритме открытый ключ не надо шифровать на общем секрете P. Для общего случая такой подход не работает. На первом шаге протокола Алиса посылает Бобу:
Для алгоритма Эль-Гамаля Боб выбирает случайное число R. Тогда на данном этапе Боб посылает данное сообщение:
Реализация EKE с использованием протокола Диффи — Хеллмана, DH-EKE
При реализации EKE с использованием
протокола Диффи — Хеллмана
ключ K генерируется автоматически участниками работы протокола во время его исполнения.
Преимущества
При использовании протокола DH-EKE решается уязвимость базового протокола Диффи-Хеллмана к атаке человек посередине(MITM). Если криптоаналитик не знает общий секрет пользователей, то он не сможет
подобрать ключ, потому что шифруются случайные значения.
Инициализация
Значения g - порождающий элемент группы и n - модуль, по которому производятся вычисления, выбираются для всех пользователей протокола. В соответствии с протоколом EKE у пользователей есть общий секрет P.
Работа протокола
Алиса случайно выбирает
, посылает его Бобу. При этом нет необходимости, чтобы Алиса шифровала первое сообщение на общем секрете P.
Боб случайно выбирает
, вычисляет K, генерирует случайную строку
, шифрует её на ключе K. Далее - вычисляет
, шифрует его на общем секрете P. Передает Алисе.
Алиса получает
, расшифровывая первую часть сообщения с использованием общего секрета P. Далее - вычисляет K, расшифровывает полученным ключом вторую часть сообщения Боба. Генерирует случайную строку
, шифрует полученные строки на ключе K и посылает Бобу.
Боб получает
и
, расшифровывая сообщение. Значение
,полученное от Алисы, сравнивается с тем, что было выбрано в пункте (3). Если значения совпадают, то Боб шифрует
на ключе K и посылает Алисе.
Алиса получает
, расшифровывая сообщение. Значение
,полученное от Боба, сравнивается с тем, что было выбрано в пункте (4). Если значения совпадают, то работа протокола завершена - участники могут обмениваться сообщениями используя при их шифровании ключ K.
Усиленный протокол EKE
Стивом Белловином и Майклом Мерритом в работе
было предложено усиление части протокола запрос-ответ. Данное усиление позволяет
избежать компрометации данных при условии, что у криптоаналитика есть значение прошлого общего сеансового ключа k.
На шаге 3 Алиса генерирует случайное число
. Посылает Бобу:
На шаге 4 Боб генерирует случайное число
и посылает Алисе:
При такой работе протокола Алиса и Боб могут вычислить общий сеансовый ключ --
. В дальнейшем этот ключ используется для установления защищенного соединения, ключ k используется как ключ обмена ключами.
Допустим, что Ева получила доступ к значению S, но при этом работа протокола построена так, что это не даст Еве никакой информации об общем секрете P. К тому же, так как на ключе K шифруются только случайные данные, то криптографические подходы для его восстановлению неприменимы.
Примечания
↑
S. M. Bellovin, M. Merritt.
(англ.)
// Proceedings of the I.E.E.E. Symposium on Research in Security and Privacy, Oakland. — 1992. —
P. 72—84
.
13 декабря 2021 года.
T. ElGamal.
A public key cryptosystem and a signature scheme based on discrete logarithms
(англ.)
// IEEE Transactions on Information Theory. — 1985. —
Vol. IT-31
. —
P. 469–472
.
↑
Шнайер Б.
Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. —
М.
: Триумф, 2002. — С. 82. — 816 с. — 3000 экз. —
ISBN 5-89392-055-4
.
W. Diffie and M. E. Hellman.
New directions in cryptography
(англ.)
// IEEE Transactions on Information Theory. — 1976. —
Vol. IT-11
. —
P. 644–654
.