Рейтинг:4

Я не понимаю, чем полезен ECDH.

флаг ph

Мне трудно понять полезность использования ECDH по сравнению с традиционным асимметричным шифрованием. Обе стороны должны обменяться открытыми ключами для вычисления ECDH, так почему бы им просто не зашифровать свои сообщения открытыми ключами, которыми они только что обменялись?

Единственный вариант использования ECDH, о котором я могу думать, — это если Алиса потеряет свое исходное сообщение после отправки его Бобу, с помощью ECDH она все равно сможет его расшифровать. Но зачем ей это терять? Этот пример кажется мне слишком надуманным.

Кто-нибудь знает какие-нибудь хорошие примеры/сценарии/варианты использования, где ECDH сияет/требуется?

флаг mu
Dan
На данный момент игнорируя аутентификацию - вы включаете эфемерный ECDH («ECDHE») в свой вопрос? если это так, представьте, что закрытый ключ Боба или Алисы скомпрометирован. Теперь все доступно для обнаружения, вся история из прошлого. По той же причине TLS1.3 покончил с RSA для передачи ключей. Посмотрите на прямую секретность и обратную секретность.
WizardOfMenlo avatar
флаг ph
Еще одна проблема связана с эффективностью. DH (и механизм KEM в целом) обычно используются для установления общего общего секрета, который затем можно использовать с симметричной криптографией (которая обычно на несколько порядков быстрее).Вы определенно можете использовать PKE для достижения той же цели (на самом деле PKE и KEM эквивалентны), но использование KEM напрямую обычно более естественно. DH также может выполняться неинтерактивным способом, что весьма полезно в сложных асинхронных протоколах, таких как Signal.
Рейтинг:9
флаг my

Мне трудно понять полезность использования ECDH по сравнению с традиционным асимметричным шифрованием.

Единственный вариант использования ECDH, о котором я могу думать, — это если Алиса потеряет свое исходное сообщение после отправки его Бобу, с помощью ECDH она все равно сможет его расшифровать.

На самом деле преимущество ECDH прямо противоположно этому - это так Алиса (или Боб) не мочь расшифровать сообщение позже.

То есть и Алиса, и Боб генерируют частные значения ECDH, используют их для этого единственного обмена, а затем обнуляют их (а также симметричные ключи) после обмена сообщениями. Тогда ни Алиса, ни Боб не смогут восстановить секретные ключи и, следовательно, не смогут расшифровать сообщение.

Почему это преимущество? Предположим, что одна из двух сторон позже была взломана (либо хакером, либо по законному ордеру) — в этом случае сообщение все еще защищено. «Да, судья, вы выдали ордер, но мы буквально не располагаем (и не можем получить) той информацией, которую вы запрашиваете».

Это свойство известно как совершенная прямая секретность; вы также можете получить его, используя шифрование с открытым ключом (создание пары открытого/закрытого ключей перед обменом и удаление закрытого ключа после этого), однако этот подход не имеет особых преимуществ перед ECDH.

Maarten Bodewes avatar
флаг in
Не является ли главным отличием тот факт, что генерация пары ключей эффективна для DH и ECDH? Прямая безопасность — это хорошо, но если сервер или клиент должен генерировать пару ключей RSA размером 4 КБ для каждого установления ключа, эффективность протокола может стать проблематичной.
poncho avatar
флаг my
@MaartenBodewes: да, с RSA это будет дорого, однако, если вы хотите, вы можете сделать это с (скажем) ElGammal...
Рейтинг:4
флаг ng

ECDH известен как Ключевой механизм инкапсуляции, что, как вы упомянули, похоже на шифрование с открытым ключом, но не то же самое. Есть много причин предпочесть KEM, я быстро упомяну одну. Во-первых, обратите внимание, что KEM (формально) представляет собой набор из трех алгоритмов. $(\mathsf{KGen}, \mathsf{Encaps}, \mathsf{DCaps})$, куда

  1. $\mathsf{KGen}$ принимает на вход некоторый параметр безопасности $1^\лямбда$, и выводит пару ключей $(ск, пк)$

  2. $\mathsf{Заглавные буквы}$ принимает на вход открытый ключ $пк$ (и, возможно, некоторая случайность, которая часто бывает только неявной), и возвращает пару $(к, с)$ производного ключа $к$, и "зашифрованный текст" $с$

  3. $\mathsf{декап}$ принимает на вход секретный ключ $ск$ и "шифротекст" $с$, и выводит другой производный ключ $к'$.

КЭМ правильный, если $к = к'$ в конце, напр. два производных ключа согласуются. Понятие безопасности KEM аналогично PKE, что означает, что существует естественный способ расширить традиционные понятия безопасности IND-CPA/IND-CCA.

Обратите внимание, что можно построить KEM, используя любой PKE, имея $\mathsf{Encaps}_{pk}(r) = \mathsf{Enc}_{pk}(r)$, куда $г$ это случайность, используемая KEM (это идея «шифровать равномерно случайные ключи», о которой вы упомянули). Может быть, мы должны явно написать $\mathsf{Enc}_{pk}(f(r))$ является некоторой функцией случайности --- я не буду заморачиваться с этим явным образом.

Так зачем заботиться о KEM? Хотя есть и другие вещи, которые вы можете упомянуть, крупный Дело в том, что есть определенные свойства, которыми обладают «естественные» KEM (такие как ECDH), которые KEM, построенный на основе подхода «шифровать случайные ключи», делают нет имеют. Это означает, что ECDH — это не «просто» KEM, и его можно использовать в приложениях, где шифрование случайных ключей не работает.

Возможно, наиболее очевидным свойством, на которое следует указать, является «неинтерактивность». В частности, ECDH можно записать как

  1. обе стороны обмениваются парой ключей Диффи-Хеллмана $(г, г^{s_i})$, а потом
  2. вычисление некоторой простой функции этих пар ключей.

Если мы попытаемся написать это с помощью синтаксиса KEM, мы могли бы сказать, что $\mathsf{KGen}(1^\лямбда)$ производит одну пару ключей $(г, с_0, г^{с_0})$, и что $\mathsf{Encaps}_{g^{s_0}}(r) = (g, s_1, g^{s_1})$ создает другую пару ключей, где мы моделируем «зашифрованный текст» как $г^{s_1}$. Это имеет очень любопытное свойство однако --- $г^{s_1}$, «зашифрованный текст» схемы, делает нет вообще не зависят от публичного ключа (кроме как через генератор групп $г$, который можно стандартизировать как общедоступный параметр).

Это весьма удивительное свойство, которого нет в схеме «шифрование случайного ключа». Это известно как схема неинтерактивного обмена ключами (NIKE). Имущество является и тем, и другим.

  1. полезно на практике --- "двойной храповик" Signal использует это свойство ключевым образом, что затрудняет "подключение" другого KEM для использования в качестве сигнала, и

  2. теоретически нетривиальный --- общее построение NIKE требует некоторого причудливого примитива, такого как FHE/функциональное шифрование. Известны результаты, которые показывают, что, вероятно, невозможно построить NIKE с использованием решеток (и правдоподобных кодов) с «малыми параметрами».

На самом деле (за исключением решетчатых схем с большими параметрами) мне известен только один постквантовый NIKE, а именно CSIDH.Это означает, что прямая модификация Сигнала может быть либо постквантовой, либо

  • использует CSIDH,
  • использует менее эффективный вариант схемы NIST PQC (скажем, схему на основе решетки с малыми параметрами), или
  • каким-то образом изменяет сам протокол Signal, обычно с некоторой эффективностью.

Хотя есть и другие нюансы, которые вы можете сказать, чтобы сравнить PKE и KEM, теоретически существует очень большое преимущество для ECDH --- это эффективные NIKE, которые вообще не очень распространены.

Marc Ilunga avatar
флаг tr
Хороший ответ с подробностями о KEM. Однако я не понимаю, как ECDH соответствует парадигме KEM. Непонятно, как здесь определяется правильность
Mark avatar
флаг ng
Если вы хотите, чтобы ECDH был NIKE, вам нужно смоделировать, что у вас есть некоторая криптографическая группа $(G, g)$, стандартизированная как общедоступные параметры, и добавить последний шаг постобработки, где $k= KDF(g^{s_0} , g^{s_1}, g^{s_0s_1})$ для некоторой функции вывода ключей $KDF$. Я опустил это, поскольку в случае с ECDH это «прямо». Обратите внимание, что правильность KEM становится менее очевидной при работе с примитивами, такими как KEM на основе кода/решетки - они обычно только «статистически правильны», например. правильный с вероятностью $\geq 1-\delta$ для очень малых $\delta$.
Mark avatar
флаг ng
Это существенная разница, так как (особенно против активных противников) в этой настройке доступны определенные атаки «усиления ошибок», которые недоступны в настройке идеально корректных KEM.
Maarten Bodewes avatar
флаг in
«ECDH известен как механизм инкапсуляции ключей» А? Разве ECDH не известен как алгоритм согласования ключей? Иногда мне интересно, понимают ли криптографы нормальный язык. Если алгоритм ECDH ничего не инкапсулирует, то он не может быть механизмом инкапсуляции, верно?
Mark avatar
флаг ng
@MaartenBodewes, к сожалению, [терминология является стандартной] (https://en.wikipedia.org/wiki/Key_encapsulation_mechanism). И KEM можно использовать для обмена ключами, но они названы отдельно от PKE (который тоже можно использовать), чтобы подчеркнуть синтаксическую разницу между ними --- в одном можно "выбрать секретный ключ", в другом, тебе нельзя.
kelalaka avatar
флаг in
Я согласен с @MaartenBodewes в этом. Инкапсулированного ключа нет, только часть информации о построении ключа. Таким образом, DH является ключевым соглашением. Если кто-то ссылается на [это] (https://info.isl.ntt.co.jp/crypt/eng/psec/dl/iso/psec-kem_v2.2_20080414e.pdf), это не очень хороший документ.
Mark avatar
флаг ng
Да, но если обратиться к исследованиям, связанным со стандартизацией NIST PQC (одной из целей которого является стандартизация KEM/PKE), терминология KEM является стандартной. См., например, [эту влиятельную статью Хофхайнца и др.] (https://eprint.iacr.org/2017/604.pdf), в которой основное внимание уделяется рассмотрению случая «несовершенной правильности», о котором я упоминал 2 комментария назад.
meshcollider avatar
флаг gb
Я думаю, что быть КЕМ в одиночку — более слабое понятие. Например, ECDH обеспечивает неявную аутентификацию открытого ключа отправителя/инкапсулятора, в то время как KEM обычно этого не делает (единственным входом является открытый ключ получателя). [В этом документе] (https://eprint.iacr.org/2019/1356) по этой причине вводится раздельный KEM и утверждается, что CSIDH *может* удовлетворять предположениям о безопасности, но не заявляет об этом.
Maarten Bodewes avatar
флаг in
@Mark NIST в настоящее время, кажется, оценивает только KEM, хотя один KEM получен из механизма согласования ключей, аналогичного DH.
флаг cn
KEM @MaartenBodewes и соглашение о ключах с двумя сообщениями во всех смыслах и целях одно и то же.
Maarten Bodewes avatar
флаг in
Никакое ключевое соглашение не является КЕМ. Шиш. И это называется TMKE, где E означает Учреждение, когда речь идет об общей идее.
President James K. Polk avatar
флаг sh
ECDH не является ключевым механизмом инкапсуляции.
флаг cn
@MaartenBodewes Да, каждые два соглашения о ключах сообщений также являются механизмом инкапсуляции ключей. Первое сообщение — открытый ключ, второе сообщение — зашифрованный текст. И наоборот, каждый механизм инкапсуляции ключей также является соглашением о двух сообщениях. То, что вам явно не нравится этот термин, ничего не меняет.
Maarten Bodewes avatar
флаг in
Если он использует зашифрованный текст для инкапсуляции главного ключа, я согласен. Я не согласен, когда мастер-ключ генерируется из открытых/закрытых ключей, за которым обычно следует KDF, что *определенно* подходит для ECDH (чтобы вернуться к ответу).
флаг cn
Тогда вы не знаете определения КЕМ. âï¸

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.