Расшифрование пользователем ответа, полученного от сервера на посланный запрос
Получив ответ от сервера, пользователь выбирает только то значение, порядковый номер которого соответствует второй координате j его местоположения и выполняет расшифровку данных, состоящую из четырех шагов.
Расшифровывается криптограмма координаты j (j = 4) полученная от сервера секретным ключом используя алгоритм дешифрования криптосистемы Пэйе.
Получили криптограмму криптосистемы Рабина c’j = 17727420593
Расшифровывается криптограмма местоположения пользователя с учетом координаты j секретным ключом используя алгоритм дешифрования криптосистемы Рабина.
Получили криптограмму, которая содержит информацию только относительно местоположения пользователя c’’j = 128648482
Расшифровывается криптограмма, содержащая информацию относительно местоположения пользователя секретным ключом используя алгоритм дешифрования криптосистемы Пэйе.
Получили криптограмму криптосистемы Рабина, содержащую информацию о POI c’’’j = 16140
Расшифровывается криптограмма, содержащая информацию о ближайшей точке интереса секретным ключом используя алгоритм дешифрования криптосистемы Рабина.
Получили запрашиваемую информацию с базы данных сервера о ближайшей точке интереса типа t = 1 (банкомат) относительно центра ячейки (i, j), представленную в десятичном виде d = 140.
Найдем координаты ближайшей точки интереса для выбранного типа точки интереса:
14010 = 100011002
первые три бита: 100 – координата i ячейки (четвертый индекс i = 5);
вторые три бита: 011 – координата j ячейки (третий индекс j = 4);
последние два бита: 00 – тип выбранной точки интереса (банкомат).
Ближайший банкомат находится в ячейке (5, 4). Проверим это.
Действительно, ближайший к центру ячейки (4, 4) банкомат находится в ячейке (5, 4).
Попробуем расшифровать криптограмму полученную от сервера, порядковый номер которой не равен второй координате j. Например j = 3.
Как видим, выполнить расшифровку для криптограммы, порядковый номер которой не равен второй координате j невозможно.
Проделаем те же действия и для других типов точек интереса.
Для типа точки интереса 2 (велосипедная парковка):
Генерируем программой g1 = 129840553, g2 = 81811445149063012122
Проверка:
Числа g1 и g2 подходят.
Новые открытые ключи:
Pk1 = {129840553, 16637}
Pk2 = {81811445149063012122, 28288329197}
Шифрование типа t POI на первом открытом ключе.
Получили cl = {69204444 ; 227025028 ; 56892615 ; 68150668}
Шифрование координаты i своей ячейки на втором открытом ключе.
Получили c’l = {180908694342232230971 ; 469700087821576810246 ; 490529885340191249437 ; 459631183416297334753 ; 12949737633297655701}
Шифрование координаты j своей ячейки на втором открытом ключе.
Получили c = 263766472905197764953.
Отправленный запрос:
Q = { 5 ; 4 ; 69204444 ; 227025028 ; 56892615 ; 68150668 ; 180908694342232230971 ; 469700087821576810246 ; 490529885340191249437 ; 459631183416297334753 ; 12949737633297655701 ; 263766472905197764953 ; 129840553 ; 16637 ; 81811445149063012122 ; 28288329197}
Полученные криптограммы, которые сервер отправляет пользователю в качестве ответа:
R = { 533309233433046079633 ; 573121369631017523614 ; 730521561268463835208 ; 172005611316697789745 ; 338659102072312752704}
Расшифрование пользователем ответа, полученного от сервера:
Получили d = 133 = 100001012 => 100 001 01
Ближайшая точка интереса 2 типа (велосипедная парковка) находится в ячейке (5, 2). Проверим.
Действительно, ближайшая велосипедная парковка находится в ячейке (5, 2).
Для типа точки интереса 3 (аптека):
Генерируем программой g1 = 45003464, g2 = 193700899398881784893
Проверка:
Числа g1 и g2 подходят.
Новые открытые ключи:
Pk1 = {45003464, 16637}
Pk2 = {193700899398881784893, 28288329197}
Шифрование типа t POI на первом открытом ключе.
Получили cl = {214439400 ; 1081802 ; 113448115 ; 119552493}
Шифрование координаты i своей ячейки на втором открытом ключе.
Получили c’l = {610053487215667175373 ; 50660640607482248191 ; 71037404192129596314 ; 87470258805890296636 ; 505531483784043175135}
Шифрование координаты j своей ячейки на втором открытом ключе.
Получили c = 784026280532383984457.
Отправленный запрос:
Q = {5 ; 4 ; 214439400 ; 1081802 ; 113448115 ; 119552493 ; 610053487215667175373 ; 50660640607482248191 ; 71037404192129596314 ; 87470258805890296636 ; 505531483784043175135 ; 784026280532383984457 ; 45003464 ; 16637 ; 193700899398881784893 ; 28288329197}
Полученные криптограммы, которые сервер отправляет пользователю в качестве ответа:
R = {790086188565150688040 ; 163518387652242140030 ; 140049004037436279915 ; 31728872213764222234 ; 140824113642861007938}
Расшифрование пользователем ответа, полученного от сервера:
Получили d = 138 = 100010102 => 100 010 10
Ближайшая точка интереса 3 типа (аптека) находится в ячейке (5, 3). Проверим.
Действительно, ближайшая аптека находится в ячейке (5, 3).
Для типа точки интереса 4 (почта):
Генерируем программой g1 = 127169610, g2 = 531352120019695681675
Проверка:
Числа g1 и g2 подходят.
Новые открытые ключи:
Pk1 = {127169610, 16637}
Pk2 = {531352120019695681675, 28288329197}
Шифрование типа t POI на первом открытом ключе.
Получили cl = {157900747 ; 115840650 ; 64993551 ; 66304822}
Шифрование координаты i своей ячейки на втором открытом ключе.
Получили c’l = {193965973344280192389 ; 79178691170064561246 ; 621874765833150730524 ; 333136022732553814602 ; 352967251886423471978}
Шифрование координаты j своей ячейки на втором открытом ключе.
Получили c = 710329464075199848121.
Отправленный запрос:
Q = {5 ; 4 ; 157900747 ; 115840650 ; 64993551 ; 66304822 ; 193965973344280192389 ; 79178691170064561246 ; 621874765833150730524 ; 333136022732553814602 ; 352967251886423471978 ; 710329464075199848121 ; 127169610 ; 16637 ; 531352120019695681675 ; 28288329197}
Полученные криптограммы, которые сервер отправляет пользователю в качестве ответа:
R = {192372095464980671617 ; 418070161988261326075 ; 155919088782927137529 ; 742320247433355316131 ; 453027577584171112890}
Расшифрование пользователем ответа, полученного от сервера:
Получили d = 147 = 100100112 => 100 100 11
Ближайшая точка интереса 4 типа (почта) находится в ячейке (5, 5).
Действительно, ближайшая почта находится в ячейке (5, 5).
Вывод
В ходе выполнения лабораторной работы были закреплены теоретические знания по разделу «Гомоморфное шифрование», а также осуществлено ознакомление с протоколом скрытого определения точек интереса мобильного пользователя на основе алгоритмов криптосистем Пэйе и Рабина.
Санкт-Петербург
2022