🤝 Діффі-Гелман

🇬🇧 EN ← Назад
Крок за кроком
Аналогія змішування кольорів

🔑 Обмін ключами Діффі-Гелмана

Дві сторони встановлюють спільний секрет через незахищений канал за допомогою модулярного піднесення до степеня. Аналогія зі змішуванням кольорів робить задачу дискретного логарифма інтуїтивною.

🔬 Що демонструє

Аліса та Боб обирають секрети, обчислюють g^a mod p та g^b mod p публічно, потім піднесуть значення іншого до свого секрету. Обидва отримують g^(ab) mod p — спільний секрет, який Єва не може обчислити.

🎮 Як використовувати

Слідкуйте за протоколом крок за кроком: оберіть прості p та g, виберіть секрети a та b. Спостерігайте аналогію змішування кольорів. Спробуйте обчислити секрет із публічних значень.

💡 Чи знали ви?

Діффі-Гелман (1976) — перший опублікований протокол з відкритим ключем. Уітфілд Діффі та Мартін Гелман отримали премію Тюрінга у 2015 році.

Про обмін ключами Діффі-Гелмана

Ця симуляція показує, як дві сторони — Аліса та Боб — домовляються про спільний секрет через відкритий канал, жодного разу не передаючи сам секрет. В основі лежить модулярне піднесення до степеня у скінченній циклічній групі: з публічних значень — простого числа p та генератора g — кожна сторона обчислює g у степені свого приватного показника за модулем p. Безпека ґрунтується на задачі дискретного логарифма, яка робить цю операцію практичною односторонньою функцією.

Ви обираєте публічне просте p та генератор g зі спадних меню, а повзунками задаєте секрет Аліси a та секрет Боба b. Панель кроків обчислює A = g^a mod p, B = g^b mod p і спільний секрет g^(ab) mod p, а полотно з аналогією кольорів унаочнює ідею. Протокол Діффі-Гелмана лежить в основі узгодження ключів у HTTPS, SSH та VPN по всьому світу.

Поширені запитання

Що таке обмін ключами Діффі-Гелмана?

Це метод, опублікований 1976 року, що дозволяє двом сторонам, які ніколи не зустрічалися, домовитися про спільний секретний ключ через публічний канал. Кожна сторона зберігає приватне число та обмінюється лише похідним публічним значенням. Підслуховувач бачить публічні значення, але не може відновити секрет.

Як насправді працює протокол?

Обидві сторони домовляються про публічне просте p та генератор g. Аліса обчислює A = g^a mod p, Боб — B = g^b mod p, після чого відкрито обмінюються A та B. Аліса піднімає B до свого секрету a, Боб — A до свого секрету b, і обидва отримують однакове значення g^(ab) mod p.

Що роблять елементи керування на цій сторінці?

Спадні меню «Просте p» та «Генератор g» задають публічні параметри, доступні всім. Повзунки Аліси a та Боба b (від 2 до 20) встановлюють два приватні показники. Зміна будь-якого з них миттєво перераховує публічні ключі та спільний секрет у математичній панелі.

Чому обидві сторони отримують однаковий секрет?

Тому що піднесення до степеня комутує: (g^a)^b mod p дорівнює (g^b)^a mod p, і обидва вирази рівні g^(ab) mod p. Аліса обчислює B^a, Боб — A^b, тому обидва приходять до ідентичного числа, не розкриваючи один одному приватного показника.

Що таке задача дискретного логарифма?

За заданими p, g та значенням g^a mod p відновити показник a — це і є задача дискретного логарифма. Не існує відомого ефективного алгоритму для великих простих, тому ця складність і забезпечує безпеку спільного секрету навіть за умови видимості публічних ключів.

Що бачить підслуховувач і чому не може зламати протокол?

Єва спостерігає p, g, A та B — все передається відкритим текстом. Щоб знайти секрет, їй треба розв'язати задачу дискретного логарифма й відновити a або b. З малими простими, що використовуються тут, це зробити нескладно, але для 2048-бітних простих це обчислювально неможливо на сучасному залізі.

Чи є ця симуляція криптографічно точною?

Математика точна: використовується справжнє модулярне піднесення до степеня методом швидкого зведення у квадрат на великих цілих числах, тому A, B та спільний секрет обчислені вірно. Малі прості та обмежений діапазон повзунків обрано для наочності, а не для безпеки — реальні системи використовують значно більші параметри.

Яка роль генератора g?

Генератор g — це основа, степені якої за модулем p пробігають великий набір лишків. Хороший генератор породжує багато різних значень, що дає більше можливих спільних секретів. На практиці g обирають так, щоб породжена ним група була великою та не мала малих підгруп, які послаблюють протокол.

Чи забезпечує Діффі-Гелман автентифікацію?

Ні. Звичайний Діффі-Гелман забезпечує конфіденційність ключа, але не підтверджує особу, тому він вразливий до атаки «людина посередині». Реальні системи поєднують його з підписами або сертифікатами для автентифікації публічних значень.

Де Діффі-Гелман застосовується у реальному світі?

Він захищає узгодження ключів у TLS для HTTPS-сайтів, у SSH-з'єднаннях, у IPsec та інших VPN, а також у месенджерах. Сучасні варіанти, зокрема ефемерний Діффі-Гелман та Діффі-Гелман на еліптичних кривих, додають пряму секретність і використовують менші та швидші ключі.