Автор: Пользователь скрыл имя, 15 Декабря 2010 в 01:27, курсовая работа
Предмет исследования – криптографический алгоритм Blowfish. Цель работы – разработка программного продукта обеспечивающего шифрование/расшифрование данных по алгоритму Blowfish. Алгоритм Blowfish — блочный шифр, основанный на сети Файстеля. Алгоритм прост в реализации, он является стойким ко всем, известнымна сегодняшний день, методам криптоанализа.
Введение 4
1 Понятие шифрования данных 7
2 Описание алгоритма blowfish 11
2.1 Структура алгоритма 11
2.2 Процедура расширения ключа 13
2.3 Достоинства и недостатки алгоритма 14
3 Практическая реализация алгоритма blowfish 16
4 Описани работы с программным продуктом 21
4.1 Минимальные требования для работы программного продукта 21
4.2 Шифрование данных 21
4.3 Расшифрование данных 23
4.4 Генерация пароля 25
Заключение 26
Список использованных источников 27
Приложение 1. Содержимое заголовочного файла 28
Приложение 2. Содержимое основного файла 29
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ТАМБОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ Г.Р. ДЕРЖАВИНА
КАФЕДРА
ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
УДК
004.056.55
Козиков
Антон Юрьевич
ШИФРОВАНИЕ
ДАННЫХ. АЛГОРИТМ BLOWFISH
Курсовая работа
по курсу
«Программирование на С++»
Студент 4 курса (48 группы)
дневного
отделения.
Научный руководитель:
к.ф.м.н.
Зуев М.С.
Тамбов
– 2010
РЕФЕРАТ
Козиков А.Ю. Шифрование данных. Алгоритм Blowfish: курсовая работа / Козиков Антон Юрьевич; Тамб. гос. ун-т им. Г.Р. Державина: Каф. информатики и информационных технологий; Науч. рук: к.м.н., доцент Зуев М.С. – Тамбов 2010.
Ключевые слова: сеть Файстеля, криптографический алгоритм, шифрование, расшифрования, блочные алгоритмы.
Предмет исследования – криптографический алгоритм Blowfish. Цель работы – разработка программного продукта обеспечивающего шифрование/расшифрование данных по алгоритму Blowfish. Алгоритм Blowfish — блочный шифр, основанный на сети Файстеля. Алгоритм прост в реализации, он является стойким ко всем, известным на сегодняшний день, методам криптоанализа.
СОДЕРЖАНИЕ
Введение 4
1 Понятие шифрования данных 7
2 Описание алгоритма blowfish 11
2.1 Структура алгоритма 11
2.2 Процедура расширения ключа 13
2.3 Достоинства и недостатки алгоритма 14
3 Практическая реализация алгоритма blowfish 16
4 Описани работы с программным продуктом 21
4.1 Минимальные требования для работы программного продукта 21
4.2 Шифрование данных 21
4.3 Расшифрование данных 23
4.4 Генерация пароля 25
Заключение 26
Список использованных источников 27
Приложение 1. Содержимое заголовочного файла 28
Приложение 2. Содержимое основного файла 29
Задача защиты информации от несанкционированного доступа решалась во все времена на протяжении почти всей истории человечества. Уже в древнем мире выделилось два основных направления решения этой задачи, существующие и по сегодняшний день: криптография и стеганография. Целью криптографии является скрытие содержимого сообщений за счет их шифрования [6].
Изначально письмо само по себе было криптографической системой, поскольку в древних обществах подобным знанием обладали лишь избранные. Священные манускрипты различных древних государств тому примеры.
С тех пор как письменность стала широко распространенной, криптография становиться вполне самостоятельной наукой. Первые криптографические системы можно встретить уже в начале нашей эпохи. Например, Юлий Цезарь в своей личной переписке пользовался более-менее систематическим шифр, который впоследствии был назван его именем.
Серьёзное развитие шифровальные системы получили в эпоху первой и второй мировых войн. Начиная с раннего, послевоенного времени и по сей момент появление современных вычислительных аппаратов ускорило создание и усовершенствование криптографических методов. Пробуждение и развитие криптографии связано с зарождением электросвязи. В XX столетии секретные службы большинства развитых стран стали относится к этой дисциплине как к обязательному инструменту своей деятельности.
То же самое касается и разработки криптографических алгоритмов — известно множество алгоритмов шифрования, и далеко не все из них разработаны «в недрах спецслужб» или научными институтами — встречаются весьма удачные и широко используемые алгоритмы, разработанные частными лицами. [9]
Вслед
за массовым применением современных
информационных технологий криптография
вторгается в жизнь современного
человека. На криптографических методах
основано применение электронных платежей,
возможность передачи секретной
информации по открытым сетям связи,
а также решение большого числа
других задач защиты информации в
компьютерных системах и информационных
сетях. Потребности практики привели
к необходимости массового
Вопрос использования шифровальных методов в вычислительных системах стал в наше время особенно актуальным.
Во-первых, расширилась сфера применения компьютерных сетей, таких как World Wide Web, с помощью которых передаются огромные объемы информации государственного, военного, коммерческого и личного характера, не дающего возможности доступа к ней сторонних лиц.
Во-вторых,
появление современных
Целью написания курсовой работы является реализация криптографического алгоритма Blowfish на языке программирования С++ и разработка программного продукта, который будет шифровать/расшифровывать данные по реализованному алгоритму.
Для достижения поставленной цели необходимо будет решить следующие задачи:
Практическая значимость: поскольку вопрос защиты информации остается актуальный и по сегодняшней день, то реализованный алгоритм шифрования данных, в рамках данной курсовой работы, и разработанный программный продукт, реализующий шифрование данных по этому алгоритму, найдут свое применение в коммерческих организациях, поскольку именно там наиболее остро стоит вопрос об обеспечении безопасности информации.
Криптография – наука о защите информации от прочтения ее посторонними. Защита достигается путем шифрованием, т.е. преобразованием, делая труднораскрываемым по входным данным, без знания защищенных входных данных специальной ключевой информации – ключа. Под ключом понимается легко изменяемая часть криптосистемы, шифрованное преобразование, хранящаяся в тайне и определяющая возможные случаи. Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними. Криптографическими средствами защиты информации называются специальные методы и средства преобразования информации в результате, которых маскируется ее содержание. Желательно, чтобы методы шифрования обладали минимум двумя свойствами:
Для многих людей слово «шифрование» вызывает образы шпионов, тайных операций и дешифровщиков, которые лихорадочно работают над расшифровкой вражеских сообщений. Собственно, шифрование - бесценный инструмент для безопасного хранения конфиденциальной информации.
К сожалению, многие предприятия не пользуются преимуществами технологий шифрования, опасаясь, что это слишком сложно. На самом деле, шифрование особо ценных данных не намного сложнее, чем запуск антивирусного сканера или резервного копирования данных.
Существуют два основных метода шифрования данных. Один подход заключается в использовании асимметричного PKI (Public-Key Infrastructure) шифрования. PKI криптография основана на паре криптографических ключей: один ключ является частным, и известен только конечным пользователям, в то время как другой - публичный, и может быть доступен всем.
PKI
технология обеспечивает
Другой метод шифрования данных - использование симметричного ключа защиты, более известного как «секретный ключ». В общем случае, он быстрее, но он менее безопасный, чем PKI. Симметричные алгоритмы шифрования используют один и тот же ключ для шифрования и расшифровки сообщений. Симметричные алгоритмы работают лучше, когда ключи распределены среди ограниченного числа доверенных лиц. Поэтому, симметричное шифрования может быть достаточно легко нарушено и используется для сохранения относительно неважной информации только в течении короткого периода времени [10].
Все
алгоритмы симметричного
Алгоритмы
потокового шифрования используют генератор
псевдослучайной