Назад в библиотеку

Протоколы с нулевым разглашением и их применения.

Автор: Уланов А.
Источник: https://docplayer.ru/32670062-Protokoly-s-nulevym-razglasheniem-i-ih-primeneniya.html

Введение

Во многих криптографических системах возникает задача одной стороне A (доказывающая сторона) доказать знание секрета другой стороне B (проверяющая сторона), причем сделать это необходимо таким образом чтобы сторона B после этого не знала сам секрет. То есть A демонстрирует знание какой-то информации без разглашая какой-либо части этой информации. Впервые понятие протоколов с нулевым разглашением было введено в работе Гольдвассера, Микали и Ракоффа в 1985 г.[1]. Такие протоколы позволяют решить проблемы которыми обладают все методы авторизации по паролю: необходимость хранить пароль на сервере либо простота отслеживания пароля третьей стороной, подслушивающей процесс авторизации.

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

Итак протоколом доказательства с нулевым разглашением называется протокол доказательства, обладающий следующими свойствами:

Необходимо заметить что многие протоколы призванные обеспечивать аутентификацию пользователя проверяя знание им пароля (или секретного ключа в системах с открытым ключом) не передавая в открытом виде сам пароль (или закрытый ключ) не являются с математическом точки зрения алгоритмами с абсолютно нулевым разглашением по той причине что не удовлетворяют последнему свойству. Такие алгоритмы называют иногда доказательством с вычислительно нулевым разглашением.

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

Простейший пример: пещера Али Бабы (Ali Baba)

Классическим примером протокола доказательства с нулевым разглашением является протокол доказательства знания пароля к двери внутри круговой пещеры. Пусть Алиса (Alice) знает этот пароль и хочет доказать его знание Бобу (Bob) без разглашения самого пароля. Используется следующий протокол:

  1. Алиса заходит в пещеру и подходит к двери с произвольной стороны так чтобы Боб не знал с какой стороны находится Алиса.
  2. Боб заходит в пещеру и просит выйти Алису с какой либо из сторон пещеры (слева или справа).
  3. Алиса зная пароль к двери всегда сможет выполнить пожелание Боба, появившись с любой стороны.

После каждой итерации уверенность Боба в том что Алиса знает секрет увеличивается вдвое. Таким образом после k успешно выполненных операций вероятность того что Алиса на самом деле обманывает Боба равна 1/(2^k) .

Другой простейший пример: Кубик Рубика

Следующий пример так же как и предыдущий носит чисто гипотетический характер. Пусть Алиса знает как решить Кубик Рубика из какой-то позиции (назовем ее исходной) и хочет доказать это Бобу, при этом она не хочет чтобы Боб также научился складывать кубик из данной позиции. Для решения этой задачи может использоваться протокол состоящий из нескольких последовательных выполнений следующих действий:

  1. Алиса выбирает произвольную другую позицию кубика и показывает ее Бобу.
  2. Боб просит сделать одно из следующих действий:
  3. Алиса выполняет просьбу Боба.

Очевидно Алиса всегда сможет доказать Бобу умение решать исходную позицию если она действительно таким умением обладает. В противном же случае она не всегда сможет выполнить последний пункт. Так же любое количество итераций никаким образом не поможет Бобу выяснить как решается исходная позиция.

Протокол на основе задачи об изоморфизме графов

Пусть дана пара графов G1 = (U,E1) и G2 = (U,E2) , здесь U – множество вершин графа, а E1 и E2 – множества ребер. Графы G1 и G2 называют изоморфными если существует перестановка q вершин графа которая переводит один граф в другой. Задача нахождения такой перестановки и поиск ответа на вопрос о её существовании есть сложная математическая задача не решаемая за полиномиальное время. Итак рассмотрим следующий протокол. Пусть q – изоморфизм графов G1 и G2 знанием которого обладает Алиса. Она доказывает это знание Бобу:

  1. Алиса выбирает случайную перестановку p на множестве U и передает граф pG1 Бобу.
  2. Боб выбирает случайный бит a и пересылает его Алисе.
  3. Если a = 1 , то Боб пересылает Алисе перестановку p , иначе перестановку pq .
  4. При a = 0 Боб проверяет является ли полученная перестановка изоморфизмом между G2 и H , либо G1 и H при a = 0.

Протокол Фейга-Фиата-Шамира

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

В протоколе предполагает что обе стороны заранее снабжены каким-то числом n = pq . При этом разложение n на простые множители считается неизвестным для всех участников протокола. Доказывающая сторона (Алиса) выбирает секретное число s , взаимно простое с n , далее вычисляет значение v = s 2 mod n и публикует значение v объявляя его своим открытым ключом.

Как и все предыдущие, протокол Фейга-Фиата-Шамира состоит в последовательном выполнении следующих итераций:

  1. Алиса выбирает число z : 1
  2. Алиса вычисляет и посылает проверяющей стороне (Бобу) число x = z^2 mod n .
  3. Боб выбирает случайный бит a и пересылает его Алисе.
  4. Алиса пересылает Бобу число y :
    Формула числа y
  5. Боб проверяет что y ≠ 0 и y2 = xv^a (mod n).

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

Как было отмечено выше многие другие криптографические протоколы идентификации не являются в точном математическом смысле протоколами с абсолютно нулевым разглашением. Однако совсем не этот фактор имеет в данном случает решающее значение.

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

Описанные свойства и определили в основном возможные применения протоколов с нулевым разглашением. Очевидно в силу требования к большому количеству итераций их применение в компьютерных сетях связано с трудностями. С другой стороны использование протоколов со сложными вычислениями невозможно на сравнительно простых устройствах с малым количеством памяти таких как смарт-карты. Последние и приводятся чаще всего в качестве основного примера где возможно использование протоколов с нулевым разглашением.

Список литературы

  1. Goldwasser S., Micali S., Rackoff C. The knowledge complexity of interactive proof systems // SIAM J. Comput. V. 18, No 1, 1989. P. 186208.
  2. Введение в криптографию. Под редакцией В.В.Ященко. МЦНМО 2000.
  3. Hannu A. Aronsson. Zero Knowledge Protocols and Small Systems 2 . Department of Computer Science, Helsinki University of Technology.
  4. А.П.Алферов, А.Ю.Зубов, А.С.Кузьмин, А.В.Черемушкин. Основы криптографии. Москва, Гелиос АРВ, 2002.