Главная » Просмотр файлов » Пояснительная записка

Пояснительная записка (1191325), страница 6

Файл №1191325 Пояснительная записка (Защищенные облачные вычисления с использованием гомоморфного шифрования) 6 страницаПояснительная записка (1191325) страница 62020-10-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

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

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

Класс «ConnectionSettingsComponent»

Данный класс предназначен для хранения настроек соединения с сервером защищенных вычислений. В поле ipAddress данного класса хранится IP адрес сервера защищенных вычислений в формате IPv4, а в поле port – порт сервера. Оба эти поля могут быть доступны из других классов с помощью свойств conectionAddress и connectionPort. Также в данном классе имеется поле, в котором записан статус текущего соединения с сервером.

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

Объект данного класса хранится в поле instance с атрибутом static, а получить ссылку на объект данного класса из объектов другого класса можно с помощью метода getInstance, логика которого заключается в следующем: если еще не создано ни одного, объекта данного класса, то при вызове метода в поле instance создается объект и возвращается ссылка на него, в том случае, если объект уже создан, то сразу возвращается ссылка на него.

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

Класс «ConnectionSettingsForm»

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

Класс «CustomBinder»

Данный класс используется при десериализации объектов класса ClientRequest и ServerResponse. Клиентское и серверное приложение могут обмениваться сериализованными объектами данных классов. При сериализации, как было описано выше, используется класс BinaryFormatter. Особенность работы данного класса заключается в том, что при сериализации объекта он сохраняет полное имя типа вместе с полным именем сборки. В таком случае, нужно обеспечить, чтобы в приложении, где будет проходить десериализация передаваемого объекта, были доступны типы из сборки, где они были сериализованы.

Клиентское и серверное приложение являются разными сборками и, чтобы гарантировать успешную десериализацию объектов, необходимо вынести их в отдельную библиотеку, для подключения в проектах. Было решено отказаться от данного решения и использовать следующий вариант. При десериализации полученного объекта изменяется свойство Binder объекта класса BinaryFormatter, в которое записывается ссылка на объект класса CustomBinder. Данный класс является наследником класса SerializationBinder и позволяет переопределять имя сборки во время процесса десериализации объекта. Данное решение было применено на основании того, что и клиентское и серверное приложение разрабатывалось одним разработчиком и он обеспечивает наличие идентичных классов ClientRequest и ServerResponse в двух приложениях.

Класс «FHEComponent»

Класс «FHEComponent» является основным классом приложения, который реализует в себе логику алгоритма гомоморфного шифрования на гомоморфизме колец полиномов. По аналогии с классом ConnectionSettingsComponent данный класс реализован с использованием паттерна проектирования Singleton. Особенности реализации данного паттерна в приложении можно посмотреть в описании класса ConnectionSettingsComponent.

С помощью данного класса можно осуществлять следующие операции:

  • генерация шифрующего полинома (метод getPolynom с тремя параметрами – степень полинома, максимальный и минимальный коэффициенты полинома);

  • сопоставление полинома операнду (метод getPolynom с четырьмя параметрами – добавляется параметр, в котором передается операнд, которому нужно сопоставить полином);

  • шифрование полинома (метод – getEncryptedPolynom);

  • дешифрование полинома (метод – decryptPolynom).

Класс «LoggerComponent»

Данный класс предназначен для вывода сообщений различного типа в лог приложения. В классе «LoggerComponent» имеется поле, которое содержит ссылку на объект класса MainForm, с помощью которого возможно осуществить доступ к элементу лога приложения. Вывод сообщения осуществляется с помощью метода write, который, в качестве входных параметров, принимает текст сообщения и тип сообщения (INFO, SUCCESS, ERROR).

Класс «MainForm»

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

Класс «NetTransferComponent»

Данный класс предназначен для обмена данными между клиентом и сервером. Для взаимодействия на сетевом уровне используется пространство имен System.Net.Sockets. Данное пространство имен содержит не только низкоуровневые классы, как Socket, но и классы высокого уровня TcpClient и TcpListener, которые реализуют простые интерфейсы для взаимодействия через TCP [10].

В отличие от класса Socket, при использовании которого для отправки и получения данных применяется побайтовый подход, классы TcpClient и TcpListener придерживаются потоковой модели. В этих классах взаимодействие между клиентом и сервером основано на потоке с использованием класса NetworkStream.

За отправку запроса на выполнение вычислений отвечает метод sendRequest. В этом методе для начала создается объект класса TcpClient, при создании которого используется конструктор типа TcpClient (string hostname, int port). Использование данного конструктора позволяет соединиться с удаленным хостом, всего лишь создав объект класса TcpClient. После этого данные, которые необходимо отправить, сериализуются и с использованием потока NetworkStream отправляются на сервер. Затем поток прослушивается до того момента, пока не будет получен ответ от сервера, после этого соединение закрывается, а полученные данные отправляются на дешифровку.



Класс «Polynom»

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

В качестве функциональных особенностей класса можно выделить реализацию алгоритмов умножения и сложения полиномов, а также метод, который позволяет получить строку с удобочитаемым представлением полинома (например, x^2+3x+15).

Класс «ServerResponse»

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

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

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

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

Помимо этого, в классе содержатся методы для сериализации и десериализации объектов данного класса. Данные процедуры были описаны при рассмотрении классов ClientRequest и CustomBinder.

    1. Серверное приложение



      1. Описание программы

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

  • прослушивать порты на наличие входящих запросов на выполнение вычислений;

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

      1. Описание классов приложения

Серверное приложение FHEncryptionServer разрабатывалось с архитектурой схожей с клиентским приложением. Данное приложение состоит из десяти классов. На рисунке 4.2 представлена диаграмма классов серверного приложения, которая также получена в результате применения метода обратного проектирования [1].

Рисунок 4.2  Диаграмма классов серверного приложения

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

Первое отличие находится в реализации класса FHEComponent. Так как на сервере должны выполняться операции над зашифрованными данными, без их дешифрования, в данном классе реализован только один метод, который отвечает за выполнение операций, запрошенных клиентом, над зашифрованными данными (метод executeOpeartion).

Также существует различие и в сетевом взаимодействии, в отличие от клиента, который открывает соединение, когда необходимо выполнить вычисления, сервер постоянно прослушивает входящий порт, который можно задать в процессе изменения настроек, на наличие входящих запросов. Для этого используется класс TcpListener. Сетевые настройки сервера хранятся в полях класса ServerSettingsComponent.

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



  1. Руководство пользователя

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

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

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

    1. Клиентское приложение

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

Форма приложения (рисунок 5.1) разделена на пять основных групп:

  • группа «Соединение с сервером»;

  • группа «Информация о приложении»;

  • группа «Лог приложения»;

  • группа «Выполнение операций»;

  • группа «Статистика».

Рисунок 5.1  Главная форма клиентского приложения

      1. Группа элементов «Соединение с сервером»

Группа элементов интерфейса «Соединение с сервером» (рисунок 5.2) позволяет пользователю просматривать, а также редактировать параметры соединения с сервером вычислений.

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее