Доказательства с нулевым разглашением — различия между версиями
Argentony (обсуждение | вклад) |
Argentony (обсуждение | вклад) |
||
Строка 10: | Строка 10: | ||
== Пример: изоморфизм графов. == | == Пример: изоморфизм графов. == | ||
− | Назовем проверяющую сторону Петей, а доказывающую сторону Димой. Им обоим известна пара графов <tex>\langle G_0, G_1 \rangle</tex>. Допустим, Диме известена биекция между вершинами этих графов, то есть некоторая перестановка <tex>\pi</tex>, такая что <tex>G_0 = \pi G_1</tex>. Дима хочет доказать Пете, что графы изоморфны, не выдавая при этом ни самой перестановки, ни какой-либо информации о ней. | + | Назовем проверяющую сторону Петей, а доказывающую сторону Димой. Им обоим известна пара графов <tex>\langle G_0, G_1 \rangle</tex>. Допустим, эти графы изоморфны и Диме известена биекция между вершинами этих графов, то есть некоторая перестановка <tex>\pi</tex>, такая что <tex>G_0 = \pi G_1</tex>. Дима хочет доказать Пете, что графы изоморфны, не выдавая при этом ни самой перестановки, ни какой-либо информации о ней. |
Для этого Петя и Дима совместно выполняют несколько раундов протокола: | Для этого Петя и Дима совместно выполняют несколько раундов протокола: |
Версия 10:59, 27 мая 2010
В криптографии Доказательство с нулевым разглашением (информации) (Zero-Knowledge Proof) — это интерактивный протокол, позволяющий одной из сторон (проверяющему, Verifier) убедиться в достоверности какого-либо утверждения (обычно математического), не получив при этом никакой другой информации от второй стороны (доказывающего, Prover).
Доказательство с нулевым разглашением должно обладать тремя свойствами:
- Полнота: если утверждение действительно верно, то доказывающий убедит в этом проверяющего.
- Корректность: если утверждение неверно, то даже нечестный доказывающий не сможет убедить проверяющего за исключением пренебрежимо малой вероятности.
- Нулевое разглашение: если утверждение верно, то даже нечестный проверяющий не узнает ничего кроме самого факта, что утверждение верно.
Пример: изоморфизм графов.
Назовем проверяющую сторону Петей, а доказывающую сторону Димой. Им обоим известна пара графов
. Допустим, эти графы изоморфны и Диме известена биекция между вершинами этих графов, то есть некоторая перестановка , такая что . Дима хочет доказать Пете, что графы изоморфны, не выдавая при этом ни самой перестановки, ни какой-либо информации о ней.Для этого Петя и Дима совместно выполняют несколько раундов протокола:
- Вначале Дима создает случайную перестановку . Применив ее к , он получает некий граф .
- Дима передает граф Пете.
- Петя выбирает случайный бит
- Петя просит Диму доказать изоморфизм и , то есть предоставить соответствие вершин этих двух графов.
- Если , то Дима отсылает Пете , иначе
В каждом раунде Петя выбирает новый случайный бит, который неизвестен Диме. Поэтому чтобы ответить на оба вопроса, Диме нужно чтобы
был в самом деле изоморфен . Это означает, что после достаточного числа раундов, Петя может быть уверен в том, что графы и изоморфны. С другой стороны, Дима не раскрывает никакой информации о перестановке . Более того, Пете сложно будет доказать кому-либо ещё изоморфизм этих графов.Предположим, что у Димы нет перестановки
и он хочет обмануть Петю. Тогда граф , который он отсылает Пете, будет не изоморфен хотя бы одному из пары графов . Поэтому вероятность того, что он сможет обмануть Петю в одном раунде не более . Вероятность того, что Дима сможет обманывать Петю на протяжении раундов не превосходит .Предположим, что Петя не узнал перестановку
, но хочет доказать Васе, что Дима ее знает. Если Петя, например, заснял на видео все раунды протокола, Вася едва ли ему поверит. Вася может предположить, что Петя и Дима в сговоре и в каждом раунде Петя заранее сообщал Диме свой выбор случайного бита, чтобы Дима мог передавать ему для проверок изоморфизма. Таким образом без участия Димы доказать изоморфизм графов, можно лишь доказав, что во всех раундах протокола выбирались действительно случайные биты.