Feige –Фиат – Схема идентификации Шамира

редактировать

В криптографии используется схема идентификации Фейге – Фиат – Шамир - это тип параллельного доказательства с нулевым разглашением, разработанный Уриэлем Фейге, Амосом Фиатом и Ади Шамиром в 1988 году. доказательства с нулевым разглашением, это позволяет одной стороне, Доказывающему, доказать другой стороне, Проверяющему, что она обладает секретной информацией, не раскрывая Проверяющему, что это за секретная информация. Однако схема идентификации Фейдж-Фиат-Шамир использует модульную арифметику и параллельный процесс проверки, который ограничивает количество коммуникаций между проверяющим и проверяющим.

Содержание
  • 1 Настройка
  • 2 Процедура
  • 3 Безопасность
  • 4 Ссылки
Настройка

Следуя общепринятому соглашению, вызовите прувер Пегги и верификатор Виктор.

Выберите два больших простых целых числа p и q и вычислите произведение n = pq. Создайте секретные числа s 1, ⋯, s k {\ displaystyle s_ {1}, \ cdots, s_ {k}}s_ {1}, \ cdots, s_ {k} coprime с n. Вычислить v i ≡ s i 2 (mod n) {\ displaystyle v_ {i} \ Equiv s_ {i} ^ {2} {\ pmod {n}}}v_ {i} \ Equiv s_ {i} ^ {{2}} {\ pmod { n}} . Пегги и Виктор получают n {\ displaystyle n}n , а p {\ displaystyle p}p и q {\ displaystyle q}q держатся в секрете. Затем Пегги отправляют числа s i {\ displaystyle s_ {i}}s_ {i} . Это ее секретные логины. Пегги отправляет Виктору номера v i {\ displaystyle v_ {i}}v_ {i} , когда она хочет представиться Виктору. Виктор не может восстановить числа Пегги si {\ displaystyle s_ {i}}s_ {i} из своих чисел vi {\ displaystyle v_ {i}}v_ {i} из-за сложности при определении модульного квадратного корня , когда факторизация модуля неизвестна.

Процедура
  1. Пегги выбирает случайное целое число r {\ displaystyle r}r , случайный знак s ∈ {- 1, 1} {\ displaystyle s \ in \ {- 1,1 \}}s \ in \ {- 1,1 \} и вычисляет x ≡ s ⋅ r 2 (mod n) {\ displaystyle x \ Equiv s \ cdot r ^ {2} {\ pmod {n }}}x \ Equiv s \ cdot r ^ { 2} {\ pmod {n}} . Пегги отправляет Виктору x {\ displaystyle x}x .
  2. Виктор выбирает числа a 1, ⋯, ak {\ displaystyle a_ {1}, \ cdots, a_ {k}}a_ {1}, \ cdots, a_ {k} где ai {\ displaystyle a_ {i}}a_ {i} равно 0 или 1. Виктор отправляет эти числа Пегги.
  3. Пегги вычисляет y ≡ rs 1 a 1 s 2 a 2 ⋯ skak (mod n) {\ displaystyle y \ Equiv rs_ {1} ^ {a_ {1}} s_ {2} ^ {a_ {2}} \ cdots s_ { k} ^ {a_ {k}} {\ pmod {n}}}y \ Equiv rs_ {1} ^ {{a_ {1}}} s_ {2} ^ {{a_ {2} }} \ cdots s_ {k} ^ {{a_ {k}}} {\ pmod {n}} . Пегги отправляет это число Виктору.
  4. Виктор проверяет, что y 2 ≡ ± xv 1 a 1 v 2 a 2 ⋯ vkak (mod n) {\ displaystyle y ^ {2} \ Equiv \ pm \, xv_ {1} ^ {a_ {1}} v_ {2} ^ {a_ {2}} \ cdots v_ {k} ^ {a_ {k}} {\ pmod {n}}}{\ displaystyle y ^ {2} \ Equiv \ pm \, xv_ {1} ^ {a_ {1}} v_ {2} ^ {a_ {2}} \ cdots v_ { k} ^ {a_ {k}} {\ pmod {n}}} и что x ≠ 0. {\ displaystyle x \ neq 0.}{\ displaystyle x \ neq 0.}

Эта процедура повторяется с другими r {\ displaystyle r}r и ai {\ displaystyle a_ {i}}a_ {i} , пока Виктор не убедится, что Пегги действительно обладает модульными квадратными корнями (si {\ displaystyle s_ {i}}s_ {i} ) его vi {\ displaystyle v_ {i}}v_ {i} числа.

Безопасность

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

Предположим, Ева перехватила номера Виктора vi {\ displaystyle v_ {i}}v_ {i} , но не знает, какие у Пегги si {\ displaystyle s_ {i}}s_ {i} числа. Если Ева хочет попытаться убедить Виктора в том, что она Пегги, она должна будет правильно угадать, какими будут числа Виктора a i {\ displaystyle a_ {i}}a_ {i} . Затем она выбирает случайный y {\ displaystyle y}y , вычисляет x ≡ y 2 v 1 - a 1 v 2 - a 2 ⋯ vk - ak (mod n) {\ displaystyle x \ Equiv y ^ {2} v_ {1} ^ {- a_ {1}} v_ {2} ^ {- a_ {2}} \ cdots v_ {k} ^ {- a_ {k}} {\ pmod { n}}}x \ Equiv y ^ {2} v_ {1} ^ {{- a_ {1}}} v_ {2} ^ {{- a_ {2}}} \ cdots v_ {k } ^ {{- a_ {k}}} {\ pmod {n}} и отправляет x {\ displaystyle x}x Виктору. Когда Виктор отправляет a i {\ displaystyle a_ {i}}a_ {i} , Ева просто возвращает ей y {\ displaystyle y}y . Виктор удовлетворен и приходит к выводу, что у Евы есть секретные числа. Однако вероятность того, что Ева правильно угадывает, каким будет ai {\ displaystyle a_ {i}}a_ {i} Виктора, равна 1 из 2 k {\ displaystyle 2 ^ {k}}2 ^ {k} . Если повторить процедуру t {\ displaystyle t}t раз, вероятность снизится до 1 из 2 k t {\ displaystyle 2 ^ {kt}}2 ^ {{kt}} . Для k = 5 {\ displaystyle k = 5}k = 5 и t = 4 {\ displaystyle t = 4}t = 4 вероятность успешного позирования Пегги меньше 1 из 1 миллиона.

Ссылки
Последняя правка сделана 2021-05-20 13:04:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте