Реферат Отчет 97 с., 4 ч., 11 рис., 11 табл., 4 прил., 40 источников. Шифрование с возможностью поиска, зашифрованный индекс




страница1/10
Дата06.06.2016
Размер0.53 Mb.
  1   2   3   4   5   6   7   8   9   10
Правительство Российской Федерации

Федеральное государственное автономное образовательное

учреждение высшего профессионального образования

"Национальный исследовательский университет

"Высшая школа экономики"
Отделение программной инженерии

Кафедра Управления разработкой программного обеспечения
УТВЕРЖДАЮ

Зав. кафедрой УРПО


________________ С.М. Авдошин

«__» _______________ 2014 г.



ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

по направлению 231000.62 Программная инженерия

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

Студенки группы № 471ПИ ______________ Тужиковой Инны Ильиничны

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

____________

(Дата)

Научный руководитель


Доцент кафедры УРПО, к.т.н. ______________ Савельева Александра Александровна

(должность, звание) подпись (Ф.И.О.)

________________

(Дата)


Москва, 2014 г.
Реферат

Отчет 97 с., 4 ч., 11 рис., 11 табл., 4 прил., 40 источников.



Шифрование с возможностью поиска, зашифрованный индекс, SSE, безопасное криптографическое хранилище, безопасность в облачных хранилищах.

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

Основными целями данной работы являются реализация схемы шифрования с поиском в зашифрованных данных и оценка эффективности применения в системе удаленного хранения. В работе приведен обзор современного состояния теории и осуществлен сравнительный анализ существующих методов. На основе полученных результатов теоретической части работы реализована схема шифрования и проведена эмуляция взаимодействия клиента и сервера в контексте удаленного хранения файлов.

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

Содержание





Введение 4

1.Обзор схем шифрования с возможностью поиска в зашифрованных данных 8

1.1.Существующие модели поиска по зашифрованным данным 8

1.1.1.Oblivious RAM 8

1.1.2.Searchable symmetric encryption 9

1.1.3.Функциональное шифрование 9

1.1.4.Шифрование, сохраняющее свойства (Property-preserving encryption) 10

1.1.5.Полностью гомоморфное шифрование 11

1.1.6.Сравнение существующих моделей 12

1.2.Особенности отдельных SSE схем 13

1.2.1.Нотации безопасности 13

1.2.2.Динамичность схемы SSE 14

1.3.Сравнение существующих SSE схем 14

2.Описание схемы динамического SSE 16

2.1.Описание работы схемы в контексте взаимодействия клиента и сервера 16

2.2.Описание схемы SSE 16

2.3.Компоненты алгоритма 18

2.3.1.Используемые криптопримитивы 18

2.3.2.Секретный ключ 18

2.3.3.Зашифрованный индекс 18

2.4.Работа алгоритма 19

2.4.1.Построение зашифрованного индекса 19

2.4.2.Поиск по ключевому слову 22

2.4.3.Добавление файла в коллекцию 22

2.4.4.Удаление файла из коллекции 24

3.Программная реализация SSE 26

3.1.Язык и средства разработки 26

3.2.Структура программы 26

3.3.Используемые компоненты 30

3.3.1.Криптографические примитивы 30

3.3.2.Индексирование файлов 30

3.4.Реализация алгоритма SSE и структуры данных 31

3.4.1.Зашифрованный индекс 31

3.4.2.Поиск словосочетаний 32

3.5.Варианты использования программы 33

3.6.Интерфейс программы 36

4.Методология оценки и эксперименты 40

4.1.Особенности оценки схемы 40

4.2.Формирование тестовых данных 41

4.3.Результаты экспериментов 42

4.4.Анализ полученных результатов 44

Заключение 46



Список использованных источников 47


Введение


За последние годы облачные решения стали неотъемлемой частью информационных технологий. Все больше коммерческих организаций и пользователей персональных компьютеров используют облачные сервисы в своей работе. Так, исследование, опубликованное Enterprise Strategy Group [37], показывает, что 28% опрошенных компаний пользуются облачными технологиями, что в два раза больше, чем в 2009 году. Одним из популярных видов сервисов являются хранилища пользовательских данных. Примером подобных сервисов являются такие программные продукты как Dropbox, Google Drive, SkyDrive, которые предоставляют персональным и корпоративным пользователям услуги удаленного хранения данных.

Вместе с ростом популярности облачных хранилищ становится актуальным вопрос безопасности пользовательских данных в интернете. Еще одно исследование, проведенное Ponemon Institute [30] показывает, что только 19% организаций, использующих сервисы удаленного хранения файлов, избегают передачи конфиденциальных данных в облако. Вместе с этим, со стороны провайдеров облачных решений принимаются комплексные меры по защите пользовательских данных. Так, например, по заявлению в официальном блоге Dropbox [15], в системе пользовательские файлы защищаются с помощью шифрования, безопасной передачи данных по зашифрованным каналам и дополнительной функции двухэтапной проверки.

Несмотря на многочисленные заявления облачных провайдеров, шифрование внутри системы не может считаться до конца безопасным, поскольку нельзя быть полностью уверенным, что хранимые данные не могут быть расшифрованы злоумышленником из числа сотрудников облачного сервиса. В связи с этим получила распространение концепция шифрования на клиентской стороне. Эта идея подразумевает, что прежде чем данные будут отправлены на удаленный сервер, владелец зашифрует их собственным секретным ключом, защищенное хранение которого сделает невозможным получение доступа к файлам внутри облака. Существует ряд утилит, которые позволяют пользователю шифровать файлы и отправлять их в существующее облачное хранилище. Наиболее популярные среди подобных решений такие продукты как Boxcryptor [10], SecretSync [35] и TrueCrypt [39].

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

  1. создать локальную копию зашифрованных файлов;

  2. расшифровать файлы;

  3. произвести поиск в каждом файле расшифрованной коллекции;

  4. получить результаты поиска.

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

Решением данной проблемы поиска по зашифрованным файлам может быть использование дополнительных структур данных, которые типично применяются в поисковых системах. Примером такого вспомогательного инструмента является индекс файловой коллекции. Индекс способен значительно сократить время поиска за счет его использования вместо последовательного поиска в каждом документе коллекции. Существуют лишь несколько решений, которые позволяют пользователю производить поиск в зашифрованных данных в облаке: Perspecsys [29] и CipherCloud [12]. Особенностью этих программных продуктов является создание индекса оригинальных документов наряду с шифрованием и отправкой их в облако. При этом индекс создается и хранится локально на клиентской стороне. Подобный подход имеет следующие недостатки:

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

  • необходимость дополнительных вычислительных ресурсов для выполнения операции поиска.

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

  • индекс не должен раскрывать серверу информацию о хранимых файлах;

  • индекс должен обеспечивать эффективные методы поиска по зашифрованной коллекции;

  • доступ к поиску по индексу должен осуществляться с помощью секретного ключа пользователя, который не может быть раскрыт сервером;

  • индекс должен обновляться при добавлении или удалении файлов в коллекцию без полной его перестройки.

Примером подобного решения является идея безопасного облачного хранилища (Secure cloud storage), предложенная в 2010 году исследователями из Microsoft Research [23]. Данная концепция подразумевает облачное решение, архитектура которого включает четыре основных компонента: обработчик данных, верификатор данных, генератор запросов серверу и генератор пользовательских идентификаторов. Обработчик данных осуществляет предварительное шифрование перед отправкой данных в облако. Верификатор отвечает за неизменность хранимых данных. Генератор запросов для сервера создает зашифрованные запросы, с помощью которых сервер находит и возвращает пользователю информацию. Генератор идентификаторов позволяет получать доступ к системе внешним агентам. Подобное решение позволяет избежать многих проблем безопасности и получить возможность поиска в зашифрованных данных.

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

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

  2. Выбор необходимых структур данных и реализация алгоритма, выбранного на предыдущем этапе.

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

  4. Выбор тестовых данных и проведение экспериментов.

  5. Анализ полученных результатов.

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




  1   2   3   4   5   6   7   8   9   10


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница