Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 9 - Криптопротоколы.pptx
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
4.8 Mб
Скачать

Этапы построения протокола

Рассмотрим поэтапное построение протокола, обеспечивающего такое

доказательство Непосредственно передать пользователю В закрытый ключ х

пользователь А не может, так как он раскроет его. 1-Этап. Маскирование х.

- А генерирует случайное число k и маскирует им х, формируя число s x k . Числа s и k пользователь А передает В.

- чтобы убедиться в том, что пользователь А действительно знает х пользователь В должен проверить, совпадает ли то, что он знает (

y g x mod p ) с тем, что ему передал пользователь В.

?

-пользователь В проверяет равенство gs ygk .

?

раскрывая левую и правую части уравнения, запишем g x k g x gk .

Откуда следует, что показатели степеней в правой и левой частя уравнения одинаковые. Другими словами, только тот, кто знает секрет х мог сформировать замаскированное свидетельство s, удовлетворяющее этому уравнению.

Однако такое решение задачи ZKP имеет очевидный недостаток – пользователь В может легко вычислить секрет из числа s: x s k .

2-й этап (усиление протокола)

Чтобы устранить этот недостаток необходимо спрятать само маскирующее число k.

В этом случае пользователь А передает В число r gk . Число k пользователь В не знает (это задача дискретного логарифма).

Проверка того, что пользователь А знает х теперь заключается в проверке

?

равенства gs yr .

?

Раскрывая левую и правую части уравнения, запишем g x k g x gk . То есть получаем доказательство знания А ключа х, но без раскрытия случайного числа k.

Однако, такое доказательство не учитывает возможность пользователя А

обмануть В, убедив его что он знает х, фактически не зная х.

Для этого пользователь А вычисляет s, но затем вычисляет значение r в следующем виде

r gs y 1 , где y 1 - обратный элемент к у по modp.

Когда пользователь В вычисляет yr ygs y 1 gs

он убеждается, что пользователь А знает х, хотя на самом деле он его не знает.

3-й этап усиление протокола

Защита от такой атаки требует дальнейшего усложнения протокола.

Решение заключается в построении протокола, в котором пользователь В гарантирует,

что пользователь А вычисляет s, зная r, но не наоборот.

Для этого протокол должен быть интерактивным и состоять из следующих шагов: -пользователь А должен зафиксировать случайную величину k, как обязательство, и таким образом лишить себя возможности изменения ее в дальнейшем;

-получив обязательство, пользователь В вносит в протокол собственную случайность. Для этого он генерирует случайное число с, которое называется вызовом и направляет его пользователю А;

-на основе случайного числа k и вызова c А может вычислить скрытое обязательство

s k cx .

Поскольку А не может выполнить последний шаг без вызова с, а В не отправит его А, не получив зафиксированной в обязательстве случайной величина k, пользователь А вынужден вычислять s на основе k.

Особенности протокола

Данный протокол является интерактивным и включает в себя только три итерации, что выгодно отличает его от классического протокола ZKP основанных на многочисленных итерациях «вопрос проверяющего» - «ответ доказывающего».

Это объясняется тем, что число c (вызов) может в двоичной записи включать некоторое число l бит, поэтому не нужно повторять трехшаговый протокол l раз.

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

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

Протокол доказательства, что для расшифрования использовался закрытый ключ, соответствующий известному открытому ключу

Пусть Zp - кольцо вычетов по модулю р , Zq -мультипликативная

группа порядка q (q –простое число), g- генератор группы.

y Zq

C=f(m,pk)Y

A

sk

P

Proof

V

 

pk

yB

Криптосистема Эль -Гамаля

Доказательство, что для расшифрования использовался закрытый ключ, соответствующий известному открытому ключу (протокол доказательства на основе знания логарифмов)

P (доказывающая)

V (проверяющая)

Выполнение сравнений свидетельствуют о том, что равенство выполняется.

Действительно, несложно проверить, что: , и

.

Доказано, что данный протокол обладает свойство ZKP, если проверяющая сторона V является честной.

Протоколы аутентификации пользователей (субьектов) - протоколы идентификации