Рейтинг:3

Докажите, что $x$ — это сумма чисел с цифровым знаком, не раскрывая слагаемых.

флаг pg

Представьте себе это:

  • Чарли выбирает два целых числа $x_1$ и $x_2$ и подписывает каждое из этих целых чисел одним и тем же закрытым ключом.
  • Чарли отправляет Алисе следующее:
    • $x_1$ и $x_2$,
    • две подписи и
    • его открытый ключ.
  • Алиса вычисляет $х = х_1 + х_2$ и отправляет Бобу следующее:
    • $х$ и
    • Открытый ключ Чарли.

Может ли Алиса доказать Бобу (без участия Чарли), что $х$ это сумма двух чисел, которые были подписаны Чарли, не раскрывая $x_1$ и $x_2$ к Бобу?

Реальным примером может быть: Могу ли я криптографически доказать, что две мои кредитные карты вместе могут покрыть расходы, не раскрывая информацию об отдельных кредитных картах?

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

Рейтинг:4
флаг my

Как сказал Марк, теоретически это решаемая задача (мы знаем, как это сделать, известные методы непросты).

Однако, немного подправив ситуацию, мы можем упростить эту задачу.

Мое решение основано на обязательствах Педерсена; они основаны на большой группе простого размера (где проблема дискретного журнала сложна) и двух членах группы $г$ и $ч$ (которые не имеют известной взаимосвязи; в частности, никто не знает решения $х$ к $ г ^ х = ч $).

Приверженность Pedersen ценностям $х$ это значение $ г ^ х ч ^ г $, для некоторого случайного $г$; характеристики; мы можем выдать обязательство (опубликовав значение $ г ^ х ч ^ г $), а затем открыть обязательство (опубликовав значения $х, г$; любой может убедиться, что эти ценности дают обязательство.

  • Кто-то смотрит на $ г ^ х ч ^ г $ не могу определить что $х$ равно (фактически, для любого возможного значения $х$, есть значение $г$ это придало бы этому обязательству ценность)

  • Эмитент не может открыть обязательство двумя способами; то есть, если он выдает обязательство $ г ^ х ч ^ г $, он не может найти значение $г'$ такой, что $g^{x'} ч^{r'}$ оценивается в одно и то же значение.

Имея это в виду, он мое предложение:

Чарли отправляет Алисе следующие значения:

  • $x_1$ и $x_2$

  • Подписанные обязательства по этим ценностям, то есть подписанные копии $г^{x_1} ч^{r_1}$ и $г^{x_2}ч^{r_2}$

  • Случайные значения $r_1$ и $r_2$ (поскольку он уже дал значения, которые он обязался использовать, предоставление ему этих случайных значений безвредно)

  • Его открытый ключ

Затем Алиса вычисляет $х = х_1 + х_2$, и генерирует доказательство с нулевым разглашением, что сумма двух значений, переданных $г^{x_1} ч^{r_1}$ и $г^{x_2}ч^{r_2}$ является $х$. Это можно сделать, сгенерировав доказательство того, что Алиса знает значение $s$ такой, что $h^s = g^{x_1} h^{r_1} \cdot g^{x_2}h^{r_2} \cdot g^{-x}$; Алиса может сгенерировать такое доказательство, только если $x_1 + x_2 = x$

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

Это, кажется, решает конечную цель (и довольно просто; есть некоторые детали, на которые я лишь неопределенно махнул рукой, однако небольшое исследование выявит их).

Elias Strehle avatar
флаг pg
Спасибо, это может быть именно то, что я ищу! Можно ли заставить этот подход работать и для $x_1 * x_2$? И можно ли распространить это на знаковые кортежи $(c, x_1), (c, x_2)$ и доказать не только то, что $x = x_1 + x_2$, но и то, что константы $c$ идентичны, не раскрывая $c$ ? ... для последнего расширения реальная интерпретация будет заключаться в том, что я могу использовать только кредитные карты, выпущенные на мое имя (= c).
poncho avatar
флаг my
@EliasStrehle: подписанные кортежи были бы легкими; генерировать коммиты в $c$ и $x_1$ отдельно (и подписывать оба коммита как одно сообщение); то же самое для $c$ и $x_2$. Затем сгенерируйте доказательства того, что $x = x_1 + x_2$ и что два $c$ являются одним и тем же значением. Что касается продукта, тут сложнее. Мало того, что сразу приходит на ум простой способ, но у вас также есть проблема (если вы умножаете в $\mathbb{Z}$), вы можете разложить произведение $x_1 \times x_2$, чтобы получить всего с несколькими возможностями для $x_1, x_2$ (и если этот продукт не очень большой, это легко)
Elias Strehle avatar
флаг pg
На самом деле это будет умножение в $\mathbb{R}$...так что я полагаю, что это решает одну проблему за счет более серьезной ;-) Но большое спасибо за ваши комментарии! Удивительно, чего можно добиться с помощью криптографии.
Elias Strehle avatar
флаг pg
Будет ли преобразование журнала работать для умножения? То есть, Чарли фиксирует $\log x_1$ и $\log x_2$, а Алиса отправляет $x = x_1 * x_2$ Бобу и доказывает, что $\log x = \log(x_1 * x_2) = \log x_1 + \log х_2$. Не уверен, что это практично, учитывая ошибки округления...
poncho avatar
флаг my
@EliasStrehle: это звучит работоспособно (учитывая, что $\log$ вычисляется вне криптографии). Конечно, вам нужно будет ввести коэффициент масштабирования; однако, учитывая, что размеры групп (и, следовательно, размеры значений, которые мы можем зафиксировать) довольно велики (по крайней мере, 256 бит, возможно, больше), для этого *достаточно* места...
Рейтинг:1
флаг ng

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

$$f : A\to B,\qquad f(a_0+a_1) = f(a_0)\oplus f(a_1)$$

здесь я использую $+, \оплюс$ написать две (потенциально разные) «операции сложения». Таким образом, аддитивный гомоморфизм хорошо ведет себя по отношению к умножению. Сходным образом,

$$f : A\to B,\qquad f(a_0\times a_1) = f(a_0) \otimes f(a_1)$$

будет мультипликативным гомоморфизмом (хотя здесь это не важно).

В этом языке все, что вам нужно, — это аддитивно гомоморфная подпись. Многие существуют, см. например Эта бумага. К сожалению, я не знаю навскидку особо простых (это несколько отличается от аддитивно-гомоморфного шифрования --- есть ряд простых схем). Но то, что вы хотите, это хотя бы теоретически известная концепция.

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

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