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