3. Девянин П. Н., Куликов Г. В., Хорошилов А. В. Комплексное научно-обоснованное решение по разработке отечественной защищенной ОССН Astra Linux Special Edition // Методы и технические средства обеспечения безопасности информации: Материалы 23-й науч.-технич. конф. 30 июня-03 июля 2014г. СПб.: Изд-во Политехн. ун-та, 2014. С.29-33.
4. Операционные системы Astra Linux. http://www. astra-linux.ru/
5. Astra Linux. https://ru.wikipedia.org/wiki/AstraX_Linux
6. Девянин П. Н., Кулямин В. В., Петренко А. К. и др. О представлении МРОСЛ ДП-модели в формализованной нотации Event-B // Проблемы информационной безопасности. Компьютерные системы. 2014. №3. С. 7-15.
7. Devyanin P., Khoroshilov A, Kuliamin V., et al. Formal verification of OS security model with Alloy and Event-B // LNCS. 2014. V.8477. P. 309-313.
УДК 517.19 DOI 10.17223/2226308X/9/33
СХЕМА ОБЕСПЕЧЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ В АЛГОРИТМЕ RAID-PIR
М. Р. Кащеев, Ю. В. Косолапов
Рассматривается задача обеспечения конфиденциальности информационной базы данных в схеме анонимного получения информации (private information retrieval) с удалённых серверов. Предполагается, что для хранения базы используются r серверов (r — нечётное), а для анонимного доступа к информации используется алгоритм RAID-PIR. Построен способ шифрования и распределения базы данных таким образом, чтобы, во-первых, по зашифрованным данным, хранящимся на каждом из серверов, нельзя было нарушить конфиденциальность базы данных, и, во-вторых, чтобы при чтении или перезаписи блока данных ни один из серверов не мог узнать, какой блок соответственно считывался или перезаписывался.
Ключевые слова: анонимность данных, PIR, 'распределение данных.
Под анонимностью в сетях передачи данных, как правило, понимается либо невозможность идентификации сервером пользователей, отправивших запрос (анонимность пользователя), либо невозможность идентификации сервером запрашиваемой пользователями информации (анонимность запроса) [1]. В настоящей работе рассматривается обеспечение второго варианта анонимности. Предполагается, что для хранения информационной базы данных используется несколько серверов. Пользователь заинтересован в получении некоторой части базы данных таким образом, чтобы серверы, участвующие в хранении, по отдельности не смогли идентифицировать, какая именно часть базы была запрошена пользователем. В подобных схемах серверы могут рассматриваться как недобросовестные наблюдатели, цель которых заключается в выяснении, в получении какой информации из базы данных заинтересован пользователь. Простейшим случаем обеспечения анонимности является схема с одним сервером, когда пользователь с сервера запрашивает всю базу полностью [2]. Обычно в системах обеспечения анонимности запроса предполагается, что серверу может быть известно (частично или полностью) информационное содержимое базы. В работе рассматривается ситуация, когда знание сервером базы нежелательно, при этом необходимо также защититься от получения сервером информации о расположении или доле запрашиваемой информации в базе. Таким образом, ставится задача построения схемы защиты
88
Прикладная дискретная математика. Приложение
конфиденциальности информационной базы данных, позволяющей анонимно считывать данные из базы и перезаписывать их.
Пусть ББ Е ^ — информационная база данных, представленная в виде конкатенации Ь блоков длины к бит каждый: ББ = (¿^...,¿5), Е , а для хранения базы ББ используются г серверов хранения 81,... , 8Г, где г — нечётное число. Целью пользователей этой системы хранения является получение 3-го (3 Е {1,..., Ь}) блока базы ББ таким образом, чтобы каждый из серверов не узнал 3. Для этого пользователь отправляет специальные вектор-запросы всем серверам, а серверы вычисляют побитовые суммы блоков, соответствующих вектор-запросу пользователя, и отправляют пользователю результаты суммирования. Вектор-запрос к серверу — это бинарный вектор, в котором единицы находятся на позициях с номерами блоков базы, которые сервер должен просуммировать в ответ. Отметим, что способ построения запросов и соответствующих ответов, при котором отдельный сервер может знать информационное содержимое базы, но не может по запросу понять, какой именно блок запрошен пользователем, предложен в [3]. Далее схему из [3] назовём ИАГО-РГО,.
В настоящей работе на базе варианта ИА1Б-Р1И, когда каждый сервер отвечает несколькими блоками, строится решение задачи обеспечения конфиденциальности информации в базе относительно серверов. Для этого используется шифрование методом модульного гаммирования с г — 1 случайными (псевдослучайными) ключами длины п. Предполагается, что для генерации ключевой последовательности (гаммы) используется генератор непредсказуемой последовательности чисел, который обозначим rnd_gen. Построены четыре протокола: распределения базы по серверам ^¡б^ЪЮБ), чтения ¿-го блока из базы (GetBlock), перешифрования данных на серверах (NewKey) и перезаписи ¿-го блока в базе (SetBlock). Параметром протоколов является число р (1 < р < г) —число зашифрованных на разных ключах копий базы ББ, хранимых на каждом сервере.
Алгоритм 1. DistribDB — распределение базы ББ Е ^ по серверам 81,..., 8Г
1: Владелец базы строит набор Г = {Г1,..., Гг}, где для 3 = 1,..., г — 1 вектор Г =
г— 1
= (т!,... ,7^), Е ^, генерируется с помощью генератора rnd_gen; Гг := ф Г\
г=1
2: По ББ и Г вычисляются векторы: ББ^ = ББ ф Г = (¿1,..., ¿1), 3 = 1,... , г.
3: Серверу 8,- передаются ББ[т°а ¿/(г+1)],..., бб[^'+р—1) т°а (г+1)+[(^'+р—1)/(г+1)],
3 = 1,...,г.
Алгоритм 2. GetBlock — получение ¿-го блока (блока ¿г) из базы ББ
1: Пользователь с помощью алгоритма ИАГО-РЩ получает ¿-й блок ¿1 с каждого вектора ББ^, 3 = 1,..., г.
г г / г \ / г
2: Пользователь вычисляет: ф ¿1 = ф (т^ Ф ¿г) = ( ф I Ф ( ф ¿г ). Так как
¿=1 ¿=1 у=1 / у=1
г г
ф 7^ = 0(Е Fk) и г — нечётное число, то ф ¿1 = . ¿=1 ¿=1
Алгоритм 3. NewKey — перешифрование данных на серверах с помощью набора Г = {Г1,..., Гг }
1: Пользователь передаёт на сервер Sj, j = 1,..., r, соответствующие этому серверу p веКторов: Г j mod (r+1) + Lj/(r+1)J , . . . , Г (j+p-1) mod (r+1) + L(j+p-1)/(r+1)J.
2: Сервер Sj обновляет хранящиеся у него части: ББгг := ББгг ф Г, где
l Е {j mod (r + 1) + Lj'/(r + 1)J ,..., (j + p - 1) mod (r + 1) + [(j + p - 1)/(r + 1)j}, j = 1,...,r-
Алгоритм 4. 8е1В1оек — перезапись ¿-го блока в базе ББ новым значением 1: Пользователь получает ¿-й блок базы = Ое1В1оек(г)), генерирует новый набор Г = {Г1,... , Гг} (Г ^ rnd_gen) и для каждого Г = (Г,... , Гь) из Г переопределяет Г: Г := Г Ф (¿г Ф ¿г). 2: Пользователь выполняет протокол перешифрования NewKey(Г).
Показано, что
1) протоколы GetBlock и SetBlock обеспечивают анонимность соответственно запрашиваемых и записываемых данных;
2) протоколы DistribDB, NewKey и SetBlock обеспечивают конфиденциальность хранимых на серверах данных;
3) любая коалиция мощности t < |~r/p] не может нарушить конфиденциальность базы данных, а любая коалиция мощности t ^ r — p +1 однозначно дешифрует базу данных.
ЛИТЕРАТУРА
1. Pfitzmann A. and Hansen M. A terminology for talking about privacy by data minimization: Anonymity, Unlinkability, Undetectability, Unobservability, Pseudonymity, and Identity Management. https://dud.inf.tu-dresden.de/literatur/Anon_Terminology_v0.18.pdf.
Дата обращения 30.03.2016.
2. Chor B., Goldreich O., Kushilevitz E., and Sudan M. Private information retrieval // J. ACM. 1998. V. 45(6). P. 965-981.
3. Demmler D., Herzberg A, and Schneider T. RAID-PIR: Practical Multi-Server PIR // Proc. 6th edition of the ACM Workshop on Cloud Computing Security. N.Y., USA: 2014. P. 45-56.
УДК 004.94 DOI 10.17223/2226308X/9/34
МЕТОД ЗАПУТЫВАНИЯ ПРОГРАММНОЙ РЕАЛИЗАЦИИ СХЕМЫ HMAC ДЛЯ НЕДОВЕРЕННОЙ СРЕДЫ
Д. Н. Колегов, О. В. Брославский, Н. Е. Олексов
Предлагается метод обфускации схемы аутентификации сообщений HMAC для реализации в недоверенных средах.
Ключевые слова: white-box cryptography, коды аутентификации сообщений, HMAC, обфускация, защита приложений.
При разработке защищённых веб-приложений часто необходимо реализовывать алгоритмы выработки кодов аутентификации сообщений (MAC) на языке JavaScript