Реализация криптографического алгоритма "ГОСТ 28147-89" в режиме гаммирования - Программирование, компьютеры и кибернетика курсовая работа
![](/file/c17a668ccb7333e986a5a.jpg)
Главная
Программирование, компьютеры и кибернетика
Реализация криптографического алгоритма "ГОСТ 28147-89" в режиме гаммирования
Функциональное и эксплуатационное назначение данного изделия. Требования к составу и параметрам технических средств. Описание алгоритма ГОСТ 28147-89 в режиме гаммирования. Технико-экономические показатели разработки. Интерфейс программного продукта.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Реализация криптографического алгоритма «ГОСТ 28147-89» в режиме гаммирования
1.2 Функциональное и эксплуатационное назначение изделия
1.3.3 Требования к составу и параметрам технических средств
1.3.4 Описание алгоритма ГОСТ 28147-89
1.3.5 Описание алгоритма ГОСТ 28147-89 в режиме гаммирования
1.5 Технико-экономические показатели разработки
2.1 Функциональные и эксплуатационные характеристики
2.2.2 Интерфейс программного продукта
алгоритм гаммирование программный криптографический
Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними.
Криптография - наука о защите информации с использованием математических методов. Существует и наука, противоположная криптографии и посвященная методам вскрытия защищенной информации - криптоанализ.
Существует несколько типов криптографических алгоритмов, прежде всего они делятся на три основных категории:
бесключевые алгоритмы, которые не используют каких - либо ключей в процессе криптографических преобразований;
одноключевые алгоритмы, использующие в своих вычислениях некий секретный ключ;
двухключевые алгоритмы, в которых на различных этапах вычислений применяются два вида ключей: секретные и открытые.
В данной курсовой работе алгоритм ГОСТ 28147-89 реализован в режиме гаммирования.
Основанием для разработки является задание к курсовому проекту по предмету «Программирование».
1.2 Функциональное и эксплуатационное назначение изделия
Перечень требований пользователя к программному изделию.
Разработка программной документации и программы должна производиться согласно ЕСПД, ГОСТ 19.701-90, ГОСТ 2.304-88.
Выход должен работать под управлением операционной систем Windows 98/NT/XP/Vista/se7en/Win8.
1.3.3 Требования к составу и параметрам технических средств
Для работы программы желательно иметь персональный компьютер со следующей характеристикой:
микропроцессор Intel core i3 с тактовой частотой 2.1 ГГц;
видеоадаптер SVGA с цветным дисплеем;
объём свободного места на жестком диске 5 Mб;
1.3.4 Описание алгоритма ГОСТ 28147-89
Алгоритм ГОСТ 28147-89 шифрует информацию блоками по 64 бита, которые разбиваются на два субблока по 32 бита (N1 и N2). Субблок N1 определенным образом обрабатывается, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2), затем субблоки меняются местами. Такое преобразование выполняется определенное количество раундов 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются следующие операции:
Наложение ключа. Содержимое субблока N1 складывается по модулю с частью ключа K.
Ключ шифрования алгоритма ГОСТ 28147-89 имеет размерность 256 битов, а K - это его 32 - битная часть, т. е. 256 - битный ключ шифрования представляется в виде конкатенации 32 - битных подключей.
В процессе шифрования используется один из этих подключей - в зависимости от номера раунда.
Табличная замена. После наложения ключа субблок N1 разбивается на 8 частей по 4 бита, значение каждой из которых по отдельности заменяется в соответствии с таблицей замены для данной части субблока.
Табличная замена используется таким образом: на вход подается блок данных определенной размерности (в этом случае - 4 - битный), числовое представление которого определяет номер выходного значения. Например, имеем таблицу следующего вида:
4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1.
Пусть на вход пришел 4 - битный блок «0100», т. е. значение 4. Согласно таблице, выходное значение будет равно 15, т. е. «1111»
Побитовый циклический сдвиг влево на 11 битов.
1.3.5 Описание алгоритма ГОСТ 28147-89 в режиме гаммирования
В режиме гаммирования каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бита. Гамма шифра - это специальная последовательность, которая вырабатывается с помощью описанных в пункте 1.4.4 преобразований следующим образом:
В регистры N1 и N2 записывается их начальное заполнение - 64-битная величина, называемая «синхропосылкой»
Выполняется зашифровывание содержимого регистров N1 и N2 в режиме простой замены.
Содержимое N1 складывается по модулю (2-1) с константой С1 = 2, результат сложения записывается в регистр N1.
Содержимое N2 складывается по модулю 2 с константой С2 = 2, результат сложения записывается в регистр N2
Содержимое регистров N1 и N2 подается на выход в качестве 64-битного блока гаммы шифра.
Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифровывание или расшифровывание), выполняется возврат к шагу 2.
Для расшифровывания аналогичным образом выполняется выработка гаммы, затем снова применяется операция XOR к битам зашифрованного текста и гаммы.
Входными данными программы являются открытые и закрытые файлы любого типа, размер которых не превышает 2Гб.
Результатом работы программы является открытый или закрытый файл.
Программа имеет повышенную степень секретности, т. к. в ней содержится таблица замен. Получение данной программы «злоумышленниками» увеличивает шансы на вскрытие файлов, зашифрованных данной программой. Так же повышенную степень секретности имеет ключ, поэтому его нельзя передавать вместе с зашифрованными данными.
Для копирования программы с диска или flash-USB на компьютер необходимо:
1. Распаковать RAR-архив, расположенный на диске (flash-USB), в какую-либо папку на жёстком диске компьютера.
Выполнение разработки должно включать две стадии:
На стадии "Техническое задание" проводится постановка задачи, разработка требований к программному изделию, изучение литературы по задаче и оформление документа "Техническое задание".
На стадии "Пояснительная записка" проводится разработка схем алгоритмов для каждого из функциональных модулей, физическое проектирование программного изделия. В заключение данного этапа оформляется документ "Пояснительная записка".
1.5 Технико-экономические показатели разработки
Программное изделие разрабатывается в качестве курсовой работы, поэтому технико-экономические показатели не рассчитываются.
Данный программный продукт должен успешно пройти следующие тесты:
Тест 1. На вход программе подается открытый (незашифрованный) файл данных размером не более 2 Гб, на выходе программа должна предоставить закрытый (зашифрованный) файл.
Тест 2. На вход программе подается закрытый (зашифрованный) файл,
полученный в результате первого теста, на выходе программа должна предоставить открытый (незашифрованный) файл, данные которого будут эквивалентны данным открытого файла, использованного в первом тесте.
Тест 3. На вход программе подается файл размером больше 2 Гб,
на выходе программа должна сообщить пользователю, что объем данных превышает максимально допустимый объем данных, для данного программного продукта.
Тест 4. Прервать процесс зашифровывания файла, нажатием на кнопку «стоп», в результате чего в директории с исходным (поданным на вход) файлом должен создаться файл восстановления процесса.
Тест 5. Открыть файл возобновления процесса, созданный в тесте 4, в результате чего программа должна возобновить процесс зашифровывания файла с того места где была прервана.
Тест 6. Повторить тесты 4 и 5, для процесса расшифровывания файла.
Тест 7. Открыть файл возобновления процесса с заведомо ложными директориями к файлу, поданному на вход или файлу на выход или файлу ключа, на выходе программа должна сообщить пользователю, что файл отсутствует.
Тест 8. Файлу на выходе указывается путь в директорию с заведомо меньшим размером свободной памяти, чем необходимо, для его хранения, на выходе программа должна сообщить пользователю, что в данной директории недостаточно свободной памяти и предоставить возможность выбора другой директории.
2.1 Функциональные и эксплуатационные характеристики
Программа обладает следующими характеристиками:
обрабатывает файлы любого типа размером до 2 Гб
(Основные процедуры и функции, использованные в программе)
String sek2time(double c)// в качестве параметра подается количество секунд возвращается строка формата чч:мм:cc
Start(bool start)// запускает поток в котором происходит расшифровывание или зашифровывание данных, в зависимости от значения параметра start
kod(String path, String pathOut,int start)// подпрограмма реализующая зашифровывание данных, параметрами служат путь к открытому файлу, путь к закрытому файлу, и переменная указывающая на начало (с какого 64-битного блока начинать зашифровывание)
dekod(String path, String pathOut, int start)// подпрограмма реализующая расшифровывание данных, параметрами служат путь к закрытому файлу, путь к открытому файлу, и переменная указывающая на начало (с какого 64-битного блока начинать расшифровывание)
unsigned long Zamena(unsigned long b, bool k) // на вход подается 32-битный блок данных, где он разбивается на 8 4-битных блока, которые пропускаются через таблицу замен.
unsigned long SdvigIter(unsigned long b) // на вход подается 32-битный блок данных, который циклически с двигается на 11 бит в лево.
2.2.2 Интерфейс программного продукта
После запуска программы на экран выводится заставка программы:
После заставки открывается главное окно программы:
Алгоритмы симметричного шифрования - алгоритмы шифрования, в которых для зашифровывания и расшифровывания используется один и тот же ключ, или ключ расшифровывания легко вычисляется из ключа зашифровывания и наоборот.
Симметричное шифрование бывает двух видов: блочное и потоковое. Блочное шифрование - в этом случае информация разбивается на блоки фиксированной длины (например, 64 или 128 битов), после чего эти блоки поочередно шифруются. Причем в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или «со сцеплением» - когда результат зашифровывания текущего блока данных зависит от значения предыдущего блока или результата зашифровывания предыдущего блока.
Потоковое шифрование - необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда - либо, не дожидаясь остальных данных, достаточных для формирования блока.
К алгоритмам блочного симметричного шифрования относится и алгоритм ГОСТ 28147-89.
Алгоритм ГОСТ 28147-89 является обязательным для применения в качестве алгоритма шифрования в государственных организациях РФ и ряде коммерческих.
Данный алгоритм основан на т. н. Сети Фейстеля, которая подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некой функцией и накладывается на один или несколько остальных субблоков.
Алгоритм ГОСТ 28147-89 имеет 4 режима работы:
Архангельский А.Я. C++ Builder 6. Справочное пособие. Книга 1. Язык C++ [электронный ресурс]/ А.Я. Архангельский. М. : Бином-Пресс, 2012г. 544с.
Динман М.И. С++. Освой на примерах [электронный ресурс]/ М.И. Динман. СПб.: БХВ-Петербург, 2010г. 384с.
Шилдт Г. Самоучитель С++: Пер. с англ. - 3-е изд./ Г. Шилдт. СПб. : БХВ-Петербург, 2009г. 688с.
Павловская Т. А. C/C++. Программирование на языке высокого уровня Т.А. Павловская. СПб. : Питер, 2008г. 461с.
Панасенко С.П. Алгоритмы шифрования. Специальный справочник С.П. Панасенко. СПб. : БХВ-Петербург, 2012г. 576с.
Блок-схема подпрограммы Kode(String, String, int)
Блок-схема подпрограммы deKode(String, String, int)
Исследование системы распределения ключей на основе линейных преобразований. Описание компонентов сети конфиденциальной связи. Характеристика отечественного алгоритма шифрования данных. Обзор результатов расчетов криптостойкости алгоритма шифрования. контрольная работа [56,5 K], добавлен 26.09.2012
Функциональное и эксплуатационное назначение изделия, методологические ограничения. Требования к составу и параметрам технических средств. Описание алгоритма, входные и выходные данные. Стадии и этапы разработки, технико-экономическое обоснование. курсовая работа [564,4 K], добавлен 18.01.2014
Алгоритм ГОСТ 28147-89 симметричного шифрования на основе сети Фейстеля, основные режимы его работы. Атаки на системы защиты информации. Метод грубой силы. Атаки класса "встреча посередине". Характеристики ГОСТ 28147-89 и американского шифра Rijndael. курсовая работа [510,7 K], добавлен 17.01.2012
Методы шифрования данных. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования. Визуальное представление, схема приемника и передатчика. Расшифровывание зашифрованных данных в режиме гаммирования. Стойкость и возможности обхождения шифра. реферат [823,8 K], добавлен 26.12.2011
Анализ использования разработки, обзор средств программирования и описание языков. Требования к составу и параметрам технических средств. Построение алгоритма и требования к его функциональности. Описание рабочего места на вычислительном центре. дипломная работа [2,6 M], добавлен 19.06.2017
Функциональное и эксплуатационное назначение генератора. Требования к составу и параметрам технических средств. Информационная и программная совместимость. Результирующие компоненты изделия. Безопасность и секретность. Удобства эксплуатации, мобильность. курсовая работа [2,1 M], добавлен 07.03.2013
Функциональное и эксплуатационное назначение изделия. Перечень требований пользователя к программному изделию. Программные ограничения, совместимость. Требования к параметрам технических средств. Безопасность и секретность, требования к надежности. курсовая работа [574,6 K], добавлен 27.04.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Реализация криптографического алгоритма "ГОСТ 28147-89" в режиме гаммирования курсовая работа. Программирование, компьютеры и кибернетика.
Реферат На Тему Загальна Характеристика Права Користування Рослинним Світом України
Реферат: "Фауст" Гете. Скачать бесплатно и без регистрации
Курсовая работа: Вопросы уголовной ответственности медицинских работников
Контрольная работа: Стандартизация, виды стандартизации
Дипломная работа по теме Автоматизация закупочной деятельности компании
Физического Воспитания Диссертация
Сочинение По Заданному Тексту
Курсовая работа по теме Правила биржевой торговли
Сочинение: Противопоставление истинного и ложного патриотизма в романе "Война и мир"
Реферат Общество И Природа
Курсовая работа по теме Анализ современных методов нейтрализации стрессов в организации
Контрольная работа по теме Механизм осуществления политической власти
Контрольная работа по теме Предмет правовая информатика
Описание Березы Сочинение
Сочинение Про Обществознание 6 Класс
Курсовая работа: Анализ структуры и выработка мероприятий по усовершенствованию профессионально-квалификационной структуры предприятия
Сайт Для Создания Рефератов
Курсовая работа по теме Изменения в повседневной жизни советского человека, произошедшие в период перестройки
Доклад по теме Анализ определения конституционного суда РФ № 187-О-О по жалобе на нарушение законом конституционных прав и свобод
Реферат по теме Історія виникнення рушника
Анализ деятельности ООО "Приморье" Мелекесского района Ульяновской области - Менеджмент и трудовые отношения дипломная работа
Конструкторская деятельность А.Н. Туполева - История и исторические личности реферат
Общие принципы стратегического менеджмента - Менеджмент и трудовые отношения реферат