
4. Требования к оформлению курсовой работы
Курсовая работа должна состоять из следующих обязательных разделов:
1) содержание (1 страница);
2) введение (1 страница);
3) аналитическая часть (8-12 страниц);
4) конструкторская часть (5-10 страниц);
5) экспериментальная часть (3-5 страниц);
6) заключение (1 страница);
7) список литературы (5-15 источников);
8) приложения (2-7 страниц).
Каждая из тем курсовых работ предполагает разработку программы для решения соответствующих задач информационной безопасности.
Для определения требований, предъявляемых к системе, необходим анализ аналогичных методов, алгоритмов и программ. Данный анализ должен быть представлен в аналитической части работы. Необходимо выполнить сравнительный анализ заданного метода (методов) и 2-4 аналогичных ему. Если в работе реализуется какой-либо режим работы блочного алгоритма, то необходимо рассмотреть особенности и области применения других режимов (электронная кодовая книга, сцепление блоков шифра, обратная связь по шифру, обратная связь по выходу). Особое внимание следует уделять выявлению достоинств и недостатков заданного метода по сравнению с другими методами.
Желательно также выполнить обзор и анализ 2-3 программных систем, в которых реализованы методы и алгоритмы, аналогичные заданным в курсовой работе. По результатам анализа программ определяются требования к функциональным характеристикам и интерфейсу разрабатываемой системы.
При проведении анализа должны использоваться периодические издания, учебники, монографии и Internet-ресурсы, ссылки на которые обязательны в тексте курсовой работы. Библиографические данные источников информации, оформленные согласно ГОСТ 7.05-2008, размещаются в списке литературы в алфавитном порядке.
По итогам анализа должны быть сделаны выводы, в которых обосновывается необходимость разработки программной системы, перечисляются ее функции и требования к ней. Вывод может быть оформлен как заключительный параграф аналитической части или как ее последний абзац.
Для комплексных работ в анализе делается основной акцент на рассмотрение особенностей алгоритмов и систем, аналогичных разрабатываемой студентом подсистеме. Например, если вторая часть темы «Подсистема шифрования RSA», то необходимо рассмотреть сам алгоритм RSA, а также сравнить его с другими асимметричными алгоритмами шифрования (Эль-Гамаля, Полига-Хеллмана).
Опираясь на поставленные задачи и требования к разрабатываемой системе, переходим к проектированию, ход которого описывается в конструкторской части работы.
На первом этапе определяются функции системы и их взаимосвязь, то есть проектируется функциональная схема программы (параграф «Функциональное моделирование»). В качестве отдельных функций можно предложить следующие: ввод или загрузка из файла исходной информации (текста), проверка корректности ключа шифрования (дешифрования), настройка параметров системы, ввод логина и пароля, генерация ключа (ключей), хеширование, шифрование, постановка (проверка) подписи, дешифрация, передача зашифрованной информации, вывод или сохранение результатов в файле, печать результатов и т.п. Функциональная схема программы приводится в виде 1-2 рисунков и описания взаимодействия между ними.
На следующем этапе разрабатывается алгоритм работы системы, который приводится в параграфе «Алгоритмическое конструирование» в виде блок-схемы. Во многих случаях данный алгоритм основан на конкретном криптографическом алгоритме или режиме с добавлением к нему блоков настройки, интерфейса ввода-вывода.
В параграфе «Программная реализация» кратко обосновывается выбор языка и среды программирования, подробно описываются модули, функции, классы программы (приводится название каждой функции, входные параметры, назначение и связь с другими функциями). Исходные тексты самих модулей и функций приводятся в приложении, на что должна быть ссылка в конструкторской части работы. Затем кратко описывается интерфейс программы (1-2 рисунка) и ее основные настройки. Обрабатываемые исходные данные, результаты шифрования и ключевые последовательности должны храниться в текстовых файлах.
В экспериментальной части работы проводятся испытания разработанной системы в нормальных и экстремальных ситуациях, по возможности моделируется активный перехват информации (редактирование исходной или зашифрованной информации, изменение ключей). Особое внимание необходимо обратить на подробное тестирование методов, использующих хеширование, а также различные виды сцепления блоков шифра и обратной связи. В подобных методах исследуется влияние на результат дешифрования (или хеширования):
1) добавления символа (символов) в начало или середину зашифрованного (или исходного) сообщения;
2) замены символа в начале или середине сообщения;
3) перестановки символов местами;
4) удаления символа вначале или середине сообщения.
В описании каждого эксперимента указываются все исходные данные, измененные данные и результаты работы программы в виде копий экрана или в текстовом виде. Итогом экспериментальной части являются выводы, объясняющие полученные результаты и подтверждающие корректность работы программы.
Конструкторская и экспериментальная части комплексных курсовых работ отличаются от индивидуальных тем, что кроме рассмотрения особенностей всей программы в целом каждый студент основное внимание уделяет алгоритму работы, программной реализации, интерфейсу и тестированию своей подсистемы.
В заключении курсовой работы указываются суммарные выводы и результаты каждой из основных частей (аналитической, конструкторской и экспериментальной).