🤝 Обмін ключами Діффі-Гелмана
Дві сторони встановлюють спільний секрет через незахищений канал. Аналогія змішування кольорів робить проблему дискретного логарифма зрозумілою.
🔑 Обмін ключами Діффі-Гелмана
Дві сторони встановлюють спільний секрет через незахищений канал за допомогою модульного піднесення до степеня. Аналогія змішування кольорів робить проблему дискретного логарифма — односторонню функцію в основі DH — зрозумілою.
🔬 Що демонструє
Аліса та Боб обирають власний секрет, обчислюють g^a mod p та g^b mod p публічно, а потім підносять публічне значення іншої сторони до степеня свого секрету. Обидва отримують g^(ab) mod p — спільний секрет, який Єва не може обчислити, не розв'язавши задачу дискретного логарифма.
🎮 Як використовувати
Пройдіть покроковий протокол: оберіть прості числа p та g, задайте секрети a та b. Спостерігайте, як розгортається аналогія змішування кольорів. Спробуйте обчислити спільний секрет із публічних значень — ви побачите, чому це обчислювально нездійсненно.
💡 Чи знали ви?
Діффі-Гелман (1976) став першим опублікованим протоколом з відкритим ключем. Вітфілд Діффі та Мартін Гелман отримали премію Тюрінга у 2015 році. Джеймс Елліс та Малкольм Вільямсон з GCHQ відкрили ту саму ідею у 1969 році, але вона залишалася засекреченою.
Про обмін ключами Діффі-Гелмана
Ця симуляція показує, як дві сторони, Аліса та Боб, домовляються про спільний секрет через відкритий канал, жодного разу його не передаючи. Вона використовує модульне піднесення до степеня в скінченній циклічній групі: маючи публічні значення — просте число 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, а також у месенджерах. Сучасні варіанти, такі як ефемерний Діффі-Гелман та Діффі-Гелман на еліптичних кривих, додають прямої секретності та використовують менші, швидші ключі.