Рейтинг:5

Доказательство равенства с нулевым разглашением между RSA Modulus и Prime Order Group

флаг kn

Предположим, что есть открытый ключ RSA. $(е,п)$ такой, что фактаризация $n$ неизвестно ни доказывающей, ни проверяющей сторонам. У нас также есть группа простого порядка $G$ и генератор $г$ для группы. За $m\в QR_n$, существует ли протокол доказательства с нулевым разглашением, чтобы доказать, что $C_1=м^е$ и $C_2=г^м$, для общественных ценностей $(C_1, C_2, е, н, г)$?

Fractalice avatar
флаг in
Что меня смущает, так это то, что $QR_n$ определяет значения по модулю $n$, тогда как в $g^m$ значение $m$ определяется по модулю $\varphi(n)$ (точнее по модулю $|G|$, как угодно) . И эти значения являются «ортогональными», поэтому они не определены должным образом. Принуждение $QR_n$ к точному подмножеству $\{0,\ldots,n-1\}$ является хакерским/неалгебраическим.
Fractalice avatar
флаг in
Кроме того, почему ограничение $m\in QR_n$?
kentakenta avatar
флаг kn
Спасибо за ваш отзыв. $m\in QR_n$, потому что это не случайное сообщение, а конкретное значение из протокола, и обе стороны знают, что $m\in QR_n$. Мое беспокойство было точно таким же, как и ваше. Я не мог понять, можем ли мы предоставить такое доказательство в случае, когда мы знаем, что m является квадратичным вычетом, или мы не можем.
Рейтинг:1
флаг cf

ТЛ, ДР: союз простых $\Сигма$-протоколы могут доказать это составное утверждение с нулевым разглашением. Однако доказательство несколько велико.

Во-первых, давайте разобьем ваше составное утверждение на более простые утверждения. Обратите внимание, что по существу вы хотите доказать с нулевым разглашением для $C_1=м^е$ и $C_2=г^м$ что следующее соотношение $\mathcal{R}(x,\omega)$ ($х$ является общедоступным параметром и $\омега$ является свидетелем) содержит: $$\mathcal{R}=\{((C_1,C_2),(m,l)):m\in QR_{N}\land C_1=m^e\bmod{N}\land C_2=g^m \bmod{p}\},$$ куда $л$ это квадратный корень из $м\bmod{N}$, то есть свидетелем является $(м,л)$ пара. Для простоты будем использовать следующие обозначения для элементарных утверждений: $$\mathcal{R}_1=\{((C_1,C_2),(m,l)):m\in QR_{N}\},$$ $$\mathcal{R}_2=\{((C_1,C_2),(m,l)): C_1=m^e\bmod{N}\},$$ $$\mathcal{R}_3=\{((C_1,C_2),(m,l)):C_2=g^m\bmod{p}\}. $$

Обратите внимание, что оба элементарных оператора $\mathcal{R}_2$ и $\mathcal{R}_3$ легко доказать с помощью $\Сигма$-протоколов, так как оба соотношения доказывают знание прообраза при гомоморфизме групп (т.е. $w$ удовлетворяющий $х=\фи(ш)$). В случае $\mathcal{R}_2$ групповой гомоморфизм $\фи(\омега)=\омега^е$, пока в $\mathcal{R}_3$, гомоморфизм $\фи(\омега)=г^{\омега}$. Это вполне стандартные утверждения, и вы можете найти, как доказать прообраз гомоморфизма в Бангертер и др. или в Книга Боне-Шоупа, среди многих других.

Чтобы доказать $\mathcal{R}_1$ немного сложно на первый взгляд, так как $м$ должно храниться в секрете, и мы хотим доказать, что $м$ является квадратичным вычетом, т. е. $м\в QR_N$. Почти во всех развертываниях криптосистемы RSA $е$ нечетно (я предполагаю, что это также имеет место в вашем приложении), поэтому $C_1=m^e\in QR_{N} \ тогда и только тогда, когда m\in QR_{N}$. Я также предполагаю, что шифровальщик знает $л$, один из квадратных корней $м$, так как факторизация неизвестна. Если шифровальщик не знает такого $л$, то он не может доказать, что это квадратичный вычет, потому что он не знает факторизации. Учитывая это обсуждение, теперь $\mathcal{R}_1$ по существу влечет за собой доказательство следующего утверждения: $$\mathcal{R}_1=\{((C_1),(l)):C_1=l^{2e}\bmod{N}\},$$ что снова является доказательством знания прообраза гомоморфизма групп. Мы знаем, как доказать это утверждение.

Чтобы объединить все это, чтобы получить доказательство с нулевым разглашением для составного утверждения $\mathcal{R}$, верификатору просто нужно отправить один и тот же случайный вызов для всех элементарных операторов (хотя случайный запрос отличается при повторении протокола!).

Каков размер доказательства? За $\Сигма$-протоколы в группах неизвестного порядка, погрешность корректности велика, поэтому нужно повторять $\Сигма$-протокол много раз, чтобы получить разумные уровни надежности. В каждом повторении ошибка правильности уменьшается на $\примерно 1/2$. Следовательно, протокол должен повторяться последовательно, чтобы получить достаточно малую ошибку знания (например, $80$ требуются последовательные повторения, чтобы получить ошибку знания $1/2^{80}$). Это привело бы к доказательству, состоящему из $2*2*80=320$ групповые элементы для $3$ элементарные операторы (2 оператора встречаются в группе RSA, поэтому нам нужно повторять много раз).

Чтобы обойти это ограничение эффективности, вам нужно использовать общую ссылочную строку, чтобы уменьшить размер доказательства. Видеть Бангертер и др.

Надеюсь, это поможет! Дайте мне знать, если я оставил какую-либо серую область в ответе!

kentakenta avatar
флаг kn
Большое спасибо за такое подробное объяснение, я видел статью Бангертера и др. первый раз. @fractalice в качестве комментария указал на еще одну проблему, которая меня беспокоит, помимо эффективности. Вы имеете представление об этой ситуации?
István András Seres avatar
флаг cf
Чтобы смягчить проблемы, упомянутые @fractalice (а именно, что $m$ может быть определено неправильно), вы можете добавить доказательство диапазона, чтобы гарантировать, что $m\leq p$. Я думаю, это устранило бы проблему.
kentakenta avatar
флаг kn
Это действительно имеет смысл. Еще одна идея, которую я придумал, заключалась в том, что вместо доказательства эквивалентности я могу попытаться добавить хеширование от $QR_n$ до $\mathbb{Z}_p^*$. Еще раз спасибо за ваш ответ.
Geoffroy Couteau avatar
флаг cn
Другой вариант — определить группу $\mathbb{G}$ так, чтобы она имела порядок $n$, такой же, как группа RSA. Это приводит к большой эллиптической кривой, но тогда вам не нужны дорогие доказательства диапазона, чтобы гарантировать надежность.

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

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