Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Выбор методов и средств реализации, его обоснование

В ходе проектирования программного продукта было решено применить следующие технологии:

- одноранговая сеть;

- СУБД MYSQL;

- ГОСТ 28147-89.

В рамках сетевого взаимодействия сотрудников была выбрана технология одноранговая сети, реализующая пиринговую сеть – один к одному (рис. 2.1).

Рис. 2.1. Одно ранговая сеть

 

Модель была выбрана из-за отсутствия необходимости централизованного сервера. Как итог, отсутствие зависимости системы от одного компонента сети, сокращение материальных затрат на обслуживание системы, возможности передачи данных напрямую без посредников. [5]

В качестве реляционной системы управления базы данных была выбрана MySQL, выбор обусловлен следующими преимуществами системы:данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости, таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. [8, 9] MySQL поддерживает:

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

- оптимизацию связей с присоединением многих данных за один проход;

- записи фиксированной и переменной длины;

- ODBC драйвер;

- гибкую систему привилегий и паролей;

- гибкую поддержку форматов чисел, строк переменной длины и меток времени;

- интерфейс с языками C и Perl, PHP;

- масштабируемость;

- совместимость с ANSI SQL;

- бесплатна в большинстве случаев;

В качестве алгоритмов шифрования был принят российский алгоритм ГОСТ 28147-89. [19] Алгоритм шифрует данные 64-битными блоками с использованием 256-битного ключа шифрования. Выполняется 32 раунда изменений, в каждом из которых реализуются следующие операции (рис. 2.2):

1. Один из 32-битных полученных блоков данных складывается с 32-битным значением ключа раунда Ki по модулю 232.

2. Результат полученной на предыдущем шаге операции разбивается на 8 частей по 4 бита, которые параллельно «прогоняются» через 8 таблиц замен S1…S8. Таблицы замен в стандарте не определены. Определение таблиц замен остается за пользователем криптологической системы или ее реализатором.

3. Четырехбитные фрагменты после замен объединяются в 32-битный блок, значение которого циклически сдвигается влево на 11 бит.

4. Обработанный предыдущими операциями блок накладывается на необработанный блок с помощью побитовой логической операции «исключающее или» (XOR).

5. Блоки меняются местами.

Рис. 2.2. Раунд алгоритма ГОСТ 28147-89

 

Процедура увеличения ключа в алгоритме ГОСТ 28147-89, фактически отсутствует: в раундах шифрования последовательно используются 32-битные фрагменты K1…K8 исходного 256-битного ключа шифрования в следующем порядке: K1, K2, K3, K4, K5, K6, K7, K8. Последние 8 раундов с 25-го по 31-й фрагменты используются в обратном порядке.

Дешифрование полностью аналогично шифрованию, но с другим порядком использования фрагментов ключа:

- в первых 8 раундах – в прямом порядке;

- в остальных раундах – в обратном порядке.

Данный криптологический метод также предусматривает и описывает различные режимы применения алгоритма:

- режимы гаммирования;

- режим вычисления имитовставки;

- режим простой замены;

В рамках решаемой задачи был применен режим простой замены. Алгоритм ГОСТ 28147-89 является весьма простым в реализации, что является его несомненным достоинством. Выбор данного криптологическиго метода обусловлен высокой криптостойкостью алгоритма. Большая длина ключа (256 бит), таблицы замен, большое количество раундов преобразований блоков – позволили данному алгоритму быть долгое время недосягаемым для взлома.

Для реализации программного продукта был выбран компилируемый статически типизированный язык программирования высокого уровня C++. Данный язык поддерживает процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции, реализацию потоков. [12]

Средой разработки был выбран C++ Builder 6, в виду наличия большого количества компонентов в среде программирования, а также быстрой компиляции разрабатываемого проекта. Среди примененных в программном продукте компонентов присутствуют следующие ресурсы:

- ADO;

- AlphaTools;

- Indy;

- SSl;

ADO применяется для работы с базами данными: соединения с базой данных, применения запросов к базе данных, реализации возможности вывода данных, внесения изменений.

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

Indy – применение данного компонента реализует возможность создания протоколов стека TCP/IP средствами среды разработки. [3, 7]

SSl – компонент, реализующий как видно из названия ssl шифрование данных.

Помимо применения компонентов в реализации программы были применены типы данных:

- Структура – это агрегатный тип данных, способный комбинировать в себе различные типы данных. Синтаксис объявления структуры в С++ отличается от C. Применение структуры обусловлено ее функциональным назначением, комбинация различных типов данных.

- Динамический массив позволяет работать с данными, не имея заранее информации о объеме памяти требуемой для выделения, что послужило причиной выбора данного способа хранения данных. [11]

- Потоки исполнения – дополнительная нить выполнения процессов в программе, позволяющая работать параллельно основному потоку выполнения алгоритма, что позволяет увеличить скорость работы программы и ее производительность. В рамках используемой среды разработки используется абстрактный класс TThread.

- Файловый поток данных предназначен для хранения и работы с файлами.

В рамках реализации сетевого взаимодействия пользователей был применен транспортный протокол TCP. [1]

TCP (Transmission Control Protocol – протокол управления передачей) – один из основных протоколов передачи данных интернета, применяется для управления передачей данных в сети. В стеке протоколов IP TCP выполняет функции протокола транспортного уровня модели OSI. Механизм TCP предоставляет поток данных с предварительным соединением, при это реализовано повторное соединение в случае его потери, существует проверка на дублирование пакет, что гарантирует тем самым, в отличие от UDP, стабильность и целостность передаваемых данных и уведомление отправителя о результатах передачи, в связи с чем выбор протокола обмена данными был остановлен на данном протоколе.

Также в ходе проектирования программного продукта был добавлен UDP протокол. [2, 22] UDP (User Datagram Protocol – протокол пользовательских датаграмм) – один из ключевых элементов TCP/IP, набора сетевых протоколов для Интернета. С UDP компьютерные приложения могут посылать сообщения (в данном случае называемые датаграммами) другим хостам по IP-сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных. Применение данного протокола обусловлено сложностью и затратностью ресурсов сети при передачи малого количества данных по TCP протоколу, UDP в свою очередь не требует открытия канала для передачи, посылая данные по заданному адресу без последующего подтверждения. [4]

Применение одно ранговой сети обладает существенным недостатком по сравнению с сетями с центральным сервером, речь идет о невозможности доставки отправленных писем адресату, в случае его отсутствия в сети. В программном продукте данный изъян технологии устранен за счет применения почтового протокола SMTP.[17]

Основная задача протокола SMTP (Simple Mail Transfer Protocol) заключается в обеспечении передачи электронных сообщений (почты). Для работы через протокол SMTP клиент создаёт TCP соединение с сервером через порт 25. Затем клиент и SMTP сервер обмениваются информацией пока соединение не будет закрыто или прервано. Основной процедурой в SMTP является передача почты (Mail Procedure). Применение данного протокола в рамках передачи данных на почтовые сервисы обусловлен наличием SSL шифрования данных, а также бесперебойной работой, доказанной на практике. [6]

Последнее изменение этой страницы: 2016-07-23

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...