Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
Выбор методов и средств реализации, его обоснованиеВ ходе проектирования программного продукта было решено применить следующие технологии: - одноранговая сеть; - СУБД 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. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |