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

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

Метод Диффи — Хеллмана решает одну из главных проблем симметричного шифрования — необходимость безопасной передачи ключей. Протокол назван в честь американских специалистов по криптографии Уитфилда Диффи (Whitfield Diffie) и Мартина Хеллмана (Martin Hellman), которые первыми опубликовали рабочий алгоритм открытого обмена ключами по сети. Предложенная ими схема используется во многих программах и стандартах шифрованной коммуникации — например, в ПО Gnu Privacy Guard (GnuPG, GPG), VPN-протоколах, SSH, TLS и т. п.

Принцип работы протокола Диффи — Хеллмана

В основе протокола лежит концепция неполного обмена ключами шифрования, сформулированная американским криптографом Ральфом Мерклом (Ralph Merkle) и реализованная Диффи и Хеллманом в виде криптографического алгоритма с открытым ключом. В соответствии с этой схемой каждый участник обмена выполняет следующие действия:

  • генерирует случайное натуральное число — закрытый ключ;
  • совместно с удаленной стороной договаривается об открытых параметрах, которые будут использоваться для создания секретного ключа;
  • на основе закрытого ключа и открытых параметров вычисляет открытый ключ;
  • обменивается открытыми ключами с удаленной стороной;
  • вычисляет общий секретный ключ, используя открытый ключ удаленной стороны, свой закрытый ключ и открытые параметры.

Метод Диффи — Хеллмана применим для любого количества участников коммуникации, не только для двух сторон. Для получения общего секретного ключа необходимо, чтобы все участники обмена по очереди произвели вычисления над открытым ключом с использованием общих открытых параметров и своих закрытых ключей.

Варианты реализации протокола Диффи — Хеллмана

С точки зрения продолжительности жизни закрытых ключей различают два варианта реализации протокола Диффи — Хеллмана:

  • Статический — используются долгосрочные закрытые ключи, которые не сбрасываются после разрыва соединения.
  • Эфемерный или краткосрочный (DHE) — закрытые ключи генерируются заново для каждого нового соединения.

Недостатки протокола Диффи — Хеллмана

Предложенная Диффи и Хеллманом система не предусматривает аутентификацию участников обмена и согласованного ключа. По этой причине протокол уязвим к атакам «человек посередине». Злоумышленник может внедриться в канал связи и организовать перехват и подмену сообщений протокола. В результате стороны установят защищенное соединение не друг с другом, а со злоумышленником, и тот сможет читать их переписку без их ведома.

Публикации на схожие темы