Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

крипта_8

.docx
Скачиваний:
0
Добавлен:
17.06.2026
Размер:
1.72 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Кибербезопасности

Кафедра Защищенных систем связи

Дисциплина Криптографические протоколы

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №8

Исследование протокола скрытого определения местоположения точек интереса мобильного пользователя без учета ее типа и с учетом типа POI

(тема отчета)

Направление/специальность подготовки

(код и наименование направления/специальности)

Выполнил студент 3 курса:

___________

(Ф.И.О., № группы) (подпись)

Преподаватель:

д.т.н., проф. Яковлев В.А.

(Ф.И.О., № группы) (подпись)

Цель лабораторной работы:

Практическое применение криптосистемы Пэйе и ее гомоморфных свойств при определении местоположения точек интереса.

Теоретические сведения:

POI (point of interest) – достопримечательность или другой объект, отмеченный на карте.

Гомоморфное шифрование – это вид шифрования, который позволяет производить вычисления над зашифрованными данными. После расшифровки результат будет таким же, как и проведение идентичных вычислений над открытыми данными. Данный вид шифрования позволяет выполнять пользователю запросы к базе данных (в нашем случае к LBS) в виде зашифрованного текста и получать результаты, не раскрывая при этом информации о самом запросе.

Часть 8-1

Исследование протокола скрытого определения местоположения ближайшей точки интереса без учета ее типа

  1. Генерация ключей

Для варианта – 5

N

Местоположение

(i,j)

p

q

M

5

(2,2)

11

5 (7)

18

Вычисляем модуль :

Максимальная запись на сервере ,

Выполним проверку:

НОД(lcm((p-1),(q-1)), n) = 1

lcm(10, 4) = 20

НОД(20, 55) = 5 => изначальные простые числа не подходят => возьмем q=7 => НОД(30, 77) = 1

следовательно простые числа выбраны верно

Выбираем случайным образом числа из множества :

Пусть , .

Вычисляем :

Выбираем из множества : 5512

Открытый ключ: ;

Секретный ключ:

  1. Шифрование запроса

Так как наша область имеет ячеек, то .

Для каждого выбираем случайное число .

Пуcть

Далее вычисляем для каждого вычисляем:

c1 = 4^77 mod 77^2 = 5714

c2 = 5512*17^77 mod 77^2 = 162

c3 = 19^77 mod 77^2 = 717

c4 = 23^77 mod 77^2 = 606

Отправляем на сервер зашифрованный запрос и открытый ключ:

.

  1. Генерация ответа сервера

Вычисляем , где :

C1 = 5714^11 * 162^33 * 717^36 * 606^27 (mod 77^2) = 1425

C2 = 5714^12 * 162^18 * 717^26 * 606^34 (mod 77^2) = 2115

C3 = 5714^25 * 162^35 * 717^33 * 606^11 (mod 77^2) = 4392

C4 = 5714^10 * 162^11 * 717^9 * 606^27 (mod 77^2) = 2259

Ответ сервер отправляет пользователю

  1. Получение ответа

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

Из вектора выбираем только C2. Все остальные данные, полученные от сервера, можно игнорировать, так как только содержит информацию о k ближайших POIs для ячейки .

Расшифровываем криптограмму, используя алгоритм дешифрования криптосистемы Пэйе:

Преобразуем полученное число в двоичный вид:

Отсюда видим, что ближайшая точка интереса для ячейки находится в подъячейке

Видим, что полученное значение совпадает с данными на карте:

Часть №8-2

Исследование протокола скрытого определения местоположения точек интереса мобильного пользователя с учетом типа POI

Цель работы: закрепить теоретические знания студентов по разделу: «Гомоморфное шифрование». Ознакомиться с протоколом скрытого определения точек интереса мобильного пользователя на основе изученных алгоритмов криптосистем Пэйе и Рабина.

Выбор ячейки производится следующим образом:

координата = 5 mod 5 + 1 = 1

координата = (32 + 5) mod 5 + 1 = 3

Выбираем два больших простых числа , таких что , где – самое большое целое число из базы данных сервера, содержащей информацию о ближайших POIs. С учетом того, что , . Числа выбрать из диапазона >122

p1 = 131

q1 = 167

N1 = p1 * q1 = 131 * 167 = 21877

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

p2 = 237967

q2 = 238691

N2 = p1 * q1 = 237967 * 238691= 56800581197

Используя программу Maxima выполним проверку p1, q1, p2 и q2 на заданные условия:

Генерируем числа из множества и из множества , удовлетворяющие условию:

Проверим сгенерированные g1 и g2 с помощью программы Maxima:

Таким образом, имеем следующие ключи:

2. Формирование запроса

  • Шифрование POI типа на первом открытом ключе

Для каждого пользователь выбирает случайное целое число и вычисляет криптограммы :

где – тип точек интереса, про который пользователь запрашивает информацию.

Вычисляем криптограммы с при :

  • Шифрование координаты своей ячейки на втором открытом ключе.

Для каждого пользователь выбирает случайное целое число и вычисляет криптограммы :

где – первая координата ячейки, в которой находится пользователь.

Вычисляем криптограммы :

  • Шифрование координаты своей ячейки на втором открытом ключе

Далее пользователь выбирает случайное целое число и вычисляет еще одну криптограмму :

где – вторая координата ячейки, в которой находится пользователь.

Вычисляем криптограмму :

3. Генерация ответа сервера

  • Шифрование значений POIs для всех ячеек на первом открытом ключе.

Вычисляется , где , :

  • Вторичное шифрование POIs и дополнительное шифрование для координаты на втором открытом ключе.

Для каждого выбирается – целое число из множества и вычисляется :

Вычисление криптограмм R:

После того, как сервер вычислил криптограммы R, он посылает их пользователю в качестве ответа на полученный запрос.

4. Получение ответа

Пользователь получает ответ от сервера в виде :

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

В нашем случае выбираем криптограмму

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

Для вычисления координат и типа POI переводим d в двоичную форму (длиной 8 бит):

d = 810 = 000010002 = 000 010 00

0002 = 0 + 1 = 1

0102 = 2 + 1 = 3

002 = 0 + 1 = 1

Первые три бита содержат первую координату, следующие три бита – вторую координату, последние два бита – тип точки интереса. При этом к значениям каждой группы битов нужно добавить 1. Таки образом видим, что ближайший банкомат (t = 1) находится в ячейке: {1; 3}.

Видим, что полученное значение совпадает с данными на карте:

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

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

Повторим процедуру скрытого определения POIs для остальных типов POIs (при использовании тех же ключевых данных). Получаем следующие результаты:

При t = 2: Велосипедная парковка

При t = 3: Аптека

При t = 4: Почта

Видим, что полученные значения также совпадают с данными на карте:

Вывод:

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

Санкт – Петербург

2026

Соседние файлы в предмете Криптографические протоколы