- •Лекция Криптографические протоколы
- •Протокол: доказательство с нулевым разглашением секрета (Zero Knowledge Proof –ZKP)
- •Базовый протокол доказательства с нулевым разглашением секрета
- •Требования к протоколам ZKP
- •Пример протокола ZKP на основе решения трудной задачи
- •Задача коммивояжера
- •Изоморфизм графов
- •Протокол доказательства с нулевым разглашением принимает для данной задачи следующий вид:
- •Если P знает ГЦ на графе G, то он сможет правильно выполнить задания
- •Протокол доказательства того, что закрытый ключ x корреспондента P
- •Этапы построения протокола
- •2-й этап (усиление протокола)
- •3-й этап усиление протокола
- •Особенности протокола
- •Протокол доказательства, что для расшифрования использовался закрытый ключ, соответствующий известному открытому ключу
- •Криптосистема Эль -Гамаля
- •Доказательство, что для расшифрования использовался закрытый ключ, соответствующий известному открытому ключу (протокол доказательства
- •Выполнение сравнений свидетельствуют о том, что равенство выполняется.
- •Протоколы аутентификации пользователей (субьектов) - протоколы идентификации
- •Аутентификация пользователей (субъектов)
- •Протоколы аутентификации,
- •Проблема паролирования
- •Графический пароль в ОС Android
- •Защита от подсматривания
- •Парольные символы
- •Неподсматриваемый графический пароль «Шахматы»
- •Регистрация пароля
- •Регистрация пароля
- •Прохождение аутентификации с подсказами
- •Вероятность угадывания пароля при i подсматриваниях можно
- •Динамический пароль
- •Аутентификация пользователей
- •2. Протоколы идентификации на основе тнхники запрос-ответ с использованием
- •рукопожатия
- •Протокол аутентифицированной выработки ключа в стандартах мобильной связи 3G и 4G (Authenticated key
- •Анализ протокола идентификации на основе симметричных алгоритмов шифрования
- •Способы идентификации на основе использования цифровой подписи
- •Идентификация пользователей на основе протокола с нулевым разглашением
- •Достоинство протокола идентификации с нулевым разглашением (НР) по сравнению с алгоритмом ЭЦП, в
- •Протокол идентификации Шнорра
- •Описание протокола
- •Протокол неинтерактивной идентификации
- •Неинтерактивный протокол идентификации
- •Протокол: Обманчивая передача
- •Протокол – обманчивая передача
- •Видно, что В не получает никакой информации о z j для j i
Этапы построения протокола
Рассмотрим поэтапное построение протокола, обеспечивающего такое
доказательство Непосредственно передать пользователю В закрытый ключ х
пользователь А не может, так как он раскроет его. 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 является честной.
