Рейтинг:5

Является ли следующая схема доказательства нулевым разглашением?

флаг ru

Учтите, что я хочу доказать знание некоторого закрытого ключа RSA, соответствующего открытому ключу. $(е,N)$. Наивная схема интерактивного доказательства будет действовать следующим образом:

  • $В$ генерирует какое-то случайное сообщение $м$ и шифрует его, отправляя зашифрованные данные $с$ к $P$
  • $В$ затем просит $м$ вернулся из $P$. Предполагая $P$ мог не знать $м$ снаружи $с$, тогда $P$ может доказать знание $д$ ответив правильным $м$

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

Интуитивно эта схема не является нулевым разглашением, так как мы выдаем что-то существенное (например, расшифровку произвольного $с$). Однако мы можем легко построить симулятор для этой схемы, который будет выбирать случайным образом $м$, зашифруйте его, а затем просто отправьте обратно оригинал $м$ - что означает, что это на самом деле нулевое знание. Я упускаю какой-то нюанс, что может/не может делать симулятор?

Является ли эта схема нулевым разглашением с RSA (почему/почему бы и нет)? Если это не так, будет ли это нулевое разглашение с какой-то идеализированной асимметричной схемой, которая не уязвима для любых атак, основанных на оракулах дешифрования (почему/почему бы и нет)?

Vadym Fedyukovych avatar
флаг in
Протокол «Глубокие монеты» https://crypto.stackexchange.com/questions/78176/protocol-for-proof-of-knowledge-of-l-th-root
Рейтинг:3
флаг ru

Я кое-что прочитал с тех пор, как опубликовал этот вопрос, и теперь я лучше разбираюсь в этом, поэтому я отвечу сам себе.

Путаница возникает из-за разницы между с нулевым разглашением и честный проверяющий с нулевым знанием. Рассмотрим верификатор $V^0$ который будет генерировать случайный $м$, зашифруйте его, чтобы сгенерировать зашифрованный текст $с$ и отправить его по каналу $P$. $P$ (предполагается, что он также честен) затем ответит $м$. Это взаимодействие тривиально с нулевым разглашением. Интуитивно, $V^0$ ничему не научился, так как они уже знали $м$ - формально мы можем построить симулятор, который создает ложную стенограмму доказательства, генерируя случайную $м$ и его шифрование. Однако, $V^0$ это честный проверяющий - это верификатор, действующий по протоколу.

Рассмотрим следующий вредоносный верификатор $В^*$: он не выполняет никакого шифрования и просто всегда отправляет установленный зашифрованный текст, $с^*$. Теперь кое-что известно - расшифровка $с^*$, который не был известен ранее, так как $с^*$ является не результатом известного шифрования, а результатом конкретного выбора. Определение нулевого разглашения гласит, что для всех верификаторов должен существовать симулятор. $В^*$ не можем быть смоделированы без знания секрета, так как легко проверить правильность расшифровки путем его повторного шифрования, поэтому правильное расшифрование $с^*$ должен быть известен симулятору, и в этом случае симулятор должен уметь расшифровывать произвольные зашифрованные тексты, что невозможно без доступа к секрету; таким образом, схема на самом деле не является нулевым разглашением, независимо от используемой криптосистемы (если только криптосистема не взломана и, следовательно, симулятор может расшифровать произвольные сообщения за полиномиальное время, и в этом случае доказательство спорно). Обратите внимание, что здесь важно $В^*$ отправляет фиксированный зашифрованный текст каждый раз - если $с^*$ выбирается случайным образом для каждого взаимодействия, стенограмма может быть легко фальсифицирована.

Это не часть первоначального вопроса, но я думаю, что это важно поднять - это не действительное доказательство знаний, как я и предполагал. На самом деле (обозначая $S_\mathcal{M}$ эта схема реализована с некоторой криптосистемой $\mathcal{M}$), "$S_\mathcal{M}$ является доказательством знания» $\подразумевает$ "расшифровка доступа оракула к $\mathcal{M}$ позволяет эксфильтрацию закрытого ключа». Это прямое следствие отсутствия этапа фиксации, который использовался бы в $\Сигма$-протокол. Доказательство знания требует, чтобы мы могли написать экстрактор $Е$ который может получить секрет из $P$ если разрешено перематывать его состояние. Однако, $P$ как описано здесь, не имеет состояния - независимо от того, какое взаимодействие или когда во взаимодействии отправляется ввод, вывод один и тот же - таким образом, существование эффективного экстрактора для $P$ сразу подразумевает, что $\mathcal{M}$ полностью сломан с доступом оракула расшифровки. Это просто интерактивное доказательство, которое доказывает (с $\эпсилон$, допустимая погрешность определена нечетко), что $P$ может расшифровывать произвольные сообщения - это не удовлетворяет требованиям доказательства знания закрытого ключа.

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

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