Задний план
Я понимаю интерактивную версию протокола Шнорра и понимаю, как симулятор может генерировать выходные данные, которые i.i.d соответствуют выходным данным доказывающего-верификатора:
Вопрос
Чего я не понимаю, так это того, как симулятор генерирует правильную стенограмму, когда мы переходим на неинтерактивную версию протокола идентификации Шнорра? Страница 4 лекций CS355 2019 г. показывает, что тренажер может «Программировать $Ч(г,ч,у)$ быть $с$".
И 23 стр. следующие конспекты лекций показывает, что симулятор может установить $Ч$ к любой произвольной хеш-функции.
Мне это кажется странным, и я не понимаю. Почему мы предполагаем, что S может выбрать любую хеш-функцию? На самом деле будет некоторая фиксированная хеш-функция, которую мы используем для генерации случайного вызова. $с$, правильно?
Насколько я понимаю, доказательство HVZK не работает, если мы не позволяем симулятору создавать какие-либо хеш-функции. Предполагая, что у нас есть фиксированная хэш-функция, устойчивая к прообразу, симулятор не может генерировать сообщения доказывающего $u$, $z$ способом, соответствующим этой задаче. В интерактивном случае симулятор может выбрать $z$ и $с$ случайным образом и работайте в обратном порядке, чтобы получить $u$ детерминистически где $u = \frac{g^z}{h^c}$. Но в неинтерактивном случае вам нужно найти $u$ и $с$ такой, что $u = \frac{g^z}{h^c}$ И $H(g,h,u) = c$, и это NP-сложно. Таким образом, вы теряете свойство нулевого разглашения, поскольку симулятор не может создать действительную стенограмму.
Так как же на практике реализуются неинтерактивные доказательства знаний с нулевым разглашением?
Список используемой литературы