Вступ до алгоритму обміну ключами Diffie Hellman

Алгоритм обміну ключами Diffie Hellman - це одна з перших практичних реалізацій обміну відкритими ключами в галузі криптографії. Алгоритм обміну ключами Diffie Hellman - це один із способів, який може генерувати спільний ключ і розділяти між собою дві сторони таким чином, щоб ми могли бути впевнені, що ніхто не зможе прослухати спілкування. Є один важливий факт, який слід пам’ятати про Алгоритм - це те, що ми не обмінюємось інформацією в обміні, натомість ми створюємо ключ, який згодом може бути використаний для обміну інформацією. Оскільки ця методика дозволяє нам створити ключ шифрування з іншою стороною, ми можемо почати шифрувати поточні та отримувати повідомлення. Один із встановлених даних, навіть якщо хтось записує дані передачі, неможливо розшифрувати дані.

Алгоритм обміну ключами Diffie Hellman для генерації ключів

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

1. Перша сторона вибирає два прості числа g і p і повідомляє їх другій стороні.

2. Потім друга сторона вибирає секретний номер (назвемо його а), а потім обчислює g a 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, буде прийнятий як загальний секретний ключ. Тепер цей ключ можна використовувати для будь-якого шифрування даних, які передаватимуться, наприклад, "морошка", AES тощо.

Алгоритм Діффі Гелмана

1. key = (Y A ) XB mod q -> це те саме, що обчислюється B

2. Глобальні громадські елементи

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

3. Генерація ключів для користувача A

  • Виберіть приватний ключ X A Тут, X A

Тепер, Розрахунок відкритого ключа Y A Y A = a XA mod q

4. Генерація ключів для користувача B

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

5. Розрахунок секретного ключа за допомогою A

  • ключ = (Y B ) XA mod q

6. Розрахунок секретного ключа по В

  • key = (Y A ) XB mod q

Приклад

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

2. Аліса вибрала приватний ключ a = 4, а Боб вибрав b = 3 як приватний ключ

3. І Аліса, і Боб тепер обчислюють значення x і y наступним чином:

  • Аліса: x = (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:

  • Шифрування: алгоритм обміну ключами Diffie Hellman можна використовувати для шифрування, однією з перших схем це було шифрування ElGamal. Одним із сучасних прикладів цього називається комплексна схема шифрування, яка забезпечує захист від обраного простого тексту та вибраних атак на буфер обміну.
  • Угода, яка засвідчує пароль Ця ключова Угода може бути у формі Діффі-Хеллмана. Безпечний протокол віддаленого пароля - хороший приклад, який базується на цій техніці.
  • Таємниця вперед: Протоколи, засновані на секретності, можуть генерувати нові пари ключів для кожного нового сеансу, і вони можуть автоматично відкинути їх наприкінці, коли сеанс теж закінчиться. У цих прямих протоколах секретності частіше за все використовується обмін ключами Diffie Hellman.

Переваги алгоритму Діффі Гелмана

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

Недоліки алгоритму Діффі Гелмана

  • Алгоритм не може бути поданий до суду за будь-який асиметричний обмін ключами.
  • Так само його не можна використовувати для підписання цифрових підписів.
  • Оскільки він не засвідчує аутентифікацію жодної сторони передачі, обмін ключами Diffie Hellman є чутливим до атаки "людина-посеред".

Висновок

Завдяки своїм перевагам, обмін ключами Diffie Hellman виявився корисною системою обміну ключами. Хоча комусь, хто переслідує мережу, дуже важко розшифрувати дані та отримати ключі, все ж можливо, якщо створені номери не зовсім випадкові. Також система обміну ключами дає можливість зробити людину в атаці середнього, щоб уникнути цього, обидві сторони повинні бути дуже обережними на початку обміну.

Рекомендована стаття

Це було керівництвом до алгоритму обміну ключами Diffie Hellman. Тут ми обговорюємо використання, різні алгоритми, переваги та недоліки. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

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