ЛР-15 (Построение протокола доказательства с нулевым разглашением)
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №15
Построение протокола доказательства с нулевым разглашением
(тема отчета)
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Студент:
Лянгузов Н.А., ИКБ-31
(Ф.И.О., № группы) (подпись)
Преподаватель:
Яковлев В.А.
(Ф.И.О) (подпись)
Цель лабораторной работы
Получить навыки анализа и построения протоколов нулевого разглашения секрета.
Задача лабораторной работы
Построить протокол доказательства с нулевым разглашением секрета в виде решения задачи доказательства пользователем А того, что он имеет секретный ключ, соответствующий открытому ключу у пользователя В. На рисунке 1 изображено изначальное распределение ключей между A и B.
Рисунок 1. Распределение ключей.
Задание.
Провести моделирование работы протокола при следующих параметрах:
Модуль p = 31
Генератор g = 3
Секретный ключ x = (22 + 10) mod 30 = 2
Остальные параметры выбрать самостоятельно, используя числа в диапазоне (10-25). Пусть маскирующее число v = 31 – 15 = 16, запрос e = 13.
Порядок работы протокола:
Вычисляется открытый ключ y
A выбирает v, вычисляет a и отправляет его B
B выбирает e и отправляет его A
A вычисляет z и отправляет его B
B проверяет равенство gz mod p = (a * ye) mod p
Шаг 1.
y = gx mod p = 32 mod 31 = 9
Шаг 2.
a = gv mod p = 316 mod 31 = 28
31 mod 31 = 3
32 mod 31 = 9
34 mod 31 = (9 * 9) mod 31 = 81 mod 31 = 19
38 mod 31 = (19 * 19) mod 31 = 361 mod 31 = 20
316 mod 31 = (20 * 20) mod 31 = 400 mod 31 = 28
Шаг 3.
e = 13
Шаг 4.
z = (v + e * x) mod (p – 1) = (16 + 13 * 2) mod 30 = 12
Шаг 5.
gz mod p = (a * ye) mod p
Левая часть:
gz mod p = 312 mod 31 = 8
312 mod 31 = (20 * 19) mod 31 = 380 mod 31 = 8
Правая часть:
(a * ye) mod p = (13 * 913) mod 31 = (28 * 18) mod 31= 234 mod 31 = 8
913 = 326 = 316 * 38 * 32
913 mod 31 = 326 mod 31 = (28 * 20 * 9) mod 31 = 5040 mod 31 = 18
Проверка:
8 = 8 → проверка пройдена успешно
По итогу схема работы протокола со всеми значениями выглядит так, как показано на рисунке 2. По рисунку видно, что секретный ключ x ни разу не передавался между A и B, что обеспечивает его защиту от раскрытия.
Рисунок 2. Схема работы протокола.
Вывод
В ходе выполнения лабораторной работы были получены навыки анализа и построения протоколов нулевого разглашения секрета.
Был построен протокол доказательства с нулевым разглашением секрета в виде решения задачи доказательства пользователем А того, что он имеет секретный ключ, соответствующий открытому ключу у пользователя В.
Пользователь A может доказать знание секретного ключа x без его раскрытия. Проверка равенства gz mod p = (a * ye) mod p подтвердила корректность выполнения протокола.
Протокол обеспечивает:
Подтверждение подлинности пользователя.
Защиту секретного ключа от его раскрытия.
Невозможность успешного прохождение проверки без знания секрета.
Санкт-Петербург
2026
