Научная статья на тему 'ОРГАНИЗАЦИЯ БЕЗОПАСНОГО ЗАПРОСА К БАЗЕ ДАННЫХ НА ОБЛАКЕ'

ОРГАНИЗАЦИЯ БЕЗОПАСНОГО ЗАПРОСА К БАЗЕ ДАННЫХ НА ОБЛАКЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
31
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗЫ ДАННЫХ / ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мартишин С.А., Храпченко М.В., Шокуров А.В.

Развитие облачных вычислений, включающее хранение и обработку конфиденциальных данных пользователей на серверах, которые могут быть атакованы, выдвигает новые требования к защите информации. В статье исследуется задача получения клиентом информации из базы данных таким образом, чтобы никто, кроме самого клиента не обладал сведениями о том, какую именно информацию он запросил (задача PIR - Private Information Retrieval). Эта задача в информационно-теоретической постановке была сформулирована в 1995 году Шором, Голдрайхом, Кушелевицем и Суданом. Предложена модель облачных вычислений, включающая облако, пользователя, клиентов, доверенное лицо (дилера), пассивного противника на облаке. Также предполагается, что у атакующей стороны имеется возможность создания фальшивых клиентов для формирования неограниченного числа запросов. Предложен алгоритм формирования и размещения базы данных на облаке и алгоритм запроса требуемого бита. Приведены оценки коммуникационной сложности и вероятности угадывания номера бита при совершении любого количества запросов клиентами, созданными для организации атаки.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ORGANIZATION OF A SECURE QUERY TO A DATABASE IN THE CLOUD

The development of cloud computing, including the storage and processing of confidential user data on servers that can be attacked, puts forward new requirements for information protection. The article explores the problem of obtaining information from the database by the client in such a way that no one except the client himself get any information about the information the client is interested in (PIR - Private Information Retrieval). The problem was introduced in 1995 by Chor, Goldreich, Kushilevitz and Sudan in the information-theoretic setting. A model of cloud computing is proposed. It includes a cloud, a user, clients, a trusted dealer, a passive adversary in the cloud. Also, the attacking side has the ability to create fake clients to generate an unlimited number of requests. An algorithm for the organization and database distribution on the cloud and an algorithm for obtaining the required bit were proposed. Communication complexity of the algorithm was estimated. The probability of revealing required bit's number in the case when fake clients perform unlimited requests was estimated too.

Текст научной работы на тему «ОРГАНИЗАЦИЯ БЕЗОПАСНОГО ЗАПРОСА К БАЗЕ ДАННЫХ НА ОБЛАКЕ»

DOI: 10.15514/ISPRAS-2022-34(3)-12

Организация безопасного запроса к базе данных

на облаке

1 С.А. Мартишин, ORCID: 0000-0001-5437-4049 <mart@ispras.ru> 1 М.В. Храпченко, ORCID: 0000-0002-5147-5132 <khrap@ispras.ru> uА.В. Шокуров, ORCID: 0000-0002-6801-7728 <shok@ispras.ru> 1 Институт системного программирования им. В.П. Иванникова РАН, 109004, Россия, г. Москва, ул. А. Солженицына, д. 25

2 Московский физико-технический институт, 141701, Россия, Долгопрудный, Институтский пер., 9

Аннотация. Развитие облачных вычислений, включающее хранение и обработку конфиденциальных данных пользователей на серверах, которые могут быть атакованы, выдвигает новые требования к защите информации. В статье исследуется задача получения клиентом информации из базы данных таким образом, чтобы никто, кроме самого клиента не обладал сведениями о том, какую именно информацию он запросил (задача PIR - Private Information Retrieval). Эта задача в информационно -теоретической постановке была сформулирована в 1995 году Шором, Голдрайхом, Кушелевицем и Суданом. Предложена модель облачных вычислений, включающая облако, пользователя, клиентов, доверенное лицо (дилера), пассивного противника на облаке. Также предполагается, что у атакующей стороны имеется возможность создания фальшивых клиентов для формирования неограниченного числа запросов. Предложен алгоритм формирования и размещения базы данных на облаке и алгоритм запроса требуемого бита. Приведены оценки коммуникационной сложности и вероятности угадывания номера бита при совершении любого количества запросов клиентами, созданными для организации атаки.

Ключевые слова: базы данных; облачные вычисления; PIR

Для цитирования: Мартишин С.А., Храпченко М.В., Шокуров А.В. Организация безопасного запроса к базе данных на облаке. Труды ИСП РАН, том 34, вып. 3, 2022 г., стр. 173-188. DOI: 10.15514/ISPRAS-2022-34(3)-12.

Благодарности: Работа выполнена при поддержке Министерства науки и высшего образования Российской Федерации (грант 075-15-2020) и ИСП РАН. Авторы выражают особую благодарность Лазареву Д.О. за ценные замечания в процессе работы над статьей.

Organization of a secure query to a database in the cloud

1S.A. Martishin, ORCID: 0000-0001-5437-4049<mart@ispras.ru> 1 M.V. Khrapchenko, ORCID: 0000-0002-5147-5132 <khrap@ispras.ru> 2А.V. Shokurov, ORCID: 0000-0002-6801-7728 <shok@jspras.ru>

1 Ivannikov Institute for System Programming of the Russian Academy of Sciences, 25, Alexander Solzhenitsyn st., Moscow, 109004, Russia

2 Moscow Institute of Physics and Technology, 9 Institutskiyper., Dolgoprudny, Moscow Region, 141701

Abstract. The development of cloud computing, including the storage and processing of confidential user data on servers that can be attacked, puts forward new requirements for information protection. The article explores the problem of obtaining information from the database by the client in such a way that no one except the client

173

himself get any information about the information the client is interested in (PIR - Private Information Retrieval). The problem was introduced in 1995 by Chor, Goldreich, Kushilevitz and Sudan in the information-theoretic setting. A model of cloud computing is proposed. It includes a cloud, a user, clients, a trusted dealer, a passive adversary in the cloud. Also, the attacking side has the ability to create fake clients to generate an unlimited number of requests. An algorithm for the organization and database distribution on the cloud and an algorithm for obtaining the required bit were proposed. Communication complexity of the algorithm was estimated. The probability of revealing required bit's number in the case when fake clients perform unlimited requests was estimated too.

Keywords: database; cloud computing; PIR

For citation: 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, pp. 173-188 (in Russian). DOI: 10.15514/ISPRAS-2022-34(3)-12

Acknowledgements. The work was supported by the Ministry of Science and Higher Education of the Russian Federation (grant 075-15-2020) and ISP RAS. The authors are especially grateful to D.O. Lazarev for valuable comments during the work on the article.

1. Введение

Безопасное использование облачных вычислений невозможно без решения задачи защиты данных. Хорошо известна задача получения информации из базы данных с открытым доступом, размещенной на облаке, таким образом, чтобы никто, кроме клиента, обращающегося с запросом, не обладал сведениями о запрашиваемой информации. Неформально задача может быть сформулирована следующим образом. Алиса делает запрос к базе данных, но хочет, чтобы никто, в том числе любопытный администратор базы данных, не узнал, какие именно данные запрашиваются. Очевидным решением является запрос Алисой всей базы данных. Это решение приводит к чрезмерным затратам на передачу информации. Возникает вопрос: можно ли получить ответ с меньшей коммуникационной сложностью?

Протокол поиска конфиденциальной информации (Private information retrieval - PIR) позволяет пользователю получить интересующую его частную информацию с сервера. В области исследования PIR протокола значительный вклад был сделан в [1,2]. Сформулированная в этих работах постановка задачи приведена ниже: Имеется база данных - бинарная строка X = (х1,..., хп) длины n, хранящаяся на сервере. Клиент хочет получить один бит информации xt из базы данных X так, чтобы сервер не смог определить, с какой позиции i был запрошен бит.

В первую очередь, протокол PIR должен удовлетворять условию корректности: для любого номера i, 1 < i < п, клиент может сформировать такой запрос, что после завершения выполнения протокола клиент получит данные, по которым он может правильно вычислить значение бита xt.

Помимо условия корректности, протокол PIR должен удовлетворять условию конфиденциальности: в результате выполнения протокола PIR противник не получает никакой информации о номере i запрашиваемого бита xt из базы данных. Если база данных размещена на единственном сервере, который полностью контролируется противником, то теоретико-информационное условие конфиденциальности корректного протокола PIR может быть выполнено только том случае, когда клиент запрашивает базу данных целиком. Это означает, что по каналам связи придется передавать объем информации, не меньший того, который содержится в самой базе данных. Очевидно, что такой протокол практически неприемлем из-за больших коммуникационных издержек [2]. Под коммуникационной сложностью протокола понимают общее количество бит, которыми обмениваются участники протокола за время его работы. Чтобы PIR-протокол можно было

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

Таким образом, если база данных размещена только на одном сервере, и этот сервер контролируется противником, то не существует PIR-протокола, который одновременно удовлетворял бы условиям корректности, конфиденциальности и лаконичности. Возникает вопрос: можно ли построить протоколы PIR, удовлетворяющие всем трем указанным условиям одновременно?

Одной из таких перспективных моделей является модель реплицированной базы данных, в которой несколько одинаковых копий строки X = (хх,..., хп) размещены на разных серверах. Предполагается, что клиент имеет связь с каждым из этих серверов, но сами серверы не имеют связи друг с другом. Также предполагается, что противник может наблюдать любой из серверов, на которых размещена база данных, причем, возможно, разные серверы во время выполнения разных сеансов протокола.

В работах [1, 2] было доказано, что для моделей с к реплицированными копиями базы данных при к > 2 возможно построение корректных конфиденциальных лаконичных протоколов PIR. Дальнейшие исследования в этом направлении были сосредоточены на изучении методов улучшения коммуникационной сложности [3, 4]. Кроме того, в работах [5-8] были исследованы возможности построения и оценки коммуникационной сложности (или лаконичности) схемы PIR на одном сервере при помощи различных техник, в том числе гомоморфного шифрования.

Однако, если рассматривать задачу построения PIR в предположении о том, что реплицированная база данных хранится на облаке, то очевидно, что ни владелец данных (пользователь), ни клиент (имеющий официальный доступ для получения информации из базы данных) не могут контролировать облако. Таким образом, в облачных информационных системах в отличие от [1, 2] нельзя обеспечить изолированность копий распределенной базы данных друг от друга, то есть нельзя исключить обмен информацией между копиями базы данных. Кроме того, говоря о хранении и использовании конфиденциальной информации, требуется знать, является ли противник активным или пассивным.

Активный противник в облаке, который способен вмешиваться в ход выполнения протокола, как правило, может быть выявлен достаточно быстро путем полного анализа результатов выполнения протокола [9].

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

Для облачных вычислений, исследовались различные возможности реализации. Например, реализация простой схемы PIR с несколькими серверами, основанной на подходе, аналогичном подходу построения систем RAID (Redundant Array of Inexpensive Disks) с избыточными массивами недорогих дисков [10]. В этом случае каждый сервер хранит только часть базы данных, серверы могут быть опрошены параллельно. Предполагается, что не все они вступают в сговор, поскольку эти серверы могут работать на разных платформах или под управлением различных облачных провайдеров.

Также исследовались различные методы, делающие практическое применение PIR (CPIR -computational PIR) эффективнее. Например, в [11] рассматривалось два метода. Первый направлен на эффективное использование центрального процессора сервера. Второй метод основан на кодировании данных PBC (probabilistic batch codes - вероятностные пакетные коды) и используется для создания схемы PIR, предназначенной для обработки множества запросов. На основе этих методов была разработана библиотека CPIR - SealPIR, которая

объединяет наиболее эффективный в вычислительном отношении протокол CPIR и предлагаемый метод сжатия запросов, что уменьшает коммуникационные затраты. Из практических реализаций также стоит отметить MuchPIR — поиск частной информации с использованием гомоморфного шифрования, реализованный как расширение C/C++ Aggregate для Postgres [12].

Таким образом, за все время изучения протокола PIR было получено большое количество результатов для различных условий его применения.

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

2. Состав модели и постановка задачи

2.1 Состав модели

Модель вычислений, в рамках которой мы исследуем облачный вариант задачи PIR, включает несколько участвующих в ней процессов.

Рис. 1. Состав модели Fig. 1. Model components

1) Облако. Состоит из нескольких серверов, на каждом из которых хранится копия одной и той же базы данных. Эти копии могут отличаться друг от друга при использовании различных ключей шифрования одинаковых данных. Облачные серверы способны выполнять любые вычислительные операции, присущие системам управления базами данных. Считается, что эти серверы соединены посредством незащищенных каналов связи друг с другом и дилером. По этим каналам облачные серверы обмениваются по запросу информацией (получают и передают) с дилером. Облачные серверы и все примыкающие к ним каналы связи доступны для стороннего наблюдателя (противника).

2) Пользователь. Хранит данные на облаке. Предполагается, что на облаке хранится k копий баз данных. Для загрузки данных пользователь обращается к дилеру, с которым соединен защищенным каналом связи. Этот канал недоступен для наблюдения.

3) Клиенты. Запрашивают некоторую информацию из базы данных. Обращаются для выполнения запроса к дилеру. С дилером соединены защищенными каналами связи.

4) Дилер. Находится вне облака, противнику недоступен. Дилер имеет защищенные каналы связи с пользователем и клиентами. Канал связи с облаком является незащищенным. Объем памяти дилера для постоянного хранения данных пренебрежимо мал по сравнению с n. Функции дилера:

• аутентифицирует пользователя и клиентов;

• получает от пользователя данные для размещения на облаке;

• генерирует ключи шифрования/расшифрования;

• осуществляет обмен данными с облаком в процессе размещения данных на облаке и в процессе обработки запроса;

• выполняет шифрование/расшифрование;

• производит сортировку шифротекстов.

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

Под угрозой будем понимать угадывание исходного номера бита, запрашиваемого клиентом

в базе данных.

Атака включает в себя:

1) Сбор информации противником в облаке (наблюдение, сбор статистики и анализ).

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

2.2 Постановка задачи и условные обозначения

Имеется база данных - бинарная строка X = (хг,..., хп) длины п.

Клиент хочет получить один бит информации xt с номером i из базы данных X так, чтобы противник не узнал ничего о том, с какой позиции i был запрошен бит. Будем размещать на облаке к копий баз данных (к > 2). Пусть к = 2d,где d > 1. Без потери общности предполагается, что п = ld, то есть, d = log2k и I = /п. Пусть Lp = j.

Так как I = /п, то Lp > I или j > I, что эквивалентно п>12. Учитывая, что п = ld, отсюда следует, что d >2 и к > 4.

Пусть х - элемент группы Z2, а К, Кепс, Kdec - ключи шифрования и расшифрования, alg -алгоритм шифрования или расшифрования, h Е {1, ...,к] - номер соответствующей копии базы данных. DEnc(x,K,alg,h) - функция однозначного шифрования. REnc(x, Кепс, alg, h) и RDec(x, Kdec, alg, h) - функции вероятностного шифрования и расшифрования.

3. Размещение базы данных на облаке

3.1 Предварительные замечания

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

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

/т11т12 ••• ты\ М = ( ] ] )

\тп1тп2 " тпй/

с помощью следующей процедуры. Строка с номером I матрицы M имеет вид: в первом столбце т11 стоит номер ¿, в остальных й — 1 столбцах - различные натуральные числа из отрезка [1,п], которые сгенерированы при помощи датчика псевдослучайных чисел РЯ^О^Ь,/') и не равные ¿.

Для инициализации датчика случайных чисел задаются два параметра. Первый параметр db соответствует конкретной базе данных X = (х1,... ,хп) и хранится все время существования этой базы данных. Второй соответствует запрашиваемому номеру бита ¿. Эти параметры обеспечивают повторяемость датчика псевдослучайных чисел.

Строка матрицы M должна содержать различные числа. Если при генерации псевдослучайных чисел для строки матрицы M получаем число, которое было сгенерировано ранее, датчик PRNG(db,i) запускается до тех пор, пока не получим число, которое не было сгенерировано ранее. Таким образом, строка матрицы M будет содержать й различных чисел. Разные строки могут содержать одинаковые числа. Помимо этого, требуется, чтобы датчик псевдослучайных чисел PRNG(db,i) позволял бы восстановить любую строку матрицы M. Тогда дилеру нет необходимости хранить матрицу M в памяти. Формирование матрицы M происходит следующим образом. Построим l интервалов, в которые попадут все п элементов: [1, Ьр], [Ър + 1,2 • Ър].....[(1 — 1)^р + 1,1^ Ър\

Число элементов в каждом интервале Ьр = у. Рассмотрим, например, первый интервал и первую строку, то есть I = 1. Датчик псевдослучайных чисел PRNG(db,i) генерирует случайные числа в диапазоне [2, Ьр]. Числа в строке различны, всего получаем d чисел. Она состоит из элементов, т11,т12,. .,т1а (т11 = 1, значения всех этих элементов попадают в диапазон [1ДР].

Далее для каждой строки из первого интервала вычисляется I — 1 строк, принадлежащих другим интервалам. На основе каждой строки из первого интервала генерируется по одной строке для каждого из оставшихся интервалов. Эти строки заполняются значениями по алгоритму, представленному ниже.

Далее осуществляется переход к следующей строке первого интервала и алгоритм повторяется. То есть для строк с номерами I Е {1,.,Ьр} формируем соответственно по I строк для каждой строки i.

Сформируем вектор-столбец Ь, состоящий из различных случайных натуральных чисел Ът значения которых лежат в диапазоне [1,Ьр],т Е {1,...,I}. Числа Ьт генерируются датчиком псевдослучайных чисел. На вход датчика PRNG2(db,m) подается номер интервала т, для которого вычисляется Ът. Вектор-столбец Ь восстанавливается каждый раз одинаково. Хранить вектор-столбец Ь нет необходимости, поскольку при одинаковом начальном значении параметра m датчик срабатывает одинаково.

3.2 Алгоритм построения матрицы М

На вход алгоритма подается: Ьр, ^ d. 178

for i ^ 1 to Lp do

/* при помощи датчика псевдослучайных чисел PRNG(db,i) генерируется i-я строка первого интервала */ for т ^ 2 to I do

z^0 /* инициализация глобальной переменной */ for j ^ 1 to d do

/* при помощи датчика псевдослучайных чисел

PRNG2(db,1) генерируется bi*/ a ^ (mtj — b1)modLp /* при помощи датчика псевдослучайных чисел (db,m) генерируется bm */ с ^ (a + bm)modLp if с = 0 then

c^Lp у ^ Lp^(m — 1) + с if j = 1 then

z ^ у mzj = У

В цикле по i последовательно генерируются Lp строк, где первым элементом является номер строки i, а остальные d — 1 элементов отличны от i и различны между собой. Для каждой из этих строк по приведенному выше алгоритму в цикле по m генерируются l-1 строк для интервалов с номерами от 2 до l. Каждая из формируемых l-1 строк попадает в свой интервал. В каждый интервал попадает ровно одна строка.

Все элементы i-й генерируемой строки различны. Если датчик псевдослучайных чисел PRNG(db,i) генерирует число, которое встречалось ранее в этой строке, то генерируется следующий элемент до тех пор, пока не получим элемент, не совпадающий с предыдущими. Таким образом, на i-м шаге (i Е [1,ip]) алгоритма вычисляется l строк, причем первой формируется i-я строка матрицы M. Остальные l-1 строк попадают случайным образом в различные интервалы (по одной строке в интервал), в зависимости от значения вектора-столбца b. Вектор-столбец b позволяет вычислять номера строк в каждом интервале не по упрощенной формуле у = Lp • (т — 1), что позволило бы противнику легко определить номера строк в каждом интервале. Благодаря вектору-столбцу b номер строки в каждом интервале определяется случайным образом.

Поскольку матрица M требует для хранения значительного объема памяти, дилер не хранит матрицу M. Элементы матрицы M, которые требуются для вычисления, формируются при помощи датчика псевдослучайных чисел PRNG(db,i). Датчик псевдослучайных чисел при одинаковой инициализации генерирует одинаковую последовательность чисел и восстановление i-ой строки матрицы M возможно.

3.3 Построение матрицы G

Построим матрицу G, размера пх2

G = ( : : ).

\9ni9n2/

Первый столбец матрицы G генерируется как случайная последовательность из элементов 0 и 1.

Во второй столбец поместим корректирующие биты с помощью следующего алгоритма. Каждая строка матрицы M состоит из d чисел. Каждое число можно рассматривать как номер, которому поставлен в соответствие случайным образом выбранный бит gi1. Положим:

3i2 =®j=i dmiji Ф xi , гДе míj - элементы i-й строки матрицы M, а x¿ - элемент бинарной

строки X = (х1,..., хп) длины n.

Тогда:

x¿ =®'j=i gmiJi ф ßi2.

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

Шифротексты номеров строк матрицы G будем рассматривать как указатели на шифротексты ее строк.

Заметим, что поскольку в дальнейшем расшифровка шифротекста номера строки матрицы G не выполняется, в качестве алгоритма шифрования можно использовать одностороннюю функцию DEnc(x,Kenc,alg,h), где Кепс является аргументом этой функции. Для возможности поиска по базе данных односторонняя функция должна быть однозначной, то есть без коллизий (различным открытым текстам соответствуют различные шифротексты). Для шифрования матрицы G используется вероятностное шифрование. Дилер применяет вероятностное шифрование/расшифрование значения. Вероятностное шифрование позволяет для исходных значений 0 или 1 получить различные шифротексты в случае одинаковых исходных значений.

3.4 Размещение к копий базы данных на облаке

Для размещения k копий базы данных на облаке дилер генерирует:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. kключей К(К)(к Е {1, ...,к}) для шифрования номера строки матрицы G (односторонняя функция) по одному для каждой копии базы данных;

2. k пар ключей Кепс(К) и Каес(К), где Ь.Е{1,...,к}, для вероятностного шифрования/расшифрования значений строк матрицы G, по одной паре для каждой копии базы данных.

Дилер шифрует номера строк матрицы G сгенерированными ключами К(К)(к Е {1, ...,к}). Дилер шифрует матрицу G своим набором ключей для каждой копии базы данных. Обозначим через Сепс(К)(к Е {1,...,к}), матрицу, где первый столбец - зашифрованные номера строк матрицы G, а второй и третий столбцы - зашифрованные столбцы матрицы G для k копий базы данных. Таким образом размер матрицы Сепс(Н) равен пх3. Дилер осуществляет перестановку строк матриц Сепс(К) (к Е {1,...,к}) путем сортировки их по 1 столбцу и передает матрицы Сепс (к) облаку. Это необходимо, чтобы скрыть истинный порядок номеров для каждой копии базы данных. Поскольку для каждой копии базы данных используется свой ключ шифрования, порядок строк матриц будет различным. Для выполнения шифрования и последующей перестановки дилеру требуется иметь объем памяти, достаточный для хранения одной базы данных. При этом предполагается, что дилер работает с несколькими базами данных и все эти базы данных одновременно дилер не хранит. Так как матрицы Сепс (к) хранятся на облаке, после загрузки базы данных на облако память дилера очищается для работы со следующей базой данных и в памяти дилера остаются только ключи.

В приведенном ниже алгоритме дилер должен выполнять Шаги 4-6 для каждой копии базы данных последовательно. Иначе ему придется хранить в памяти все k копий базы данных, что приводит к большим расходам памяти.

3.5 Описание алгоритма загрузки данных на облако

Шаг 1. Пользователь передает дилеру полученный массив номеров битов и значений, т.е.

массив X = (х1,..., хп). Дилер аутентифицирует пользователя и принимает данные.

Шаг 2. Дилер формирует матрицу G = ||, где i = 1,..,n,j = 1,2.

Шаг 3. Дилер генерирует ключи K(h), Kenc(h) и Kdec(h), где h 6 {1,..., к}.

Ключ K(h) (реализующий одностороннюю функцию) предназначен для шифрования номера

строки матрицы G.

Открытый Kenc(h) и секретный Kdec(h) ключи предназначены для вероятностного шифрования/расшифрования значений столбцов матрицы G.

Шаг 4. Дилер шифрует ключом K(h) номер строки матрицы G DEnc(gi1,K(h),alg,h), где i = 1,..,n, h6{1,...,k} и получает шифротексты, являющиеся указателями на строки матрицы G.

Дилер шифрует ключом Kenc(h) столбцы матрицы G: REnc(gij,Kenc(h),alg,h) где i = 1,..,n,j = 1,2,h 6 {1,...,к} и получает шифротексты, соответствующие элементам столбцов матрицы G для каждой копии базы данных. Дилер получает матрицу Genc(h), где h 6 {1,...,к}.

Шаг 5. Матрицу Genc(h), где h 6 {1, ...,к}, дилер сортирует по первому столбцу. Шаг 6. Дилер загружает матрицу Genc(h), где h 6 {1,..., к} на облако. Шаг 7. Шаги 4-6 дилер выполняет в цикле для каждой копии базы данных ■. Число шифротекстов, переданных каждой из к копий базы данных равно 3п.

4. Описание выполнения алгоритма запроса клиента дилером

4.1 Использование множества номеров в запросе для сокрытия номера i

Пусть клиент интересуется элементом xt 6 X.

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

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

Напомним, что отрезок [1,n] разбивается на l интервалов по Lp =j элементов в каждом интервале.

По построению матрицы M каждой строке i соответствует единственная строка из первого интервала. Соответственно, каждому элементу mi1 матрицы M соответствует строка из первого интервала, по которой i-я строка была построена. Таким образом, по строке i может быть полностью восстановлена искомая строка из первого интервала. После восстановления строки из первого интервала по алгоритму построения матрицы M можно восстановить те l-1 строк, которые формируются на основе искомой строки из первого интервала. Столбцы этих восстановленных l строк формируют множества Setij, j = 1,..., d. Для запрашиваемого i-го бита дилер формирует множество номеров Seti =V Set^, содержащее i-ю строку матрицы M.

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

Для построения множества БеС^ используем следующую процедуру, которая основана на восстановлении l строк матрицы М Для восстановления строк матрицы M по элементу т11 необходимо найти:

• порядковый номер интервала ), в который попал этот элемент для определения элемента вектора-столбца Ъш;

• порядковый номер элемента в интервале для вычисления числа а;

• порядковый номер элемента, соответствующего элементу тв первом интервале, поскольку восстановление матрицы М выполняется на базе строк первого интервала.

Приведем т^ (номер искомого бита) по модулю Ьр. Обозначим через г = т11 тойЬр результат приведения.

Определяется номер интервала, в который попало число т11. По определению матрицы M номер интервала определяется индексом i.

w =

Заметим, что w Е {1,..., I}. Положим

тц - 1

LP

+1

, (г,(

г'1 = к

г, если г Ф 0

т'Л [1р,еслиг = 0 порядковый номер в интервале.

Пусть а = (т[1 — Ъш)то<Ир. В этом случае номер строки V в первом интервале вычисляется по формуле V = (а + Ь1)то(Ир, если ¿'=0, то 1'=Ьр. Для номера строки V при помощи датчика псевдослучайных чисел PRNG(db,i) получим d-1 различных чисел от 1 до Ьр аналогично тому, как строилась матрица М

Для номера строки V из диапазона [1, Ьр], по аналогии с алгоритмом генерации матрицы M, построим М строк.

Столбцами этих I строк будут множества БеЬ^,] = 1, ...,й, где множество БеЬ^ содержит элемент т11.

Мощность множества |Бе равна I Следовательно, мощность множества 1Бене более I •

а.

4.2 Описание алгоритма построения множества Бе^

На вход алгоритма подается номер запрашиваемого бита i. На выходе алгоритм формирует множество БеЬ^.

Шаг 1. Дилер находит номер интервала w, в который попал номер запрашиваемого бита i и его порядковый номер в этом интервале т'11.

Шаг 2. Дилер находит число а для номера интервала w, куда попал номер /': а = (т'11 — Ъш)то(Ир.

Шаг 3. Дилер находит номер строки V в диапазоне [1,1р\ по формуле: V = (а + Ь1)то(Ир, если ¿'=0, то 1'=Ьр.

Шаг 4. Дилер при помощи датчика псевдослучайных чисел PRNG(db,i) восстанавливает строку матрицы M для номера V, состоящую из d различных натуральных чисел, аналогично алгоритму построения строки матрицы М

Шаг 5. Дилер строит множество: Бе^ =и БеЬ^, где ] = 1,..., й ■.

4.3 Запрос клиентом /-го бита. Предварительные замечания

Запрос клиента на получение данных поступает дилеру. Дилер проверяет полномочия клиента и, если они подтверждены, то выполнение запроса будет санкционировано.

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

При запросе клиентом г-го бита дилер строит множество Set¿, которое содержит элементы i-й строки матрицы M. Напомним, что в i-й строке элемент mi1 является искомым номером. Множество Set¿ является избыточным, чтобы скрыть от противника информацию о запрашиваемом бите.

При генерации множества Set¿ дилер при помощи датчика псевдослучайных чисел PRNG(db,i) восстанавливает i-ю строку матрицы M, состоящую из d различных натуральных чисел.

Из множества элементов Set¿ только элементы i-й строки матрицы M нужны дилеру для получения значения i-го бита.

Напомним, что физически в облаке хранятся матрицы Genc(h), h Е {1,...,к]. Строка матрицы Genc (h) состоит из шифротекстов номера строки, произвольного и корректирующего битов. Разобьем множества Set ¿ на непересекающиеся подмножества.

Для каждого элемента множества Set ¿ случайно и равномерно выбирается номер копии базы данных. Все элементы множества Set¿, для которых выбрана копия базы данных h, обозначим через множества Seth,rp,e h Е {1,... ,к]. Очевидно, что множества Seth не пересекаются между собой, поскольку все элементы множества Set¿ различны и каждому элементу ставится в соответствие ровно один номер h. Объединение множеств S eth содержит все элементы множества Sett, то есть Sett =U Seth, где h Е {1,..., к].

Далее каждое множество Seth шифруется ключом К(Ы), полученные шифротексты сортируются для каждого множества Seth отдельно. В результате получим множества Set^nc(hf> - зашифрованные соответствующим ключом K(h) и затем отсортированные.

Для каждого множества Setfnc(hh> исходному номеру бита будет соответствовать номер шифротекста в перестановке. Это соответствие необходимо запомнить и хранить на время выполнения запроса, чтобы дилер мог восстановить значение запрашиваемого бита. Дилер на время выполнения запроса формирует матрицу Snum из d строк и трех столбцов (i = 1,...,d,j = 1,2,3).

(511512513\

• • • I.

sd1sd2sd3)

Первым столбцом матрицы Snum являются элементы восстановленной i-ой строки матрицы M.

Ранее множество Set ¿, содержащее элементы i-й строки матрицы M, было разбито на множества Seth. Для каждого множества Seth, а следовательно, для элементов i-й строки матрицы M были выбраны копии базы данных. Второй столбец матрицы Snum содержит выбранные номера копий баз данных для элементов первого столбца матрицы Snum.

Третий столбец матрицы Snum - номер шифротекста в перестановке множества Setfnc(hh> для соответствующего элемента первого столбца. Таким образом, Sj3 является функцией от трех параметров, которая позволяет получить соответствие между исходным номером и номером шифротекста в перестановке:

SJ3 = F (sj1,Sj2,Seteinc(sj2))

Матрица Snum позволяет дилеру после получения ответа от облака без выполнения расшифрования сразу отбросить данные, кроме данных, необходимых для выполнения запроса.

Матрица Snum формируется у дилера и известна только дилеру. Матрица Snum является секретной.

На к копий базы данных дилер отправляет в общей сложности I • d шифротекстов для элементов множества Set¿.

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

4.4 Подготовка дилером запроса к облаку

На входе алгоритм получает номер запрашиваемого бита i. На выходе дилер получает

п ,enc(k) п

зашифрованные и отсортированные множества Setí и матрицу Snum.

Шаг 1. Клиент обращается к дилеру и передает ему номер бита i, значение которого хочет

получить. Дилер аутентифицирует клиента.

Шаг 2. Дилер восстанавливает i-ю строку матрицы M и генерирует множество Set¿. Шаг 3. Дилер на время выполнения запроса i-го бита резервирует память для матрицы Snum из d строк и трех столбцов ( i = 1,..., d,j = 1,2,3).

Шаг 4. Дилер заполняет первый столбец матрицы Snum элементами i-й строки матрицы M. Шаг 5. Дилер выполняет разбиение множества Set¿ на непересекающиеся подмножества Setk путем случайного и равномерного выбора номера копии базы данных для каждого элемента множества Set¿.

Дилер заполняет второй столбец матрицы Snum номерами копий базы данных, соответствующих номерам в первом столбце.

Шаг 6. Дилер шифрует элементы множеств Setk в соответствии с выбранной копией базы данных ключом K(h),h Е {1,... ,к}, получает шифротексты и сортирует их (множества Set¡nc(k)).

Шаг 7. Дилер заполняет третий столбец матрицы Snum номерами шифротекстов в перестановке множеств Set^nc(kk> для элементов первого столбца ■.

4.5 Выполнение запроса дилера к облаку и ответ облака

На вход алгоритма подаются зашифрованные и отсортированные множества Setflc(h). На выходе дилер получает шифротексты значений битов и корректировочных битов для

с. ,enc(k)

элементов множеств Setí .

Шаг 1. Для каждой копии базы данных дилер отправляет на облако отсортированные шифротексты номеров битов для множеств Set^nc(kk>.

Шаг 2. Для запрошенных шифротекстов номеров битов облако возвращает дилеру шифротексты значений битов и корректировочных битов (второй и третий столбцы матрицы Genc(h), где h Е {1, ...,к}). Порядок возвращаемых шифротекстов соответствует исходной сортировке шифротекстов для множеств Set^nc(kk> ■.

4.6 Обработка дилером ответа облака

На входе дилер получает второй и третий столбцы матриц Genc(h) для шифротекстов множеств Set¡nc(k\ На выходе значение i-го бита.

Шаг 1. Дилер при помощи матрицы Snum выбирает зашифрованные значения бита и корректировочного бита для номеров первого столбца матрицы Snum. Остальные шифротексты отбрасываются.

Шаг 2. Дилер расшифровывает значения битов для номеров первого столбца матрицы Бпит и корректировочный бит для элемента матрицы Бпит. По построению матрицы Бпит запрашиваемый номер является элементом 511.

Шаг 3. Дилер использует формулу х^ = ф'!=1 дт^1 ф для вычисления значения /'-го бита и отправляет клиенту полученное значение ■.

5. Оценка требуемой памяти и сложности алгоритма

5.1 Объем информации, который необходимо хранить дилеру

В процессе работы на время загрузки базы данных дилер генерирует к ключей Кепс(И). Эти ключи служат для вероятностного шифрования значений битов. После загрузки ни ключи, ни шифротексты дилер не хранит.

На протяжении всего времени существования базы данных дилер хранит информацию для этой базы данных объема п:

• значение для инициализации датчиков случайных чисел PRNG(db,i) и PRNG2(db,m);

• k ключей К (И), И Е {1,..., к] для шифрования односторонней функцией;

• k ключей Кйес(К), где И Е {1,...,к] для вероятностного расшифрования значений битов.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Заметим, что на практике число п битов в базе данных традиционно предполагается 230 - 240, а число копий баз данных к не превышает 16 (то есть 24). Таким образом, к значительно меньше п, а хранение к ключей для шифрования номеров битов и к ключей для расшифрования значений битов занимает 2 • к • 1кеу, где 1кеу - длина ключа. Длина ключа на практике чаще всего ограничена 256 байтами [13]. Следовательно, дилер хранит объем информации значительно меньше п.

5.2 Основные результаты

Утверждение 1. Общая коммуникационная сложность для получения значения номера бита без раскрытия его номера равна I • й • 3 шифротекстов.

Доказательство. Дилер посылает копиям базы данных I • й (где 1= /п) шифротекстов для запроса значений. Облако отвечает I • й • 2 шифротекстами значений ■. Проанализируем вероятность угадывания противником номера запрашиваемого бита. Если запрошены два номера бита, то они могут принадлежать либо одному, либо разным множествам Бе ^. Противник может увидеть, выполнен ли запрос к одному из множеств БеЬь, на которые разбита база данных или к разным. Если запросы выполнены к одному множеству, то они неразличимы. Таким образом, если противник совершает п или более запросов, он не узнает номер бита. Максимум, какую информацию противник может получить - такое подмножество множества БеЬ^, что при запросе к каждому элементу из подмножества, на облаке осуществляется доступ ко всем битам из множества БеЬ^ и только к ним. Что будет означать, что противник не знает, а только угадывает, какой именно бит из данного множества был выбран ■.

Заметим, что так как любым двум элементов и х^, Е БеЬ11 соответствует

единственная строка из первого интервала, то множества БеЬ^,... ,БеЬш совпадают для элементов х^ и х^. Следовательно, для всех элементов множества Бе элементы множества Бе совпадают. Поэтом запросы к облаку будут неотличимы для всех элементов множества БеЬц.

Утверждение 2. При запросе фиктивными клиентами не менее п номеров битов и наличии пассивного противника на облаке вероятность угадывания противником номера бита не более 1 .

Доказательство. Множество Seti1 (Seti1 с Seti) порождается одинаково для всех I чисел, в него входящих. То есть существует одинаковое множество для I различных номеров битов.

i

Вероятность угадывания номера из множества Setil равна -, так как Setil имеет мощность I.

Выполнив n запросов, противник определяет элементы, входящие в каждое множество Seti (в предположении, что к < Id).

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

В этом случае вероятность угадывания номера i будет не более j ■.

Так как значение к по сравнению с n мало, хранение к пар ключей для

шифрования/расшифрования значений битов не требует много памяти и занимает 2 •к • 1кеу.

Докажем, что предложенный протокол удовлетворяет условию лаконичности.

Теорема. Предложенная схема организации базы данных размера n и запроса к ней

удовлетворяет следующим свойствам.

На время загрузки базы данных дилер генерирует:

• k ключей Кепс(К) для вероятностного шифрования значений битов, которые после

окончания загрузки не хранятся. На протяжении всего времени существования базы данных дилер хранит только следующую информацию для данной базы данных объема n:

• значение для инициализации датчиков случайных чисел PRNG(db,i) и PRNG2(db,m);

• k ключей K(h), h Е {1,..., к} для шифрования односторонней функцией;

• k ключей Kdec(h), где hE{1,...,k}, для вероятностного расшифрования значений

битов.

Объем хранимой информации много меньше п. Коммуникационная сложность запроса I • d • 3 шифротекстов.

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

i Г

Доказательство. Из Утверждения 1 следует, что коммуникационная сложность запроса равна • d • 3 шифротекстов.

Из Утверждения 2 следует, что при любом числе запросов номеров битов фиктивными клиентами и наличии пассивного противника на облаке вероятность угадывания номера бита не более j ■.

Комментарий. Так как к - число копий баз данных, и это число мало на практике, а дилер хранит не более О (к) информации, то дилер в состоянии обслуживать запросы к значительному числу баз данных. То факт, что к « п позволяет эффективно использовать облако как место хранения значительного объема информации.

Список литературы / References

[1] Chor B., Goldreich O. et al. Private Information Retrieval. In Proc. of the IEEE Annual Symposium on Foundations of Computer Science, 1995, pp. 41-50.

[2] Chor B., Goldreich O. et al. Private Information Retrieval. Journal of the ACM, vol. 45, no. 6, 1998, pp. 965-982.

[3] Gasarch W. A survey on private information retrieval. Bulletin of the EATCS, 2004, pp. 72-107

[4] Yekhanin S. Locally Decodable Codes and Private Information Retrieval Schemes. Springer-Verlag Berlin Heidelberg, 2010, 82 p.

[5] Kushilevitz E., Ostrovsky R. Replication is not needed: Single database, computationally-private information retrieval (extended abstract). In Proc. of the 38th Annual Symposium on Foundations of Computer Science, 1997, pp. 364-373.

[6] Kushilevitz E., Ostrovsky R. One-way trapdoor permutations are sufficient for non-trivial single-server private information retrieval. Lecture Notes in Computer Science, vol. 1807, 2000, pp. 104-121.

[7] Ostrovsky R., Skeith III W. E. A Survey of Single-Database Private Information Retrieval: Techniques and Applications. Lecture Notes in Computer Science, vol. 4450, 2007, pp. 393-411.

[8] Aguilar-Melchor C., Barrier J., Fousse L. XPIR: Private Information Retrieval for Everyone, Proceedings on Privacy Enhancing Technologies Symposium, 2016, issue 2, pp. 155-174.

[9] Варновский Н.П., Нестеренко Ю.В., Ященко В.В. Введение в криптографию. Из-во МЦНМО, 2012, 348 стр. / Varnovsky N.P., Nesterenko Yu.V., Yashchenko V.V. Introduction to cryptography. MCCME, 2012, 348 p. (in Russian).

[10] Demmler D., Herzberg A., Schneider T. RAID-PIR: Practical multi-server PIR. In Proc. of the 6th edition of the ACM Workshop on Cloud Computing Security, 2014, pp. 45-56.

[11] Angel S., Chen H. et al. PIR with compressed queries and amortized computation. In Proc. of the IEEE Symposium on Security and Privacy, 2018, pp. 1-18.

[12] "MuchPIR Demo". URL: https://github.com/ReverseControl/MuchPIR, accessed 22.08.2022.

[13]Wahid M.N.A., Ali A. et al. A Comparison of Cryptographic Algorithms: DES, 3DES, AES, RSA and Blowfish for Guessing Attacks Prevention. Journal of Computer Science Applications and Information Technology, vol. 3, no. 2, 2018, pp. 1-7.

Информация об авторах / Information about authors

Сергей Анатольевич МАРТИШИН - кандидат физико-математических наук, научный сотрудник отдела теоретической информатики. Его научные интересы включают параллельные алгоритмы, базы данных, облачные вычисления,

Sergey Anatolievich MARTISHIN - PhD, researcher of the Department of Theoretical Computer Science. His research interests include parallel algorithms, databases, cloud computing.

Марина Валерьевна ХРАПЧЕНКО - научный сотрудник отдела теоретической информатики. Её научные интересы включают параллельные алгоритмы, базы данных, облачные вычисления,.

Marina Valerievna KHRAPCHENKO - researcher of the Department of Theoretical Computer Science. Her research interests include parallel algorithms, databases, cloud computing.

Александр Владимирович ШОКУРОВ - кандидат физико-математических наук, доцент, заведующий отделом теоретической информатики. Сфера научных интересов: алгебраические структуры в полях Галуа, базисы Гребнера, модулярная арифметика, нейрокомпьютерные технологии, цифровая обработка сигналов, криптографические методы защиты информации.

Alexander Vladimirovich SHOKUROV - PhD of Physical and Mathematical Sciences, Professor, Head of the Department of Theoretical Computer Science. Research interests: algebraic structures in the Galois fields, modular arithmetic, neurocomputer technologies, Grobner bases, digital signal processing, cryptographic methods for protecting information.

i Надоели баннеры? Вы всегда можете отключить рекламу.