Рейтинг:4

Знаете ли вы протоколы, где необходимо получить несколько "независимых" точек на одной и той же эллиптической кривой?

флаг id

Рассмотрим эллиптическую кривую $Е$ определенный над конечным полем $\mathbb{F}_{\!q}$ с фиксированным ненулевым значением $\mathbb{F}_{\!q}$-точка $P$. Пусть для простоты порядок $\mathbb{F}_{\!q}$-точечная группа $E(\mathbb{F}_{\!q})$ быть простым, и, следовательно, группа порождена $P$. Ради безопасности в многочисленных протоколах эллиптической криптографии (например, в безопасной версии Dual_EC_DRBG) нам нужно сгенерировать еще один «независимый» $\mathbb{F}_{\!q}$-точка $Q$ на $Е$.

Пожалуйста, ответьте на вопрос. Знаете ли вы протоколы, где необходимо получить более «независимые» $\mathbb{F}_{\!q}$-точки на одной кривой? Другими словами, партия имеет дело с «независимыми» $\mathbb{F}_{\!q}$-точки $Q_1$, $Q_2$, $\ldots$, $Q_n$ в дополнении к $P$. Под «независимыми» я подразумеваю такие точки, дискретные логарифмы которых друг относительно друга никто не знает.

Я спрашиваю вас, потому что для некоторых $Е$ и $n$ Я умею производить одновременно несколько $Q_i$ быстрее, чем их раздельная генерация. Я хотел бы понять, достоин ли мой подход публикации в хорошем научном журнале. Или, может быть, это даже имеет какое-то отношение к реальной криптографии.

eckes avatar
флаг us
Может быть, какие-то многосторонние ключевые соглашения на основе ECDH?
Dimitri Koshelev avatar
флаг id
@eckes, не могли бы вы уточнить свой комментарий?
Рейтинг:8
флаг my

Знаете ли вы протоколы, в которых необходимо получить несколько «независимых» точек на одной и той же эллиптической кривой?

Одно очевидное место, где это происходит, если вы реализуете обязательство Педерсена вектора ценностей; вы делаете ставку на вектор $(x_1, x_2, ..., x_n)$ опубликовав значение $rH + x_1G_1 + x_2G_2 + ... + x_nG_n$; чтобы это работало, вам, очевидно, нужно $n+1$ независимые точки $H, G_1, G_2, ..., G_n$

Хотя это немного неясно, это действительно всплывает; быстрый гугл находит Эта бумага, и поэтому есть некоторая применимость; определенно больше, чем некоторые газеты, которые я видел...

Dimitri Koshelev avatar
флаг id
благодарю вас! Я мало знаю о схемах обязательств. Почему недостаточно взять $n = 1$? Встречается ли $n > 1$ в реальной криптовалюте?
poncho avatar
флаг my
@DimitriKoshelev: $n=1$ может быть недостаточно, если вы пытаетесь воспользоваться гомоморфными свойствами обязательств Педерсена; например учитывая обязательство $(x_1, x_2)$ и $(y_1, y_2)$, сгенерируйте ZKP, который $2(x_1, x_2) - 5(y_1, y_2) = (3, 7)$
Dimitri Koshelev avatar
флаг id
Я забыл сказать, что мой метод генерации дает $\приблизительно q$ кортежей $(Q_i)_{i=1}^n$ среди $E^n(\mathbb{F}_{\!q}) \приблизительно q^ н$. Разве это не важно для безопасности?
poncho avatar
флаг my
@DimitriKoshelev: критично (по крайней мере, для векторных обязательств Педерсена) то, что никто не знает нетривиального решения для $x_1G_1 + x_2G_2 + ... + x_nG_n = 0$ (где тривиальное решение $x_1 \equiv x_2 \equiv . .. \эквив x_n \эквив 0$). Ваша идея это предусматривает?
Dimitri Koshelev avatar
флаг id
Он обеспечивает это, но распределение далеко не равномерно на $E^n(\mathbb{F}_{\!q})$ (оно покрывает только $\приблизительно q$ кортежей). У меня сложилось впечатление, что это не важно, потому что $q$ в криптографии большой и мы можем часто менять независимые точки. Что вы думаете ?
poncho avatar
флаг my
@DimitriKoshelev: предположение о твердости, о котором я говорил, необходимо и достаточно для свойства связывания вектора Педерсена; на самом деле все равно, сколько кортежей будет возможно. Конечно, другие варианты использования могут делать другие предположения о твердости сгенерированных точек...
Dimitri Koshelev avatar
флаг id
насколько велика $n$ на практике?
Geoffroy Couteau avatar
флаг cn
«Обобщенные обязательства Педерсена» (именно так они называются) сейчас широко используются, особенно в контексте Bulletproof (https://eprint.iacr.org/2017/1066.pdf). Bulletproof реализован и используется в Monero, так что я думаю, это считается «реальной жизнью» :) Здесь $n$ обычно будет $32$ или $64$.
Рейтинг:2
флаг es

В нескольких схемах используется функция «хэш-точка», где необходимо сгенерировать точку EC, в которой дискретный лог относительно. любая другая точка EC неизвестна. В частности:

  1. Связываемая кольцевая подпись. Необходимо сгенерировать «образ ключа», где можно проверить правильность «образа ключа», объявленного с помощью подписи, и где, если бы тот же подписывающий (использующий тот же закрытый ключ) снова создал кольцевую подпись (даже с другими другие участники кольца с открытым ключом), было бы ясно, что они использовали один и тот же закрытый ключ для повторной подписи. Видеть здесь для деталей.

  2. Незаметная псевдослучайная функция использует хэш-точку для кодирования входных значений PRF в виде точек EC. здесь.

  3. Забывчивая передача использует хэш-точку, а EC El Gamal может использовать хэш-точку, если вам нужно только кодирование сообщений в точки для перехода в одном направлении. См. пример обоих здесь.

  4. Этот доказательство отсутствия членства использует хэш-точку для варианта обязательств Педерсена, где обязательство должно быть ослеплено, но не должно быть аддитивно гомоморфным.

Dimitri Koshelev avatar
флаг id
спасибо, но я не могу вычислить функцию "хэш-точка" в нескольких аргументах быстрее, чем по отдельности. Моя проблема в другом. Я могу сгенерировать несколько независимых точек (зависящих только от одного аргумента) быстрее, чем по отдельности.
knaccc avatar
флаг es
@DimitriKoshelev, можете ли вы уточнить, что вы подразумеваете под «зависимостью только от одного аргумента»? И работает ли ваш метод, когда есть кофактор, и вам нужно убедиться, что точка находится в той же большой подгруппе, что и большая подгруппа, созданная конкретной известной базовой точкой? Вам может быть интересно, что для криптовалюты Monero была проведена некоторая работа по оптимизации, чтобы гарантировать, что произвольная последовательность байтов может быть быстро сопоставлена ​​с точкой Ed25519: https://github.com/monero-project/research-lab/blob/master. /whitepaper/ge_fromfe_writeup/ge_fromfe.pdf
knaccc avatar
флаг es
Это код C и Python для быстрого сопоставления с действительными точками EC, основанный на статье, на которую я ссылался в комментарии выше: ops.c#L2210 https://github.com/monero-project/mininero/blob/c5fcee9d8ec8c302bca7fda8ce79b68e20d31c34/mininero.py#L238
Dimitri Koshelev avatar
флаг id
Методика Me возвращает кортеж $(Q_i)_{i=1}^n$ в зависимости от заданного элемента базового поля $\mathbb{F}_{\!q}$. Это работает, когда есть кофактор, потому что мы всегда можем очистить его.
knaccc avatar
флаг es
@DimitriKoshelev В примерах, которые я привел выше, допустим, вы выполняете какое-то пересечение частных наборов, и числа, отправляемые в OPRF, представляют собой небольшие целые числа меньше, скажем, 100. В зависимости от того, насколько быстрее может быть создание кортеж из 100 элементов с использованием вашего метода, возможно, было бы предпочтительнее использовать ваш метод, чем индивидуально выполнять операцию преобразования хэш-точки для каждого целочисленного ввода.
Dimitri Koshelev avatar
флаг id
моя техника не работает в постоянное время. Следовательно, его применение ограничено протоколами, где аргументы хеш-функции не являются секретными.
Рейтинг:1
флаг sa

Ваш вопрос по существу: полезно ли иметь возможность пробовать кортеж $(Q_1, Q_2, \dots, Q_n) \in E(F)^n$ таким образом, что отношения между точками неизвестны, но кортеж не выбирается из равномерного распределения.

С практической точки зрения есть два вопроса:

  • Часто эти точки замеряются при генерации параметров системы, что случается не очень часто и не критично по времени.
  • Многие схемы кажутся безопасными, даже если точки не были выбраны из равномерного распределения.

То есть практически это часто не очень полезно, но и часто небезопасно, по крайней мере с виду.

Основное возражение состоит в том, что доказательства безопасности этих схем иногда полагаются на возможность выборки кортежа. $(Q_1,\точки,Q_n)$ с некоторым встроенным люком, и это часто трудно сделать, если вам нужно неравномерное распределение в кортеже. Тогда это разрушит доказательство безопасности. (Пример: предположим, что я хочу иметь возможность двусмысленно начинать мульти-обязательства Педерсена.)

Некоторых людей это может не волновать, но я думаю, что большинство криптографов очень неохотно приняли бы это без какой-либо явной выгоды.

Другими словами, я ожидаю, что алгоритм, который у вас должен быть, в основном бесполезен, а иногда и непригоден для использования.

Тем не менее, алгоритм, который вы придумали, может быть кому-то интересен по каким-то причинам, независимо от этих препятствий. Или у него могут быть другие интересные свойства. Так что, возможно, стоит опубликовать.

Dimitri Koshelev avatar
флаг id
Спасибо. Вы пишете "Часто эти точки замеряются при генерации параметров системы, что происходит не очень часто и не критично по времени". Однако, если мы не будем часто менять точки, то есть риск, что злоумышленник может найти зависимость между ними, особенно если $n$ велико. Я прав ?
Dimitri Koshelev avatar
флаг id
Я не понял ваш абзац начиная с "Основное возражение...". Не могли бы вы уточнить?
флаг sa
Эти точки могут появиться в системных параметрах, открытых ключах и стандартах. Иными словами, долгосрочные объекты. Что конкретно вам не понятно?
Dimitri Koshelev avatar
флаг id
на самом деле, я могу усовершенствовать метод, чтобы сделать его единообразным. Даже в этом случае в среднем он работает намного эффективнее, чем последовательные вызовы карты с постоянным временем для кривой.

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

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