Доказательство знаний - Proof of knowledge
В криптография, а доказательство знаний является интерактивное доказательство в котором доказывающему удается «убедить» проверяющего в том, что он что-то знает. Что это значит для машина «знать что-то» определяется в терминах вычислений. Машина «что-то знает», если это что-то можно вычислить, учитывая машину в качестве входных данных. Поскольку программа доказывающего не обязательно раскрывает сами знания (как в случае с доказательства с нулевым разглашением[1]) для воплощения этой идеи вводится машина с другой программой, называемой экстрактором знаний. Нас больше всего интересует, что можно доказать полиномиальное время ограниченные машины. В этом случае набор элементов знаний ограничивается набором свидетелей некоторых язык в НП.
Позволять быть заявлением языка в НП, и набор свидетелей x, которые следует принять в доказательство. Это позволяет нам определить следующее отношение: .
Доказательство знания для отношения с ошибкой знания это двухсторонний протокол с доказывающим и верификатор со следующими двумя свойствами:
- Полнота: Если , затем испытатель кто знает свидетеля за удается убедить проверяющего его знаний. Более формально: , т.е. с учетом взаимодействия между доказывающим P и проверяющим V, вероятность того, что проверяющий будет убежден, равна 1.
- Срок действия: Валидность требует, чтобы вероятность успеха экстрактора знаний в извлечении свидетеля, учитывая доступ оракула к возможно злонамеренной проверяющей , должно быть не меньше, чем вероятность успеха доказывающего в убеждении проверяющего. Это свойство гарантирует, что ни один доказывающий, не знающий свидетеля, не сможет убедить проверяющего.
Подробности об определении
Это более строгое определение Срок действия:[2]
Позволять быть свидетелем отношения, набор всех свидетелей по общественной значимости , и ошибка знания. Доказательство знания -действительно, если существует машина полиномиального времени , учитывая доступ оракула к , так что для каждого , это тот случай, когда и
Результат означает, что машина Тьюринга не пришли к выводу.
Ошибка знания обозначает вероятность того, что проверяющий может принять , даже если испытатель на самом деле не знает свидетеля . Извлекатель знаний используется для выражения того, что подразумевается под знанием Машина Тьюринга. Если может извлечь из мы говорим, что знает ценность .
Это определение свойства достоверности представляет собой комбинацию свойств достоверности и строгой достоверности в.[2] За небольшие ошибки в знаниях , например, или же его можно рассматривать как более сильный, чем прочность обычных интерактивные доказательства.
Отношение к общим интерактивным доказательствам
Чтобы определить конкретное доказательство знания, нужно не только определить язык, но и свидетелей, которых проверяющий должен знать. В некоторых случаях доказать принадлежность к языку может быть легко, в то время как вычисление конкретного свидетеля может быть трудным. Лучше всего это пояснить на примере:
Позволять быть циклическая группа с генератором в котором решение дискретный логарифм проблема считается сложной. Определение принадлежности к языку тривиально, поскольку каждый в . Однако найдя свидетеля такой, что соответствует решению задачи дискретного логарифмирования.
Протоколы
Протокол Шнорра
Одно из самых простых и часто используемых доказательств знания, доказательство знания дискретный логарифм, связано с Шнорром.[3] Протокол определен для циклическая группа порядка с генератором .
Чтобы доказать знание , проверяющий взаимодействует с проверяющим следующим образом:
- В первом раунде доказывающий совершает случайный выбор. ; поэтому первое сообщение также называется обязательство.
- Проверяющий отвечает испытание выбран наугад.
- После получения , доказывающий отправляет третье и последнее сообщение ( отклик) приведен по модулю порядка группы.
Проверяющий принимает, если .
Мы можем видеть, что это действительное доказательство знаний, потому что у него есть экстрактор, который работает следующим образом:
- Смоделируйте прувер для вывода . Прувер сейчас в состоянии .
- Сгенерировать случайное значение и введите его в прувер. Он выводит .
- Перемотайте прувер, чтобы указать . Теперь сгенерируйте другое случайное значение и введите его в доказывающий, чтобы получить .
- Выход .
С , мощность экстрактора точно .
Этот протокол бывает незнание, хотя это свойство не требуется для доказательства знания.
Сигма протоколы
Протоколы, которые имеют указанную выше структуру из трех шагов (обязательство, вызов и ответ), называются сигма протоколы[нужна цитата ]. Греческая буква визуализирует поток протокола. Сигма-протоколы существуют для доказательства различных утверждений, например, относящихся к дискретным логарифмам. Используя эти доказательства, доказывающий может не только доказать знание дискретного логарифма, но и то, что дискретный логарифм имеет определенную форму. Например, можно доказать, что два логарифма и относительно баз и равны или выполняют другие линейный связь. За а и б элементы , мы говорим, что доказывающий доказывает знание и такой, что и . Равенство соответствует частному случаю, когда а = 1 и б = 0. Поскольку возможно тривиально вычислено из это эквивалентно доказательству знания Икс такой, что .
Это интуиция, лежащая в основе следующих обозначений[4], который обычно используется для выражения того, что именно доказано подтверждением знания.
заявляет, что испытатель знает Икс это удовлетворяет приведенному выше соотношению.
Приложения
Доказательства знаний являются полезным инструментом для построения протоколов идентификации и, в их неинтерактивном варианте, схем подписи. Такими схемами являются:
Они также используются при строительстве подпись группы и анонимные цифровые учетные данные системы.
Смотрите также
- Криптографический протокол
- Доказательство с нулевым разглашением
- Интерактивная система доказательств
- Темы в криптографии
- Подтверждение пароля с нулевым разглашением
- Прочность (интерактивное доказательство)
Рекомендации
- ^ Шафи Гольдвассер, Сильвио Микали, и Чарльз Ракофф. Сложность знаний интерактивных систем доказательства. Материалы 17-го симпозиума по теории вычислений., Провиденс, Род-Айленд. 1985. Проект. Расширенная аннотация
- ^ а б Михир Белларе, Одед Гольдрайх: Об определении доказательств знания. КРИПТО 1992: 390–420
- ^ К. П. Шнорр, Эффективная идентификация и подписи для смарт-карт, в G Brassard, ed. Достижения в криптологии - Крипто '89, 239–252, Springer-Verlag, 1990. Lecture Notes in Computer Science, № 435
- ^ https://www.researchgate.net/publication/243300730_Efficient_Group_Signature_Schemes_for_Large_Groups