0Pricing
Cryptology Academy · Урок

Математика обмена ключами Диффи—Хеллмана

Пошагово разберите протокол DH и предположение о сложности задачи дискретного логарифмирования

«Математика обмена ключами Диффи—Хеллмана» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

В этом уроке Вы пошагово проследите обмен ключами Diffie-Hellman: от открытых параметров через закрытые показатели степени Alice и Bob до общего секрета.

Открытые параметры

Alice и Bob публично договариваются о следующем: - p: большое простое число (в рабочих системах — 2048 и более бит) - g: порождающий элемент Z*p (обычно g=2 или g=5) Eve может видеть p и g. Знание этих значений NOT позволяет взломать протокол.

Закрытый ключ Alice

Alice генерирует случайный секрет: a (1 < a < p-1) Alice вычисляет своё открытое значение: A = g^a mod p Alice отправляет A Bob. Eve видит A. Eve не может найти a по A — это задача дискретного логарифмирования.

Закрытый ключ Bob

Bob генерирует случайный секрет: b (1 < b < p-1) Bob вычисляет своё открытое значение: B = g^b mod p Bob отправляет B Alice. Eve видит B. Eve не может найти b по B.

Вычисление общего секрета

Alice: S = B^a mod p = (g^b)^a mod p = g^(ab) mod p Bob: S = A^b mod p = (g^a)^b mod p = g^(ab) mod p Оба вычисляют один и тот же S = g^(ab) mod p, ни разу не передавая его.

Пример с небольшими числами

p=23, g=5 Alice: a=6, A = 5^6 mod 23 = 8 Bob: b=15, B = 5^15 mod 23 = 19 Alice: S = 19^6 mod 23 = 2 Bob: S = 8^15 mod 23 = 2 ✓ Eve видит: 23, 5, 8, 19, но не может легко найти 2.

Задача дискретного логарифмирования

По заданному A = g^a mod p требуется найти a. Для большого p размером 2048 бит лучший известный алгоритм — решето числового поля — работает за субэкспоненциальное, но всё ещё астрономически большое время: примерно 2^100 операций для DH с 2048-битными параметрами.

Атака посредника

DH уязвим к MITM: Mallory перехватывает A и B и подменяет их собственными значениями. С Alice у неё возникает один общий секрет, а с Bob — другой. Решение: аутентифицировать обмен с помощью сертификатов или заранее согласованной аутентификации.

Безопасные простые числа

p необходимо выбирать тщательно. Безопасное простое число p=2q+1, где q — простое число, гарантирует, что группа DH не содержит малых подгрупп, которые можно использовать в атаках на малые подгруппы. NIST определяет одобренные группы DH.

Размеры параметров DH

Рекомендации NIST: - 2048 бит: минимум для новых развёртываний - 3072 бита: эквивалент RSA-3072 - 4096 бит: высокая защищённость Никогда не используйте заранее сгенерированные группы Oakley Group 1/2 размером 768/1024 бит — они взломаны государственными структурами в рамках атаки Logjam.

Атака Logjam (2015)

Атака Logjam показала, что многие серверы TLS использовали одно и то же 1024-битное простое число DH. Государственные структуры могли заранее вычислить дискретный логарифм для этих конкретных простых чисел и выполнять расшифрование в реальном времени. Решение: использовать уникальные простые числа размером не менее 2048 бит.

Быстрая проверка

В DH с p=23, g=5, a=4 и b=3 чему равен общий секрет?

Итоги

Математика обмена ключами DH понятна. Далее Вы примените ту же концепцию к эллиптическим кривым и получите ECDH — такую же защищённость при гораздо меньших ключах.

Часто задаваемые вопросы

Урок «Математика обмена ключами Диффи—Хеллмана» бесплатный?

Да — полный текст урока «Математика обмена ключами Диффи—Хеллмана» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Математика обмена ключами Диффи—Хеллмана»?

Пошагово разберите протокол DH и предположение о сложности задачи дискретного логарифмирования Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Математика обмена ключами Диффи—Хеллмана»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Проблема распределения ключей
  2. Математика обмена ключами Диффи—Хеллмана
  3. ECDH: эллиптические кривые для обмена ключами
  4. Прямая секретность и эфемерный обмен ключами
← Назад к Cryptology Academy