Упрощенная схема идентификации с нулевой передачей знаний

 

Схему идентификации с нулевой передачей знаний пред­ложили в 1986 г. У.Фейге, А.Фиат и А.Шамир. Она является наибо­лее известным доказательством идентичности с нулевой переда­чей конфиденциальной информации.

Рассмотрим упрощенный вариант схемы иденти­фикации с нулевой передачей знаний для более четкого выявле­ния ее основной концепции. Прежде всего выбирают случайное значение модуля , который является произведением двух боль­ших простых чисел. Модуль должен иметь длину 512 - 1024 бит. Это значение может быть представлено группе пользова­телей, которым придется доказывать свою подлинность. В про­цессе идентификации участвуют две стороны:

- сторона А, доказывающая свою подлинность,

- сторона В, проверяющая представляемое стороной А доказа­тельство.

Для того чтобы сгенерировать открытый и секретный ключи для стороны А, доверенный арбитр (Центр) выбирает некоторое число , которое является квадратичным вычетом по модулю . Иначе говоря, выбирается такое число , что сравнение имеет решение и существует целое число .

Выбранное значение является открытым ключом для А. Затем вычисляют наименьшее значение S, для которого . Это значение S является секретным ключом для А.

Теперь можно приступить к выполнению протокола иден­тификации.

1. Сторона А выбирает некоторое случайное число , где . Затем она вычисляет и отправляет стороне В.

2. Сторона В посылает А случайный бит .

3. Если , тогда А отправляет стороне В. Если , то А отправляет стороне В .

4. Если , то сторона B проверяет, что ,чтобы убедиться, что А знает . Если , сторона В проверяет, что , чтобы быть уверенной, что А знает .

Эти шаги образуют один цикл протокола, называемый ак­кредитацией. Стороны А и В повторяют этот цикл раз при разных случайных значениях и до тех пор, пока В не убедится, что А знает значение S.

Если сторона А не знает значения S, она может выбрать такое значение , которое позволит ей обмануть сторону В, если В отправит ей , либо А может выбрать такое , которое по­зволит обмануть В, если В отправит ей . Но этого невозмож­но сделать в обоих случаях. Вероятность того, что А обманет В в одном цикле, составляет . Вероятность обмануть B циклах равна .

Для того чтобы этот протокол работал, сторона А никогда не должна повторно использовать значение . Если А поступила бы таким образом, а сторона В отправила бы стороне А на шаге 2 другой случайный бит , то В имела бы оба ответа А. После этого В может вычислить значение S, и для А все закончено.