Что такое Elliptic Curve Diffie Hellman (ECDH)?
Elliptic Curve Diffie Hellman (ECDH) это способ, с помощью которого две стороны договариваются об одном и том же секретном ключе, общаясь публично. Ни один секрет не покидает сторону, но в итоге у обеих получается совпадающий ключ. Представьте двух бариста, смешивающих разные сиропы, которые как будто дают одинаковый вкус, в то время как все остальные видят лишь чашки.
Elliptic Curve Diffie Hellman (ECDH) сам по себе не шифрует ваши сообщения. Он только даёт общий секрет; для реального шифрования и расшифровки нужен аутентифицированный шифр или схема.
Как работает Elliptic Curve Diffie Hellman (ECDH)
Коротко: представьте, что ваше приложение-кошелёк подключается к новому устройству. Они общаются публично, но шепчут на языке математики.
- Начало: Каждая сторона генерирует случайный закрытый ключ и хранит его в секрете, затем готовит соответствующую публичную точку. Эта пара является частью более широкой идеи криптографических ключей.
- Обмен: Они обмениваются публичными точками по любому каналу, который виден всем, даже по шумному чату.
- Смешивание: Каждая сторона комбинирует свой закрытый секрет с публичной точкой другой стороны, чтобы получить одну и ту же общую точку.
- Получение ключа: Они пропускают эту общую точку через функцию вывода ключа, чтобы получить новый симметричный ключ.
- Использование: Этот симметричный ключ отвечает за шифрование и проверку сообщений для сессии. ECDH просто подготовил основу.
Вот и всё. Тихая математика, громкие результаты.
Почему важен Elliptic Curve Diffie Hellman (ECDH)
Коротко о выгодах без лишнего:
- Преимущество: Меньшие ключи и быстрые рукопожатия экономят трафик, заряд батареи и время, что будет полезно вашему телефону и снизит сборы.
- Обоснование: Его безопасность основана на сложности задачи Elliptic Curve Discrete Logarithm Problem (ECDLP), которую современным компьютерам трудно обратить.
- Применение: Вы встретите его при сопряжении кошельков, P2P сообщениях, рукопожатиях узлов Lightning и в криптографических частях TLS.
Всегда проверяйте публичный ключ другой стороны прежде чем доверять сессии. Быстрая проверка отпечатка или подписи поможет предотвратить ситуацию, когда злоумышленник окажется посередине.
Ключевые характеристики Elliptic Curve Diffie Hellman (ECDH)
Что выделяет его:
- Компактность: Высокая стойкость при более коротких ключах, чем у устаревших схем вроде RSA.
- Быстрота: Быстрые вычисления, подходит для мобильных устройств и систем с большим трафиком.
- Секретность: Общий ключ никогда не пересылается прямо, пересылаются только публичные точки.
- Защита прошлых сообщений: При использовании свежих эфемерных ключей сообщения прошлых сессий остаются в безопасности, даже если устройство будет скомпрометировано позже.
Варианты
Разные варианты подходят для разных моделей угроз:
- Статический: Долговечные ключи обеспечивают стабильность сессий, но уменьшают приватность.
- Эфемерный: Свежие ключи для каждой сессии по умолчанию обеспечивают защиту прошлых сообщений.
- Гибридный: Одна сторона использует статический ключ, другая использует эфемерный; это сочетает идентификацию и приватность.
Согласование ключа не равно установлению личности. Без аутентификации хитрый злоумышленник может перехватывать и пересылать сообщения. Сопровождайте это подписями, например Elliptic Curve Digital Signature Algorithm (ECDSA), чтобы доказать, с кем вы общаетесь.
Пример
Когда два узла Lightning соединяются, они выполняют Elliptic Curve Diffie Hellman (ECDH), чтобы получить общий сессионный ключ, а кошелёк может затем использовать Elliptic Curve Integrated Encryption Scheme (ECIES) для отправки зашифрованного запроса на сопряжение устройства.
Забавный факт
Криптографию на эллиптических кривых предложили в середине восьмидесятых Коблиц и Миллер, значительно позже идеи Диффи и Хеллмана, и она получила распространение, потому что обеспечивает сопоставимую защиту при гораздо более коротких ключах. Меньше вычислений на телефоне, больше заряда для остального.
Итог
Коротко: ECDH позволяет двум сторонам договориться о секретном ключе публично, а затем использовать его для приватного общения или платежей, без проблем.
