Скачиваний:
20
Добавлен:
10.04.2023
Размер:
12.06 Mб
Скачать

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

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

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

(СПбГУТ)

Факультет Инфокоммуникационных сетей и систем

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

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

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

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

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

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

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

10.03.01 Информационная безопасность

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

Студент:

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

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

Яковлев В.А

(Ф.И.О) (подпись)

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

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

Выполнение лабораторной работы

Координата i = N mod5 + 1 = 28 mod 5 + 1 = 4

Координата j = (D + N) mod5 + 1 = (30+28) mod 5 + 1 = 4

Ячейка (4,4):

  1. Генерация ключей пользователем

Сгенерируем простые числа p1, q1, таких, что N1 = p1q1 > M, где M = max(di,j) = 14700 – самое больше целое число из базы данных сервера.

Сгенерируем при помощи программы Maxima:

Получили p1 = 127, q1 = 131. Модуль N1 = 16637.

Сгенерируем простые числа p2, q2, так, чтобы N21 * 100 < N2 < N41, где N2 = p2q2.

Сгенерируем их также при помощи программы Maxima:

Получили p2 = 166399, q2 = 170003. Модуль N2 = 28288329197.

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

С помощью программы получили следующие значения:

g1 = 69994723

g2 = 711014335763367719741

Проверка:

Числа g1 и g2 подходят.

Таким образом,

Открытые ключи:

Pk1 = {g1, N1} = {69994723; 16637}

Pk2 = {g2, N2} = {711014335763367719741; 28288329197}

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

Sk1 = {p1, q1} = {127, 131}

Sk2 = {p2, q2} = {166399, 170003}

  1. Формирование пользователем зашифрованного запроса

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

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

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

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

g1 = 69994723, N1 = 16637

Выбираем t = 1 (банкомат)

Получили cl = {172245960 ; 96951916 ; 179668273 ; 93352806}

Encrypt(1, pk1), l = t = 1

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

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

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

i = 4, g2 = 711014335763367719741, N2 = 28288329197

Получили c’l = {457187852266935158332 ; 572650764566015599574 ; 110724341283937467168 ; 267308458966397950317 ; 621368301944776417040}

Encrypt(1, pk2), l = i = 4

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

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

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

j = 4, g2 = 711014335763367719741, N2 = 28288329197

Получили криптограмму координаты j: c = 735870554799190456938.

Все полученные криптограммы пользователь отправляет на сервер в качестве запроса.

Таким образом, отправленный запрос:

Q = {5 ; 4 ; 172245960 ; 96951916 ; 179668273 ; 93352806 ; 457187852266935158332 ; 572650764566015599574 ; 110724341283937467168 ; 267308458966397950317 ; 621368301944776417040 ; 735870554799190456938 ; 69994723 ; 16637 ; 711014335763367719741 ; 28288329197}

  1. Формирование сервером ответа на запрос, полученный от пользователя

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

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

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

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

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

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

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

Полученные криптограммы, которые сервер отправляет пользователю в качестве ответа:

R = {219751464759017887113 ; 103803329079309472230 ; 658751326055329960828 ; 726760509344019403795 ; 57509912127614153411}

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