Алгоритм Диффи–Хеллмана (DH, Diffie–Hellman key exchange) – классический протокол распределения общего секрета по открытому каналу связи. Его центральная идея: стороны обмениваются производными от секретов значениями, так что любой пассивный наблюдатель видит лишь «следы» вычислений в конечной группе, но не может восстановить секреты, если вычислительно трудна задача дискретного логарифмирования. Для ЕГЭ по информатике эта тема важна из-за практики работы с модульной арифметикой, возведением в степень по модулю, двоичным разложением показателя и пониманием того, почему «видимые» по сети числа не раскрывают ключ.
Параметры группы
Классическая (модульная) форма DH задаётся тройкой (p, g, G):
%20forma%20DH%20%20(1).png)
Протокол
%20forma%20DH%20%20(2).png)
Корректность следует из коммутативности сложения показателей при возведении основания g.
Вычислительная основа
%20forma%20DH%20%20(3).png)
Группа и порядок. Используйте p безопасного вида p=2q+1 (с простым q), а g – элемента порядка q. Это исключает малые подгруппы.
Случайные секреты. Секреты a, b выбираются равновероятно из большого диапазона (криптографический ГСЧ).
Проверка публичных значений. Отбрасывайте некорректные A, B:
A, B ∉ {0,1,p−1};
Aq≢1(mod p) и Bq≢1(mod p) (для безопасного p).
Это закрывает атаки малых подгрупп.
Аутентификация. «Чистый» DH не аутентифицирует стороны и уязвим для MITM (человек-посередине). Практически применяют аутентифицированный обмен (подписанные ключи, сертификаты) или протоколы семейства SIGMA/TLS.
Производная от секрета. Общий секрет K напрямую не используют как ключ. Его пропускают через KDF (Key Derivation Function) / криптографический хэш с солью/контекстом, получая симметрические ключи шифрования и имитовставки.
Эфемерность и прямая секретность. Эфемерные a,b на каждую сессию дают Perfect Forward Secrecy: раскрытие долговременных материалов не компрометирует прошлые сессии.
Эффективные вычисления. Возведение в степень – через двоичный метод (square-and-multiply) с промежуточным приведением по модулю.
Пусть нужно ge mod p. Разложим e в двоичную сумму степеней двойки и последовательно возводим в квадрат, каждый раз беря остаток по модулю p. Это даёт асимптотику O (log e) умножений.

Игнорирование аутентификации → MITM. Защита: подписи публичных значений, сертификаты, проверка идентичности.
Малые подгруппы. Если не проверять порядок A, B, злоумышленник навяжет элемент малого порядка, «сжимая» пространство ключей.
Повторное использование секретов. Снижает стойкость и может открыть путь к корреляционным атакам; применяйте эфемерные ключи.
Ключ без KDF. Нельзя «сырой» K подставлять в блочный шифр – используйте деривацию (KDF) с контекстом.
Небезопасные параметры. Нельзя брать малые p, «удобные» g без проверки порядка, «игрушечные» примеры годятся только для учебной арифметики.
Возведение в степень по модулю с промежуточным приведением.
Двоичное разложение показателя и метод «квадрат-умножение».
Проверка, является ли g порождающим: для каждого простого делителя r числа p−1 должно выполняться g(p−1)/r≢1(mod p).
Формальная логика протокола (почему Ab≡Ba).
Распознавание угроз MITM и общие принципы аутентификации.





Разделяйте этапы вычислений. Каждый шаг возведения в степень сопровождайте приведением по модулю и аккуратной арифметикой остатков.
Пишите двоичное разложение показателя. Это сразу структурирует решение (какие квадраты и произведения нужны).
Проверка генератора. Для p−1 выписывайте простые делители и тестируйте g(p−1)/r.
Краткие обоснования. Указывайте свойства: «корректность из gab=gba, «безопасность из трудности DL».
Отмечайте границы модели. Для вопросов безопасности перечисляйте MITM, малые подгруппы, необходимость KDF и аутентификации.
DH – фундаментальный протокол согласования ключей, построенный на свойстве односторонности в конечных группах. На уровне ЕГЭ он тренирует строгость модульной арифметики и умение структурировать вычисления методом двоичного показателя; на практическом уровне – дисциплину выбора параметров, проверок и аутентификации. Чёткое следование правилам и аккуратная вычислительная техника позволяют как корректно решать экзаменационные задачи, так и понимать реальные криптографические протоколы, лежащие в основе защищённых соединений.