">
Информатика Программирование
Информация о работе

Тема: Криптографическая защита текстовой информации

Описание: Основные понятия и термины. Цели и проблемы, типы шифрования: симметричное, подстановочные, шифр Цезаря. Машина Энигма. Шифр перестановки. Шифрование с открытым ключом. Алгоритм RS. Криптографические методы защиты информации. Программа популярных алгоритмов шифрования.
Предмет: Информатика.
Дисциплина: Программирование.
Тип: Курсовая работа
Дата: 15.08.2012 г.
Язык: Русский
Скачиваний: 95
Поднять уникальность

Похожие работы:

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Смоленский государственный университет»

Факультет экономики и управления

Кафедра математики и информатики

Курсовая работа

Криптографическая защита текстовой информации

Смоленск 2012

Оглавление

Введение3

Глава1.Теоретическая часть5

1.1 Основные понятия и термины5

1.2 Цели и проблемы шифрования7

1.3 Типы шифрования8

1.3.1 Симметричное шифрование9

1.3.1.1 Подстановочные шифры10

1.3.1.1.1 Шифр Цезаря10

1.3.1.1.2 Шифровальная машина «Энигма»12

1.3.1.2 Шифр перестановки14

1.3.2 Шифрование с открытым ключом16

1.3.2.1 Алгоритм RSA18

Глава 2. Практическая часть20

2.1 Структура программы:20

2.2 Алгоритм работы программы24

2.3 Алгоритм Цезаря.26

2.4 Алгоритм «Штакетник».27

2.5 Алгоритм RSA.28

Заключение31

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

Введение

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

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

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

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

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

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

В связи с этим целями курсовой работы являются:

изучить понятия, относящиеся к области криптографии;

ознакомиться с историей криптографии, целями и задачами, возлагаемыми на нее;

изучить популярные способы шифрования;

реализовать на практике по одному алгоритму для каждого способа шифрования;

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

Глава1.Теоретическая часть

1.1 Основные понятия и термины

Проблемой защиты информации путем ее преобразования занимается криптология (kryptos — тайный, logos — наука). Криптология разделяется на два направления — криптографию и криптоанализ. Цели этих направлений прямо противоположны.

Сфера интересов криптоанализа — исследование возможности расшифровывания информации без знания ключей.

Разработкой методов преобразования (шифрования) информации с целью ее защиты от незаконных пользователей занимается криптография.  Такие методы и способы преобразования информации называются шифрами.

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

Под ключом в криптографии понимают сменный элемент шифра, который применяется для шифрования конкретного сообщения.

Алфавит – конечное множество используемых для кодирования информации знаков.

Текст - упорядоченный набор из элементов алфавита.

Вскрытие (взламывание) шифра ? процесс получения защищаемой информации из шифрованного сообщения без знания примененного шифра.

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

Под атакой на шифр понимают попытку вскрытия этого шифра.

Криптографическая система представляет собой семейство T преобразований открытого текста. Члены этого семейства индексируются, или обозначаются символом k; параметр k является ключом. Пространство ключей K – это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита.

Криптосистемы разделяются на симметричные и с открытым ключом.

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

Моно- и многоалфавитные подстановки ? это вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей. Многоалфавитная подстановка определяется ключом p=(p1, p2, …), содержащим не менее двух различных подстановок.

Шифр замены осуществляет преобразование замены букв или других «частей» открытого текста на аналогичные «части» шифрованного текста.

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

Наложение ? это обычно позначное (побуквенное) сложение или вычитание по тому или иному модулю.

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

Шифрмашина (шифровальное устройство) ? машина, реализующая какой-либо алгоритм шифрования

1.2 Цели и проблемы шифрования

Шифрование направлено на достижение пяти основных целей:

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

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

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

Защита отправляемых (передаваемых) данных через третьи лица, в том числе по электронной почте или в рамках локальной сети.

Идентификация подлинности (аутентификация) и контроль целостности переданных через третьи лица документов.

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

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

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

1.3 Типы шифрования

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

1.3.1 Симметричное шифрование

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



Рисунок 1 - Шифрование с секретным ключом

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

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

Видами симметричного шифрования являются подстановочные и перестановочные шифры.

1.3.1.1 Подстановочные шифры

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

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

Моноалфавитные (простая подстановка)

Однозвучные (один символ заменяется на несколько возможных)

Полигамный (шифруются блоки символов – биграммы, триграммы…)

Многоалфавинный (используется несколько простых шифров, ключ циклический).

1.3.1.1.1 Шифр Цезаря

Одним из древнейших подстановочных шифров является шифр Цезаря. Этот шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами.

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

Цезарь использовал шифр замены при смещении К = 3. Такой шифр замены можно задать таблицей подстановок, содержащей соответствующие пары букв открытого текста и шифртекста. Наглядно этот процесс можно изобразить следующим образом:



Рисунок 2 - Шифрование методом Цезаря

Рассмотрим теперь математическую модель данного шифра:





Здесь:

X – позиция исходной буквы в алфавите,

K — сдвиг, которым шифруется сообщение;

n — количество букв в алфавите;

Y — положение зашифрованной буквы в алфавите.

Достоинством системы шифрования Цезаря является:

простота шифрования и расшифрования.

К недостаткам системы Цезаря следует отнести:

подстановки, выполняемые в соответствии с системой Цезаря, не маскируют частот появления различных букв исходного открытого текста;

сохраняется алфавитный порядок в последовательности заменяющих букв; при изменении значения К изменяются только начальные позиции такой последовательности;

число возможных ключей К мало;

шифр Цезаря легко вскрывается на основе анализа частот появления букв в шифртексте.

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

1.3.1.1.2 Шифровальная машина «Энигма»

Энигма – шифровальная машина, которую в XX веке использовали спецслужбы многих стран мира. Наибольшую известность получила германская версия машины и е? применение во время Второй Мировой Войны.

Работа по шифрованию в Энигме выполняется роторами и рефлектором.

Ротор – это диск, имеющий с двух сторон контакты (каждый контакт соответствует символу алфавита), контакты с разных сторон попарно соединены в случайном порядке. Таким образом, 1 диск осуществляет простой моноалфавитный шифр подстановки.

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

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

Обычно роторы поворачиваются по следующим правилам:

последний диск поворачивается после каждой буквы,

предпоследний диск поворачивается, когда последний диск совершил полный оборот,

предпредпоследний диск поворачивается, когда предпоследний диск совершил полный оборот, и т.д.,

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

Такое устройство машины придает шифру определенные особенности, а именно:

симметричность. При одинаковом наборе роторов и их одинаковом начальном расположении повторное шифрование даст исходный текст.

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

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

смена алфавитов периодическая, период: T ? PN, где P – число букв в алфавите, N – число роторов. Значение периода зависит также от правил вращения роторов.

В версии Энигмы, которую использовала германская армия, было 3 ротора, таким образом, период повторения алфавитов был порядка 17000 (26х26х26). Эта длина намного превосходит средние длины передаваемых сообщений, поэтому проблемы повторений алфавитов практически не возникало.

Ключом для данного шифра является следующая информация:

используемые роторы (т.е. алфавиты подстановок каждого ротора),

начальное положение роторов,

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

Энигма представляла собой достаточно удобную шифровальную машину: получаемый шифр был достаточно сложен, а сама процедура кодирования/раскодирования была довольно проста. Также неотъемлемым преимуществом шифра Энигмы является высокая скорость кодирования/раскодирования. Кроме того, процедура кодирования очень проста с виду и наглядна.

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

1.3.1.2 Шифр перестановки

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

Широкое распространение получили шифры перестановки, использующие некоторую геометрическую фигуру. Преобразования из этого шифра состоят в том, что в фигуру исходный текст вписывается по ходу одного «маршрута», а затем по ходу другого выписывается с нее. Такой шифр называют маршрутной перестановкой. Например, можно вписывать исходное сообщение в прямоугольную таблицу, выбрав такой маршрут: по горизонтали, начиная с левого верхнего угла поочередно слева направо и справа налево. Выписывать же сообщение будем по другому маршруту: по вертикали, начиная с верхнего правого угла и двигаясь поочередно сверху вниз и снизу вверх.

Один самых простых способов такого шифрования является шифр «Штакетник». Для этого шифра это перестановка букв идёт через один символ, что напоминает забор, отсюда и его название. Рассмотрим пример его применения.

В начале для удобства шифрования текст записывают без пробелов и знаков препинания. Например:  яоченьлюблюмороженое. Затем текст разбивается на две части одинаковой длины. Если число букв нечетное, то добавляется случайная буква. Записывают получившиеся последовательности символов в две строчки – одну выше, а вторую ниже:

я  ч  н  л  б  ю  о  о  е  о    о  е  ь  ю  л  м  р  ж  н  е  

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

ЯЧНЛБЮООЕООЕЬЮЛМРЖНЕ

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

ЯЧНЛБЮООЕО ОЕЬЮЛМРЖНЕ

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

1.3.2 Шифрование с открытым ключом

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

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

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



Рисунок 3 -   Шифрование с открытым ключом

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

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

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

1.3.2.1 Алгоритм RSA

В 1978 г. Рон Ривест, Ади Шамир и Лен Адельман разработали алгоритм шифрования Rivest-Shamir-Adleman (RSA) с открытым ключом. В отличие от алгоритма Диффи-Хеллмана RSA может использоваться для шифрования и дешифрования. Также, в отличие от алгоритма Диффи-Хеллмана, безопасность алгоритма RSA базируется на факторизации больших чисел. Задачу факторизации больших чисел принято считать очень сложной, если числа очень велики (1024 бит или больше).

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

Шифрованный текст = (открытый текст)e mod n

Открытый текст = (шифрованный текст)d mod n

Секретный ключ = {d, n}

Открытый ключ = {e, n}

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

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

Шифрованный текст = (открытый текст)d mod n

Открытый текст = (шифрованный текст)e mod n

Секретный ключ = {d, n}

Открытый ключ = {e, n}

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

При генерировании ключей RSA необходимо соблюдать тщательность. Чтобы сгенерировать ключевую пару RSA, нужно выполнить следующее:

Выбрать два простых числа p и q и держать их в секрете.

Вычислить n = pq.

Вычислить F(n) = (p - 1)(q - 1).

Выбрать такое e, чтобы оно было взаимно простым по отношению к F(n).

Определить такое d, чтобы (d)(e) = 1 mod F(n) и d < F(n).

Число n должно содержать порядка 200 знаков или больше. Тогда оба числа p и q должны иметь длину, по крайней мере, 100 знаков. Ключи для использования на практике должны иметь длину 1024 бит. В случае с секретной информацией рекомендуется использовать ключи длиной 2048 бит и более.