Пояснительная записка (1191325), страница 7
Текст из файла (страница 7)
Рисунок 5.2 Вид группы элементов «Соединение с сервером»
В данной группе можно посмотреть такие параметры как:
-
статус сервера;
-
IPv4 адрес сервера;
-
порт подключения сервера.
Поле статус сервера может принимать несколько значений:
-
доступен (сервер в данный момент запущен и готов принимать запросы от клиентского приложения);
-
недоступен (по умолчанию данный статус выводится при старте приложения, также в тех моментах, когда по указанному адресу сервер не работает или, возникли проблемы с соединением к серверу);
-
проверка соединения (данный статус указывается при ручной проверке соединения с сервером, используя функционал приложения).
Редактирование параметров соединения с сервером
При первом запуске приложения параметры IPv4 адрес и порт соединения будут не заполнены, для того чтобы заполнить данные параметры пользователю необходимо нажать на кнопку «Редактировать» и заполнить необходимые данные в появившемся модальном окне (рисунок 5.3). Если требуется отменить внесенные изменения, то необходимо нажать на кнопку «Отмена».
Рисунок 5.3 Вид модального окна «Настройки соединения»
При вводе некорректных данных в поля настроек соединения пользователь будет предупрежден о некорректности вводимых данных всплывающим сообщением. Вид модального окна с сообщением представлен на рисунке 5.4.
Рисунок 5.4 Вид предупреждения при вводе некорректных данных
Аналогичное сообщение появляется при вводе некорректного значения порта соединения (возможные значения портов соединения лежат в диапазоне от 1 до 65535). При успешном сохранении настроек, введенные данные сразу отобразятся на главной форме в соответствующих полях.
После того, как пользователь ввел корректные параметры соединения, для получения доступа к основному функционалу приложения, необходимо проверить соединение с сервером. При успешной проверке в поле «Статус сервера» статус изменится на «Доступен» и станет доступна группа «Выполнение операций», а также в логе приложения появятся два сообщения как на рисунке 5.5.
Рисунок 5.5 Лог приложения при проверке доступности сервера
Если окажется, что сервер вычислений недоступен, то в логе приложения пользователь увидит сообщение о том, что сервер недоступен.
-
Группа элементов «Информация о приложении»
В группе информация о приложении содержится краткая информация о приложении (название, год написания) и его предназначении, также в этой группе находится информация об авторе приложения.
-
Группа элементов «Лог приложения»
Данная группа содержит в себе лог приложения, в который записывается информация об основных событиях, происходящих в процессе выполнения приложения. Формат сообщения в логе приложения можно представить следующим образом:
[Тип_события] Время_появления_события: Текст_сообщения
По типу события можно выделить три основных группы сообщений:
-
INFO – информационные сообщения, происходят при возникновении какого-либо события в приложении;
-
ERROR – сообщения об ошибке, происходят при возникновении ошибок при выполнении программы (например, недоступность сервера вычислений);
-
SUCCESS – сообщения об успешном выполнении каких-либо операций (например, успешное завершение операции шифрования операндов).
При накоплении большого количества сообщений в логе приложения можно очистить этот лог, нажав клавишу «Очистить».
-
Группа элементов «Выполнение операций»
В данной группе (рисунок 5.6) представлен основной функционал приложения. С помощью элементов, расположенных в данной группе можно осуществлять защищенные вычисления, посылая запрос на сервер вычислений с зашифрованными данными.
Рисунок 5.6 Вид группы элементов «Выполнение операций»
В данном приложении в качестве алгоритма для шифрования данных был выбран алгоритм гомоморфного шифрования на основе гомоморфизма колец полиномов. Следовательно, основными параметрами при выполнении алгоритма будут являться степени полиномов, которые будут сопоставляться операндам и степень шифрующего полинома, который будет использоваться в качестве закрытого ключа и храниться в клиентском приложении. С помощью двух элементов NumericUpDown, находящихся в верхней части формы, пользователь может задать эти степени, причем степень полинома, который сопоставляется операндам изменяется в диапазоне от двух до ста, а степень шифрующего полинома – от одного до ста.
Для того чтобы выполнить вычисления над операндами необходимо в поля «1-ый операнд» и «2-ой операнд» ввести целые числа, а также указать операцию, которую необходимо над ними произвести. Операцию можно назначить кликом по кнопкам
или
.
Данное приложение рассчитано на работу с целыми числами и, если пользователь введет некорректные операнды в соответствующие поля или не заполнит их и нажмет на кнопку «Вычислить» появится сообщение о некорректном вводе данных (рисунок 5.7).
Рисунок 5.7 Предупреждение при вводе неверных операндов
Если данные заполнены корректно, при нажатии кнопки «Вычислить» запустится операция шифрования данных с последующей отправкой данных на сервер для вычислений, после того, как сервер выполнит запрашиваемую клиентом операцию, он вернет результат вычислений в зашифрованном виде, который клиент расшифровывает, используя закрытый ключ.
На рисунке 5.8 представлен пример лога приложения при выполнении операции сложения операндов 13 и 425 при степени сопоставляемого полинома равной трем и степени шифрующего полинома, равной двум.
Рисунок 5.8 Лог приложения при выполнении операции сложения операндов
При использовании больших степеней полиномов процесс вычислений может продолжаться очень долго. Для того чтобы пользователь в подобных случаях смог прекратить запущенные вычисления, в приложении предусмотрена кнопка «Остановить», которая прекращает процесс вычислений, чтобы пользователь смог изменить параметры и попробовать снова.
По окончанию вычислений результат выводится в текстовое поле с названием «Результат».
-
Группа элементов «Статистика»
В процессе выполнения вычислений в этой группе отображается информация о времени выполнения определенного этапа вычислений. Данная информация может помочь в анализе производительности алгоритма шифрования, в том числе, можно подобрать наиболее эффективную комбинацию степеней шифрующего и сопоставляемого полиномов. Всего в процессе вычисления можно выделить 7 основных этапов вычислений, информация о времени выполнения которых, отображается в приложении:
-
генерация первого полинома;
-
генерация второго полинома;
-
генерация шифрующего полинома;
-
шифрование первого полинома;
-
шифрование второго полинома;
-
выполнение операции (выполнение вычисления) на сервере;
-
дешифрование полинома для получения результата.
Пользователь может сбросить статистику, нажав на клавишу «Сбросить статистику», которая находится в нижней части группы «Статистика».
-
Серверное приложение
По аналогии с устройством клиентского приложения серверное приложение (FHEncryptionServer) представляет собой форму (рисунок 5.9) с функциональными элементами, которые разбиты на группы. Пользовательский интерфейс серверного приложения содержит 4 группы элементов:
-
группа «Настройки сервера»;
-
группа «Управление сервером»;
-
группа «Информация о приложении»;
-
группа «Лог сервера».
Рисунок 5.9 – Главная форма серверного приложения
-
Группа элементов «Настройки сервера»
С помощью элементов, находящихся в данной группе (рисунок 5.10), пользователь может просмотреть или отредактировать следующие параметры сервера:
-
IPv4 адрес сервера;
-
порт подключения к серверу.
Рисунок 5.10 Вид группы элементов «Настройки сервера»
Данные настройки указывают по какому адресу и порту сервер будет прослушивать входящие запросы на выполнение операций. Также в данной группе находится элемент, отображающий статус сервера в данный момент. Поле «Статус сервера» может принимать следующие значения:
-
остановлен (в данный момент сервер не работает и не ожидает входящих запросов);
-
работает (сервер работает и прослушивает настроенный порт на входящие запросы).
Редактирование настроек сервера
После запуска серверного приложения пользователю необходимо настроить параметры подключения (IPv4 адрес и порт) для дальнейшей работы с сервером.
Для того чтобы настроить IP адрес подключения к серверу необходимо в поле «IPv4 адрес» из выпадающего списка выбрать нужный IP адрес для входящих соединений. В выпадающем списке находятся IPv4 адреса всех сетевых интерфейсов рабочей станции, на которой запущено данное серверное приложение.
После того, как IP адрес был настроен, следующим шагом в конфигурации сервера является настройка порта подключения к серверу. Для того чтобы изменить порт подключения к серверу необходимо нажать на кнопку «Изменить», которая находится рядом с полем «Порт». При нажатии на данную кнопку появится модальное окно (рисунок 5.11), в котором будет предложено ввести свое значение порта, нажав на кнопку «Сохранить», или же отменить внесенные изменения, нажав на кнопку «Отмена».
Рисунок 5.11 Вид модального окна «Настройки сервера»
Вводимое значение порта должно представлять из себя целое число в диапазоне от 49152 до 65535. Если введенные данные не отвечают условиям, то появится предупреждение о некорректности вводимых данных. Виды предупреждений представлены на рисунках 5.12 и 5.13.
Рисунок 5.12 Вид предупреждения при вводе неверного значения порта (вариант 1)
Рисунок 5.13 Вид предупреждения при вводе неверного значения порта (вариант 2)
Если введенные данные оказались корректными, то после нажатия кнопки «Сохранить» произойдет запись указанного значения порта в настройки программы.
-
Группа элементов «Управление сервером»
Данная группа позволяет управлять состоянием сервера, а точнее, запускать сервер и останавливать его. Для того чтобы запустить сервер необходимо нажать на кнопку «Запустить», а, чтобы остановить – на кнопку «Остановить».
При начальном запуске серверного приложение обе кнопки заблокированы. Для того чтобы разблокировать кнопку, отвечающую за запуск сервера, необходимо произвести настройку параметров сервера. Когда все настройки будут заполнены, сервер будет готов к запуску и кнопка «Запустить» перейдет в активное состояние.
После нажатия на кнопку «Запустить» в логе приложения должны появится сообщения, сигнализирующее об успешном запуске сервера.
Если при попытке запуска сервера за место сообщений выше, в логе приложения появляется сообщение об ошибке, то, наиболее вероятно, что на рабочей станции, на которой запущено серверное приложение, запущено приложение, которое использует для работы порт, который был указан в настройках (например, запуск второго экземпляра сервера защищенных вычислений).
После запуска сервер прослушивает входящие запросы на вычисление по настроенному порту. Ранее в руководстве для клиентского приложения приводился пример лога приложения в процессе вычисления, ниже приведен лог серверного приложения в течение того же процесса вычисления (рисунок 5.14).
После того как сервер перейдет в рабочее состояние, станет активна кнопка «Остановить». При нажатии на эту кнопку произойдет остановка всех вычислительных операций и разрыв всех соединений с клиентами, которые были установлены на момент остановки сервера. При этом в логе приложения появится сообщение, которое сигнализирует об остановке сервера.
Рисунок 5.14 Лог сервера при выполнении операции сложения операндов
-
Группа элементов «Информация о приложении»
В группе информация о приложении содержится краткая информация о приложении (название, год написания) и его предназначении, также в этой группе находится информация об авторе приложения.
-
Группа элементов «Лог сервера»
Данная группа содержит в себе лог сервера, в который записывается информация об основных событиях, происходящих в процессе работы серверного приложения.
Формат и типы сообщений полностью совпадают с форматом и типами сообщений в логе клиентского приложения. Для ознакомления с данной информацией необходимо перейти в руководство по клиентскому приложению. По аналогии с клиентским приложением была добавлена возможность очистки лога сервера при накоплении большого количества сообщений нажатием клавиши «Очистить», которая находится внизу группы элементов «Лог сервера».
-
Экономическая часть. Расчет затрат на создание программного обеспечения
Процесс создания программного обеспечения включает в себя множество этапов. Наиболее значимым является этап разработки, так как эта стадия является наиболее длительной и трудоёмкой. Разработка программного обеспечения состоит четырех основных этапов: анализ требований, проектирование, кодирование (реализация), тестирование.














