Протокол Guillou-Quisquater — это протокол идентификации с нулевым разглашением, расширение более раннего протокола Фиата — Шамира, разработанный Луи Гиллу (англ. Louis Guillou), Жан-Жак Кискатр (англ. Jean-Jacques Quisquater) в 1988 году.
Протокол позволяет одному участнику (доказывающему A) доказать другому участнику (проверяющему B), что он обладает секретной информацией, не раскрывая ни единого бита этой информации.
Безопасность протокола основана на сложности извлечения квадратного корня по модулю достаточно большого составного числа по заданному модулю n.
В сравнении с протоколом Фиата-Шамира протокол Guillou-Quisquater имеет меньшее число сообщений, которыми необходимо поменяться сторонам для идентификации. Протокол требует только один раунд обмена сообщениями, имеет более низкие требования к памяти, используемой для хранения секретов пользователей, однако требует большего объёма вычислений.
Кроме того, схему идентификации Guillou-Quisquater можно легко преобразовать в схему подписи.
Протокол Guillou-Quisquater — интерактивный протокол, который позволяет доказать, что доказываемое утверждение верно, и доказывающий знает это доказательство, в то же время не предоставляя никакой информации о самом доказательстве данного утверждения. Данный криптографический протокол обладает тремя свойствами:
Протокол Guillou-Quisquater требует только один раунд обмена сообщениями и состоит из трёх этапов. Схематично их можно изобразить следующим образом:
Сначала A выбирает из заранее определённого непустого множества некоторый элемент, который становится её секретом — закрытым ключом. По этому элементу вычисляется, а затем публикуется открытый ключ. Знание секрета определяет множество вопросов, на которые А всегда сможет дать правильные ответы. Затем A выбирает случайный элемент из множества, по определённым правилам вычисляет доказательство и затем отсылает его B. После этого B выбирает из всего множества вопросов один и просит A ответить на него (вызов). В зависимости от вопроса, А посылает B ответ. Полученной информации B достаточно, чтобы проверить действительно ли А владеет секретом.
Сторона A отправляет стороне В свои атрибуты . Стороне A необходимо убедить сторону В, что это именно её атрибуты. Для этого сторона A доказывает своё знание секрета стороне B, не раскрывая при этом ни одного бита самого секрета . Для этого сторонам потребуется всего 1 раунд.
Действительно .
Эту схему идентификации можно превратить в схему подписи. Открытый и закрытый ключи не меняются.
Пусть А хочет подписать сообщение .
Пусть В хочет проверить подпись.
Схема подписи может быть переделана на случай, когда несколько человек хотят подписать один и тот же документ. Пусть А и B подписывают документ, а K проверяет подписи, но в процесс подписания может быть вовлечено произвольное количество людей. Как и раньше, А и B обладают уникальными значениями и : ( , ) и ( , ). Значения и являются общими для всей системы.
Пусть А и B хотят подписать сообщение .
Пусть К хочет проверить подпись.
Этот протокол может быть расширен на любое количество людей. Для этого подписывающие сообщение люди должны перемножить свои значения на этапе (3), и свои значения на этапе (7). Чтобы проверить множественную подпись, нужно на этапе (1) перемножить значения подписывающих. Либо все подписи правильны, либо существует по крайней мере одна неправильная подпись.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .