Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Программное средство шифрования данных

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Сравнительный анализ роторной криптосистемы на основании криптографической машины "Энигма" времен второй мировой войны и усовершенствованной "Энигма". Ассиметричная система шифрования и дешифрования данных RSA, ее принципиальное отличие от симметричных.
Краткое сожержание материала:

Размещено на

Размещено на

Постановка задачи по курсовому проекту

В данном курсовом проекте по курсу «Языки программирования» по теме «Программное средство шифрования данных» будут реализованы следующие поставленные задачи:

1. Роторная криптосистема на основании криптографической машины «Энигма» времен второй мировой войны:

1.1. Шифратор произвольного файла

1.2. Дешифратор

2. Криптосистема RSA:

2.1. Шифратор произвольного файла

2.2. Дешифратор.

Обозначения и сокращения

КП - курсовой проект;

КР - курсовая работа;

рис. - рисунок;

см. - смотреть;

лат. - латинский;

сх. - схема;

бл. - блок;

стр. - строка;

п. - пункт;

Введение

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

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

Шифрование -- это способ преобразования информации, применяемый для хранения важной информации в ненадёжных источниках или передачи её по незащищённым каналам связи.

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

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

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

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

В данном курсовом проекте (КП) я рассмотрю роторную криптосистему и алгоритм шифрования RSA, которые представляют собой достаточно эффективные алгоритмы.

Одной из наиболее известных роторных криптосистем является «Энигма» («Загадка»), которая в свое время служила для защиты связи между командованием и подводными лодками немецкой армии в годы второй мировой войны.

А алгоритм RSA был предложен в 1977 году тремя учёными: Роном Ривестом, Ади Шамиром и Леонардом Адлеманом. Собственно, он и получил название от первых букв фамилий своих составителей:

Riverst -> R

Shamir -> S

Adleman ->A.

В свою очередь, роторные криптосистемы являются симметричными, а криптосистема RSA - ассиметричной.

Далее они будут рассмотрены более подробно, включая некоторые модификации криптосистемы «Энигма».

1. Роторные криптосистемы

1.1 «Энигма»

Как уже упоминалось в данном КП криптосистема «Энигма» в свое время служила для защиты связи между командованием и подводными лодками немецкой армии в годы второй мировой войны. А происходило это по следующей схеме:

Рис.1

Тут (см. рис.1) отображена работа криптосистемы «Энигма», где А - это символ исходного текста, а G - символ зашифрованного текста.

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

При нажатии на какую-либо букву на клавиатуре машины, электрический ток подавался на входной контакт первого (правого - см. рис.1) ротора, соответствующий этой букве. Ток проходил через первый ротор и поступал на выходной контакт, соответствующий какой-либо другой букве. Затем ток проходил последовательно через второй (средний - см. рис.1) и третий (левый - см. рис.1) роторы и подавался на неподвижный рефлектор (от лат. reflecto - обращаю назад, отражаю). В конструкции рефлектора 26 контактов разбивались на пары, контакты внутри каждой пары были соединены между собой. Таким образом, рефлектор заменял каждую букву на парную ей. Ток, прошедший через рефлектор, подавался назад, на систему роторов. Он вновь проходил через три ротора, но в обратном порядке. То есть ток тек по тем же проводам, но в другую сторону.

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

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

А одним из ее главных свойств является вращение роторов:

1. Первый ротор после каждого преобразования буквы поворачивался на одну позицию.

2. Второй ротор поворачивался на одну позицию после того, как первый ротор совершал полный оборот, т.е. после26-ти преобразованных букв.

3. Третий ротор поворачивался на одну позицию после того, как второй ротор совершал полный оборот, то есть после 676-ти зашифрованных букв.

Таким образом, можно заметить, что криптосистема «Энигма» использует 263 таблиц подстановки, или после подсчета - 676 таблиц подстановок, что является довольно таки внушительным значением.

1.1.1 Шифрование

Для программной реализации данной криптосистемы предоставлю этапы ее реализации, которые приведены на Сх. 1.

Сх. 1: алгоритм реализации криптосистемы «Энигма».

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

После чего будет формироваться каждый из трех роторов (блок 2 на Сх.1). Наиболее корректно это можно выполнить с помощью генераторов псевдослучайных чисел. Это будет производиться с помощью одного сдвигового регистра с линейной обратной связью LFSR длиной 23 бита (примитивный многочлен P(x) =x23+ x5+ 1).

В программе это можно реализовать, использую сдвиги и логическую операцию исключающего «ИЛИ».

Сх. 2: алгоритм заполнения роторов псевдослучайными значениями.

Самая главная часть криптосистемы «Энигма» при ее программной реализации будет заключаться в бл.5 сх.1. Ее математическая модель будет рассмотрена далее.

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

Для этого, после взятия байта b из поданного на вход файла, будут производиться следующие действия:

1. Проход по роторам до рефлектора (см. Приложение 1, стр.1);

2. Рефлектор (см. Приложение 1, стр.12);

3. Обратный ход (см. Приложение 1, стр.18).

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

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

b = 255-b,

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

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

После выполнения данных трех пунктов, на выходе бл.5 сх.2 будет получен зашифрованный байт исходного текста.

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

Другие файлы:

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

Организация криптозащищенного обмена информацией на основе протокола PGP
Проблема использования криптографических методов в информационных системах. Алгоритмы шифрования – асимметричный и симметричный. Методы, используемые...

Современные алгоритмы симметричного шифрования
История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как сп...

Российский метод шифрования
СОДЕРЖАНИЕI. ВВЕДЕНИЕ.1. Криптографическая защита информации.II.Наиболее известные криптосистемы.1. Классификация криптосистемы.2. Практическое примен...

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