Шифрование файла с произвольным текстом

Описание алгоритма шифрования и дешифрования. Разработка последовательности функционирования программы. Извлечение данных из индексированного массива. Кодирование программы в среде программирования Borland C++ Builder 6.0. Руководство для пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 04.06.2013
Размер файла 61,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Московский Авиационный Институт (государственный технический университет) филиал «Восход»

Кафедра ВТ

Отчет по курсовой работе

Методы и средства защиты компьютерной информации

Шифрование файла с произвольным текстом

Студент гр. ДВМ5-57
Борисов А.Ж.
Байконур 2008 г.
Содержание
шифрование кодирование программирование пользователь
Введение
1. Описание алгоритма шифрования и дешифрования
2. Разработка алгоритма функционирования программы
3. Реализация алгоритма
4. Руководство пользователю
5. Руководство программисту
Заключение
Список литературы
Введение
В курсовой работе требуется разработать программу шифрования и дешифрования по алгоритму Blowfish. К программе предъявляются следующие требования:
- входными данными является файл с произвольным текстом;
- осуществить хранение ключа в отдельном файле;
- осуществить возможность шифрования/дешифрования текста файла.
В ходе выполнения курсового проекта следует разработать алгоритм работы транслятора. Затем необходимо реализовать данный программный продукт в среде программирования Borland C++ Builder 6.0. Следующий этап заключается в написании руководства пользователю и программисту.
1. Описание алгоритма шифрования и дешифрования
Blowfish представляет собой 64-битовый блочный шифр с ключом переменной длины. Алгоритм состоит из двух частей: развертывание ключа и шифрование данных. Развертывание ключа преобразует ключ длиной до 448 битов в несколько массивов подключей, общим объемом 4168 байтов.
Шифрование данных состоит из простой функции, последовательно выполняемой 16 раз. Каждый этап состоит из зависимой от ключа перестановки и зависимой от ключа и данных подстановки. Используются только сложения и XOR 32-битовых слов. Единственными дополнительными операциями на каждом этапе являются четыре извлечения данных из индексированного массива.
В Blowfish используется много подключей. Эти подключи должны быть рассчитаны до начала шифрования или дешифрирования данных.
P-массив состоит из 18 32-битовых подключей:
P1, P2, . . ., P18
Каждый из четырех 32-битовых S-блоков содержит 256 элементов:
S1,0, S1,1, . . ., S1,255
S2,0, S2,1, . . ., S2,255
S3,0, S3,1, . . ., S3,255
S4,0, S4,1, . . ., S4,255
Blowfish является сетью Фейстела, состоящей из 16 этапов. На вход подается 64-битовый элемент данных x. Для шифрования:
Разбейте x на две 32-битовых половины: xL, xR
Для i = 1 по 16:
xL = xLP18
xR = F(xL) xR
Переставить xL и xR (кроме последнего этапа.)
xR = xR P17
xL = xLP18
Объединить xL иxR
Рисунок 1. Алгоритм Blowfish
Рисунок 2. Функция F
Функция F представляет собой следующее:
Разделить xL на четыре 8-битовых части: a, b, c и d
F(xL) = ((S1,a + S2,b mod 232) S3,c)+ S4,d mod 232
Дешифрирование выполняется точно также, как и шифрование, но P1, P2, . . ., P18 используются в обратном порядке.
В реализациях Blowfish, для которых требуется очень большая скорость, цикл должен быть развернут, а все ключи должны храниться в кэше.
Подключи рассчитываются с помощью специального алгоритма. Вот какова точная последовательность действий.
1. Сначала P-массив, а затем четыре S-блока по порядку инициализируются фиксированной строкой. Эта строка состоит из шестнадцатиричных цифр р.
2. Выполняется XOR P1 с первыми 32 битами ключа, XOR P2 со вторыми 32 битами ключа, и так далее для всех битов ключа (до P18). Используется циклически, пока для всего P-массива не будет выполнена операция XOR с битами ключа.
3. Используя подключи, полученные на этапах (1) и (2), алгоритмом Blowfish шифруется строка из одних нулей.
4. P1 и P2 заменяются результатом этапа (3).
5. Результат этапа (3) шифруется с помощью алгоритма Blowfish и измененных подключей.
6. P3 и P4 заменяются результатом этапа (5).
7. Далее в ходе процесса все элементы P-массива и затем по порядку все четыре S-блока заменяются выходом постоянно меняющегося алгоритма Blowfish.
Всего для генерации всех необходимых подключей требуется 521 итерация. Приложения могут сохранять подключи - нет необходимости выполнять процесс их получения многократно.
2. Разработка алгоритма функционирования программы
На основе анализа задачи составлен алгоритм.
Работа алгоритма начинается с запуска программы. Если выбран пункт меню «открыть», то запускается процедура открытия файла иначе происходит ввод текста вручную. Затем если выбран пункт меню «шифрация» запускается процедура шифрации. Если выбран пункт меню «шифрация» запускается процедура дешифрации. Затем если выбран пункт меню «сохранить» результаты сохраняются в файл. Далее если нажата кнопка «выход» происходит выход из программы.
3. Реализация алгоритма
На основе приведенного алгоритма осуществляется кодирование программы в среде программирования Borland C++ Builder 6.0.
При реализации используются следующие процедуры:
- процедура N2Click - осуществляет загрузку исходного текста из файла *.txt;
- процедура blf_enc - осуществляет шифрацию исходного текста;
- процедура blf_dec - осуществляет дешифрацию исходного текста;
- процедура N3Click - осуществляет запись получены результатов в исполняемый файл;
- процедура N4Click - осуществляет выход из приложения.
4. Руководство пользователю

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

Выбрав пункт меню «Файл-Открыть» пользователю предлагается диалоговое окно для выбора файла для шифрования (дешифрования). При нажатии на кнопку «открыть» диалогового окна, содержимое исходного файла отобразится в левом поле. Далее пользователь может ввести ключ в главном окне программы, и затем выбрать пункт меню «Действие-Шифрация» либо «Действие-Дешифрация». Результаты работы отобразятся в правом поле главного окна программы.

Пользователь может сохранить результаты работы программы выбрав пункт меню «Файл-Сохранить как…», при этом отобразится диалоговое окно с выбором пути сохранения файла.

Выход из программы осуществляется с помощью команды «Файл-Выход».

5. Руководство программисту

Программа написана на языке высокого уровня C++, которая работает под ОС Windows (версия 2000).

Минимальные требования к периферийным устройствам: персональный компьютер Pentium 3, свободная память на жестком диске 1 Гбайт, на ПК должна быть установлена ОС Windows 2000 и программа Borland C+ Builder версии не ниже 6,0.

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

Программа BlowFish.exe занимает 37 Кбайт.

Заключение

В процессе выполнения курсовой работы требовалось разработать программное обеспечение, реализующее шифрование сообщений на основе алгоритма Blowfish. При этом разработанный программный продукт должен обеспечивать реализацию схемы шифрования сообщений компьютеров, работающими под управлением ОС Windows 2000, Windows XP.

В результате выполнения курсовой работы разработан алгоритм работы программного обеспечения (ПО), выполнено кодирование ПО, а также написано руководство пользователю и программисту.

Список литературы

1. Конспект лекций по дисциплине “Методы и средства защиты компьютерной информации”.

2. Хореев П.Б. Методы и средства защиты информации в компьютерных системах: Учеб. пособие для студ. высш. учеб. заведений. - М.: Издательский центр «Академия», 2005. - 256 с.

3. Щербаков Л.Ю., Домашев А. В. Прикладная криптография. Использование и синтез криптографических интерфейсов. - М: Издательско-торговый дом «Русская Редакция», 2003. - 416 с.: ил.

Размещено на Allbest.ru


Подобные документы

  • Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.

    курсовая работа [24,7 K], добавлен 20.10.2014

  • Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

    курсовая работа [812,6 K], добавлен 27.03.2012

  • Разработка программы, позволяющей реализовать шифрование и дешифрование текстового файла методом замены и методом перестановки. Требования к функциональным характеристикам, надежности, составу и параметрам технических средств ПО. Интерфейс пользователя.

    курсовая работа [19,0 K], добавлен 30.04.2011

  • Проблема скрытия и защиты информации от несанкционированного использования. История создания шифра. Решения задачи шифрования текста и кодирования данных. Тестирование полученного приложения и анализ работы программы с точки зрения пользователя.

    курсовая работа [3,0 M], добавлен 24.11.2013

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Создание приложения для шифрования–дешифрования текста тремя алгоритмами (алгоритм "Цезаря","Модифицированного Цезаря", "Скитала"). Исходный текст компонента. Инструкция пользователя, возможность просмотра примерного алгоритма. Исходный текст программы.

    курсовая работа [2,8 M], добавлен 27.02.2015

  • Разработка программного продукта (лабиринт с входом и выходом, состоящий из комнат) в среде разработки Borland C++ Builder 6. Требования пользователя к программному изделию. Программные ограничения, совместимость. Основные процессы разработки программы.

    курсовая работа [819,9 K], добавлен 14.01.2013

  • Разработка приложения "Ведомость начисления заработной платы" в среде программирования C++Builder. Алгоритм и сценарий работы программы. Проектирование интерфейса пользователя. Написание программных модулей и результаты тестирования данной программы.

    курсовая работа [597,4 K], добавлен 31.01.2016

  • История появления и развития шифрования текста. Проблема шифрования и дешифрования текстовых сообщений в современности. Создание программы для зашифровки и расшифровки вводимого текста пятью методами: Атбаш, Цезаря, Полибия, Гронсфельда и Винжера.

    курсовая работа [923,6 K], добавлен 26.12.2011

  • Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.

    курсовая работа [1,4 M], добавлен 04.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.