Открыть сервис

Протокол Диффи — Хеллмана

Протокол Диффи — Хеллмана — это криптографический протокол, позволяющий двум или более сторонам получить общий секретный ключ, используя незащищённый от прослушивания канал связи. Относится к категории протоколов открытого распределения ключей. Впервые был опубликован в 1976 году Уитфилдом Диффи и Мартином Хеллманом и стал одним из первых практических методов обмена ключами, положившим начало эпохе криптографии с открытым ключом.

История

До появления протокола Диффи — Хеллмана для обеспечения конфиденциальности связи стороны были вынуждены заранее договариваться о секретном ключе по защищённому каналу (например, личная встреча или курьер). Это создавало серьёзные логистические проблемы, особенно в системах с большим числом участников. В середине 1970-х годов Уитфилд Диффи и Мартин Хеллман (Стэнфордский университет) совместно с Ральфом Мерклем работали над концепцией криптографии с открытым ключом. В 1976 году они опубликовали статью «New Directions in Cryptography», в которой описали протокол, позволяющий двум сторонам вычислить общий секретный ключ, обмениваясь только открытыми данными. Независимо от них, аналогичный метод был разработан в 1974 году Малкольмом Уильямсоном из Центра правительственной связи Великобритании (GCHQ), но его работа была засекречена и обнародована только в 1997 году.

Математические основы

Протокол Диффи — Хеллмана опирается на сложность задачи дискретного логарифмирования в конечных полях. Основные математические компоненты:

Описание протокола

Протокол работает в два этапа: предварительная договорённость о параметрах и непосредственный обмен.

Предварительная договорённость

Стороны (обычно Алиса и Боб) договариваются об открытых параметрах:

Эти значения могут быть общеизвестными и даже передаваться по незащищённому каналу.

Выполнение протокола

  1. Алиса генерирует случайное секретное число \( a \) (закрытый ключ Алисы). Вычисляет \( A = g^a \mod p \) (открытый ключ Алисы). Отправляет \( A \) Бобу.
  2. Боб генерирует случайное секретное число \( b \) (закрытый ключ Боба). Вычисляет \( B = g^b \mod p \) (открытый ключ Боба). Отправляет \( B \) Алисе.
  3. Алиса получает \( B \) и вычисляет общий секрет: \( K = B^a \mod p = (g^b)^a \mod p = g^{ab} \mod p \).
  4. Боб получает \( A \) и вычисляет общий секрет: \( K = A^b \mod p = (g^a)^b \mod p = g^{ab} \mod p \).

В результате обе стороны получают одно и то же число \( K \), которое может быть использовано в качестве симметричного ключа для дальнейшего шифрования данных. Злоумышленник, перехвативший \( p \), \( g \), \( A \) и \( B \), не сможет вычислить \( K \), не найдя \( a \) или \( b \), что требует решения задачи дискретного логарифмирования.

Аутентификация и атака «человек посередине»

Базовый протокол Диффи — Хеллмана не обеспечивает аутентификации сторон. Это делает его уязвимым для атаки «человек посередине» (Man-in-the-Middle, MITM). Атака выглядит следующим образом:

  1. Злоумышленник (Мэллори) перехватывает открытые ключи \( A \) и \( B \).
  2. Мэллори генерирует свои собственные секретные числа \( m_1 \) и \( m_2 \).
  3. Он отправляет Алисе свой открытый ключ \( M_1 = g^{m_1} \mod p \), выдавая себя за Боба.
  4. Он отправляет Бобу свой открытый ключ \( M_2 = g^{m_2} \mod p \), выдавая себя за Алису.
  5. Алиса и Мэллори устанавливают общий секрет \( K_1 = g^{a m_1} \mod p \). Боб и Мэллори устанавливают общий секрет \( K_2 = g^{b m_2} \mod p \).
  6. Все сообщения от Алисы Мэллори расшифровывает ключом \( K_1 \), читает, затем зашифровывает ключом \( K_2 \) и отправляет Бобу (и наоборот). Стороны не подозревают о подмене.

Для защиты от этой атаки протокол Диффи — Хеллмана комбинируют с методами аутентификации:

Варианты и модификации

Существует несколько модификаций протокола, адаптированных под разные задачи:

Применение

Протокол Диффи — Хеллмана является фундаментальным строительным блоком современной криптографии. Наиболее распространённые области применения:

Безопасность и критика

Основные угрозы и ограничения протокола:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →