Курсовая работа (т): Разработка прикладной программы для криптографической обработки данных шифром Цезаря (язык программирования C++)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Разработка прикладной программы для криптографической обработки данных шифром Цезаря (язык программирования C++)

МИНОБРНАУКИ РОССИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра ИНФОРМАЦИОННЫЕ СИСТЕМЫ

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту (работе)

На тему Разработка прикладной программы для криптографической обработки данных шифром Цезаря (язык программирования C++)

Специальность 080801 «Прикладная информатика в экономике»

Автор курсового проекта (работы) Кулевая Е.М.

Руководитель проекта (работы) Алексеев В.В.
Тверь 2014г.

Введение

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

В те времена было лишь три основных способа защиты информации. Один из них предполагал защиту ее чисто физическими методами: охрана документа - носителя информации - физическими лицами, передача его специальным курьером и т.д. Второй способ получил название "стеганография" (латино-греческое сочетание слов, означающих в совокупности "тайнопись). Его принцы был в скрытии самого факта наличия информации. В этом случае использовались так называемые симпатические чернила. При соответствующем "проявлении" бумаги, текст становится видимым. Один из примеров сокрытия информации приведен в письменах древнегреческого историка Геродота. На голове раба, которая брилась наголо, записывалось нужная информация, и когда волосы его становились достаточно длинными, раба отправляли к получателю, который заново брил его голову и читал полученное сообщение. И ещё один способ защиты информации заключался в переделывании смыслового текста в некий набор хаотических знаков (или букв алфавита). Адресат этого сообщения имел возможность преобразовать его в то же самое смысловое сообщение, если обладал ключом к его построению. Этот способ охраны информации назывался криптографическим.

Криптография - слово греческое и в переводе означает "тайнопись. По утверждению многих специалистов, криптография по возрасту - современник египетских пирамид. В документах древних стран - Индии, Египта, Месопотамии - есть сведения о системах и способах составления шифрованных писем. Более подробные и достоверные сведения о шифрах относятся к Древней Греции. Главное понятие криптографии - шифр (от арабского "цифра"; арабы первыми стали заменять буквы на цифры с целью защиты исходного текста). Тайный элемент шифра, недоступный посторонним, называется ключом шифра. Как правило, в древние времена использовались так называемые шифры замены и шифры перестановки. Историческим примером шифра замены является шифр Цезаря (1 век до н.э.), описанный Римским историком Светонием. Гай Юлий Цезарь пользовался в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Переписывался алфавит: А, Б, В, Г, Д, Е, ...,; затем под ним переписывался такой же алфавит, но со смещением на 3 буквы влево.

Таким образом, можно утверждать, что основы криптологии были заложены давно в древности и, естественно, после многолетнего существования нашли широчайшее применение в современной жизни.

Актуальность данного курсового проекта заключается в том, что и в настоящее время шифр Цезаря широко применяется на практике, для обучения основам криптографии и получения навыков шифрования и дешифрования небольших текстов. Для военных и государственных нужд данный шифр не применяется, из-за низкой криптографической стойкости.

В рамках данного курсового проекта поставлена задача написать программу, которая позволяет зашифровывать и расшифровывать с помощью шифра Цезаря сообщение, написанное на русском языке. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу. Для решения задачи использован язык программирования C++.

1. Аналитическая часть

.1 Понятие информационной безопасности

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

Современная информационная безопасность поддерживает три базовых принципа, которые должны быть обеспечены:

§ Целостность данных - способность системы противостоять попыткам умышленного, либо непредумышленного искажения или разрушения информации.

§  Конфиденциальность - свойство информации, предопределяющее доступ к информации лицам, у которых нет на это разрешения.

§  Доступность - информация доступна лицам, которым она разрешена, 24 часа в сутки, 7 дней в неделю.

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

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

§ Нарушение (или опасность нарушения физической целостности).

§  Несанкционированная модификация информации (или угроза такой модификации).

§  Несанкционированное получение информации (или угроза такого получения).

§  Несанкционированное размножение информации (или угроза такого размножения).

Современные угрозы можно разделить на три класса:

§ Физические угрозы.

§  Аппаратные угрозы.

§  Программные угрозы.

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

Основной схемой классификации всех криптоалгоритмов является следующая:

§ Тайнопись. Отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования.

§  Криптография с ключом. Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра - «ключа», которым обладает только отправитель и получатель.

§  Симметричные криптоалгоритмы. Для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ).

§  Асимметричные криптоалгоритмы. Алгоритм таков, что для зашифровки сообщения используется один («открытый») ключ, известный всем желающим, а для расшифровки - другой («закрытый»), существующий только у получателя.

В зависимости от характера воздействия, производимых над данными, алгоритмы подразделяются на:

§ Перестановочные. Блоки информации (байты, биты, более крупные единицы) не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю.

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

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

Уменьшение объёма закодированного файла возможно только при наличии встроенного алгоритма архивации в криптосистеме и при условии сжимаемости информации (так, например, архивы, музыкальные файлы формата МР3, видеоизображения формата JPEG сжиматься более чем на 2-4% не будут).

В зависимости от размера блока информации криптоалгоритмы делятся на:

§ Потоковые шифры. Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространёнными представителями поточных шифров является скремблеры.

§  Блочные шифры. Единицей кодирования является блок из нескольких байтов (в настоящее время 4-32). результат кодирования зависит от всех исходных байтов эого блока. Схема применяется при пакетной передаче информации и кодирования файлов.

Современные алгоритмы шифровки/дешифровки достаточно сложны и их невозможно проводить вручную. Настоящие криптографические алгоритмы разработаны для использования компьютерами или специальными аппаратными устройствами. В большинстве приложений криптография производится программным обеспечением и имеется множество доступных криптографических пакетов.

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

Многие качественные криптографические алгоритмы доступны широко в интернете. К широко известным симметричным алгоритмам относятся DES и IDEA, наверное, самым лучшим асимметричным алгоритмом является RSA.

.2 История развития криптографии

Имеются свидетельства, что криптография как техника защиты текста возникла вместе с письменностью, и способы тайного письма были известны уже древним цивилизациям Индии, Египта и Месопотамии. В древнеиндийских текстах среди 64-х искусств названы способы изменения текста, некоторые из них можно отнести к криптографическим. Автор таблички с рецептом для изготовления глазури для гончарных изделий из Месопотамии использовал редкие обозначения, пропускал буквы, а имена заменял на цифры, чтобы скрыть написанное. В дальнейшем встречаются различные упоминания об использовании криптографии, большая часть относится к использованию в военном деле.

Криптография - это одна из старейших наук, ее история насчитывает несколько тысяч лет, наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.

Изначально криптография изучала методы шифрования информации - обратимого преобразования открытого (исходного) текста на основе секретного алгоритма или ключа в шифрованный текст (шифротекст). Традиционная криптография образует раздел симметричных криптосистем, в которых зашифрование и расшифрование проводится с использованием одного и того же секретного ключа. Помимо этого раздела современная криптография включает в себя системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации.

История криптографии насчитывает около 4 тысяч лет. В качестве основного критерия периодизации криптографии, возможно, использовать технологические характеристики используемых методов шифрования.

Первый период (приблизительно с 3-го тысячелетия до н. э.) характеризуется господством моноалфавитных шифров (основной принцип - замена алфавита исходного текста другим алфавитом через замену букв другими буквами или символами).

Второй период (хронологические рамки - с IX века на Ближнем Востоке и с XV века в Европе - до начала XX века) ознаменовался введением в обиход полиалфавитных шифров.

Третий период (с начала и до середины XX века) характеризуется внедрением электромеханических устройств в работу шифровальщиков. При этом продолжалось использование полиалфавитных шифров.

Четвертый период (с середины до 70-х годов XX века), период перехода к математической криптографии. Появляются строгие математические определения количества информации, передачи данных, энтропии, функций шифрования. До 1975 года криптография оставалась «классической», или же, более корректно, криптографией с секретным ключом.

Современный период развития криптографии (с конца 1970-х годов по настоящее время) отличается зарождением и развитием нового направления - криптография с открытым ключом. Её появление знаменуется не только новыми техническими возможностями, но и сравнительно широким распространением криптографии для использования частными лицами (в предыдущие эпохи использование криптографии было исключительной прерогативой государства). Правовое регулирование использования криптографии частными лицами в разных странах сильно различается - от разрешения до полного запрета.

Современная криптография образует отдельное научное направление на стыке математики и информатики - работы в этой области публикуются в научных журналах, организуются регулярные конференции. Практическое применение криптографии стало неотъемлемой частью жизни современного общества - её используют в таких отраслях как электронная коммерция, электронный документооборот (включая цифровые подписи), телекоммуникации и других.

Также развиваются принципиально новые направления. На стыке квантовой физики и математики развиваются квантовые вычисления и квантовая криптография. Хотя квантовые компьютеры лишь дело будущего, уже сейчас предложены алгоритмы для взлома существующих «надёжных» систем. С другой стороны, используя квантовые эффекты, возможно построить и принципиально новые способы надёжной передачи информации. Активные исследования в этой области идут с конца 1980-х годов.

В современном мире криптография находит множество различных применений. Кроме очевидных - собственно, для передачи информации, она используется в сотовой связи, платном цифровом телевидении при подключении к Wi-Fi и на транспорте для защиты билетов от подделок, и в банковских операциях, и даже для защиты электронной почты от спама.

.3 Обзор современных криптографических алгоритмов

. Алгоритм DES:- название Федерального Стандарта Обработки информации, который описывает алгоритм шифрования данных (Data Encryption Algorithm DEA). В терминах ANSI DEA определен как стандарт X9.32.DEA - развитие алгоритма Lucifer, который был разработан в начале 1970-х годов компанией IBM; на заключительных стадиях разработки активное участие принимало NSA и NBS. С момента опубликования DEA (более известный как DES), широко изучался и известен как один из лучших симметричных алгоритмов.

Схема алгоритма, где:исходный текст (блок 64 бита)зашифрованный блок64-х разрядный ключ

числа разрядность на данной ветке алгоритма, Pk перестановкиподстановка 6 бит -> 4 бита(i) сдвиг (i - номер итерации)сложение по модулю 2

конкатенация битовых строк, причем верхняя - спереди

разбиение строки на две, причем первая - наверху

ограниченный точками участок повторяется 16 раз.

Перестановки выполняются по обычной формуле

[i]=S[P[i]]

S - подстановка 6->4. В соответствие шести битам ставится четыре. Подстановка производится по следующему правилу: пусть исходная битовая строка - /abcdef/, тогда /af/ - номер строки, а /bcde/ - номер столбца. Строка и столбец определяют местонахождение результата в S-таблице. Например, при использовании таблицы S6, число 58 (111010) переводится в 13 (1101).

Помимо обычного его применения, этот алгоритм можно использовать для создания «односторонних» функций. Для этого ключ и исходный текст меняются местами: в формуле Crypt=DES(Text,Key) исходный текст может быть несекретным и фиксированным. А Crypt рассматривается как функция ключа - Key.оперирует блоками 64-битного размера и использует 56-битный ключ (8 четных битов полного 64-битного ключа не используются). DEA - симметричная криптосистема, определенная как 16-раундовый шифр Фейстеля была первоначально предназначена для аппаратной реализации. Когда DEA используется для передачи информации, то чтобы зашифровать и расшифровать сообщение или чтобы создать и проверить код подлинности сообщения (MAC) отправитель и получатель должны знать секретный ключ. DEA может также использоваться одним пользователем, например, для шифрования файлов на жестком диске. В многопользовательской среде организовать защищенное распределение ключа сложно; идеальное решение этой проблемы предлагает криптография общего ключа.

Источник: https://www.bibliofond.ru/detail.aspx?id=784412