Доказательства с нулевым разглашением — различия между версиями
Argentony (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показано 9 промежуточных версий 5 участников) | |||
Строка 4: | Строка 4: | ||
# '''Полнота''': если утверждение действительно верно, то доказывающий убедит в этом проверяющего. | # '''Полнота''': если утверждение действительно верно, то доказывающий убедит в этом проверяющего. | ||
# '''Корректность''': если утверждение неверно, то даже нечестный доказывающий не сможет убедить проверяющего за исключением пренебрежимо малой вероятности. | # '''Корректность''': если утверждение неверно, то даже нечестный доказывающий не сможет убедить проверяющего за исключением пренебрежимо малой вероятности. | ||
− | # '''Нулевое разглашение''': если утверждение верно, то | + | # '''Нулевое разглашение''': если утверждение верно, то даже нечестный проверяющий не узнает ничего кроме самого факта, что утверждение верно. |
+ | == Формальное определение == | ||
+ | Пусть <tex>L</tex> ∈ '''[[NP]]''', и <tex>M</tex> — машина Тьюринга для проверки сертификата, то есть <tex>x \in L \Leftrightarrow \exists y \in \{0,1\}^{p(|x|)} : M(x, y) = 1</tex>. Пара <tex>\langle P, V \rangle</tex> интерактивных вероятностных алгоритмов называется доказательством с нулевым разглашением для <tex>L</tex>, если выполнены следующие три условия: | ||
+ | # '''Полнота''': Для любого <tex>x \in L</tex> и сертификата <tex>y</tex> выполнено <tex>P \left( \text{out}_V \left\langle P(x,y), V(x) \right\rangle = 1 \right) \ge 2/3</tex> | ||
+ | # '''Корректность''': Если <tex>x \not \in L</tex>, то для любых <tex>P^*, y</tex> выполнено <tex> P \left( \text{out}_V \left\langle P^*(x,y), V(x) \right\rangle = 1 \right) \le 1/3</tex> | ||
+ | # '''Нулевое разглашение''': Для любой вероятностной полиномиальной интерактивной стратегии <tex>V^*</tex> существует вероятностный полиномиальный алгоритм <tex>S^*</tex>, такой что для любого <tex>x \not \in L</tex> и соответствующего сертификата ''y'' выполнено <tex>\text{out}_{V^*} \left \langle P(x,y), V^*(x) \right \rangle\equiv S^*(x)</tex>. Такой алгоритм <tex>S^*</tex> называется симулятором для <tex>V^*</tex>, он симулирует результат взаимодействия <tex>V^*</tex> c proover'ом без доступа к последнему. | ||
+ | == Пример: изоморфизм графов == | ||
− | + | Назовем проверяющую сторону Виктор (Victor), а доказывающую сторону Пегги (Peggy). Им обоим известна пара графов <tex>\langle G_0, G_1 \rangle</tex>. Допустим, эти графы изоморфны и Пегги известна биекция между вершинами этих графов, то есть некоторая перестановка <tex>\pi</tex>, такая что <tex>G_0 = \pi G_1</tex>. Пегги хочет доказать Виктору, что графы изоморфны, не выдавая при этом ни самой перестановки, ни какой-либо информации о ней. | |
− | + | Для этого Виктор и Пегги совместно выполняют несколько раундов протокола: | |
+ | * Вначале Пегги создает случайную перестановку <tex>\phi</tex>. Применив ее к <tex>G_0</tex>, она получает некий граф <tex>H = \phi G_0</tex>. | ||
+ | * Пегги передает граф <tex>H</tex> Виктору. | ||
+ | * Виктор выбирает случайный бит <tex>i \leftarrow \{0,1\}</tex> | ||
+ | * Виктор просит Пегги доказать изоморфизм <tex>G_i</tex> и <tex>H</tex>, то есть предоставить соответствие вершин этих двух графов. | ||
+ | * Если <tex>i = 0</tex>, то Пегги отсылает Виктору <tex>\phi</tex>, иначе <tex>\phi \cdot \pi</tex> | ||
− | + | В каждом раунде Виктор выбирает новый случайный бит, который неизвестен Пегги. Поэтому чтобы ответить на оба вопроса, Пегги нужно чтобы <tex>H</tex> был в самом деле изоморфен <tex>G_i</tex>. Это означает, что после достаточного числа раундов, Виктор может быть уверен в том, что графы <tex>G_0</tex> и <tex>G_1</tex> изоморфны. С другой стороны, Пегги не раскрывает никакой информации о перестановке <tex>\pi</tex>. Более того, Виктору сложно будет доказать кому-либо ещё изоморфизм этих графов. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Предположим, что у Пегги нет перестановки <tex>\pi</tex> и она хочет обмануть Виктора. Тогда граф <tex>H</tex>, который она отсылает Виктору, будет не изоморфен хотя бы одному из пары графов <tex>\langle G_0, G_1 \rangle</tex>. Поэтому вероятность того, что она сможет обмануть Виктора в одном раунде не более <tex>\frac{1}{2}</tex>. Вероятность того, что Пегги сможет обманывать Виктора на протяжении <tex>n</tex> раундов не превосходит <tex>2^{-n}</tex>. | |
− | Предположим, что | + | Предположим, что Виктор не узнал перестановку <tex>\pi</tex>, но хочет доказать Френку, что Пегги ее знает. Если Виктор, например, заснял на видео все раунды протокола, Френк едва ли ему поверит. Френк может предположить, что Пегги и Виктор в сговоре и в каждом раунде Виктор заранее сообщал Пегги свой выбор случайного бита, чтобы Пегги могла передавать ему <tex>H</tex> для проверок изоморфизма. Таким образом без участия Пегги доказать изоморфизм графов, можно лишь доказав, что во всех раундах протокола выбирались действительно случайные биты. |
− | |||
− |
Текущая версия на 19:38, 4 сентября 2022
В криптографии Доказательство с нулевым разглашением (информации) (Zero-Knowledge Proof) — это интерактивный протокол, позволяющий одной из сторон (проверяющему, Verifier) убедиться в достоверности какого-либо утверждения (обычно математического), не получив при этом никакой другой информации от второй стороны (доказывающего, Prover).
Доказательство с нулевым разглашением должно обладать тремя свойствами:
- Полнота: если утверждение действительно верно, то доказывающий убедит в этом проверяющего.
- Корректность: если утверждение неверно, то даже нечестный доказывающий не сможет убедить проверяющего за исключением пренебрежимо малой вероятности.
- Нулевое разглашение: если утверждение верно, то даже нечестный проверяющий не узнает ничего кроме самого факта, что утверждение верно.
Формальное определение
Пусть NP, и — машина Тьюринга для проверки сертификата, то есть . Пара интерактивных вероятностных алгоритмов называется доказательством с нулевым разглашением для , если выполнены следующие три условия:
∈- Полнота: Для любого и сертификата выполнено
- Корректность: Если , то для любых выполнено
- Нулевое разглашение: Для любой вероятностной полиномиальной интерактивной стратегии существует вероятностный полиномиальный алгоритм , такой что для любого и соответствующего сертификата y выполнено . Такой алгоритм называется симулятором для , он симулирует результат взаимодействия c proover'ом без доступа к последнему.
Пример: изоморфизм графов
Назовем проверяющую сторону Виктор (Victor), а доказывающую сторону Пегги (Peggy). Им обоим известна пара графов
. Допустим, эти графы изоморфны и Пегги известна биекция между вершинами этих графов, то есть некоторая перестановка , такая что . Пегги хочет доказать Виктору, что графы изоморфны, не выдавая при этом ни самой перестановки, ни какой-либо информации о ней.Для этого Виктор и Пегги совместно выполняют несколько раундов протокола:
- Вначале Пегги создает случайную перестановку . Применив ее к , она получает некий граф .
- Пегги передает граф Виктору.
- Виктор выбирает случайный бит
- Виктор просит Пегги доказать изоморфизм и , то есть предоставить соответствие вершин этих двух графов.
- Если , то Пегги отсылает Виктору , иначе
В каждом раунде Виктор выбирает новый случайный бит, который неизвестен Пегги. Поэтому чтобы ответить на оба вопроса, Пегги нужно чтобы
был в самом деле изоморфен . Это означает, что после достаточного числа раундов, Виктор может быть уверен в том, что графы и изоморфны. С другой стороны, Пегги не раскрывает никакой информации о перестановке . Более того, Виктору сложно будет доказать кому-либо ещё изоморфизм этих графов.Предположим, что у Пегги нет перестановки
и она хочет обмануть Виктора. Тогда граф , который она отсылает Виктору, будет не изоморфен хотя бы одному из пары графов . Поэтому вероятность того, что она сможет обмануть Виктора в одном раунде не более . Вероятность того, что Пегги сможет обманывать Виктора на протяжении раундов не превосходит .Предположим, что Виктор не узнал перестановку
, но хочет доказать Френку, что Пегги ее знает. Если Виктор, например, заснял на видео все раунды протокола, Френк едва ли ему поверит. Френк может предположить, что Пегги и Виктор в сговоре и в каждом раунде Виктор заранее сообщал Пегги свой выбор случайного бита, чтобы Пегги могла передавать ему для проверок изоморфизма. Таким образом без участия Пегги доказать изоморфизм графов, можно лишь доказав, что во всех раундах протокола выбирались действительно случайные биты.