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




страница7/10
Дата06.06.2016
Размер0.53 Mb.
1   2   3   4   5   6   7   8   9   10

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

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


Одним из компонентов, применяемым в построении зашифрованного индекса, является генератор случайных чисел. В качестве его реализации используется класс SecureRandom [19] из стандартного пакета java.security [20]. SecureRandom принимает на вход название конкретного алгоритма генератора случайных чисел. В качестве такого алгоритма используется SHA1PRNG [22].

В качестве схемы для SSE применяются средства Java Cryptography Architecture (JCA) [21]. JCA позволяет применять следующие алгоритмы симметричного шифрования [22]:

  • AES [27]

  • ARCFOUR [33]

  • Blowfish [34]

  • DES [28]

  • DESede [13]

  • RC2 [38]

  • RC5 [32]

Среди этих алгоритмов для реализации было выбрано AES шифрование. Данный выбор был обоснован тем, что алгоритм является стандартом шифрования, принятым Национальным институтом стандартов и технологий (The National Institute of Standards and Technology, NIST) [27]. Кроме того, алгоритм долгое время является наиболее популярным среди коммерческих и государственных организаций и показывает приемлемую криптостойкость [5].

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


Основой для построения зашифрованного индекса является обратный индекс оригинальных незашифрованных документов. Для извлечения содержимого из файлов используется свободная библиотека Apache Tika [3]. С помощью библиотеки программа поддерживает работу со следующими типами данных: текстовые файлы, pdf-документы, документы MS Office, аудио-файлы, изображения и видео. В табл.3 представлена информация, извлекаемая из разных типов файлов.

Таблица 3

Данные для индексирования

Тип документа

Расширение файлов

Извлекаемые данные

Текстовый документ

*.txt

Текст документа, название файла.

PDF-документ

*.pdf

Текст документа, название файла.

Документ MS Office

*.doc, *.docx, *.xls, *.xlsx, *.ppt, *.pptx

Текст документа, название файла.

Аудио-файл

*.mp3

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

Видео-файл

*.flv

Название файла, наличие видео, наличие аудио, наличие стерео, высота видео, ширина видео.

Изображение

*.jpg

Название файла, ширина изображения, высота изображение, разрешение по оси X, разрешение по оси Y, тип сжатия.

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

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


В табл. 4 перечислены структуры данных, с помощью которых реализованы основные элементы динамической схемы SSE.

Таблица 4

Структуры данных

Элемент алгоритма

Структура данных

Поисковый массив

byte[][]

Поисковая таблица

HashMap

Массив удаления

byte[][]

Таблица удаления

HashMap

Индекс файловой коллекции

HashMap>

Секретный ключ

{byte[], byte[], byte[], java.security.Key}

Токены

Byte[], byte[], byte[]


Одной из особенностей поискового массива и массива удаления является наличие нескольких типов ячеек:

  • ячейки, непосредственно хранящие зашифрованные данные о содержимом индекса;

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

  • ячейки, заполненные случайными строками.

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

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


Модель поиска, описанная в статье [24], предполагает поиск по одному ключевому слову. Однако, эта модель была расширена до поиска по словосочетаниям. Поисковому запросу, состоящему из нескольких слов, ставится в соответствие набор поисковых токенов по каждому из слов:



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

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


1   2   3   4   5   6   7   8   9   10


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

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