Доказательство знаний
В криптографии доказательство знаний — это интерактивное доказательство , в котором доказывающему удается «убедить» проверяющего в том, что доказывающий что-то знает. То, что для машины означает «знать что-то», определяется с точки зрения вычислений. Машина «что-то знает», если это что-то можно вычислить, учитывая машину в качестве входных данных. Поскольку программа доказывающего не обязательно выдает само знание (как в случае с доказательствами с нулевым разглашением). [1] ) для реализации этой идеи введена машина с другой программой, называемой экстрактором знаний. Нас больше всего интересует то, что можно доказать с помощью полиномиальных машин с ограниченным временем. В этом случае набор элементов знания ограничивается набором свидетелей некоторого языка в NP .
Позволять быть высказыванием языка в НП и набор свидетелей для x, который должен быть принят при доказательстве. Это позволяет определить следующее соотношение: .
Доказательство знаний для связи с ошибкой в знаниях это двапартийный протокол с доказывающим и проверяющий со следующими двумя свойствами:
- Полнота : Если , то доказывающий кто знает, свидетель для удается убедить проверяющего его знаний. Более формально: , т. е. учитывая взаимодействие между доказывающим P и проверяющим V, вероятность того, что проверяющий будет убежден, равна 1.
- Валидность : Валидность требует, чтобы вероятность успеха извлечения знаний при извлечении свидетеля, учитывая доступ оракула к возможно злонамеренному доказывающему , должно быть не меньше вероятности успеха доказывающего. чтобы убедить проверяющего. Это свойство гарантирует, что ни один доказывающий, не знающий свидетеля, не сможет убедить проверяющего.
Подробности об определении
[ редактировать ]Это более строгое определение валидности : [2]
Позволять быть свидетелем, набор всех свидетелей общественной ценности , и ошибка в знаниях.Доказательством знаний является -действительно, если существует машина полиномиального времени , учитывая доступ оракула к , такой, что для каждого , дело в том, что и
Результат означает, что машина Тьюринга не пришел к выводу.
Ошибка в знаниях обозначает вероятность того, что верификатор мог бы принять , хотя доказывающий фактически не знает свидетеля . Экстрактор знаний используется для выражения того, что подразумевается под знанием машины Тьюринга . Если может извлечь от , мы говорим, что знает цену .
Это определение свойства достоверности представляет собой комбинацию свойств достоверности и строгой достоверности. [2] За небольшие ошибки в знаниях , например, или его можно рассматривать как более сильное, чем надежность обычных интерактивных доказательств .
Связь с общими интерактивными доказательствами
[ редактировать ]Чтобы определить конкретное доказательство знания, необходимо не только определить язык, но и свидетелей, которых должен знать проверяющий. В некоторых случаях доказать принадлежность к языку может быть легко, тогда как вычислить конкретного свидетеля может быть сложно. Лучше всего это объяснить на примере:
Позволять — циклическая группа с генератором в котором решение задачи дискретного логарифма считается трудным. Определение принадлежности языка тривиально, как и все находится в . Однако найти свидетеля такой, что соответствует решению задачи дискретного логарифмирования.
Протоколы
[ редактировать ]Протокол Шнорра
[ редактировать ]Одно из самых простых и часто используемых доказательств знания — доказательство знания дискретного логарифма — принадлежит Шнорру. [3] Протокол определен для циклической группы порядка с генератором .
Чтобы доказать знание , доказывающий взаимодействует с проверяющим следующим образом:
- В первом раунде доказывающий берет на себя обязательство использовать случайность. ; поэтому первое сообщение также называется обязательством .
- Верификатор отвечает вызовом выбрано случайно.
- После получения , доказывающий отправляет третье и последнее сообщение ( ответ ) уменьшен по модулю порядка группы.
Верификатор принимает, если .
Мы видим, что это действительное доказательство знаний, поскольку оно имеет экстрактор, который работает следующим образом:
- Имитация доказывающего устройства для вывода . Доказывающая сейчас в состоянии .
- Создать случайное значение и введите его в доказывающую программу. Он выводит .
- Перемотайте доказывающее, чтобы заявить . Теперь сгенерируйте другое случайное значение и введите его в программу доказательства, чтобы получить .
- Выход .
С , выход экстрактора точно .
Этот протокол является протоколом с нулевым разглашением , хотя это свойство не требуется для доказательства знания.
Сигма-протоколы
[ редактировать ]Протоколы, которые имеют вышеуказанную трехходовую структуру (обязательство, вызов и ответ), называются сигма-протоколами . [4] Название происходит от Sig, обозначающего зигзаг, символизирующий три хода протокола, и MA, аббревиатуры от «Мерлин-Артур». [5] Сигма-протоколы существуют для доказательства различных утверждений, например, относящихся к дискретным логарифмам. Используя эти доказательства, доказывающий может не только доказать знание дискретного логарифма, но и то, что дискретный логарифм имеет определенную форму. Например, можно доказать, что два логарифма и по поводу баз и равны или удовлетворяют некоторому другому линейному соотношению . Для a и b элементов , мы говорим, что доказывающий доказывает знание и такой, что и . Равенство соответствует частному случаю, когда a = 1 и b = 0. Поскольку может быть тривиально вычислено из это эквивалентно доказательству знания такого x , что .
Это интуиция, лежащая в основе следующих обозначений: [6] который обычно используется для выражения того, что именно доказано доказательством знаний.
утверждает, что доказывающему известен x , удовлетворяющий приведенному выше соотношению.
Приложения
[ редактировать ]Доказательства знаний являются полезным инструментом для создания протоколов идентификации и, в их неинтерактивном варианте, схем подписи. Такие схемы:
Они также используются при создании систем групповой подписи и анонимных цифровых учетных данных .
См. также
[ редактировать ]- Криптографический протокол
- Доказательство с нулевым разглашением
- Интерактивная система доказательств
- Темы криптографии
- Подтверждение пароля с нулевым разглашением
- Обоснованность (интерактивное доказательство)
Ссылки
[ редактировать ]- ^ Шафи Голдвассер , Сильвио Микали и Чарльз Ракофф . Сложность знаний интерактивных систем доказательств . Материалы 17-го симпозиума по теории вычислений , Провиденс, Род-Айленд. 1985. Проект. Расширенное резюме
- ^ Jump up to: а б Михир Белларе , Одед Гольдрейх: Об определении доказательств знания . КРИПТО 1992: 390–420.
- ^ CP Schnorr , Эффективная идентификация и подписи для смарт-карт, в G Brassard, изд. Достижения в криптологии – Crypto '89, 239–252, Springer-Verlag , 1990. Конспекты лекций по информатике, № 435.
- ^ [1] О протоколах Sigma
- ^ [2] Модульная конструкция безопасных, но практичных криптографических протоколов.
- ^ Системы доказательства общих утверждений о дискретных логарифмах