Рейтинг:3

Является ли обычным/действительным жестко кодировать элемент языка в симуляторе?

флаг us

Укороченная версия: Является ли обычной практикой (и действительной практикой) жестко кодировать элемент? $d \in \mathcal{L}$ языка в симулятор? (делает тренажер неоднородным и неконструктивным)

Длинная версия:

у меня есть доказательство $P$ который делает следующее: он принимает битовую строку $d \in \mathcal{L}$ для некоторых языков в $\textsf{НП}$, то он шифрует $д$ используя шифрование CPA-secure для получения шифрования $к$, и он отправляет неинтерактивное доказательство с нулевым разглашением (NIZK) $\пи$ доказывая, что $к$ шифрует сообщение $d \in \mathcal{L}$. Я хотел бы сказать сейчас, что эта схема не пропускает много информации о $д$, в том смысле, что существует симулятор $Сим$ так что для любого злонамеренного неоднородного верификатора $В^*$: $$\{Sim(V_\lambda^*)\}_{\lambda,d} \stackrel{comp}{\equiv} \{\textf{OUT}_{V^*}(P_\lambda(d) \leftrightarrow V^*_\лямбда)\}_{\лямбда,д}$$

( $\{X _{\lambda,d}\}_{\lambda,d}\stackrel{comp}{\equiv}\{Y _{\lambda,d}\}_{\lambda,d}$ символ обозначает вычислительную неразличимость: для любого неоднородного различителя $Д$, существует пренебрежимо малое $\му$ такой, что для всех $\lambda \in \mathbb{N},d \in \mathcal{L}$, $|\Pr[D_\lambda(X_d)]-\Pr[D_\lambda(Y_d)]| <\му(\лямбда)$)

Без части NIZK доказательство простое: мой симулятор просто выберет случайный $d'$ и зашифровать его в $к'$: не могу различить $к$ и $к'$ без нарушения безопасности CPA. Интуитивно понятно, что добавление доказательства NIZK не должно привести к утечке дополнительной информации...Однако я не уверен, как поступить в этом случае: у меня есть идея, но она кажется мне довольно странной (я никогда раньше не видел такого метода), и я немного сомневаюсь в этом.

Моя главная проблема заключается в том, что если я ввожу случайный $d'$ в НИЗК, затем $d'$ может не принадлежать $\mathcal{L}$, поэтому я не могу использовать симулятор NIZK, который ожидает $к$ быть шифрованием $d \in \mathcal{L}$. Итак, моя идея состоит в том, чтобы сказать, что если $\mathcal{L}$ не пусто, то существует строка $d' \in \mathcal{L}$ (который может быть или не быть равным $д$). Затем, если я зашифрую эту строку в $к'$, $к'$ теперь является «допустимым» элементом для ввода в симулятор NIZK. Так что теперь я мог просто запустить симулятор NIZK с помощью $к'$ чтобы получить $Сим$ Я хотел: окончательное доказательство неразличимости добавило бы промежуточное распределение, в котором мы используем $к$ с симулятором NIZK: первые две игры должны быть неразличимы из-за свойства NIZK, вторые две игры должны быть невозможно различимы из-за свойства CPA. (Мне все еще нужно формально написать этот набросок доказательства, чтобы проверить, не содержит ли он глупой ошибки).

Однако жесткое кодирование элемента $\mathcal{L}$ в $Сим$ выглядит немного странно (в частности, потому, что тренажер неконструктивен и неоднороден, так как для любого размера $д$ нам нужен другой $d'$). Это что-то общее/действительное в доказательствах с нулевым разглашением, или я что-то упустил?

Рейтинг:2
флаг us

На самом деле я запутался без всякой причины (спасибо, Майкл): мы можем просто определить две гибридные игры (здесь мы просто набросаем доказательство):

  1. в первой игре мы заменяем $\textsf{Доказательство}(k, (d, r))$ ($г$ случайность, используемая в шифровании) с $Сим(к)$: так что сообщение отправлено сейчас $(к, Сим(к))$. Невозможно отличить от $(k,\textsf{Доказательство}(k,(d,r)))$ из-за того, что протокол ZK, и $к$ на соответствующем языке (т. е. это шифрование $d \in \mathcal{L}$).
  2. Затем во втором гибриде мы заменяем $к$ как в сообщении, так и в Симуляторе $к'$ исходящий из случайного зашифрованного $д$ (которые могут не принадлежать $\mathcal{L}$): новое сообщение $(к', Сим(к'))$. Его невозможно отличить от $(к, Сим(к))$ или мы можем использовать этот симулятор, чтобы сломать IND-CPA: идея состоит в том, чтобы просто попросить противника запустить $Сим$ на входном шифровании $е$, а затем отправить $(е,Сим(е))$ к различителю. Жоффруа также сделал замечание, что здесь нам нужен IND-CPA против неоднородного противника (что в любом случае является стандартным определением). Причина в том, что $\stackrel{comp}{\equiv}$ формулируется для неоднородных различителей: поэтому, если неоднородный различитель может нарушить IND-CPA, то этот шаг недействителен для таких неоднородных различителей.

Что касается неоднородных симуляторов (спасибо Жоффруа за разъяснение), стандартное определение требует единого симулятора. Однако наличие неоднородного симулятора дает некоторые гарантии, и в большинстве случаев это нормально. Причина в том, что мы ожидаем, что безопасность будет сохраняться даже против нечестных неоднородных верификаторов, поэтому имеет смысл позволить симулятору также быть неоднородным, поскольку он отвечает за воспроизведение вывода верификатора.

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

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