Введение в алгоритм обмена ключами Диффи-Хеллмана
Алгоритм обмена ключами Диффи-Хеллмана является одной из первых практических реализаций обмена открытыми ключами в области криптографии. Алгоритм обмена ключами Диффи-Хеллмана - это один из способов, которым можно генерировать общий ключ и делиться секретом между двумя сторонами таким образом, чтобы мы могли быть уверены, что никто не сможет обнаружить коммуникацию. Об Алгоритме следует помнить один важный факт: мы не передаем информацию при обмене, а создаем ключ, который впоследствии можно будет использовать для обмена информацией. Поскольку этот метод позволяет нам создать ключ шифрования с другой стороной, мы можем затем начать шифрование текущих и принимаемых сообщений. Установлено, что даже если кто-то записывает данные передачи, они никак не могут быть расшифрованы.
Алгоритм обмена ключами Диффи-Хеллмана для генерации ключей
Алгоритм основан на криптографии на эллиптических кривых, которая представляет собой метод криптографии с открытым ключом, основанный на алгебраической структуре эллиптических кривых над конечными полями. 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. Один современный пример этого называется «Интегрированная схема шифрования», которая обеспечивает защиту от выбранного простого текста и выбранных атак буфера обмена.
- Соглашение с аутентификацией по паролю: Когда две стороны совместно используют пароль, соглашение о ключе с аутентификацией по паролю может быть использовано для предотвращения атаки человека в середине. Это ключевое соглашение может быть в форме Диффи-Хеллмана. Протокол безопасного удаленного пароля является хорошим примером, основанным на этой технике.
- Прямая секретность: протоколы прямой секретности могут генерировать новые пары ключей для каждого нового сеанса, и они могут автоматически отбрасывать их в конце, когда сеанс также заканчивается. В этих прямых протоколах секретности чаще всего используется обмен ключами Диффи-Хеллмана.
Преимущества алгоритма Диффи-Хеллмана
- Отправитель и получатель не нуждаются в предварительном знании друг друга.
- После обмена ключами обмен данными может осуществляться через незащищенный канал.
- Совместное использование секретного ключа безопасно.
Недостатки алгоритма Диффи-Хеллмана
- Алгоритм не может быть предъявлен иск за любой асимметричный обмен ключами.
- Точно так же его нельзя использовать для подписи цифровых подписей.
- Поскольку он не аутентифицирует ни одну из сторон в передаче, обмен ключами Диффи-Хеллмана подвержен атаке «человек посередине».
Вывод
Благодаря своим преимуществам обмен ключами Диффи-Хеллмана зарекомендовал себя как полезная система обмена ключами. Хотя для кого-то действительно трудно отследить сеть, чтобы расшифровать данные и получить ключи, все же возможно, если сгенерированные числа не являются полностью случайными. Также система обмена ключами позволяет сделать человека в середине атаки, чтобы избежать его, обе стороны должны быть очень осторожны в начале обмена.
Рекомендуемая статья
Это руководство по алгоритму обмена ключами Диффи-Хеллмана. Здесь мы обсудим использование, различные алгоритмы, преимущества и недостатки. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
- Алгоритмы машинного обучения
- Алгоритм шифрования
- Алгоритмы классификации
- Типы алгоритмов