Введение в алгоритм обмена ключами Диффи-Хеллмана

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

Алгоритм обмена ключами Диффи-Хеллмана для генерации ключей

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

1. Первая сторона выбирает два простых числа g и p и сообщает их второй стороне.

2. Затем вторая сторона выбирает секретный номер (назовем его a), а затем вычисляет g mod p и отправляет результат обратно первой стороне, давайте назовем результат A. Имейте в виду, что секретный номер не отправляется. для кого-то только результат есть.

3. Затем первая сторона делает то же самое, она выбирает секретное число b и вычисляет результат B, аналогичный

4. шаг 2. Затем этот результат отправляется второй стороне.

5. Вторая сторона берет полученное число B и вычисляет B a mod p

6. Первая партия берет полученное число A и вычисляет A b mod p

Здесь это становится интересным, ответ на шаге 5 совпадает с ответом на шаге 4. Это означает, что обе стороны получат один и тот же ответ независимо от порядка возведения в степень.

(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p

Число, которое мы указали в шагах 4 и 5, будет принято как общий секретный ключ. Теперь этот ключ можно использовать для любого шифрования передаваемых данных, таких как Blowfish, AES и т. Д.

Алгоритм Диффи-Хеллмана

1. key = (Y A ) XB mod q -> это то же самое, что рассчитано B

2. Глобальные общественные элементы

  • q: q простое число
  • a: a <q и α примитивный корень из q

3. Генерация ключа для пользователя А

  • Выберите закрытый ключ X A Здесь, X A

Теперь вычисление открытого ключа Y A Y A = XA mod q

4. Генерация ключа для пользователя B

  • Выберите закрытый ключ X B Здесь, X B
  • Теперь вычисление открытого ключа Y B Y B = a Xb mod q

5. Расчет секретного ключа по A

  • ключ = (Y B ) XA мод q

6. Расчет секретного ключа по B

  • ключ = (Y A ) XB мод q

пример

1. Алиса и Боб используют открытые номера P = 23, G = 5

2. Алиса выбрала закрытый ключ a = 4, а Боб выбрал b = 3 в качестве закрытого ключа

3. Алиса и Боб теперь вычисляют значения x и y следующим образом:

  • Алиса: х = (5 4 мод 23) = 4
  • Боб: у = (5 3 мод 23) = 10

4. Теперь Алиса и Боб обмениваются публичными номерами друг с другом.

5. Алиса и Боб теперь вычисляют симметричные ключи

  • Алиса: k a = y a mod p = 10 4 mod 23 = 18
  • Боб: k b = x b mod p = 4 3 mod 23 = 18

6. 18 - общий секретный ключ.

Использование алгоритма Диффи-Хеллмана

Помимо использования алгоритма генерации открытых ключей, есть несколько других мест, где можно использовать алгоритм DH:

  • Шифрование. Алгоритм обмена ключами Диффи-Хеллмана можно использовать для шифрования, одной из первых схем шифрования ElGamal. Один современный пример этого называется «Интегрированная схема шифрования», которая обеспечивает защиту от выбранного простого текста и выбранных атак буфера обмена.
  • Соглашение с аутентификацией по паролю: Когда две стороны совместно используют пароль, соглашение о ключе с аутентификацией по паролю может быть использовано для предотвращения атаки человека в середине. Это ключевое соглашение может быть в форме Диффи-Хеллмана. Протокол безопасного удаленного пароля является хорошим примером, основанным на этой технике.
  • Прямая секретность: протоколы прямой секретности могут генерировать новые пары ключей для каждого нового сеанса, и они могут автоматически отбрасывать их в конце, когда сеанс также заканчивается. В этих прямых протоколах секретности чаще всего используется обмен ключами Диффи-Хеллмана.

Преимущества алгоритма Диффи-Хеллмана

  • Отправитель и получатель не нуждаются в предварительном знании друг друга.
  • После обмена ключами обмен данными может осуществляться через незащищенный канал.
  • Совместное использование секретного ключа безопасно.

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

  • Алгоритм не может быть предъявлен иск за любой асимметричный обмен ключами.
  • Точно так же его нельзя использовать для подписи цифровых подписей.
  • Поскольку он не аутентифицирует ни одну из сторон в передаче, обмен ключами Диффи-Хеллмана подвержен атаке «человек посередине».

Вывод

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

Рекомендуемая статья

Это руководство по алгоритму обмена ключами Диффи-Хеллмана. Здесь мы обсудим использование, различные алгоритмы, преимущества и недостатки. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Алгоритмы машинного обучения
  2. Алгоритм шифрования
  3. Алгоритмы классификации
  4. Типы алгоритмов