Это очень небезопасно. Любой может создать фальшивое доказательство того, что два зашифрованных текста эквивалентны.
Данный $c_1$ и $c_2$, выберите случайный $х$ и разреши $a_1=c_1x\mod {n^2}$ и $a_2=c_2x\mod {n^2}$. Мы видим, что $a_1c_2\эквивалент a_2c_1\pmod {n^2}$ что соответствует критерию проверки.
Доказательство того, что $c_1$ и $c_2$ являются шифрованием одного и того же значения, эквивалентно показу, что $c_1/c_2\pmod{n^2}$ является $n$й мощности. Вот сигма-протокол для доказательства того, что вы можете сделать неинтерактивным с помощью обычной фишки Fiat-Shamir.
Чтобы доказать, что $к$ является $n$модуль мощности $n^2$
Мы предполагаем, что доказывающий наделен $s:k\equiv s^n\pmod{n^2}$.
Обязательство
Доказательство генерирует равномерное случайное число $ г \ мод {п ^ 2} $, вычисляет $ с = г ^ п \ мод {п ^ 2} $ и публикует $с$.
Испытание
Верификатор запрашивает, чтобы проверяющий опубликовал либо $г$ такой, что $ г ^ п = с \ мод {п ^ 2} $ или же $г'$ такой, что $r'^n=ck\mod{n^2}$.
Ответ
Prover публикует либо $г$ или же $r'=rs\mod{n^2}$ согласно вызову.
Если ответчику доступны оба возможных ответа, то ответчик будет знать $s=r'/r$ так что знание обоих ответов доказывает знание $s$. Поэтому протокол является правильным с высокой вероятностью, поскольку количество итераций протокола увеличивается.
Verifer может генерировать для себя случайные стенограммы протоколов, сначала выбирая вызов, затем ответ, а затем обязательство. Поэтому протокол является нулевым разглашением.