Cloud Data Placing and private information retrieval algorithms
- Authors: Varnovskiy N.P.1, Martishin S.A.2, Khrapchenko M.V.2, Shokurov A.V.2
-
Affiliations:
- Information Security Section of Information Security Institute of Moscow State Lomonosov University
- Ivannikov Institute for System Programming of the RAS
- Issue: No 6 (2024)
- Pages: 12-23
- Section: INFORMATION SECURITY
- URL: https://ogarev-online.ru/0132-3474/article/view/283176
- DOI: https://doi.org/10.31857/S0132347424060027
- EDN: https://elibrary.ru/dzdhbd
- ID: 283176
Cite item
Full Text
Abstract
The authors consider the problem of ensuring secure queries to the database PIR (Private Information Retrieval) problem. Previously, the authors considered the problem for a database hosted in the cloud in the presence of an active adversary who does not interfere with the execution of the protocol, but can carry out an attack with known open queries. In algorithms, bit number i is represented as the l-ary number with a number of digits d. An algorithm for placing a database in the cloud and an algorithm for querying the required bit using permutations in the digits of the bit number, using the specification of the bit number i in the base l numerical system, were proposed. Permutations are treated as secret encryption keys. Communication complexity and probability of guessing the bit number for a one-time attack with a known open request for bit number i and for an attack with unlimited number of known open requests were estimated.
Keywords
Full Text
1. ВВЕДЕНИЕ
В работах [1, 2] авторы исследовали задачу организации конфиденциальных запросов к базе данных (PIR – Private Information Retrieval) в случае размещения реплицированной базы данных на облаке и наличия активного противника, работающего по протоколу, но имеющему возможность производить атаку с известными открытыми запросами.
Задача PIR в информационно-теоретической постановке была сформулирована в 1995 г. Шором, Голдрайхом, Кушелевицем и Суданом [3].
Классическая постановка задачи PIR:
- имеется база данных – бинарная строка X = (x1, ..., xn) длины n, хранящаяся на сервере в облаке;
- клиент хочет получить один бит информации xi из базы данных X так, чтобы никто, кроме клиента, обращающегося с запросом, не смог определить, с какой позиции i был запрошен бит.
В работах [3, 4] было показано, что если база данных размещена на единственном сервере, который полностью контролируется противником, то теоретико-информационное условие конфиденциальности корректного протокола PIR может быть выполнено только том случае, когда клиент запрашивает базу данных целиком. Однако в этом случае коммуникационная сложность протокола, т. е. общее количество бит, которыми обмениваются участники протокола за время его работы, будет не меньше размера базы данных, что делает его практически не применимым.
Для уменьшения коммуникационной сложности в работах [3, 4] была предложена модель реплицированной базы данных, в которой несколько одинаковых копий строки X = (x1, ..., xn) размещалось на разных серверах. Предполагалось, что клиент имеет связь с каждым из этих серверов, но сами серверы не имеют связи друг с другом. Также предполагалось, что противник может наблюдать любой из серверов, на которых размещена база данных, причем, возможно, разные серверы во время выполнения разных сеансов протокола.
Очевидно, что в облачных информационных системах нельзя обеспечить изолированность копий распределенной базы данных друг от друга. Поскольку ни пользователь, ни клиент не могут контролировать облако, то всегда предполагается наличие на облаке противника. С учетом этого выбирается модель для дальнейших исследований. Важное отличие от классической модели, в рассматриваемой модели противники на разных серверах могут общаться.
В работах [1, 2] предлагалась модель, включающая в себя облако, состоящее из нескольких серверов, на каждом из которых хранится копия одной и той же базы данных, дилера, центра аутентификации, пользователей, клиентов, противника.
Серверы в облаке соединены посредством незащищенных каналов связи друг с другом и дилером. По этим каналам серверы обмениваются информацией между собой и дилером. Облачные серверы и незащищенные каналы связи доступны для стороннего наблюдателя. Дилер находится вне облака, противнику недоступен. Основной функцией дилера являлось шифрование и дешифрование информации при работе с облаком. Предполагалось, что противник не только пассивно наблюдает, но производит атаку с известными открытыми запросами.
В работах [1, 2] была получена оценка коммуникационной сложности работы протокола, а также оценки вероятности угадывания противником, работающим по протоколу, номера бита i при однократной атаке и при атаке с неограниченным числом известных открытых запросов.
В отличие от работ [1, 2] в данной статье предлагается вместо шифрования использовать перестановки номеров битов.
Предложены алгоритмы, основанные на перестановках, для представления номера бита в новой системе счисления, формирования запроса к облаку, обработки ответа облака и получения значения искомого бита. Даны новые оценки коммуникационной сложности алгоритмов и вероятности угадывания противником номера запрошенного бита.
В отличие от рассматриваемых в [1, 2] алгоритмах предлагается: использовать перестановки цифр номера бита в выбранной системе счисления вместо шифрования. В новом алгоритме поиск противником рядом стоящих запрашиваемых битов затруднен, и замена сдвига в интервале множества битов на перестановку не позволяет противнику сделать вывод по одному запрашиваемому множеству об остальных не пересекающихся с этим множеством множествах.
Получены оценки вероятности угадывания номера бита при однократной атаке с известным открытым запросом номера бита и при атаке с неограниченным числом известных открытых запросов при наличии противника на облаке. Приведена оценка коммуникационной сложности алгоритма.
2. МОДЕЛЬ ВЫЧИСЛЕНИЙ, ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И ПОСТАНОВКА ЗАДАЧИ
2.1. Состав модели
Состав модели вычислений, для которой в данной статье исследуется облачный вариант задачи PIR, аналогичен составу модели, рассмотренной в [2].
Модель включает в себя:
Облако. Состоит из нескольких серверов, хранящих копии одной и той же базы данных. Копии на серверах имеют разные перестановки номеров битов. Серверы соединены посредством незащищенных каналов связи друг с другом и дилером.
Пользователь. Хранит данные на облаке. Предполагается, что на облаке хранится k копий баз данных. Для загрузки данных пользователь обращается к дилеру по каналу связи, использующему стандартный криптографический протокол для обмена зашифрованными данными.
Клиенты. Запрашивают некоторую информацию из базы данных. Обращаются для выполнения запроса к дилеру. С дилером соединены каналами связи, использующими стандартный криптографический протокол для обмена зашифрованными данными.
Центр аутентификации. Аутентифицирует пользователя и клиентов.
Дилер. Находится вне облака, противнику недоступен. Канал связи с облаком является незащищенным. Объем памяти дилера для постоянного хранения данных пренебрежимо мал по сравнению с n. Получив от клиента данные для размещения на облаке, дилер выполняет перестановку уникальную для каждой копии базы данных, размещает данные на облаке. При запросе клиента дилер возвращает клиенту значение.
В дальнейшем для простоты будем считать, что база данных загружается одним пользователем. Предполагается, что после загрузки база данных не может быть изменена. Либо изменена полностью. Также будем рассматривать случай запроса одного бита.
2.2. Основные определения
Противник. Не вмешивается в выполнение криптографического протокола. Имеет доступ к базе данных на облаке, к каждой ее копии, к каналам связи на облаке. Может создавать фальшивых клиентов, работающих по протоколу. То есть противник не только пассивно наблюдает, но и сам может производить атаку с известными открытыми запросами. Противник может заставить дилера отправить запрос на облако. При этом противник знает алгоритм формирования запроса к облаку, но не знает конкретных параметров. Противник также знает алгоритм формирования ответа клиенту дилером на основании ответа, полученного дилером от облака.
Угроза: угадывание исходного номера бита, запрашиваемого клиентом в базе данных.
Атака:
- Атака пассивного противника на облаке заключается в наблюдении за запросом от дилера и ответом облака дилеру. Эта информация используется для сбора статистики и анализа.
- Атака активного противника (атака с известными открытыми запросами) заключается в создании фальшивых клиентов и управление ими. При помощи фальшивых клиентов активный противник может сформировать произвольное число запросов, что позволит в коалиции с пассивным противником на облаке собрать и проанализировать информацию для всей базы данных.
2.3. Постановка задачи и основные обозначения
В отличие от классической постановки задачи PIR будем рассматривать базу данных (бинарная строка) X = (x0, ..., xn–1) длины n, где элементы X нумеруются с нуля. Это делает белее удобным работу с различными системами счисления.
Клиент хочет получить один бит информации xi с номером i из базы данных X так, чтобы противник не узнал ничего о том, с какой позиции i был запрошен бит.
Будем размещать на облаке k копий баз данных. Пусть k = 2d, где d ≥ 2. На практике 4 ≤ k ≤ 32. В дальнейшем будем предполагать, что на k наложены эти ограничения.
Без потери общности предполагается, что n = l d, т. е. d = log2k и . Заметим, что поскольку l-основание системы счисления, то l ≥ 2 и d подбирается так, чтобы l = n. Пусть .
Так как , округлим l до целого числа в большую сторону.
Пусть x – элемент группы Z2, обозначим через h – номер копии базы данных.
3. ПРЕДСТАВЛЕНИЕ НОМЕРА БИТА L-ИЧНОЙ СИСТЕМЕ СЧИСЛЕНИЯ
Представим номер бита как d разрядов в l-ичной системе счисления. Выбор l и d основывается на известной модели [1, 2], где номер i бита xi представлен в l-ичной записи: . Цифры l-ичной записи представляют собой элементы кортежа длины d, т. е. на j-м месте кортежа стоит l-ичная цифра.
Эти d элементов кортежа можно интерпретировать как точку с целочисленными координатами в гиперкубе размерности d и длиной стороны l, где l =. Такое множество точек куба размерности d можно рассматривать как множество слов длины d с алфавитом (0, ..., l – 1).
4. ЗАГРУЗКА ДАННЫХ НА ОБЛАКО
4.1. Инициализация массива X c
Напомним, что n = l d и . Выберем целые числа du ≥ 2 и lu ≥ 2 такие, чтобы и обозначим (Lp– ≤ Lp). Пусть , где l* ≥ l и nu = l*Lp–. Ниже будет показано, что коммуникационная сложность зависит от l*. Для того чтобы коммуникационная сложность не возрастала, нужно подобрать значения du и lu так, чтобы минимизировать разность Lp – Lp–. Конкретный выбор значений du и lu, который не только минимизирует разность Lp – Lp–, но и уменьшает количество вычислительных операций, производимых дилером, будет описан ниже.
Поскольку nu ≥ n, добавим в базу данных nu – n битов. Добавленные биты могут быть заполнены произвольными значениями. Биты будут добавлены в конец базы данных.
Пусть lc и dc целые числа, такие, что и nc ≥ nu, тогда nc ≥ n.
На облако будет загружаться массив , где nc ≥ n, т. е. на облако будет загружено nc битов. Нумерация массива X c начинается с нуля. Увеличение числа элементов в массиве необходимо, чтобы вместо шифрования битов использовать их секретную перестановку. Это позволяет уменьшить объем памяти, необходимой дилеру для хранения данных и снизить коммуникационную сложность.
4.2. Построение матрицы перестановок
Номер запрашиваемого бита в lc-ичной системе счисления можно представить как целочисленную точку гиперкуба размерности dc с длиной стороны lc. При этом j-я () координата точки гиперкуба является j-м разрядом представления числа в lc-ичной системе счисления.
Изменим номера битов путем изменения цифр в разрядах номеров в lc-ичном представлении. Цифры в каждом разряде изменяются с помощью перестановок цифр от 0 до lc – 1. Для каждого разряда вычисляется своя перестановка. Поскольку перестановки являются случайными, то для разных разрядов возможно, что перестановки совпадают.
Выберем копию базы данных . Пусть βhj – случайная перестановка из lc чисел от 0 до lc – 1, где – номер разряда числа в lc-ичной системе счисления. Представим перестановку чисел в виде таблицы:
.
Тогда – множество “поразрядных” перестановок числа в lc-ичной системе счисления.
Построим матрицу Mβ размера k × dc, где k – число копий базы данных, а dc – целое число, такое, что . Элементом βij матрицы Mβ является случайная перестановка целых чисел от 0 до lc – 1. Таким образом, для каждой копии базы данных будет построено dc случайных перестановок.
Для генерации перестановок цифр номера бита lc-ичной системе счисления используется датчик псевдослучайных чисел PRNG (db, m). На вход PRNG (db, m) подается уникальное значение db для конкретной базы данных и номер копии базы данных m. Датчик псевдослучайных чисел при одинаковой инициализации генерирует одинаковую перестановку.
Поскольку матрица Mβ требует для хранения значительного объема памяти, матрица Mβ при необходимости восстанавливается с помощью датчика псевдослучайных чисел.
4.3. Отображение
Номер бита i представляем в системе счисления по основанию lc с числом разрядов dc:
, где .
Для копии базы данных с номером h выполним перестановки для разрядов числа i:
.
Обозначим такое преобразование через , где – строка матрицы Mβ. Необходимые для работы алгоритма элементы матрицы Mβ генерируются с помощью датчика псевдослучайных чисел.
4.4. Вспомогательные построения, необходимые для работы алгоритма запроса бита – алгоритм построения матрицы G
Построим матрицу G размера nc × 2:
.
Первый столбец этой матрицы – последовательность nc целых чисел . Второй столбец матрицы G – элементы .
4.5. Формирование матриц Gh для каждой копии базы данных из матрицы G
Алгоритм формирования матриц Gh
Вход: матрица G.
Выход: матрицы Gh для всех .
Шаг 1. Выберем копию базы данных h.
Шаг 2. Скопируем матрицу G в матрицу Gaux.
Шаг 3. Для каждого элемента i, где i = 0, ..., nc – 1 первого столбца матрицы Gaux выполним преобразование .
Шаг 4. Отсортируем строки матрицы Gaux по первому столбцу. Получим матрицу Gh.
Шаг 5. Выполним Шаги 1–4 для всех ■.
В результате работы алгоритма получим Gh матриц для каждой копии базы данных
4.6. Загрузка данных на облако
Алгоритм загрузки данных на облако аналогичен алгоритму, приведенному в [1, 2].
На вход алгоритма подается бинарный массив X = (x1, ..., xn). Для удобства будем предполагать, что X = (x0, ..., xn–1). В результате работы алгоритма на облако загружается k преобразованных с помощью перестановки копий баз данных.
Алгоритм загрузки данных на облако
Вход: X.
Выход: загрузка на облако Gh, где .
Шаг 1. Дилер аутентифицирует пользователя. Пользователь передает дилеру массив значений битов X = (x0, ..., xn–1). Дилер преобразует массив X = (x0, ..., xn–1) в массив .
Шаг 2. Дилер формирует матрицу G = || gi, j ||, где .
Шаг 3. Дилер генерирует элементы матрицы Mβ в процессе работы.
Шаг 4. Дилер создает матрицу Gh, где .
Шаг 5. Дилер загружает матрицу Gh, где на облако.
Шаг 6. Шаги 4, 5 дилер выполняет в цикле для каждой копии базы данных. По окончании перебора k копий базы данных происходит выход из алгоритма ■.
Число элементов, переданных каждой из k копий базы данных равно 2 nc.
Заметим, что поскольку в дальнейшем восстановление матрицы G не предполагается, матрицу G дилер не хранит.
Для выполнения перестановки дилеру требуется иметь объем памяти, сравнимый с объемом, необходимым для хранения одной копии базы данных. При этом предполагается, что дилер может работать с несколькими базами данных и нет необходимости их одновременного хранения. После загрузки базы данных на облако память дилера очищается для работы со следующей базой данных.
В приведенном ниже алгоритме дилер должен выполнять Шаги 4 и 5 для каждой копии базы данных последовательно. Иначе ему придется хранить в памяти все k копий базы данных, что приводит к большим расходам памяти.
5. ВЫПОЛНЕНИЕ ДИЛЕРОМ ЗАПРОСА КЛИЕНТА
Для сокрытия при запросе искомого номера бита, вместо одного запрашиваемого номера бита дилер будет запрашивать у облака множество номеров битов мощностью l*. Причем только один из этих номеров битов был запрошен клиентом. Каждый элемент из множества номеров битов лежит только в одном из интервалов мощности Lp– разбиения этого множества.
5.1. Использование множества номеров битов в запросе для сокрытия номера бита
Пусть клиент интересуется элементом xi ä X. Этому элементу соответствует i-я строка матрицы G, причем 0 ≤ i < n. Отрезок целых чисел от 0 до nc – 1 содержит l* интервалов по Lp– элементов в каждом из них.
Номер i лежит ровно в одном из этих интервалов. Далее для этого элемента i выберем по одному элементу в каждом из оставшихся l* – 1 интервалов (алгоритм выбора элементов описан в п. 5.2). Таким образом, каждому номеру i поставим в соответствие другие l* – 1 чисел, лежащих в различных интервалах и не попадающих в интервал, где лежит само число i.
Как было сказано выше, каждый интервал можно интерпретировать как дискретный гиперкуб размерности du с длиной стороны lu.
Выберем интервал . Пусть σmj – случайная перестановка из lu чисел от 0 до lu – 1, где – разряд числа в lu-ичной системе счисления. Как и ранее, запишем перестановку чисел в виде
.
Тогда – множество “поразрядных” перестановок числа в lu-ичной системе счисления du-разрядного числа.
Построим матрицу Mσ (по аналогии с матрицей Mβ) размера l* × du, где l* – число интервалов, а du – целое число, такое, что . Элементом σij матрицы Mσ является случайная перестановка целых чисел от 0 до lu – 1. Таким образом, для каждого интервала на которые разбивается база данных будет построено du случайных перестановок.
Для генерации перестановок цифр номера бита матрицы Mσ используется датчик псевдослучайных чисел PRNG (db, m, j). На вход PRNG (db, m, j) подается уникальное значение db для конкретной базы данных, номер интервала m (всего l* штук) и – разряд числа в lu-ичной системе счисления. Датчик псевдослучайных чисел при одинаковой инициализации генерирует одинаковую перестановку.
Поскольку матрица Mσ требует для хранения значительного объема памяти, элементы матрицы Mσ восстанавливаются с помощью датчика псевдослучайных чисел.
Поскольку отрезок целых чисел от 0 до nc – 1 разбивается на l* интервалов по Lp– элементов в каждом интервале, то любое число из этого множества попадет в один из таких интервалов.
Найдем номер интервала w, в который попало число i при разбиении отрезка целых чисел от 0 до nc – 1 на l* интервалов:
Заметим, что .
Приведем i по модулю Lp–. Обозначим через i ′ = i mod Lp– результат приведения. Тогда i ′ является порядковым номером в интервале с номером w.
Представим порядковый номер i ′ в интервале с номером w в lu-ичной системе счисления:
, где .
Рассмотрим сумму , где – обратная перестановка, такая, что .
Обозначим через , величина Dj – секрет, известный только дилеру.
В каждом интервале найдем число, такое, что , где j = 1, ..., du. Для всех интервалов таких чисел i ′(m) будет l*. Заметим, что для интервала w это будет число i ′.
Обозначим через Seti полученное по алгоритму 5.2 (Алгоритм построения множества Seti дилером) множество из l* чисел.
5.2. Построение множеств Seti дилером
Алгоритм построения множества Seti дилером
Вход: X c, i, l*, du, Lp–.
Выход: множество Seti.
Seti = ∅
// найдем номер интервала
// найдем порядковый номер числа i
// в соответствующем интервале разбиения
i ′ = i mod Lp–
// найдем представление числа i ′ в lu-ичной записи
,
// найдем координаты
for j ← 1 to du do
for m ← 1 to l* do
Листинг 1. Алгоритм построения множества Seti
5.3. Запрос клиентом бита с номером i. Предварительные замечания
Пусть клиент запрашивает бит с номером i.
После подтверждения центром аутентификации полномочий клиента дилер разрешает клиенту отправить запрос.
Напомним, что физически в облаке хранятся матрицы Gh, . Строка матрицы Gh состоит из номера строки и значения бита. Без потери общности (как было сказано выше) будем индексировать элементы базы данных с 0.
Так же как и в [1, 2] для каждого элемента множества Seti случайно и равномерно выбирается номер копии базы данных. Все элементы множества Seti для которых выбрана копия базы данных h, обозначим через множества Setih, где . Очевидно, что множества Setih не пересекаются между собой, поскольку все элементы множества Seti различны и каждому элементу ставится в соответствие ровно один номер h (номер копии базы данных). Объединение множеств Setih содержит все элементы множества Seti, т. е. , где .
Пусть для запрашиваемого номера i в множестве Seti была выбрана копия базы данных h.
Для каждого элемента множества Setih выполняется перестановка βh, пусть y = βh(i). Полученные после перестановки элементы сортируются. Это множество обозначим через . Позиция ipos элемента y = βh(i) в множестве запоминается.
Дилер на время выполнения запроса формирует вектор-строку snum из трех элементов snum = (s1, s2, s3):
- Первый элемент вектора-строки snum содержит номер элемента i.
- Второй элемент вектора-строки snum содержит номер копии h базы данных, в которую попал номер s1.
- Третий элемент вектора-строки snum содержит позицию ipos номера y в множестве .
Вектор-строка snum позволяет дилеру после получения ответа от облака сразу отбросить данные, кроме данных, необходимых для выполнения запроса.
Вектор-строка snum формируется у дилера и известна только дилеру. Вектор-строка snum является секретной.
На k копий базы данных дилер отправляет в общей сложности l* номеров.
После выполнения запроса дилер с помощью вектора-строки snum получает значение искомого элемента и отправляет его клиенту.
Алгоритм подготовки запроса к облаку
Вход: X c, i, l*, du, Lp–.
Выход: , snum.
Шаг 1. Клиент обращается к дилеру и запрашивает значение бита с номером i.
Шаг 2. Дилер генерирует множество Seti.
Шаг 3. Дилер на время выполнения запроса i-го бита резервирует память для вектора-строки snum трех элементов.
Шаг 4. Дилер заносит i в первый элемент вектора-строки snum.
Шаг 5. Дилер выполняет разбиение множества Seti на непересекающиеся подмножества Setih, где , путем случайного и равномерного выбора номера копии базы данных для каждого элемента множества Seti.
Дилер заносит во второй элемент вектора-строки snum номер копии базы данных s2, соответствующей элементу s1.
Шаг 6. Дилер выполняет перестановку βh для элементов множества Setih после чего полученные после перестановки новые номера сортируются. Получаем множество . Этот шаг выполняется для всех .
Шаг 7. Дилер заносит в третий элемент вектора-строки snum позицию ipos номера в множестве ■.
5.4. Выполнение запроса к облаку и ответ облака
Алгоритм обмена информацией с облаком
Вход: .
Выход: значения битов в том же порядке, в котором передавались номера битов множества для каждой копии базы данных .
Шаг 1. Для каждой копии базы данных дилер отправляет на облако множества .
Шаг 2. Для запрошенных номеров битов облако возвращает дилеру значения битов из второго столбца матрицы , где ). Порядок возвращаемых значений битов соответствует исходному порядку элементов множества ■.
5.5. Обработка ответа облака
Алгоритм обработки ответа облака
Вход: snum, значения битов в том же порядке, в котором передавались номера битов множества для каждой копии базы данных .
Выход: значение бита i.
Шаг 1. Дилер с помощью вектора-строки snum выбирает нужное значения бита. Остальные значения битов отбрасываются.
Шаг 2. Дилер получает значение бита для первого элемента вектора-строки snum. По построению вектора-строки snum запрашиваемый номер является элементом s1.
Шаг 3. Дилер отправляет значение i бита клиенту ■.
6. ОЦЕНКА ТРЕБУЕМОЙ ПАМЯТИ И СЛОЖНОСТИ АЛГОРИТМА
6.1. Объем информации, который необходимо хранить дилеру
На протяжении всего времени существования базы данных дилер хранит информацию для базы данных объема nc:
- значение db для инициализации датчиков псевдослучайных чисел PRNG (db, m) и PRNG (db, m, j);
- значения k, dc и lc для датчика псевдослучайных чисел PRNG (db, m), генерирующего матрицу Mβ размера k × dc. Элементом матрицы Mβ является случайная перестановка целых чисел от 0 до lc – 1;
- значения k, du, lu и l* для датчика псевдослучайных чисел PRNG (db, m, j), генерирующего матрицу Mσ размера l* × du. Элементом матрицы Mσ является случайная перестановка целых чисел от 0 до lu – 1.
Объем хранимой дилером информации много меньше n.
6.2. Характеристики предложенной схемы
В данной схеме рассматривается активный противник, работающий по протоколу. Противник имеет доступ к базе данных на облаке, к каждой ее копии, к каналам связи на облаке, может создавать фальшивых клиентов, работающих по протоколу. То есть противник не только пассивно наблюдает, но и сам может производить запросы с помощью созданных фальшивых клиентов, т. е. производит атаку с известными открытыми запросами. Противник не имеет доступа к дилеру.
6.3. Основные результаты
Под коммуникационной сложностью для предложенной схемы будем понимать общее количество пересылаемых битов, необходимых для обмена информацией между дилером и облаком. То есть сумму числа битов, отправляемых дилером на облако и числа битов, получаемых от облака дилером, необходимых для нахождения дилером значения бита, запрашиваемого у дилера. Пусть s – число битов для представления номера бита. Напомним, что l* является мощностью множества Seti.
Утверждение 1. Коммуникационная сложность схемы получения значения номера бита дилером без раскрытия его номера равна l*(s + 1) битов.
Доказательство. Для запроса значения бита дилер посылает копиям базы данных l* номеров битов длиной s каждый. Облако отвечает l* битами ■.
Проанализируем вероятность угадывания противником номера запрашиваемого бита.
Если запросы выполнены к одному множеству, то они неразличимы. Таким образом, если противник совершает n или более запросов, он не узнает номер конкретного бита. Максимум, какую информацию противник может получить – такое подмножество множества Seti, что при запросе к каждому элементу из подмножества, на облаке осуществляется доступ ко всем битам из множества Seti и только к ним. Что будет означать, что противник не знает, а только угадывает, какой именно бит из Seti был выбран.
Утверждение 2. При однократной атаке с известным открытым запросом номера бита i и предположении о наличии пассивного противника на облаке вероятность угадывания противником номера бита не более .
Доказательство. Множество Seti состоит из l* элементов и для любого j Seti выполняется Seti = Setj. То есть существует одинаковое множество для l* различных номеров битов. Таким образом вероятность угадывания номера из множества Seti равна , так как Seti имеет мощность l* ■.
Сделав n или более запросов, противник получит информацию о числе реальных битов в каждом множестве Seti. Число этих битов будет меньше или равно l*. Таким образом, противник понимает, что запрошенный клиентом номер находится среди истинных номеров битов. И вероятность того, что клиент запрашивал конкретный номер реального бита для всех реальных номеров битов из одинаковая.
Для того чтобы оценить вероятность угадывания конкретного номера бита из множества Seti, необходимо посчитать среднее число истинных битов, попадающих в множество Seti.
Мощность множества X c равна nc, где элементам множества X соответствует n (n < nc) элементов. Из множества X c выбирается l* элементов. В этом случае возникает вопрос: сколько элементов N из случайной выборки мощности l* в среднем соответствует элементам множества X?
Пусть Pr – вероятность получения в выборке мощности l* ровно r элементов, соответствующих элементам множества X. Тогда Pr находится по формуле
.
Тогда среднее число истинных битов, попадающих в множество Seti,
.
Утверждение 3. При атаке с неограниченным числом известных открытых запросов и предположении о наличии пассивного противника на облаке вероятность угадывания номера бита противником в среднем не более .
Доказательство. Выполнив nc запросов, противник определяет элементы, входящие в каждое множество Seti. Если фиктивные клиенты будут выполнять любое количество запросов большее nc, противник все равно не получит никакой дополнительной информации.
Количество реальных бит, которые попали в каждую выборку мощности l* в среднем равно N. Тогда вероятность угадывания номера i в среднем будет не более ■.
Утверждение 4. При атаке с неограниченным числом известных открытых запросов и предположении о наличии пассивного противника на облаке вероятность угадывания номера бита противником будет не более .
Доказательство. По построению гиперкубы, соответствующие интервалам, заполняются таким образом, что добавленные фиктивные номера битов добавляются только в интервал с номером l*. Предположим, что l* – 1 гиперкубов, соответствующих интервалам заполнены номерами битов, а интервал с номером l* заполнен только фиктивными битами.
В этом случае противник, выполнив любое количество запросов, определит номер фиктивного бита из интервала с номером l*, поскольку из каждого интервала выбирается только один бит для построения множества Seti. Следовательно, при любом количестве запросов вероятность угадывания номера бита противником будет не более ■.
Значение k по сравнению с n мало. Докажем, что предложенный протокол удовлетворяет условию лаконичности.
Как было сказано ранее, для того чтобы коммуникационная сложность не возрастала, нужно подобрать значения du и lu так, чтобы минимизировать разность . Это следует из того, что и , тогда l* ≈ l, следовательно l* = n.
Теорема 1. Для предложенной схемы организации базы данных размера n:
- Коммуникационная сложность запроса равна l*(s + 1) битов.
- При однократной атаке с известным открытым запросом номера бита i и предположении о наличии пассивного противника на облаке вероятность угадывания противником номера бита не более .
- При атаке с неограниченным числом известных открытых запросов и предположении о наличии пассивного противника на облаке вероятность угадывания номера бита противником в среднем не более .
- При атаке с неограниченным числом известных открытых запросов и предположении о наличии пассивного противника на облаке вероятность угадывания номера бита противником будет не более .
Доказательство. Из Утверждения 1 следует, что коммуникационная сложность запроса равна l*(s + 1) битов.
Из Утверждения 2 следует, что при однократном запросе номера бита вероятность угадывания номера равна .
Из Утверждения 3 следует, что при любом числе запросов номеров битов фиктивными клиентами и наличии противника на облаке вероятность угадывания номера бита в среднем не более .
Из Утверждения 4 следует, что при любом числе запросов номеров битов фиктивными клиентами и наличии противника на облаке вероятность угадывания номера бита противником будет не более ■.
7. ОЦЕНКА ГЕНЕРИРУЕМОЙ ДИЛЕРОМ ИНФОРМАЦИИ
Напомним, что n = l d, . По приведенным выше построениям d – размер гиперкуба, а l – длина его стороны. Для минимизации вычислений дилером необходимо минимизировать размер вычисляемых матриц Mβ и Mσ. Для этого надо минимизировать размер строки каждой из матриц, т. е. величины и .
Рассмотрим функцию описывающую соотношение между длиной стороны гиперкуба и его размерностью. Исследуем функцию f (x) для того, чтобы минимизировать размер генерируемой дилером информации. Заметим, что x ≥ 1.
По известной формуле найдем производную функции f (x):
Производная равна нулю в точках экстремума. Найдем координату x точек экстремума. Поскольку , приравняем к нулю второй сомножитель:
.
Тогда
,
.
Теперь выясним, эта точка экстремума минимум или максимум:
Таким образом, минимум функции находится в точке x = ln n. Следовательно, минимальное количество элементов матриц Mβ и Mσ, которое должен генерировать дилер, достигается при x = ln n. Величина x должна быть целым числом, поскольку число разрядов и основание системы счисления должны быть целыми числами.
Выбор é x ù или ë x û влияет на число интервалов . Если интервал содержит большее число элементов, то l* уменьшается, в противном случае l* увеличивается. Величина l* влияет на коммуникационную сложность.
8. СРАВНЕНИЕ С РАНЕЕ ПРЕДЛОЖЕННЫМИ АЛГОРИТМАМИ
Коммуникационная сложность предложенного алгоритма равна l*(s + 1).
На практике для рассматриваемой базы данных размера 240 число бит для представления номера s – не более 40 битов ≤ 26 (биты нумеруются с нуля).
В [2] коммуникационная сложность равна lˆd ! Len(K, Kenc), где Len(K, Kenc) – сумма длин шифротекстов. На практике d ≤ 4.
По построению интервалов:
l* ≤ 210;
lˆ ≤ 210.
Для широко используемых алгоритмов вероятностного шифрования (AES, RSA) Len(K, Kenc) не менее 128 + 128 = 256 бит (28).
Сравним l* и lˆ · d ! ·, l* ≤ 210, lˆd ! ≤ 210 · 25.
На практике:
- коммуникационная сложность предложенного алгоритма: l*(s + 1) = 210 · 26;
- коммуникационная сложность алгоритма из [2]: 210 · 24 · 28 < lˆd ! Len(K, Kenc) < 210 · 25 · 28.
Напомним, что вероятность угадывания при однократном запросе с использованием перестановок:
=.
С использованием шифрования при d = 4:
.
Увеличим l* (пусть l* = 215), чтобы вероятность угадывания при однократном запросе была одинаковая в ранее рассмотренном и предложенном алгоритме. В этом случае коммуникационная сложность предложенного алгоритма равна:
l*(s + 1) = 215 · 26.
Таким образом, при заданных параметрах на практике при аналогичной вероятности угадывания коммуникационная сложность предложенного алгоритма по крайней мере в 2 раза лучше.
Оценим объем памяти, которую необходимо генерировать дилеру на практике. Поскольку минимум функции находится в точке x = ln n, определим целочисленное значение x для n = 240. Если выбрать x = 28 то основание системы счисления , если выбрать x = 27, то основание системы счисления . В обоих случаях перестановка выполняется для последовательности чисел из 3 элементов и от выбора целой части x не зависит. Но размерность гиперкуба зависит от выбора целой части x. Если размерность гиперкуба больше, то l* будет меньше, если размерность гиперкуба меньше, то l* будет больше. Как было показано выше, если l* увеличивается, то уменьшается вероятность угадывания, но увеличивается коммуникационная сложность и наоборот. Выбор целой части x зависит от цели: уменьшить вероятность угадывания или уменьшить коммуникационную сложность.
Таким образом, для рассматриваемых параметров число перестановок будет 28 и длина перестановки равна 3. Для n = 240 нужно генерировать 28 · 3 = 84 элемента для вычисления нового номера при запросе к облаку.
При генерации множества Seti после получения нового номера в интервале память дилера освобождается.
Генерацию перестановок как для всей базы данных и интервалов можно выполнять в разных потоках. Для каждого из l* интервалов перестановки цифр числа при формировании множества Seti могут выполняться параллельно, что увеличивает скорость работы алгоритма.
9. ЗАКЛЮЧЕНИЕ
Предложенный алгоритм обладает значительными преимуществами по сравнению с алгоритмами, описанными в [1, 2].
Алгоритм обладает следующими преимуществами:
- Вместо шифрования номера бита используются перестановки цифр в выбранной системе счисления. Шифрование и расшифрование номера бита на практике требует большего числа операций, чем перестановка разрядов в выбранной системе счисления.
- Так как при загрузке БД на облако выполняется перестановка, то на практике запрос рядом стоящих битов чаще всего выполняется для битов, которые не являются соседними на облаке. Это затрудняет противнику поиск стоящих рядом запрашиваемых битов.
- Все сдвиги в интервалах разные для любого множества Seti. Это не позволяет сделать вывод о Setj по Seti. Ранее, в статье [2], использовался вектор b, который содержит величину сдвига в интервале для каждого элемента любого множества Seti. Если противник угадает вектор b, это позволит ему сделать вывод о Setj по Seti.
Заметим также, что на практике при реализации вычислений легко организовать параллельные процессы, что позволяет увеличить скорость выполнения алгоритма.
10. БЛАГОДАРНОСТИ
Авторы выражают особую благодарность Лазареву Д.О. за ценные замечания в процессе работы над статьей.
About the authors
N. P. Varnovskiy
Information Security Section of Information Security Institute of Moscow State Lomonosov University
Author for correspondence.
Email: otd13isp@gmail.com
Russian Federation, Office 10, 1, Michurinskiy prospect, 119192, Moscow
S. A. Martishin
Ivannikov Institute for System Programming of the RAS
Email: mart@ispras.ru
Russian Federation, 25, Alexander Solzhenitsyn st. 109004, Moscow
M. V. Khrapchenko
Ivannikov Institute for System Programming of the RAS
Email: khrap@ispras.ru
Russian Federation, 25, Alexander Solzhenitsyn st. 109004, Moscow
A. V. Shokurov
Ivannikov Institute for System Programming of the RAS
Email: shok@ispras.ru
Russian Federation, 25, Alexander Solzhenitsyn st. 109004, Moscow
References
- Martishin S.A.., Khrapchenko M.V., Shokurov A.V. Organization of a secure query to a database in the cloud. Trudy ISP RAN/Proc. ISP RAS. vol. 34. issue 3, 2022. p. 173–188 (in Russian). ISSN 2079-8156 (Print), ISSN 2220-6426 (Online).
- Varnovskiy N.P., Martishin S.A., Khrapchenko M.V., Shokurov A.V. About cloud request protection. Trudy ISP RAN/Proc. ISP RAS. vol. 35. issue 5, 2023. p. 37–54 (in Russian). ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
- Chor B., Goldreich O., Kushilevitz E., Sudan M. Private Information Retrieval, in IEEE Annual Symposium on Foundations of Computer Science, 1995. p. 41–50.
- Chor B., Goldreich O., Kushilevitz E., Sudan M. Private Information Retrieval, Journal of the ACM. Vol. 45. № 6. November 1998. p. 965–982.
Supplementary files

