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

Криптосистема Диффи — Хеллмана

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

История

До появления криптосистемы Диффи — Хеллмана все известные методы шифрования были симметричными: отправитель и получатель должны были заранее обменяться секретным ключом через надёжный канал, что создавало серьёзные логистические проблемы, особенно при масштабировании. В 1976 году Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета опубликовали статью «New Directions in Cryptography», в которой впервые предложили концепцию криптографии с открытым ключом. В этой работе они описали протокол, позволяющий двум сторонам вычислить общий секретный ключ, используя только открытые данные. Однако реализация этой идеи на практике стала возможной благодаря математическому аппарату, основанному на задаче дискретного логарифмирования.

Протокол был назван в честь авторов, хотя впоследствии выяснилось, что аналогичная идея была независимо разработана в 1974 году британским криптографом Джеймсом Эллисом из Центра правительственной связи (GCHQ), но оставалась засекреченной до 1997 года. В 1977 году Ральф Меркль, также работавший в этой области, предложил альтернативный протокол, известный как «головоломка Меркля», однако он был менее эффективен. Криптосистема Диффи — Хеллмана стала основой для многих современных протоколов безопасности, включая TLS, SSH и IPsec.

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

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

  • p — большое простое число (обычно длиной не менее 2048 бит для обеспечения безопасности);
  • gгенератор мультипликативной группы целых чисел по модулю p, то есть число, степени которого по модулю p порождают все элементы группы.

Протокол работает следующим образом:

  1. Выбор секретных ключей: Алиса выбирает случайное секретное число a, Боб — случайное секретное число b. Эти числа держатся в тайне.
  2. Вычисление открытых ключей: Алиса вычисляет A = g^a mod p и отправляет его Бобу. Боб вычисляет B = g^b mod p и отправляет его Алисе.
  3. Вычисление общего секрета: Алиса, получив B, вычисляет K = B^a mod p = (g^b)^a mod p = g^(ab) mod p. Боб, получив A, вычисляет K = A^b mod p = (g^a)^b mod p = g^(ab) mod p.

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

Разновидности и модификации

Анонимный протокол Диффи — Хеллмана

Базовая версия протокола не предусматривает аутентификации сторон, что делает её уязвимой для атаки «человек посередине» (MITM). В этом случае злоумышленник может перехватить открытые ключи Алисы и Боба, подменить их своими и установить отдельные общие секреты с каждой стороной, оставаясь незамеченным. Для устранения этой уязвимости используются аутентифицированные версии протокола, например, с применением цифровых подписей или предварительно распределённых сертификатов.

Аутентифицированный протокол Диффи — Хеллмана

В этой модификации открытые ключи A и B подписываются цифровыми подписями сторон, что позволяет проверить их подлинность. Например, в протоколе TLS используется вариант, где сервер предоставляет сертификат, содержащий его открытый ключ, подписанный удостоверяющим центром. Клиент проверяет подпись и затем выполняет обмен ключами по Диффи — Хеллману.

Эллиптическая кривая Диффи — Хеллмана (ECDH)

Вместо мультипликативной группы целых чисел по модулю простого числа используется группа точек на эллиптической кривой. Это позволяет достичь того же уровня безопасности при меньшей длине ключа, что ускоряет вычисления и снижает требования к памяти. ECDH широко применяется в современных протоколах, таких как TLS 1.3, Signal и Bitcoin.

Статический и эфемерный протоколы

  • Статический Диффи — Хеллман: одна из сторон использует долговременный (статический) ключ, а другая — эфемерный (одноразовый). Это обеспечивает аутентификацию, но не даёт совершенной прямой секретности.
  • Эфемерный Диффи — Хеллман (DHE): обе стороны генерируют новые временные ключи для каждого сеанса связи. Это обеспечивает совершенную прямую секретность: даже если долговременный ключ будет скомпрометирован, прошлые сеансы останутся защищёнными. DHE является стандартом в современных реализациях TLS.

Применение

Криптосистема Диффи — Хеллмана является фундаментальным элементом многих протоколов безопасности:

  • TLS/SSL: используется для установления защищённого соединения между веб-браузером и сервером. В версиях TLS 1.2 и 1.3 применяются как классический DHE, так и ECDHE.
  • SSH: протокол Secure Shell использует Диффи — Хеллмана для обмена ключами при установке соединения.
  • IPsec: в протоколах защиты IP-трафика применяется IKE (Internet Key Exchange), который базируется на Диффи — Хеллмане.
  • VPN: многие реализации виртуальных частных сетей, включая OpenVPN, используют этот протокол для согласования ключей.
  • Криптовалюты: в Bitcoin и других криптовалютах на основе эллиптических кривых используется ECDH для создания общих секретов при мультиподписях и других операциях.
  • Мессенджеры: протокол Signal, лежащий в основе многих современных мессенджеров (например, Signal, WhatsApp, Telegram в режиме секретных чатов), использует комбинацию Диффи — Хеллмана и других криптографических примитивов для обеспечения сквозного шифрования.

Криптографическая стойкость

Безопасность протокола Диффи — Хеллмана основана на сложности задачи дискретного логарифмирования. Для классической версии с простым числом p стойкость зависит от длины p: современные рекомендации (например, от NIST) требуют использования чисел длиной не менее 2048 бит для обеспечения безопасности до 2030 года. Для эллиптической кривой версии (ECDH) достаточно ключей длиной 256 бит для эквивалентного уровня защиты.

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

Критика и ограничения

Основным недостатком базовой версии протокола является отсутствие аутентификации, что делает её уязвимой для атаки «человек посередине». Для защиты требуется дополнительная инфраструктура, такая как центры сертификации или предварительное распределение ключей. Кроме того, протокол не обеспечивает неотказуемости: стороны не могут доказать, что именно они участвовали в обмене, так как общий секрет вычисляется на основе случайных чисел.

Также критике подвергается использование протокола в некоторых реализациях, где выбор параметров p и g может быть ослаблен. Например, в 2015 году было обнаружено, что некоторые реализации TLS использовали слабые простые числа, что делало возможным атаки с предварительным вычислением.

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

  • В 2015 году исследователи из Университета Джона Хопкинса показали, что некоторые реализации протокола в TLS 1.2 использовали фиксированные значения p и g, что позволяло злоумышленникам с помощью предварительных вычислений взламывать соединения.
  • Протокол Диффи — Хеллмана был запатентован в США в 1980 году, но срок действия патента истёк в 1997 году, что способствовало его широкому распространению.
  • В 2016 году Уитфилд Диффи и Мартин Хеллман получили премию Тьюринга за свои работы в области криптографии с открытым ключом.

Источники

  • Diffie, W., & Hellman, M. (1976). New Directions in Cryptography. IEEE Transactions on Information Theory, 22(6), 644–654.
  • Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A. (1996). Handbook of Applied Cryptography. CRC Press.
  • Schneier, B. (1996). Applied Cryptography: Protocols, Algorithms, and Source Code in C. John Wiley & Sons.
  • NIST Special Publication 800-56A Rev. 3: Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography.
  • Boneh, D., & Shoup, V. (2023). A Graduate Course in Applied Cryptography.

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

На главную BFOmetr →