Доказательство с нулевым разглашением_интерактивное_неинтерактивное

задняя часть

Сегодня г-н Мо рассказал о родственных концепциях доказательства с нулевым разглашением. Прежде всего, он рассказал о том, для чего используется доказательство с нулевым разглашением. Доказательство с нулевым разглашением предназначено для решения проблемы, когда объект а доказывает объекту b, что он обладает определенными полномочиями, но не может сообщить объекту а. какую-либо полезную информацию.

Как насчет доказательства с нулевым разглашением? См. следующий пример. Существует две реализации доказательства с нулевым разглашением: одна — интерактивная проверка, а другая — неинтерактивная проверка.

Ниже я буду использоватьPУказывает, что это свидетель, используйтеVПредставляет валидатор. В то же время я также представлю сценарий с использованием дискретных логарифмов, чтобы облегчить понимание проблемы.

Сцены:

Зная y и g, чтобы найти w, потому что это дискретный логарифм, поэтому, даже если y и g известны, w нельзя вычислить с текущими возможностями компьютера.

gw=yg^w=y

Предположим, что объект P знает w, но как он докажет объекту V, что он знает w?

  • P отправляет W, который он знает, V, а затем ждет, пока V сообщит результат самому себе. Нецелесообразно, причина такова: если P действительно знает w, то V может не знать w, что вызывает утечку конфиденциальности.
  • Правильный способ сделать это: использоватьинтерактивныйинеинтерактивныйдоказательства с нулевым разглашением.

1. Интерактивный

(1) Во-первых, P будет знать то, что он знаетw=w0+w1 w=w_0+w_1, разделить сgw0=y0g^{w_0}=y_0иgw1=y1g^{w_1}=y_1, а затем положитьy0y_0иy1y_1отправил В.

(2) Тогда V сначала проверяетy0*y1=y?y_0*y_1 = y?, если не равно, чтобы непосредственно определить, что P не знает w, мошенничество. Если они равны, переходим к следующему шагу проверки.

(3) Ви сказал П, ты пришлешь мнеw0w_0илиw1w_1(Вот случайный выбор Ви), позвольте мне проверить, обманываете ли вы. Например, P посылает V aw1w_1, то вычисляется Vgw1=y1g^{w_1}=y_1, равны. Если оно не равно, непосредственно определите, что P жульничает. Если оно равно, в данный момент невозможно определить, что P знает w, потому что возможно, что P составил паруw0w_0иw1w_1, именно такgw1=y1g^{w_1}=y_1.

(4) На шаге (3) выше вероятность того, что P жульничает и успешно обманывает V, равна:1/21/2, если шаг (3) повторяется n раз и V успешно проверяет P, то вероятность обмана V равна(1/2)n(1/2)^n, так что когда n достаточно велико, вероятность быть обманутым близка к 0, и тогда мы можем думать, что P действительно знает w.

как ты себя чувствуешь? После описанного выше процесса P не только доказывает V, что у него есть w, но и слил ли он какую-либо полезную информацию V, разве это не потрясающе!

Но есть еще одна проблема. Если указанное выше n очень велико, это будет очень громоздко. Если P отправляет данные проверки V только один раз, он может доказать, что имеет w, что очень удобно. Как этого добиться? Взгляните на неинтерактивные доказательства, представленные ниже.

2. Не интерактивный

план 1:

(1) Во-первых, V отправляет число C в P. C — это последовательность, состоящая из 01 (например: 010111010110001101), а c используется для представления бита в C ниже.

(2) После P для каждой цифры числа c вычислитьwc=w0(1c)+w1(c)w_c=w_0(1-c)+w_1(c),Предполагатьgwc=gw0(1c)+w1=(y0)1c*y1cg^{w_c}=g^{w_0(1-c)+w_1}=(y_0)^{1-c}*y_1^{c}

(3) После этого P вычисляет соответствующее значение каждого cwcw_c, и положиwcw_c,y0y_0, $$y_1$ помещается в множество S. S={w_c, y_0, _y_1|w_c, y_0, _y_1|w_c, y_0, _y_1|…}

(4) Затем V начинает проверять каждую паруwcw_c,y0 y_0, y1y_1, чтобы увидеть, удовлетворяет ли онgwc=gw0(1c)+w1=(y0)1c*y1cg^{w_c}=g^{w_0(1-c)+w_1}=(y_0)^{1-c}*y_1^{c}.

Сценарий 2:

по сравнению сплан 1Чем меньше взаимодействий, тем лучше.

Во-первых, P и V совместно определяют хэш-функцию, такую ​​как H

(1) Во-первых, P случайным образом генерируетy0y_0иy1y_1, а затем вычислитьc=H(y0,y1)c=H(y_0, y_1).

(2) Затем зациклить шаг (1) для вычисления nwa=w0(1c)+w1(c)w_a=w_0(1-c)+w_1(c),Предполагатьgwa=gw0(1c)+w1=(y0)1c*y1cg^{w_a}=g^{w_0(1-c)+w_1}=(y_0)^{1-c}*y_1^{c}

(3) После этого положитьwaw_a,y0y_0,y1y_1в набор С. S={w_a, y_0, _y_1|w_a, y_0, _y_1|w_a, y_0, _y_1|…}

(4) V получает набор S, посланный P, а затем вычисляетc=H(y0,y1)c=H(y_0, y_1), затем посмотрите наgwa=(y0)1c*y1cg^{w_a}=(y_0)^{1-c}*y_1^{c}, равны.

Суммировать:

Г-н Мо, который вел занятия, был очень подробным и простым для понимания.В то же время я хотел бы поблагодарить своего преподавателя за то, что он порекомендовал мне этот курс. Слушать лекции больших парней действительно полезно.Если вы будете больше слушать лекции Цинбэя, будучи студентом, не будет ли это необходимо... Еще не поздно наверстать упущенное, просто сделайте это!