Interested Article - Протокол Фиата — Шамира
![](/images/003/931/3931827/1.jpg?rand=26542)
![](https://cdn.wafarin.com/avatars/38e18925d2a8e9c1df99bd4d6462af86.jpg)
- 2020-05-06
- 1
Протокол Фиата — Шамира — это один из наиболее известных протоколов идентификации с нулевым разглашением (Zero-knowledge protocol). Протокол был предложен Амосом Фиатом ( англ. Amos Fiat) и Ади Шамиром ( англ. Adi Shamir)
Пусть А знает некоторый секрет s . Необходимо доказать знание этого секрета некоторой стороне В без разглашения какой-либо секретной информации. Стойкость протокола основывается на сложности извлечения квадратного корня по модулю достаточно большого составного числа n , факторизация которого неизвестна.
Описание протоколa
A доказывает B знание s в течение t раундов. Раунд называют также аккредитацией. Каждая аккредитация состоит из 3х этапов.
Предварительные действия
- Доверенный центр Т выбирает и публикует модуль простые и держатся в секрете. , где p , q —
- Каждый претендент A выбирает s взаимно-простое с n , где . Затем вычисляется V . V регистрируется T в качестве открытого ключа A
Передаваемые сообщения (этапы каждой аккредитации)
- A B :
- A B :
- A B :
Основные действия
Следующие действия последовательно и независимо выполняются t раз. В считает знание доказанным, если все t раундов прошли успешно.
- А выбирает случайное r , такое, что и отсылает стороне B (доказательство)
- B случайно выбирает бит e ( e =0 или е =1) и отсылает его A (вызов)
- А вычисляет у и отправляет его обратно к B . Если e =0, то , иначе (ответ)
- Если y =0, то B отвергает доказательство или, другими словами, А не удалось доказать знание s . В противном случае, сторона B проверяет, действительно ли и, если это так, то происходит переход к следующему раунду протокола.
Выбор е из множества {0,1} предполагает, что если сторона А действительно знает секрет, то она всегда сможет правильно ответить, вне зависимости от выбранного e . Допустим, что А хочет обмануть B . В этом случае А , может отреагировать только на конкретное значение e . Например, если А знает, что получит е =0, то А следует действовать строго по инструкции и В примет ответ. В случае, если А знает, что получит е =1, то А выбирает случайное r и отсылает
на сторону В , в результате получаем нам нужное . Проблема заключается в том, что А изначально не знает какое e он получит и поэтому не может со 100 % вероятностью выслать на сторону В нужные для обмана r и х ( при e =0 и при e =1). Поэтому вероятность обмана в одном раунде составляет 50 %. Чтобы снизить вероятность жульничества (она равна ) t выбирают достаточно большим ( t =20, t =40). Таким образом, B удостоверяется в знании А тогда и только тогда, когда все t раундов прошли успешно.Пример
- Пусть доверенный центр выбрал простые p =683 и q =811, тогда n =683*811=553913. А выбирает s =43215.
Откуда
- A выбирает r =38177 и считает
- Если B отправил e =0, то A возвращает y=38177. Иначе, A возвращает
- Проверка B :
Если e было равно 0, то
Подтверждено.Иначе,
и
Подтверждено.Литература
- Menezes A., van Oorschot P., Vanstone S. Handbook of Applied Cryptography. — CRC Press, 1996. — 816 с. — ISBN 0-8493-8523-7 .
- Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М. : Триумф, 2002. — 816 с. — 3000 экз. — ISBN 5-89392-055-4 .
![](https://cdn.wafarin.com/avatars/38e18925d2a8e9c1df99bd4d6462af86.jpg)
- 2020-05-06
- 1