Протокол Діффі — Геллмана на еліптичних кривих

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з ECDH)
Перейти до навігації Перейти до пошуку

Протокол Діффі-Хеллмана на еліптичних кривих (англ. Elliptic curve Diffie–Hellman, ECDH) — криптографічний протокол, що дозволяє двом сторонам, які мають пари відкритий/закритий ключ на еліптичних кривих, отримати загальний секретний ключ, використовуючи незахищений від прослуховування канал зв'язку[1][2]. Цей секретний ключ може бути використаний як для шифрування подальшого обміну, так і для формування нового ключа, який потім може використовуватися для подальшого обміну інформацією за допомогою алгоритмів симетричного шифрування. Це варіація протоколу Діффі — Геллмана з використанням еліптичної криптографії[3].

Опис алгоритму[ред. | ред. код]

Нехай існують два абоненти: Аліса і Боб. Припустимо, Аліса хоче створити спільний секретний ключ з Бобом, але єдиний доступний між ними канал може підслухати третя сторона. Спочатку повинен бути узгоджений набір параметрів ( для загального випадку і для поля характеристики ). Відповідно у кожної сторони повинна бути пара ключів, що складається з закритого ключа , (випадково обраного ціле число з інтервалу ) і відкритого ключа (де - це результат того, що проробляє раз операції підсумовування елемента ). Нехай тоді пара ключів Аліси буде , а пара Боба . Перед виконанням протоколу сторони повинні обмінятися відкритими ключами.

Аліса обчислює . Боб обчислює . Загальний секрет — (x-координата цієї точки). Більшість стандартних протоколів, що базуються на ECDH, використовують функції формування ключа для отримання симетричного ключа значення [4][5].

Обчислені значення учасниками рівні, так як . З усієї інформації, пов'язаної зі своїм закритим ключем, повідомляє Аліса тільки свій відкритий ключ. Таким чином ніхто крім Аліси не може визначити її закритий ключ, крім учасника здатного вирішити задачу дискретного логарифмування на еліптичній кривій. Закритий ключ Боба аналогічно захищений. Ніхто крім Аліси або Боба не може обчислити їх загальний секрет, крім учасника здатного розв'язати проблему Діффі — Геллмана[6].

Відкриті ключі бувають або статичними (і підтверджені сертифікатом) або ефемерні (скорочено ECDHE). Ефемерні ключі використовуються тимчасово й не обов'язково аутентифікують відправника, таким чином, якщо потрібна автентифікація, підтвердження автентичності повинно бути отримано іншим способом[3]. Автентифікація необхідна для виключення можливості атаки посередника. Якщо Аліса або Боб використовують статичний ключ, небезпека атаки посередника виключається, але не може бути забезпечена ні пряма секретність, ні стійкість до підміни при компрометації ключа, як і деякі інші властивості стійкості до атак. Користувачі статичних закритих ключів змушені перевіряти чужий відкритий ключ і використовувати функцію формування ключа на загальний секрет, щоб запобігти витоку інформації про статично закритий ключ[7]. Для шифрування з іншими властивостями часто використовується протокол MQV.

При використанні загального секрету як ключа, часто бажано гешувать секрет, щоб позбутися від вразливостей, що виникли після застосування протоколу[7].

Приклад[8][ред. | ред. код]

Еліптична крива E над полем має порядок , де P49просте число складається з 49 цифр у десятковому записі.

Виберемо Незвідний многочлен

І візьмемо точку еліптичної кривої

.

Перевіримо, що її порядок не дорівнює 2

.

Значить, її порядок дорівнює порядку групи , а саме числу і її можна використовувати для побудови ключа. Нехай , .. Тоді відкриті ключі учасників протоколу обчислюються як,

.
.

А загальний секрет буде дорівнювати:

В якості ключа симетричної системи використовується значення (або його частина) .

Програмне забезпечення[ред. | ред. код]

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

Література[ред. | ред. код]

  • Elaine Barker, Lily Chen, Allen Roginsky, Miles Smid. Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography (англ.) // http://nvlpubs.nist.gov/ [Архівовано 10 березня 2018 у Wayback Machine.]. — National Institute of Standards and Technology, 2013. — ISBN 1495447502.
  • Standards for Efficient Cryptography Group (SECG). SEC 1: Elliptic Curve Cryptography: [англ.]. — http://www.secg.org [Архівовано 24 березня 2022 у Wayback Machine.]. — Certicom Corp, 2009. — P. 15—28, 56—58.
  • National Institute of Standards and Technology (NIST). Suite B Implementer's Guide to NIST SP 800-56A: [англ.]. — https://www.nsa.gov [Архівовано 9 грудня 2020 у Wayback Machine.]. — 2009.
  • Laurie Law. An Efficient Protocol for Authenticated Key Agreement: [англ.] / Laurie Law, Alfred Menezes, Minghua Qu … [et al.]. — Designs, Codes and Cryptography. — Kluwer Academic Publishers, 2003. — Vol. 28, no. 2. — P. 119—134. — ISSN 0925-1022. — DOI:10.1023/A:1022595222606.
  • Болотов А. А., Гашков С. Б., Фролов А. Б. Глава 2. Протоколы на эллиптических кривых // Элементарное введение в эллиптическую криптографию. Протоколы криптографии на эллиптических кривых. — М.: КомКнига, 2006. — С. 83—86. — ISBN 5-484-00444-6, ББК 32.81, УДК 512.8.