stringtranslate.com

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

В криптографии доказательство с нулевым разглашением — это протокол, в котором одна сторона (доказывающая) может убедить другую сторону (проверяющую), что некоторое данное утверждение истинно, не передавая проверяющей стороне никакой информации, выходящей за рамки простого факта истинности этого утверждения. [1] Интуиция, лежащая в основе доказательств с нулевым разглашением, заключается в том, что доказать обладание соответствующей информацией тривиально, просто раскрыв ее; сложная часть — доказать это обладание, не раскрывая эту информацию (или какой-либо ее аспект вообще). [2]

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

Доказательства с нулевым разглашением могут быть интерактивными, что означает, что доказывающий и проверяющий обмениваются сообщениями в соответствии с некоторым протоколом, или неинтерактивными, что означает, что проверяющий убежден одним сообщением доказывающего, и никакое другое общение не требуется. В стандартной модели требуется взаимодействие, за исключением тривиальных доказательств проблем BPP . [3] В обычных моделях случайной строки и случайного оракула существуют неинтерактивные доказательства с нулевым разглашением . Эвристика Фиата–Шамира может использоваться для преобразования определенных интерактивных доказательств с нулевым разглашением в неинтерактивные. [4] [5] [6]

Абстрактные примеры

Пещера Али-Бабы

Существует известная история, представляющая основные идеи доказательств с нулевым разглашением, впервые опубликованная в 1990 году Жан-Жаком Кискватером и другими в их статье «Как объяснить вашим детям протоколы с нулевым разглашением». [7] Двумя сторонами в истории доказательства с нулевым разглашением являются Пегги как доказывающий утверждение и Виктор , проверяющий утверждение.

В этой истории Пегги раскрыла секретное слово, используемое для открытия волшебной двери в пещере. Пещера имеет форму кольца, с входом с одной стороны и волшебной дверью, блокирующей противоположную сторону. Виктор хочет узнать, знает ли Пегги секретное слово; но Пегги, будучи очень скрытным человеком, не хочет раскрывать свои знания (секретное слово) Виктору или раскрывать факт своего знания миру в целом.

Они обозначают левый и правый пути от входа как A и B. Сначала Виктор ждет снаружи пещеры, пока Пегги входит. Пегги выбирает либо путь A, либо B; Виктору не разрешается видеть, какой путь она выберет. Затем Виктор входит в пещеру и выкрикивает название пути, которым он хочет, чтобы она воспользовалась, чтобы вернуться, A или B, выбранный наугад. При условии, что она действительно знает волшебное слово, это легко: она открывает дверь, если необходимо, и возвращается по нужному пути.

Однако предположим, что она не знает слова. Тогда она сможет вернуться по названному пути, только если Виктор назовет название того же пути, по которому она вошла. Поскольку Виктор выберет A или B наугад, у нее будет 50% шанс угадать правильно. Если бы они повторили этот трюк много раз, скажем, 20 раз подряд, ее шанс успешно предугадать все запросы Виктора сократился бы до 1 из 2 20 , или 9,56  ×  10 −7 .

Таким образом, если Пегги неоднократно появляется на выходе, на котором Виктор называет свое имя, то он может сделать вывод, что весьма вероятно, что Пегги действительно знает секретное слово.

Одно замечание относительно сторонних наблюдателей: даже если Виктор носит скрытую камеру, которая записывает всю транзакцию, единственное, что запишет камера, это в одном случае крик Виктора "А!" и появление Пегги в точке А или в другом случае крик Виктора "Б!" и появление Пегги в точке В. Запись такого типа было бы тривиально подделать любым двум людям (требуется только, чтобы Пегги и Виктор заранее договорились о последовательности букв А и Б, которые будет кричать Виктор). Такая запись, безусловно, никогда не будет убедительной для кого-либо, кроме первоначальных участников. Фактически, даже человек, присутствовавший в качестве наблюдателя на первоначальном эксперименте, не должен был бы быть убежден, поскольку Виктор и Пегги могли бы организовать весь "эксперимент" от начала до конца.

Далее, если Виктор выбирает свои A и B, подбрасывая монету на камеру, этот протокол теряет свое свойство нулевого знания; подбрасывание монеты на камере, вероятно, было бы убедительным для любого человека, который позже посмотрит запись. Таким образом, хотя это и не раскрывает Виктору секретное слово, это дает Виктору возможность убедить мир в целом, что у Пегги есть это знание — вопреки заявленным желаниям Пегги. Однако цифровая криптография обычно «подбрасывает монеты», полагаясь на генератор псевдослучайных чисел , который похож на монету с фиксированным рисунком орла и решки, известным только владельцу монеты. Если монета Виктора вела себя таким образом, то опять же Виктор и Пегги могли бы подделать эксперимент, поэтому использование генератора псевдослучайных чисел не раскрыло бы миру знания Пегги так же, как использование подброшенной монеты.

Пегги могла бы доказать Виктору, что она знает волшебное слово, не раскрывая его ему, за одну попытку. Если Виктор и Пегги вместе пойдут к выходу пещеры, Виктор сможет наблюдать, как Пегги входит через A и выходит через B. Это с уверенностью докажет, что Пегги знает волшебное слово, не раскрывая его Виктору. Однако такое доказательство может быть замечено третьей стороной или записано Виктором, и такое доказательство будет убедительным для любого. Другими словами, Пегги не могла бы опровергнуть такое доказательство, заявив, что она вступила в сговор с Виктором, и поэтому она больше не контролирует, кто знает о ее знании.

Два мяча и друг-дальтоник

Представьте, что ваш друг «Виктор» дальтоник ( а вы нет), и у вас есть два мяча: один красный и один зеленый, но в остальном они идентичны. Виктору мячи кажутся совершенно одинаковыми. Виктор скептически относится к тому, что мячи на самом деле различимы. Вы хотите доказать Виктору, что мячи на самом деле разного цвета , но ничего больше. В частности, вы не хотите раскрывать, какой мяч красный, а какой зеленый.

Вот система доказательства. Вы даете два мяча Виктору, и он кладет их себе за спину. Затем он берет один из мячей, вытаскивает его из-за спины и показывает его. Затем он снова кладет его себе за спину и затем выбирает, показать ли только один из двух мячей, выбирая один из двух наугад с равной вероятностью. Он спросит вас: «Я подменил мяч?» Вся эта процедура затем повторяется столько раз, сколько необходимо.

Глядя на цвета шаров, вы, конечно, можете с уверенностью сказать, поменял ли он их местами или нет. С другой стороны, если шары были одного цвета и, следовательно, неразличимы, вы никак не сможете угадать с вероятностью выше 50%.

Поскольку вероятность того, что вы бы случайно преуспели в идентификации каждого переключения/непереключения, составляет 50%, вероятность того, что вы случайно преуспели во всех переключениях/непереключениях, приближается к нулю («надежность»). Если вы и ваш друг повторите это «доказательство» несколько раз (например, 20 раз), ваш друг должен убедиться («полнота»), что шары действительно разного цвета.

Приведенное выше доказательство является доказательством с нулевым разглашением , поскольку ваш друг никогда не узнает, какой мяч зеленый, а какой красный; на самом деле, он не получает никаких знаний о том, как различать мячи. [8]

Где Уолдо?

Одним из известных примеров доказательства с нулевым разглашением является пример «Где Уолдо». В этом примере доказывающий хочет доказать проверяющему, что он знает, где находится Уолдо на странице книги « Где Уолдо?» , не раскрывая его местонахождение проверяющему. [9]

Доказывающий начинает с того, что берет большую черную доску с маленьким отверстием в ней, размером с Уолдо. Доска в два раза больше книги в обоих направлениях, поэтому проверяющий не может видеть, где на странице доказывающий ее размещает. Затем доказывающий размещает доску на странице так, чтобы Уолдо оказался в отверстии. [9]

Проверяющий теперь может смотреть через отверстие и видеть Уолдо, но не может видеть никакую другую часть страницы. Таким образом, доказывающий доказал верификатору, что он знает, где находится Уолдо, не раскрывая никакой другой информации о его местоположении. [9]

Этот пример не является идеальным доказательством с нулевым разглашением, поскольку доказывающий раскрывает некоторую информацию о местоположении Уолдо, например, положение его тела. Однако это достойная иллюстрация базовой концепции доказательства с нулевым разглашением.

Определение

Доказательство с нулевым разглашением некоторого утверждения должно удовлетворять трем свойствам:

  1. Полнота : если утверждение истинно, то честный проверяющий (то есть тот, кто правильно следует протоколу) будет убежден в этом факте честным доказывающим.
  2. Обоснованность : если утверждение ложно, то ни один доказывающий-недобросовестник не сможет убедить честного проверяющего в его истинности, за исключением случаев с небольшой вероятностью.
  3. Нулевое разглашение : если утверждение истинно, то ни один проверяющий не узнает ничего, кроме того факта, что утверждение истинно. Другими словами, простого знания утверждения (а не секрета) достаточно, чтобы представить себе сценарий, показывающий, что доказывающий знает секрет. Это формализуется путем демонстрации того, что у каждого проверяющего есть некий симулятор , который, имея только утверждение, которое нужно доказать (и не имея доступа к доказывающему), может создать расшифровку, которая «выглядит как» взаимодействие между честным доказывающим и рассматриваемым проверяющим.

Первые два из них являются свойствами более общих интерактивных систем доказательств . Третье — то, что делает доказательство нулевым разглашением. [10]

Доказательства с нулевым разглашением не являются доказательствами в математическом смысле этого термина, поскольку существует некоторая малая вероятность, ошибка обоснованности , что обманывающий доказывающий сможет убедить проверяющего в ложном утверждении. Другими словами, доказательства с нулевым разглашением являются вероятностными «доказательствами», а не детерминированными доказательствами. Однако существуют методы уменьшения ошибки обоснованности до пренебрежимо малых значений (например, правильное угадывание сотни или тысячи бинарных решений имеет ошибку обоснованности 1/2 100 или 1/2 1000 соответственно. По мере увеличения числа бит ошибка обоснованности уменьшается до нуля).

Формальное определение нулевого разглашения должно использовать некоторую вычислительную модель, наиболее распространенной из которых является модель машины Тьюринга . Пусть P , V и S — машины Тьюринга. Интерактивная система доказательства с ( P , V ) для языка L имеет нулевой разглашение, если для любого вероятностного полиномиального времени (PPT) верификатора существует PPT симулятор S такой, что:

где Вид [ P ( x )↔ ( x , z )] — это запись взаимодействий между P ( x ) и V ( x , z ) . Доказывающий P моделируется как имеющий неограниченную вычислительную мощность (на практике P обычно является вероятностной машиной Тьюринга ). Интуитивно определение гласит, что интерактивная система доказательства ( P , V ) имеет нулевое знание, если для любого верификатора существует эффективный симулятор S (зависящий от ), который может воспроизвести разговор между P и на любом заданном входе. Вспомогательная строка z в определении играет роль «предварительного знания» (включая случайные монеты ). Определение подразумевает, что не может использовать какую-либо предварительную строку знания z для извлечения информации из своего разговора с P , потому что если S также дано это предварительное знание, то он может воспроизвести разговор между и P так же, как и раньше. [ необходима цитата ]

Приведенное определение — это определение идеального нулевого знания. Вычислительное нулевое знание достигается путем требования, чтобы представления верификатора и симулятора были только вычислительно неразличимы , учитывая вспомогательную строку. [ необходима цитата ]

Практические примеры

Дискретный логарифм заданного значения

Эти идеи можно применить к более реалистичному приложению криптографии. Пегги хочет доказать Виктору, что она знает дискретный логарифм заданного значения в заданной группе . [11]

Например, имея значение y , большое простое число p и генератор , она хочет доказать, что знает значение x, такое что g xy (mod p ) , не раскрывая x . Действительно, знание x можно использовать в качестве доказательства идентичности, поскольку Пегги могла бы иметь такое знание, поскольку она выбрала случайное значение x , которое никому не раскрыла, вычислила y = g x mod p и распределила значение y среди всех потенциальных проверяющих, так что в более позднее время доказательство знания x будет эквивалентно доказательству идентичности как Пегги.

Протокол работает следующим образом: в каждом раунде Пегги генерирует случайное число r , вычисляет C = g r mod p и раскрывает это Виктору. Получив C , Виктор случайным образом отправляет один из следующих двух запросов: он либо просит Пегги раскрыть значение r , либо значение ( x + r ) mod ( p − 1) .

Виктор может проверить любой ответ; если он запросил r , он может вычислить g r mod p и проверить, что он соответствует C . Если он запросил ( x + r ) mod ( p − 1) , то он может проверить, что C соответствует этому, вычислив g ( x + r ) mod ( p − 1) mod p и проверив, что он соответствует ( C · y ) mod p . Если Пегги действительно знает значение x , то она может ответить на любой из возможных вызовов Виктора.

Если бы Пегги знала или могла угадать, какой вызов собирается сделать Виктор, то она могла бы легко обмануть и убедить Виктора, что она знает x, когда это не так: если она знает, что Виктор собирается запросить r , то она действует как обычно: она выбирает r , вычисляет C = g r mod p и раскрывает C Виктору; она сможет ответить на вызов Виктора. С другой стороны, если она знает, что Виктор запросит ( x + r ) mod ( p − 1) , то она выбирает случайное значение r , вычисляет C ′ ≡ g r · ( g x ) −1 mod p и раскрывает C Виктору как значение C , которое он ожидает. Когда Виктор предлагает ей раскрыть ( x + r ) mod ( p − 1) , она раскрывает r , для которого Виктор проверит согласованность, поскольку он, в свою очередь, вычислит g r mod p , что соответствует C ′ · y , поскольку Пегги умножила на модульную мультипликативную обратную величину y .

Однако, если в любом из вышеперечисленных сценариев Виктор бросает вызов, отличный от того, который она ожидала и для которого она сфабриковала результат, то она не сможет ответить на вызов, исходя из предположения о невозможности решения дискретного журнала для этой группы. Если она выбрала r и раскрыла C = g r mod p , то она не сможет произвести действительный ( x + r ) mod ( p − 1) , который прошел бы проверку Виктора, учитывая, что она не знает x . А если она выбрала значение r , которое представляется как ( x + r ) mod ( p − 1) , то ей придется ответить дискретным журналом значения, которое она раскрыла, — но Пегги не знает этот дискретный журнал, поскольку значение C , которое она раскрыла, было получено с помощью арифметики с известными значениями, а не путем вычисления степени с известным показателем.

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

Чтобы показать, что приведенное выше интерактивное доказательство дает нулевое знание, кроме того факта, что Пегги знает x , можно использовать аналогичные аргументы, которые использовались в приведенном выше доказательстве полноты и корректности. В частности, симулятор, скажем, Саймон, который не знает x , может смоделировать обмен между Пегги и Виктором с помощью следующей процедуры. Во-первых, Саймон случайным образом подбрасывает честную монету. Если результат «орел», то он выбирает случайное значение r , вычисляет C = g r mod p и раскрывает C , как будто это сообщение от Пегги Виктору. Затем Саймон также выводит сообщение «запросить значение r », как будто оно отправлено от Виктора Пегги, и немедленно выводит значение r , как будто оно отправлено от Пегги Виктору. Один раунд завершен. С другой стороны, если результатом подбрасывания монеты является «решка», то Саймон выбирает случайное число r , вычисляет C ′ = g r · y −1 mod p и раскрывает C ′ , как будто это сообщение от Пегги Виктору. Затем Саймон выводит «запросить значение ( x + r ) mod ( p − 1) » , как будто это сообщение от Виктора Пегги. Наконец, Саймон выводит значение r , как будто это ответ от Пегги Виктору. Один раунд завершен. Согласно предыдущим аргументам при доказательстве полноты и корректности, интерактивное общение, смоделированное Саймоном, неотличимо от истинного соответствия между Пегги и Виктором. Таким образом, гарантируется свойство нулевого разглашения.

Краткое резюме

Пегги доказывает, что знает значение x (например, свой пароль).

  1. Пегги и Виктор договариваются о простом числе p и генераторе мультипликативной группы поля p .
  2. Пегги вычисляет значение y = g x mod p и передает его Виктору.
  3. Следующие два шага повторяются (большое) количество раз.
    1. Пегги многократно выбирает случайное значение rU [0, p − 2] и вычисляет C = g r mod p . Она передает значение C Виктору.
    2. Виктор просит Пегги вычислить и передать либо значение ( x + r ) mod ( p − 1) , либо значение r . В первом случае Виктор проверяет C · yg ( x + r ) mod ( p − 1) mod p . Во втором случае он проверяет C = g r mod p .

Значение ( x + r ) mod ( p − 1) можно рассматривать как зашифрованное значение x mod ( p − 1) . Если r действительно случайно, равномерно распределено между нулем и p − 2 , то это не приводит к утечке информации о x (см. одноразовый блокнот ).

Гамильтонов цикл для большого графа

Следующая схема принадлежит Мануэлю Блюму . [12]

В этом сценарии Пегги знает гамильтонов цикл для большого графа G. Виктор знает G , но не цикл (например, Пегги сгенерировала G и раскрыла его ему.) Нахождение гамильтонова цикла для большого графа считается вычислительно невыполнимым, поскольку известно, что его соответствующая версия решения является NP-полной . Пегги докажет, что она знает цикл, не раскрывая его просто (возможно, Виктор заинтересован в его покупке, но сначала хочет проверить, или, может быть, Пегги — единственная, кто знает эту информацию и доказывает свою личность Виктору).

Чтобы показать, что Пегги знает этот гамильтонов цикл, они с Виктором играют в несколько раундов игры:

Важно, чтобы обязательство перед графом было таким, чтобы Виктор мог проверить во втором случае, что цикл действительно состоит из ребер из H. Это можно сделать, например, приняв обязательство перед каждым ребром (или его отсутствием) по отдельности.

Полнота

Если Пегги знает гамильтонов цикл в G , то она может легко удовлетворить требование Виктора либо об изоморфизме графов, производящем H из G (что она обязалась сделать на первом шаге), либо о гамильтоновом цикле в H (который она может построить, применив изоморфизм к циклу в G ).

Нулевое разглашение

Ответы Пегги не раскрывают исходный гамильтонов цикл в G . В каждом раунде Виктор узнает только изоморфизм H с G или гамильтонов цикл в H . Ему понадобятся оба ответа для одного H , чтобы обнаружить цикл в G , поэтому информация остается неизвестной до тех пор, пока Пегги может генерировать отдельный H в каждом раунде. Если Пегги не знает о гамильтоновом цикле в G , но каким-то образом заранее знает, что Виктор попросит показать в каждом раунде, то она может схитрить. Например, если бы Пегги знала заранее, что Виктор попросит показать гамильтонов цикл в H , то она могла бы сгенерировать гамильтонов цикл для неродственного графа. Аналогично, если бы Пегги знала заранее, что Виктор попросит показать изоморфизм, то она могла бы просто сгенерировать изоморфный граф H (в котором она также не знает гамильтонов цикл). Виктор мог бы смоделировать протокол сам (без Пегги), потому что он знает, что он попросит показать. Следовательно, Виктор не получает никакой информации о гамильтоновом цикле в G из информации, раскрытой в каждом раунде.

Надежность

Если Пегги не знает информации, то она может угадать, какой вопрос задаст Виктор, и сгенерировать либо граф, изоморфный G , либо гамильтонов цикл для несвязанного графа, но поскольку она не знает гамильтонов цикл для G , она не может сделать и то, и другое. С этой догадкой ее шанс обмануть Виктора равен 2 n , где n — количество раундов. Для всех реалистичных целей нереально сложно победить доказательство с нулевым разглашением с разумным количеством раундов таким способом.

Варианты нулевого разглашения

Различные варианты нулевого разглашения можно определить, формализовав интуитивное понятие того, что подразумевается под выводом симулятора, «похожим» на выполнение реального протокола доказательства, следующими способами:

Типы с нулевым разглашением

Существуют различные типы доказательств с нулевым разглашением:

Схемы доказательства с нулевым разглашением могут быть построены на основе различных криптографических примитивов, таких как криптография на основе хэширования , криптография на основе пар , многосторонние вычисления или криптография на основе решеток .

Приложения

Системы аутентификации

Исследования в области доказательств с нулевым разглашением были мотивированы системами аутентификации , в которых одна сторона хочет доказать свою личность второй стороне с помощью некоторой секретной информации (например, пароля), но не хочет, чтобы вторая сторона узнала что-либо об этом секрете. Это называется « доказательством знания с нулевым разглашением ». Однако пароль, как правило, слишком мал или недостаточно случаен, чтобы его можно было использовать во многих схемах для доказательств знания с нулевым разглашением. Доказательство пароля с нулевым разглашением — это особый вид доказательства знания с нулевым разглашением, который решает проблему ограниченного размера паролей. [ необходима цитата ]

В апреле 2015 года был представлен протокол доказательств «один из многих» ( протокол Sigma ). [14] В августе 2021 года Cloudflare , американская компания, занимающаяся веб-инфраструктурой и безопасностью, решила использовать механизм доказательств «один из многих» для конфиденциальной веб-верификации с использованием оборудования поставщика. [15]

Этическое поведение

Одним из применений доказательств с нулевым разглашением в криптографических протоколах является обеспечение честного поведения при сохранении конфиденциальности. Грубо говоря, идея состоит в том, чтобы заставить пользователя доказать, используя доказательство с нулевым разглашением, что его поведение является правильным в соответствии с протоколом. [16] [17] Благодаря обоснованности мы знаем, что пользователь должен действительно действовать честно, чтобы иметь возможность предоставить действительное доказательство. Благодаря нулевому разглашению мы знаем, что пользователь не ставит под угрозу конфиденциальность своих секретов в процессе предоставления доказательства. [ необходима цитата ]

Ядерное разоружение

В 2016 году Принстонская лаборатория физики плазмы и Принстонский университет продемонстрировали технологию, которая может быть применима к будущим переговорам по ядерному разоружению . Она позволит инспекторам подтвердить, является ли объект действительно ядерным оружием, без записи, обмена или раскрытия внутренних механизмов, которые могут быть секретными. [18]

Блокчейны

Доказательства с нулевым разглашением применялись в протоколах Zerocoin и Zerocash, что привело к рождению криптовалют Zcoin [19] (позже переименованного в Firo в 2020 году) [20] и Zcash в 2016 году. Zerocoin имеет встроенную модель смешивания, которая не доверяет никаким одноранговым узлам или централизованным поставщикам смешивания для обеспечения анонимности. [19] Пользователи могут совершать транзакции в базовой валюте и могут циклически вводить и выводить валюту из Zerocoin. [21] Протокол Zerocash использует похожую модель (вариант, известный как неинтерактивное доказательство с нулевым разглашением ) [22], за исключением того, что он может скрывать сумму транзакции, в то время как Zerocoin не может. Учитывая значительные ограничения данных транзакций в сети Zerocash, Zerocash менее подвержен атакам на конфиденциальность по времени по сравнению с Zerocoin. Однако этот дополнительный уровень конфиденциальности может привести к потенциально незаметной гиперинфляции предложения Zerocash, поскольку мошеннические монеты невозможно отследить. [19] [23]

В 2018 году были представлены Bulletproofs. Bulletproofs — это усовершенствование неинтерактивных доказательств с нулевым разглашением, где доверенная настройка не требуется. [24] Позднее он был реализован в протоколе Mimblewimble (на котором основаны криптовалюты Grin и Beam) и криптовалюте Monero . [25] В 2019 году Firo внедрил протокол Sigma, который является улучшением протокола Zerocoin без доверенной настройки. [26] [14] В том же году Firo представил протокол Lelantus, улучшение протокола Sigma, где первый скрывает источник и сумму транзакции. [27]

Децентрализованные идентификаторы

Доказательства с нулевым разглашением по своей природе могут повысить конфиденциальность в системах совместного использования идентификационных данных, которые уязвимы к утечкам данных и краже идентификационных данных. При интеграции в децентрализованную систему идентификаторов ZKP добавляют дополнительный уровень шифрования в документы DID. [28]  

История

Доказательства с нулевым разглашением были впервые задуманы в 1985 году Шафи Голдвассером , Сильвио Микали и Чарльзом Ракоффом в их статье «Сложность знаний интерактивных систем доказательств». [16] В этой статье была представлена ​​иерархия IP интерактивных систем доказательств ( см. интерактивная система доказательств ) и разработана концепция сложности знаний — измерения объема знаний о доказательстве, переданных от доказывающего к проверяющему. Они также дали первое доказательство с нулевым разглашением для конкретной задачи — решения квадратичных невычетов по модулю m . Вместе со статьей Ласло Бабаи и Шломо Морана эта знаковая статья изобрела интерактивные системы доказательств, за которые все пять авторов получили первую премию Гёделя в 1993 году.

По словам Голдвассер, Микали и Ракоффа:

Особый интерес представляет случай, когда это дополнительное знание по сути равно 0, и мы показываем, что [можно] интерактивно доказать, что число является квадратичным без остатка по модулю m, высвобождая 0 дополнительных знаний. Это удивительно, поскольку неизвестен эффективный алгоритм для определения квадратичного остатка по модулю m , когда факторизация m не задана. Более того, все известные NP- доказательства для этой задачи демонстрируют простую факторизацию m . Это указывает на то, что добавление взаимодействия к процессу доказательства может уменьшить объем знаний, которые необходимо передать для доказательства теоремы.

Квадратичная проблема невычета имеет как алгоритм NP , так и алгоритм co-NP , и поэтому лежит на пересечении NP и co-NP . Это также было верно для нескольких других проблем, для которых впоследствии были обнаружены доказательства с нулевым знанием, такие как неопубликованная система доказательств Одеда Голдрайха, проверяющая, что двукратный простой модуль не является целым числом Блюма . [29]

Одед Голдрайх , Сильвио Микали и Ави Вигдерсон пошли еще дальше, показав, что, предполагая существование невзламываемого шифрования, можно создать систему доказательств с нулевым разглашением для NP-полной задачи раскраски графа тремя цветами. Поскольку каждая задача в NP может быть эффективно сведена к этой задаче, это означает, что при этом предположении все задачи в NP имеют доказательства с нулевым разглашением. [30] Причина такого предположения заключается в том, что, как и в приведенном выше примере, их протоколы требуют шифрования. Обычно упоминаемым достаточным условием существования невзламываемого шифрования является существование односторонних функций , но вполне возможно, что некоторые физические средства также могут этого достичь.

Вдобавок к этому, они также показали, что проблема неизоморфизма графов , дополнение к проблеме изоморфизма графов , имеет доказательство с нулевым разглашением. Эта проблема находится в co-NP , но в настоящее время не известно, что она находится ни в NP , ни в каком-либо практическом классе. В более общем плане, Рассел Импальяццо и Моти Юнг , а также Бен-Ор и др. продолжили бы показывать, что, также предполагая односторонние функции или невзламываемое шифрование, существуют доказательства с нулевым разглашением для всех проблем в IP  =  PSPACE , или, другими словами, все, что может быть доказано интерактивной системой доказательств, может быть доказано с нулевым разглашением. [31] [32]

Не желая делать ненужных предположений, многие теоретики искали способ устранить необходимость в односторонних функциях . Одним из способов было использование интерактивных систем доказательств с несколькими доказывающими (см. интерактивная система доказательств ), которые имеют несколько независимых доказывающих вместо одного, что позволяет проверяющему «перекрестно допрашивать» доказывающих в изоляции, чтобы не быть введенным в заблуждение. Можно показать, что без каких-либо предположений о неразрешимости все языки в NP имеют доказательства с нулевым знанием в такой системе. [33]

Оказывается, что в среде, подобной Интернету, где несколько протоколов могут выполняться одновременно, построение доказательств с нулевым разглашением становится более сложной задачей. Направление исследований, изучающих параллельные доказательства с нулевым разглашением, было инициировано работой Дворка , Наора и Сахая . [34] Одним из конкретных достижений в этом направлении стала разработка протоколов доказательств, неразличимых свидетелями . Свойство неразличимости свидетеля связано со свойством нулевого разглашения, однако протоколы, неразличимые свидетелями, не страдают от тех же проблем параллельного выполнения. [35]

Другим вариантом доказательств с нулевым разглашением являются неинтерактивные доказательства с нулевым разглашением . Блюм, Фельдман и Микали показали, что общая случайная строка, разделяемая доказывающей и проверяющей стороной, достаточна для достижения вычислительного нулевого разглашения без необходимости взаимодействия. [5] [6]

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

Наиболее популярные интерактивные или неинтерактивные протоколы доказательства с нулевым разглашением (например, zk-SNARK) можно в целом разделить на следующие четыре категории: краткие неинтерактивные аргументы знаний (SNARK), масштабируемые прозрачные аргументы знаний (STARK), проверяемое полиномиальное делегирование (VPD) и краткие неинтерактивные аргументы знаний (SNARG). Ниже приведен список протоколов и библиотек доказательства с нулевым разглашением вместе со сравнениями на основе прозрачности , универсальности , правдоподобной постквантовой безопасности и парадигмы программирования . [36] Прозрачный протокол — это тот, который не требует какой-либо доверенной настройки и использует публичную случайность. Универсальный протокол — это тот, который не требует отдельной доверенной настройки для каждой схемы. Наконец, правдоподобно постквантовый протокол — это тот, который не подвержен известным атакам с использованием квантовых алгоритмов.

Смотрите также

Внешние ссылки

Ссылки

  1. ^ Аад, Имад (2023), Малдер, Валентин; Мермуд, Ален; Лендерс, Винсент; Телленбах, Бернхард (ред.), «Доказательство с нулевым разглашением», Тенденции в технологиях защиты данных и шифрования , Cham: Springer Nature Switzerland, стр. 25–30, doi : 10.1007/978-3-031-33386-6_6 , ISBN 978-3-031-33386-6
  2. ^ Голдрайх, Одед (2001). Основы криптографии, том I. Издательство Кембриджского университета. стр. 184. doi :10.1017/CBO9780511546891. ISBN 9780511546891.
  3. ^ Голдрайх, Одед (2001). Основы криптографии, том I. Издательство Кембриджского университета. стр. 247. doi :10.1017/CBO9780511546891. ISBN 9780511546891.
  4. ^ Голдрайх, Одед (2001). Основы криптографии, том I. Издательство Кембриджского университета. стр. 299. doi :10.1017/CBO9780511546891. ISBN 9780511546891.
  5. ^ ab Blum, Manuel; Feldman, Paul; Micali, Silvio (1988). "Неинтерактивное нулевое знание и его применение". Труды двадцатого ежегодного симпозиума ACM по теории вычислений - STOC '88 (PDF) . стр. 103–112. doi :10.1145/62212.62222. ISBN 978-0897912648. S2CID  7282320. Архивировано (PDF) из оригинала 14 декабря 2018 г. . Получено 2 июня 2022 г. .
  6. ^ ab Wu, Huixin; Wang, Feng (2014). «Обзор неинтерактивной системы доказательства с нулевым разглашением и ее приложений». The Scientific World Journal . 2014 : 560484. doi : 10.1155/2014/560484 . PMC 4032740. PMID  24883407 . 
  7. ^ Квискватер, Жан-Жак; Гийу, Луи К.; Берсон, Томас А. (1990). «Как объяснить вашим детям протоколы с нулевым разглашением». Достижения в криптологии — Труды CRYPTO' 89 (PDF) . Конспект лекций по информатике. Том 435. С. 628–631. doi :10.1007/0-387-34805-0_60. ISBN 978-0-387-97317-3.
  8. ^ Халкиас, Константинос. «Продемонстрируйте, как работают доказательства с нулевым разглашением, не используя математику». CordaCon 2017. Получено 13 сентября 2017 г.
  9. ^ abc Murtagh, Jack (1 июля 2023 г.). «Где Уолдо? Как математически доказать, что вы его нашли, не раскрывая, где он находится». Scientific American . Получено 2023-10-02 .
  10. ^ Фейге, Уриэль; Фиат, Амос; Шамир, Ади (1988-06-01). «Доказательства идентичности с нулевым разглашением». Журнал криптологии . 1 (2): 77–94. doi : 10.1007/BF02351717 . ISSN  1432-1378. S2CID  2950602.
  11. ^ Чаум, Дэвид; Эвертсе, Ян-Хендрик; ван де Грааф, Йерун (1988). «Улучшенный протокол демонстрации владения дискретными логарифмами и некоторыми обобщениями». Достижения в криптологии — EUROCRYPT '87 . Конспекты лекций по информатике. Том. 304. стр. 127–141. дои : 10.1007/3-540-39118-5_13. ISBN 978-3-540-19102-5.
  12. ^ Блюм, Мануэль (1986). «Как доказать теорему, чтобы никто другой не мог ее заявить» (PDF) . Труды ICM : 1444–1451. CiteSeerX 10.1.1.469.9048 . Архивировано (PDF) из оригинала 3 января 2023 г. 
  13. ^ Sahai, Amit; Vadhan, Salil (1 марта 2003 г.). "Полная проблема для статистического нулевого знания" (PDF) . Journal of the ACM . 50 (2): 196–249. CiteSeerX 10.1.1.4.3957 . doi :10.1145/636865.636868. S2CID  218593855. Архивировано (PDF) из оригинала 2015-06-25. 
  14. ^ ab Groth, J; Kohlweiss, M (14 апреля 2015 г.). «Одно из многих доказательств: или как раскрыть секрет и потратить монету». Достижения в криптологии — EUROCRYPT 2015. Конспект лекций по информатике. Том 9057. Берлин, Гейдельберг: EUROCRYPT 2015. С. 253–280. doi :10.1007/978-3-662-46803-6_9. hdl : 20.500.11820/f6ec5d8f-cfda-4f56-9bd0-d9222b8d9a43 . ISBN 978-3-662-46802-9. S2CID  16708805.
  15. ^ "Введение доказательств с нулевым разглашением для подтверждения подлинности частной сети с использованием оборудования разных поставщиков". Блог Cloudflare . 2021-08-12 . Получено 2021-08-18 .
  16. ^ ab Goldwasser, S.; Micali, S.; Rackoff, C. (1989), «Сложность знаний интерактивных систем доказательства» (PDF) , SIAM Journal on Computing , 18 (1): 186–208, doi :10.1137/0218012, ISSN  1095-7111
  17. ^ Абаскал, Джексон; Фагихи Серешги, Мохаммад Хоссейн; Хазай, Кармит; Ишай, Ювал; Венкитасубраманиам, Мутурамакришнан (2020-10-30). «Практична ли классическая парадигма GMW? Случай неинтерактивного активно защищенного 2PC». Труды конференции ACM SIGSAC 2020 года по компьютерной и коммуникационной безопасности . CCS '20. Виртуальное мероприятие, США: Ассоциация вычислительной техники. стр. 1591–1605. doi :10.1145/3372297.3423366. ISBN 978-1-4503-7089-9. S2CID  226228208.
  18. ^ "PPPL и Принстон демонстрируют новую технологию, которая может быть применима к будущим переговорам по ядерному разоружению - Принстонская лаборатория физики плазмы". www.pppl.gov . Архивировано из оригинала 2017-07-03.
  19. ^ abc Hellwig, Daniel; Karlic, Goran; Huchzermeier, Arnd (3 мая 2020 г.). «Конфиденциальность и анонимность». Создайте свой собственный блокчейн . Менеджмент для профессионалов. SpringerLink. стр. 112. doi :10.1007/978-3-030-40142-9_5. ISBN 9783030401429. S2CID  219058406 . Получено 3 декабря 2020 г. .
  20. ^ Херст, Саманта (28 октября 2020 г.). «Zcoin объявляет о ребрендинге на новое имя и тикер «Firo»». Crowdfund Insider. Архивировано из оригинала 1 ноября 2020 г. Получено 4 ноября 2020 г.
  21. ^ Бонно, Дж.; Миллер, А.; Кларк, Дж.; Нараянан, А. (2015). «SoK: исследовательские перспективы и проблемы биткоина и криптовалют». Симпозиум IEEE 2015 года по безопасности и конфиденциальности . Сан-Хосе, Калифорния. стр. 104–121. doi :10.1109/SP.2015.14. ISBN 978-1-4673-6949-7. S2CID  549362.{{cite book}}: CS1 maint: location missing publisher (link)
  22. ^ Бен-Сассон, Эли; Кьеза, Алессандро; Гарман, Кристина; Грин, Мэтью; Майерс, Ян; Тромер, Эран; Вирза, Мадарс (18 мая 2014 г.). "Zerocash: децентрализованные анонимные платежи из биткойнов" (PDF) . IEEE . Получено 26 января 2016 г. .
  23. ^ Оркатт, Майк. «Умопомрачительный криптографический трюк обещает сделать блокчейны мейнстримом». MIT Technology Review . Получено 18.12.2017 .
  24. ^ ab Bünz, B; Bootle, D; Boneh, A (2018). «Пуленепробиваемые материалы: краткие доказательства для конфиденциальных транзакций и не только». Симпозиум IEEE по безопасности и конфиденциальности (SP) 2018 года . Сан-Франциско, Калифорния. стр. 315–334. doi : 10.1109/SP.2018.00020 . ISBN 978-1-5386-4353-2. S2CID  3337741.{{cite book}}: CS1 maint: location missing publisher (link)
  25. ^ Одендал, Ханси; Шаррок, Кейл; Хеерден, SW. «Пуленепробиваемые покрытия и мимблвимбл». Университет Тари Лабс. Архивировано из оригинала 29 сентября 2020 г. Получено 3 декабря 2020 г.
  26. ^ Эндрю, Манро (30 июля 2019 г.). «Криптовалюта Zcoin представляет доказательства с нулевым разглашением без доверенной настройки». Finder Australia. Архивировано из оригинала 30 июля 2019 г. Получено 30 июля 2019 г.
  27. ^ Арам, Дживанян (7 апреля 2019 г.). «Lelantus: Towards Confidentiality and Anonymity of Blockchain Transactions from Standard Assumptions». Архив Cryptology ePrint (Отчет 373) . Получено 14 апреля 2019 г.
  28. ^ Чжоу, Лу; Диро, Абебе; Сайни, Аканкша; Кайсар, Шахриар; Хиеп, Фам Конг (2024-02-01). «Использование доказательств с нулевым разглашением для совместного использования идентификаторов на основе блокчейна: обзор достижений, проблем и возможностей». Журнал информационной безопасности и приложений . 80 : 103678. doi : 10.1016/j.jisa.2023.103678 . ISSN  2214-2126.
  29. ^ Голдрайх, Одед (1985). «Доказательство с нулевым знанием того, что двукратный простой модуль не является целым числом Блюма». Неопубликованная рукопись .
  30. ^ Голдрайх, Одед; Микали, Сильвио; Вигдерсон, Ави (1991). «Доказательства, которые не дают ничего, кроме своей достоверности». Журнал ACM . 38 (3): 690–728. CiteSeerX 10.1.1.420.1478 . doi :10.1145/116825.116852. S2CID  2389804. 
  31. ^ Рассел Импальяццо, Моти Юнг: Прямые вычисления с минимальными знаниями. CRYPTO 1987: 40-51
  32. ^ Бен-Ор, Майкл; Голдрайх, Одед; Голдвассер, Шафи; Хастад, Йохан; Килиан, Джо; Микали, Сильвио; Рогавэй, Филлип (1990). «Все доказуемое доказуемо в нулевом знании». В Goldwasser, S. (ред.). Advances in Cryptology – CRYPTO '88 . Lecture Notes in Computer Science. Vol. 403. Springer-Verlag. pp. 37–56.
  33. ^ Бен-ор, М.; Голдвассер, Шафи; Килиан, Дж.; Вигдерсон, А. (1988). «Интерактивные доказательства с несколькими доказательствами: как устранить предположения о неразрешимости» (PDF) . Труды 20-го симпозиума ACM по теории вычислений : 113–121.
  34. ^ Дворк, Синтия; Наор, Мони; Сахай, Амит (2004). «Параллельное нулевое знание». Журнал АКМ . 51 (6): 851–898. CiteSeerX 10.1.1.43.716 . дои : 10.1145/1039488.1039489. S2CID  52827731. 
  35. ^ Фейге, Уриэль; Шамир, Ади (1990). «Протоколы неразличимости свидетелей и сокрытия свидетелей». Труды двадцать второго ежегодного симпозиума ACM по теории вычислений — STOC '90 . С. 416–426. CiteSeerX 10.1.1.73.3911 . doi :10.1145/100216.100272. ISBN  978-0897913614. S2CID  11146395.
  36. ^ ab Mouris, Dimitris; Tsoutsos, Nektarios Georgios (2021). «Zilch: A Framework for Deploying Transparent Zero-Knowledge Proofs». IEEE Transactions on Information Forensics and Security . 16 : 3269–3284. doi : 10.1109/TIFS.2021.3074869. ISSN  1556-6021. S2CID  222069813.
  37. ^ Парно, Б.; Хауэлл, Дж.; Джентри, К.; Райкова, М. (май 2013 г.). «Пиноккио: почти практически проверяемые вычисления». Симпозиум IEEE 2013 г. по безопасности и конфиденциальности . стр. 238–252. doi :10.1109/SP.2013.47. ISBN 978-0-7695-4977-4. S2CID  1155080.
  38. ^ Костелло, Крейг; Фурнет, Седрик; Хауэлл, Джон; Кольвайс, Маркульф; Кройтер, Бенджамин; Наериг, Майкл; Парно, Брайан; Захур, Сами (май 2015 г.). «Geppetto: Versatile Verifiable Computation». Симпозиум IEEE 2015 г. по безопасности и конфиденциальности . С. 253–270. doi : 10.1109/SP.2015.23. hdl : 20.500.11820/37920e55-65aa-4a42-b678-ef5902a5dd45 . ISBN 978-1-4673-6949-7. S2CID  3343426.
  39. ^ Бен-Сассон, Эли; Кьеза, Алессандро; Генкин, Даниэль; Тромер, Эран; Вирза, Мадарс (2013). «SNARKs для C: Verifying Program Executions Succinctly and in Zero Knowledge». Достижения в криптологии – CRYPTO 2013. Конспект лекций по информатике. Том 8043. С. 90–108. doi :10.1007/978-3-642-40084-1_6. hdl : 1721.1/87953 . ISBN 978-3-642-40083-4.
  40. ^ Wahby, Riad S.; Setty, Srinath; Ren, Zuocheng; Blumberg, Andrew J.; Walfish, Michael (2015). «Эффективная оперативная память и поток управления в проверяемых аутсорсинговых вычислениях». Труды симпозиума по безопасности сетей и распределенных систем 2015 г. doi : 10.14722/ndss.2015.23097. ISBN 978-1-891562-38-9.
  41. ^ Эберхардт, Якоб; Тай, Стефан (июль 2018 г.). «ZoKrates — масштабируемые вычисления вне сети с сохранением конфиденциальности». Международная конференция IEEE 2018 года по Интернету вещей (IThings) и IEEE Green Computing and Communications (GreenCom) и IEEE Cyber, Physical and Social Computing (CPSCom) и IEEE Smart Data (SmartData) . стр. 1084–1091. doi :10.1109/Cybermatics_2018.2018.00199. ISBN 978-1-5386-7975-3. S2CID  49473237.
  42. ^ Косба, Ахмед; Папамантхоу, Харалампос; Ши, Элейн (май 2018 г.). «XJsnark: структура для эффективных проверяемых вычислений». Симпозиум IEEE 2018 г. по безопасности и конфиденциальности (SP) . стр. 944–961. doi : 10.1109/SP.2018.00018 . ISBN 978-1-5386-4353-2.
  43. ^ Чжан, Юпэн; Генкин, Даниэль; Кац, Джонатан; Пападопулос, Димитриос; Папамантхоу, Харалампос (май 2018 г.). «VRAM: более быстрая проверяемая оперативная память с программно-независимой предварительной обработкой». Симпозиум IEEE 2018 г. по безопасности и конфиденциальности (SP) . стр. 908–925. doi : 10.1109/SP.2018.00013 . ISBN 978-1-5386-4353-2.
  44. ^ Бен-Сассон, Эли; Кьеза, Алессандро; Тромер, Эран; Вирза, Мадарс (20 августа 2014 г.). «Краткое неинтерактивное нулевое знание для архитектуры фон Неймана». Труды 23-й конференции USENIX по симпозиуму по безопасности . Ассоциация USENIX: 781–796. ISBN 9781931971157.
  45. ^ Косба, Ахмед; Пападопулос, Димитриос; Папаманту, Харалампос; Сонг, Дон (2020). «МИРАЖ: краткие аргументы в пользу рандомизированных алгоритмов с приложениями к универсальным zk-SNARK». Архив Cryptology ePrint .
  46. ^ Маллер, Мэри; Боу, Шон; Кольвайс, Маркульф; Мейкледжон, Сара (6 ноября 2019 г.). «Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updatable Structured Reference Strings». Труды конференции ACM SIGSAC 2019 года по компьютерной и коммуникационной безопасности. Ассоциация вычислительной техники. стр. 2111–2128. doi : 10.1145/3319535.3339817. hdl : 20.500.11820/739b94f1-54f0-4ec3-9644-3c95eea1e8f5 . ISBN 9781450367479. S2CID  242772913.
  47. ^ Кьеза, Алессандро; Ху, Юньконг; Маллер, Мэри; Мишра, Пратюш; Веселы, Ноа; Уорд, Николас (2020). «Марлин: предварительная обработка zkSNARKs с помощью универсальной и обновляемой SRS». Достижения в криптологии – EUROCRYPT 2020. Конспект лекций по информатике. Том 12105. Springer International Publishing. С. 738–768. doi :10.1007/978-3-030-45721-1_26. ISBN 978-3-030-45720-4. S2CID  204772154.
  48. ^ Габизон, Ариэль; Уильямсон, Закари Дж.; Чиоботару, Оана (2019). "PLONK: Перестановки по базисам Лагранжа для вселенских неинтерактивных аргументов знания". Архив Cryptology ePrint .
  49. ^ Бюнц, Бенедикт; Фиш, Бен; Шепиенец, Алан (2020). «Прозрачные SNARKs из компиляторов DARK». Достижения в криптологии – EUROCRYPT 2020. Конспект лекций по информатике. Том 12105. Springer International Publishing. С. 677–706. doi :10.1007/978-3-030-45721-1_24. ISBN 978-3-030-45720-4. S2CID  204892714.
  50. ^ Wahby, Riad S.; Tzialla, Ioanna; Shelat, Abhi; Thaler, Justin; Walfish, Michael (май 2018 г.). «Двойная эффективность zkSNARKs без доверенной настройки». Симпозиум IEEE 2018 г. по безопасности и конфиденциальности (SP) . стр. 926–943. doi : 10.1109/SP.2018.00060 . ISBN 978-1-5386-4353-2.
  51. ^ Боуи, Шон; Григг, Джек; Хопвуд, Дайра (2019). «Рекурсивная композиция доказательств без доверенной настройки». Архив Cryptology ePrint .
  52. ^ Чжан, Цзяхэн; Сье, Тяньчэн; Чжан, Юпэн; Сон, Дон (май 2020 г.). «Прозрачное полиномиальное делегирование и его применение к доказательству с нулевым разглашением». Симпозиум IEEE 2020 года по безопасности и конфиденциальности (SP) . стр. 859–876. doi : 10.1109/SP40000.2020.00052 . ISBN 978-1-7281-3497-0.
  53. ^ Эймс, Скотт; Хазай, Кармит; Ишай, Ювал; Венкитасубраманиам, Мутурамакришнан (30 октября 2017 г.). «Ligero». Труды конференции ACM SIGSAC 2017 г. по компьютерной и коммуникационной безопасности . Ассоциация вычислительной техники. стр. 2087–2104. doi :10.1145/3133956.3134104. ISBN 9781450349468. S2CID  5348527.
  54. ^ Бен-Сассон, Эли; Кьеза, Алессандро; Рябцев, Майкл; Спунер, Николас; Вирза, Мадарс; Уорд, Николас П. (2019). «Aurora: Transparent Succinct Arguments for R1CS». Advances in Cryptology – EUROCRYPT 2019. Lecture Notes in Computer Science. Vol. 11476. Springer International Publishing. pp. 103–128. doi :10.1007/978-3-030-17653-2_4. ISBN 978-3-030-17652-5. S2CID  52832327.
  55. ^ Бен-Сассон, Эли; Бентов, Иддо; Хореш, Йинон; Рябцев, Майкл (2019). «Масштабируемое нулевое знание без доверенной настройки». Достижения в криптологии – CRYPTO 2019. Конспект лекций по информатике. Том 11694. Springer International Publishing. С. 701–732. doi :10.1007/978-3-030-26954-8_23. ISBN 978-3-030-26953-1. S2CID  199501907.