Анализ шифров перестановки.
Элементы криптоанализа шифров перестановки

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Введение

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

Объектом исследования данной курсовой работы являются шифры Вертикальной перестановки, Эйлера и решетка Кардано.

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

В процессе выполнения курсовой работы были выполнены следующие задачи:

· получены знания для решения конкретных практических задач защиты информации криптографическими методами;

· получены навыки подбора, изучения и обобщения научно-технической литературы, нормативных и методических материалов по криптографическим способам и средствам защиты информации на объектах информатизации;

· изучены методы криптоанализа используемых шифров;

· получены навыки проведения аналитического обоснования при выборе метода криптографической защиты;

· охвачены методы анализа частотных характеристик открытого текста и результатов шифрования;

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

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

1. Разработка программного комплекса для проведения сравнительного анализа шифров

криптоанализ шифрование алгоритм перестановка

1.1 Выбор шифров перестановки для проведения анализа

Для курсовой работы была выбрана тема «Сравнительный анализ шифров перестановки. Элементы криптоанализа шифров перестановки». Среди шифров перестановки были выбраны следующие:

1. Вертикальная перестановка.

2. Решетка Кардано.

3. Конь Эйлера.

Вертикальная перестановка

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

Решетка Кардано

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

Конь Эйлера

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

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

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

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

Рисунок 1. 1

Рисунок 1. 2

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

Существует несколько криптографических задач:

1) обеспечение конфиденциальности — это решение проблемы защиты информации от ознакомления с её содержанием со стороны лиц, не имеющих права доступа к ней (в зависимости от контекста вместо термина «конфиденциальная» информация могут выступать термины «секретная», «частная», «ограниченного доступа» информация);

2) обеспечение целостности — это гарантирование невозможности несанкционированного изменения информации (т.е. несанкционированных вставки, удаления и замены данных);

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

4) обеспечение невозможности отказа от авторства или приписывания авторства — это предотвращение возможности отказа субъектов от некоторых из совершенных ими действий.

5) управление ключами — распределение ключей, сертификация и построение схем разделения секрета и т. п.

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

1.2 Анализ алгоритма шифра 1, построение блок-схемы алгоритма шифра и программы шифрования

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

Шифрование:

Пусть, например, этот ключ таков: (5,4,1,7,2,6,3), и с его помощью надо зашифровать сообщение:

ВОТПРИМЕРШИФРАВЕРТИКАЛЬНОЙПЕРЕСТАНОВКИ

Впишем сообщение в прямоугольник, столбцы которого пронумерованы в соответствии с ключом:

Таблица 1. 1

5

1

4

7

2

6

3

В

О

Т

П

Р

И

М

Е

Р

Ш

И

Ф

Р

А

В

Е

Р

Т

И

К

А

Л

Ь

Н

О

Й

П

Е

Р

Е

С

Т

А

Н

О

В

К

И

-

-

-

-

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

ОРЕЬЕКРФИЙА-МААЕО-ТШРНСИВЕВЛРВИРКПН-ПИТОТ-

В случае, когда ключ ШВП не рекомендуется записывать, его можно извлекать из какого-то легко запоминающегося слова или предложения. Для этого существует много способов. Наиболее распространенный состоит в том, чтобы приписывать буквам числа в соответствии с обычным алфавитным порядком букв. Например, пусть ключевым словом будет ПЕРЕСТАНОВКА. Присутствующая в нем буква, А получает номер 1. Если какая-то буква входит несколько раз, то ее появления нумеруются последовательно слева направо. Поэтому второе вхождение буквы, А получает номер 2. Поскольку буквы Б в этом слове нет, то буква В получает номер 3 и так далее. Процесс продолжается до тех пор, пока все буквы не получат номера. Таким образом, мы получаем следующий ключ:

Таблица 1. 2

П

Е

Р

Е

С

Т

А

Н

О

В

К

А

9

4

10

5

11

12

1

7

8

3

6

2

Расшифрование:

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

1. 3 Анализ алгоритма шифра 2, построение блок-схемы алгоритма шифра и программы шифрования

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

Рисунок 1. 3

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

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

Решетку можно разместить в 4 положениях — лицом вверх, лицом вниз, вертикально и в перевернутом положении, что вчетверо увеличивает число возможных размещений сетки. Если решетка Кардано — квадрат, то возможен второй вариант размещений сетки, а именно, последовательные повороты вокруг центра квадрата на 90°.

Шифрование:

У нас имеется готовая решетка Кардано 10×6, которая и будет ключом. Черные клетки — пустые места.

Таблица 1. 3

В пустые клетки записываем соответственно наш исходный текст.

Таблица 1. 4

Н

У

Ж

Н

О

В

Ы

Т

Я

Г

И

В

А

Т

Ь

Затем поворачиваем решетку на180 градусов:

Таблица 1. 5

Н

Н

О

Г

И

У

Ж

Н

О

З

В

П

Ы

Т

Т

Н

Я

А

Г

С

И

К

О

Л

Ь

В

А

Т

К

Ь

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

Если остаются пустые клетки — заполняем их «пустышками».

В итоге, получаем такую решетку:

Таблица 1. 6

Н

Н

О

О

Г

П

О

И

Ы

З

У

В

Н

И

Ж

Т

Н

О

З

Ч

К

В

П

О

П

Ы

Т

Л

Щ

Т

Н

Я

Д

Я

А

Ю

Н

Г

С

Т

П

И

К

О

Р

Л

О

С

Ь

Ь

Щ

Т

В

Ю

Ф

А

Т

Б

К

Ь

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

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

Расшифрование:

Имеем ключ — решетку. Накладываем ее в четырех описанных позициях и выписываем буквы из открытых клеток.

Наложив решетку в первом положении, мы увидим такую картину:

Таблица 1. 7

Н

У

Ж

Н

О

В

Ы

Т

Я

Г

И

В

А

Т

Ь

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

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

Заметим, что на конце остались буквы «пустышки».

1.4 Анализ алгоритма шифра 2, построение блок-схемы алгоритма шифра и программы шифрования. Описание формата ввода данных

Задача о ходе коня — задача о нахождении маршрута шахматного коня, проходящего через все поля доски по одному разу.

Эта задача известна по крайней мере с XVIII века. Леонард Эйлер посвятил ей большую работу «Решение одного любопытного вопроса, который, кажется, не подчиняется никакому исследованию» (датируется 26 апреля 1757 года).

В курсовой работе рассмотрим шифрование текста посредством маршрута коня, изображенного на рис. 3.

Рисунок 1. 4

Шифрование происходит следующим образом: вся шахматная доска 8×8 заполняется слева-направо и сверху-вниз исходным текстом, если остаются свободные клетки, то они заполняются случайными буквами, а если не хватает, то добавляется еще одна аналогичная доска.

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

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

ЫОВБППЧИОЙТЛМГОТКНЦЫРОВЧБНЬСЯФЮЗИСТЕКОХАЖГННКЗВЯАТУПГЛТЭНТОЧЬЪИО

Расшифрование:

Используя ключ-маршрут, выписываем поочередно буквы.

НУЖНОВЫТЯГИВАТЬНОГИЗПТНАСКОЛЬКОПОЗВОЛЯЮТПРОСТЫНИТЧКЪЭХЧЧМФЕЦБЙБГ

Заметим, что на конце остались случайные буквы, которые добавились ввиду пустых клеток.

1.5 Разработка общего интерфейса комплекса программ шифрования 1, 2 и 3. Описание формата ввода данных

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

Рисунок 1. 5

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

Рисунок 1. 6

1. Окно выбора необходимого шифра

2. Окно выбора действия (Шифрование или расшифрование)

3. Поле для ввода ключа (Программа может сгенерировать его сама)

4. Поле для ввода исходного текста

5. Поле вывода зашифрованного или расшифрованного текста

6. Кнопка запуска программы

Подробное описание работы программы:

1) Исходный текст может быть записан вручную или из файла. Достаточно нажать кнопку «Обзор» у поля Исходного текста и выбрать файл на диске. Программа воспринимает русский текст и практически все знаки препинания. Была исследована литература по передаче телеграмм и сокращению фраз в них. И таким образом, большинство знаков переводится в буквы, также убираются все пробелы. Т.к. подразумевается, что при расшифровании будет либо человек анализировать текст либо словарь русских слов, и проблема расстановки пробелов будет практически отсутствовать. При некорректном вводе, если присутствуют неизвестные программе символы, будет предложено удалить некорректные символы, что сокращает время и увеличивает удобство программы.

Рисунок 1. 7

2) После ввода текста выбираем Шифр.

Рисунок 1. 8

3)

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

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

Рисунок 1. 9

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

Рисунок 1. 10

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

Рисунок 1. 11

6) Для расшифрования текста, достаточно аналогичным образом, как и для шифрования текста, выбрать шифр, пункт «Расшифрование», задать ключ и зашифрованный текст. При корректных значениях во всех перечисленных пунктах, шифр достаточно быстро расшифруется. Ввиду изначальной замены знаков препинаний, есть возможность восстановить их, находя те же сокращения и преобразуя их. Будет предложено попытка расшифровать текст посредством перечисленных замен. После расшифрования можно будет заметить оставшиеся на конце случайные буквы, появившиеся в процессе шифрования на пустых местах матриц. Если использовать словари с достаточно большим набором слов, то можно практически полностью автоматизировать процесс разбора расшифрованного текста на слова и предложения, и, конечно, появится возможность убрать буквы-пустышки. И, наконец, одна из возможностей программы — сохранение расшифрованного текста.

Рисунок 1. 12

Вывод

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

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

2. Сравнительный анализ шифров перестановки по результатам шифрования и криптоанализа зашифрованных текстов

2.1 Шифрование с помощью разработанного программного комплекса шифров замены литературного текста

Для шифрования было выбрано стихотворение Быкова Д. Л. «На самом деле»:

На самом деле, мне нравилась только ты, мой идеал и моё мерило. во всех моих женщинах были твои черты, и это с ними меня мирило. Пока ты там, покорна своим страстям, порхаешь между Орсе и Прадо, я, можно сказать, собрал тебя по частям — Звучит ужасно, но это правда. Одна курноса, другая с родинкой на спине, Третья умеет всё принимать как данность. Одна не чает души в себе, другая во мне — Вместе больше не попадалось. Одна, как ты, с лица отдувает прядь, другая вечно ключи теряет. А что я ни разу не мог в одно это всё собрать? Так Бог ошибок не повторяет. И даже твоя душа, до которой ты допустила меня раза три через все препоны, осталась тут, воплотясь во все живые цветы и все неисправные телефоны. А ты боялась, что я тут буду скучать, Подмены сам себе предлагая. А ливни, а цены, а эти шахиды, а Роспечать? Бог с тобой, ты со мной, моя дорогая.

Вертикальная перестановка

ОМАНАСЗЕЛМДЕНЕНПТМАЛИРАВЬЛОСЬТПЗЫКОТДИЙТМООМИЕАЛЛИРЕМЕОВКОТЧОМХВСЕЩНЕИХЖЫБХИНАИОВЛИТЗЫТЧЕРОТЭПТИМИМСНИРИМЕНЯКЧТИЛОЫТАПОКТПЗТАМНРОПОКМИОАСВТСАСТРПТПЯМЗШЕАОРХУДЖЬМЕПИЕОРСПЗОРАДМТПТЯЗКСООЖНЗЬТАЗАРБОПТСЯБЕАЛТТСАПОЧУНИЯММИЧУСЗВНСАТУЖОНТОЗПАРПЭТОКЧТВДАУКАОДНЗАСРНОГУРПТДДОРАЯСНЙОИНКЕНИАСПЕРТЗПТЕМУТЬЯПЕСЕТВАМИРИНДКАТЬКТСОАННДОКЬТЧАЧЕНАНИШУЕТДЗЕБВСЕГУРПТДНМОАЯВСУНЕМИЕТСВМЕЕШЬБОЛАПОНЕПЬСОДАЛНДОТЧКАКТАЗПТПЗКТЫОАЦСЛИЕАВТДУЬДЯТПРУРДЗПТЧЕВГАЯЧЮЛНОКЕЯРИТЕЧАКТТЧРИНТОЯМЕНАЗУНДООГВСВООЭТАРБЕСОРПОТЬВБКАОСТБИШОГООПЕОКНЕЯРВТОДИКТТЧОВТАЖЕЗАШЯДУОКОПТДТЙОТОРСУПЫДОЕМАТИЛАЗАНЯРРЕЧТРИПЕСЕЗВЫНОРЕПТСОЗПТТЬСАЛАВТПУТЗЯТООПЛСВОСЬВЕЫВЕЖИИЫТЦВЕИЕНВСЕНВАСПРЕЛЕЫЕТЧТЫФОНОБЫКАТЗЬСЯЛАЯОТПТЧДУБТУТАЧУУСКПТПТЬЗЫНЕОДМБЕССАМЛДЕЕПРЧТЯАГАНВИКАЛЦАТИЗПТПЗЕНЫАШИАЭТПЗЫХИДПСОТАРВЬТЕЧАБСООПРБОТОГСТТПОЙЗОНМЫСООМТЙЗПГОРЯДОЕКЧАЯТ

Решетка Кардано

ПМНТПРЗЕУЕОУЦТАРЛЛЮБОСРИВТУОИЕЧЛКТУАЕОИДЯВРНСВБЛЕЕАДЫРКЯПИОЖВНЫООЗПБКЙТЛОЕАЕЕТЕОЕОЕЧЯЛГИНРТДДЕЕХМВЛРЫОЗОИХМЖННУТИДСВТМОАЙИЕЕДЛЛНДЫЕОИЛМПМННУИОЫПЛСНТСОТПТПНРАСЬАИЕШКБВОИТУАУТТСНАЕЬИРЛТЧОЧСКЕТТСЛЕЯЛБОЕСТКВШЛЧЕИИЮЕЭМОУЧККДЛНДЧАТСОТЕЫЙЗКЬАСГАКЛЕЛЩВПЗУХМТЧВАЕВКВВЯРЕНЛНЕУСЖЕУТЯЛШЕИСИПЗТНЧТЕНВОСИУЕУЛНПАНЧЯДББЧЕСНМЙЕБГОИЫКОНОЕДОТЕГБЕЫОГННТЫЫЕДНВЕУГКАОДЯХОЗАНДИВЕМОЛЙХДОЫОЧЙЛКОВОЫЮОУНДЫДТЧПДЕОТЕЛЫБЕТЗОВЙТКДРНВЕИИТУЧКЛВОЧЕТЦСВЕРЯМОЗЧПБОИЧАОНТСВТГЧСУВЯЫВКВЕАКСЛШТТГАКТРРЗКВРОЧКЕЫРКПТГВБИСИСТОКЬЕООАЖДЛАИЕЛПКРКИДМЫГЕЧОРОТТДЛЬЛОННГВТИВИНБСДОАЯНЙОЛШУХКРЕРЫОНИЮЬМЕНОАСВООРЕЕИВДНЕПВИАБАЭОМОМЯООШКУВОПРТИВЕЯВМНАЬИЙРСЦПЕИТДЯВЛЛБНАОЛЫНООЛЩОТРИУОРИНДЕКОРРЕОЕОТИОЫПРТУРЧАВОЕИНАЯКМВЧЗУДОМИНЩЗЗБЧЦНЛРАЕМЛШЗЫЖМЧИЛЖУЫРЗПЩВМНЗАЕППЕКОАООЗДИЕЕИЙЕЕКЗЬСЧШОПТИОУЕАТВТТДДМСПВПИОГНТГТЩДМНКУЛНТСХДЗТЧОЕЧКАРТУЕОТКНРЕЬНЧЕЕЕЫИНЕСКНГИПОРРСТООТЧГРБВТААЛУИКПЛНХМИНКОИЛТТЛЕАЕЗЛСОКУЕОМОЗМВБЯНОАИЗИТНОТМУЕГЬЗКЖПЕТРПЮБДЕВНЬОЕДАКТТПЗЧЫГОППЛОЬВООТЕООРЗИУСАМЗСРВЙРЬЬТЕКХОРООЗСИОВКИПРЕОПРПТАЛЯТНОТОЭСНДЧТЗО

Конь Эйлера

ИТОВОИТЕМСЛОЧЛТЙЬМОМДКЗОЕАЛАЕКОЫОСДВЬЕЛПСХЛНЕАЗМАЕАВНТТИНИЕММРРПЛПЕПОЯЫАЖТИТТНСНЗОЗНМТХТПХИРИАЕНТЫЩМЭИАБИОРИПИИМТЧОЧВИЫКМЕТКЛООМПЕСАЖРОСАТЗШСМДПАТЗВАЕТНЬНЬОИКИУЯХОАМДЖРРЗОТТПОЕРЗОТМСАОКПЯПСМЗРПВРРУНДББНОУНЕЖТЗРУАОТЯОООЧТТАПААСЛКИЭКПССНААМСЗУВТМТООЧПИСДЧТЯНИЗРСЕВДСДТРПАЯТТЕНОУСРРКЬТТПАНЕЬИНГНТЕАОПТПНТНЯЕИМЗАОМДКАСКАИЬЙУЕУАЛОВОЕНОТГПАМСРБАНМВТПСДАСЧАУНОДЕДЯЕЕДОЬПИШБЕНТЛКЕСИУНЧЗВЬШЕЕМВУНТПРТКДТЯВЕТРДДЕЕАУТАИЧОААПРТЯЧТЗЯЕГЧКККАЗКЛДПОНЧИТЗТЮТЦПОЫЛСЬГЕНЯАТОУЯЕОСВЗТССОРИАРНПТООБАТОЬШВРОБКЕЕТТТГОНВРОИЧООПМНАЭВБОКДОАЙЖППНСЯАОЗТЕОУЕОТЕЕЯОДВНДЫАВПМСРРТРДРЗУИЫТЗЕОТАОИККТЛШЕЧОПЧАРДИНВТФЖЫЕЬСОЕОТСИТЬЕЕАИЕТЫНОВСАЕЕВИСЛЛСВНУТЫТПРПЫВЯСПЛВЦТВЗОТПЗАОЕАУЫТАМЛАТЧССАЛТДДМЯБЕЧСДКАКЫЯГОЬСУОАУНЕЬКАТТЕЯЗПБЕЧТТТЗРТУЧБППОПБЗЗОООПЕИМСПТЦСВЫОСППРНЗННТОАТЬПГДТЫАРЙЫВОХТОИЕТИСИШЭАЗОЛААТПБТЧФЮОЩЩЭЭОМЖМЕБРДЪЮЕШЯХПГКПТЮЧООБНЦСДМЮЧЦАПОГЧБДЬФЙБЗЬЩЮЯЪЙФКЙТГЬЩ

2.2. Построение гистограмм открытого и зашифрованных текстов, диаграмм символов, биграмм и триграмм

Ниже приведена гистограмма исходного текста:

Рисунок 2.1 Гистограмма исходного текста

Вертикальная перестановка

Рисунок 2.2 Биграмма

Рисунок 2.3 Триграмма

Решетка Кардано

Рисунок 2.4 Биграмма

Рисунок 2.5 Триграмма

Конь Эйлера:

Рисунок 2.6 Биграмма

Рисунок 2.7 Триграмма

2.2 Криптоанализ шифртекстов, полученных с помощью шифров

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

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

Можно сделать вывод, что шифр Эйлера обладает более высокой криптостойкостью относительно шифра вертикальной перестановки решетки Кардано.

2.3 Криптоанализ вертикальной перестановки

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

Для этого естественно использовать наиболее частые биграммы открытого текста, которые можно составить из букв рассматриваемого шифрованного текста.

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

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

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

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

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

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

2. 4 Криптоанализ Решетки Кардано

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

Есть смысл разделить весь текст на блоки по 60 символов, т.к. возможно используется классическая решетка, и, конечно, стоит взять первый блок, в нем отсутствуют буквы-пустышки.

Как только выбрали первый блок, необходимо сразу ограничиться четырьмя множествами, учитывая все повороты решетки, в каждом из которых по 15 символов. Сгенерировав достаточное количество таких решеток, проходим сразу по ним, накладывая их на тексты и «пробуем» прочитать по «окошкам» в решетке. В данном случае поступаем аналогично: автоматизируем процесс, загружая словари.

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

2. 5 Криптоанализ шифра на основе задачи «о ходе коня» Эйлера

Для начала необходимо сгенерировать всевозможные варианты маршрутов коня. Следующим шагом будет разделение текста на блоки по 64 символа, и, если учитывать, что для каждого блока применялся один и тот же маршрут, то достаточно проверять маршрут на ключ только на первом блоке, т.к. в нем отсутствуют буквы-пустышки. Затем, поступить следующим образом: для каждого блока накладываем маршрут, и пробуем прочитать текст, следуя по числам. В случае больших текстов возникает необходимость автоматизации перебора: достаточно занести в компьютер словари большого объема. Не возникнет также необходимости проходить всю шахматную доску, если не удается найти в словаре слова — первые прочитанные наборы символов, то необходимо переходить к следующему маршруту. Как только найдется ключ для данного блока, то вскроется и весь текст.

При правильном генерировании, шифр в любом случае взломается.

Другим возможным вариантом может являться такой:

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

2. 6 Сравнительный анализ криптостойкости выбранных шифров 1, 2 и 3 по полученным оценкам и трудоемкости процедуры криптоанализа

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

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

Вывод

Еще в 1759 году Знаменитый математик Леонард Эйлер нашел замкнутый маршрут обхода всех клеток шахматной доски ходом коня ровно по одному разу. На основе его открытия можно получить шифртекст маршрутной перестановки с очень сложным маршрутом.

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

Однако лучше не использовать данный шифр для защиты конфиденциальной информации, поскольку современные средства позволяют легко вскрыть шифр Эйлера, а также другие изученные в данной работе шифры. В настоящее время существуют более надежные шифры, такие как RSA, и ГОСТ 28 147–89.

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

Заключение

В ходе выполнения данной исследовательской работы были выполнены поставленные задачи:

· Разработаны программы, реализующие шифрование и расшифрование шифрами «вертикальная перестановка», «решетка Кардано» и «задача Эйлера»

· Произведено шифрование литературного текста объемом 854 символа

· Построены гистограммы открытого и шифрованного текстов

· Проведен криптоанализ полученных шифртекстов

· Описаны алгоритмы криптоанализа выбранных шифров

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

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

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

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

1. Бутакова Н. Г., Семененко В. А., Федоров Н. В. Криптографическая защита информации: Учебное пособие. — М. :МГИУ, 2011. — 316 с.

2. Закон «Об информации, информационных технологиях и защите информации» от 27 июля 2006 года № 149-ФЗ.

3. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. — М.: ТРИУМФ, 2002 — 816 с.

4. Словарь криптографических терминов / Под редакцией Б. А. Погорелова и В. Н. Сачкова. — М: МЦНМО, 2006.

5. Виноградов И. М. Основы теории чисел. — 10-е изд., стер. — СПб.: Издательство «Лань», 2004. — 176 с.

6. У. Диффи. Первые десять лет криптографии с открытым ключом. /пер. с англ./ М., Мир, ТИИЭР. — 1988. -т. 76. -N5.

7. Адаменко М. В. Основы классической криптологии. Секреты шифров и кодов. — М. :ДМК Пресс, 2012 — 256 с.

8. Википедия [Электронный ресурс]. — Режим доступа:

http: //ru. wikipedia. org/wiki/

9. Аутентификация в многоуровневой системе на основе коммутативного шифрования и доверенных подписей [Электронный ресурс]. — Режим доступа:

http: //cyberleninka. ru/article/n/autentifikatsiya-v-mnogourovnevoy-sisteme-na-osnove-kommutativnogo-shifrovaniya-i-doverennyh-podpisey

10. Алгоритмы с открытым ключом [Электронный ресурс]. — Режим доступа:

https: //www. pgpru. com/biblioteka/statji/analiznadezhnostipgp/algoritmypgp/asimmetrichnyealgoritmy

Приложение

Тексты программ шифрования шифрами перестановки

Вертикальная перестановка. Текст программы шифрования:

i=ceil (size (str, 2)/size (key, 2));

j=size (key, 2);

cfr=char (zeros (i, j));

ost=j — (j*i-size (str, 2));

for k=1: (i-1)

cfr (k:)=str ((k-1)*j+1:k*j);

end

k=i;

cfr (k, 1: ost)=str ((k-1)*j+1:size (str, 2));

cfr (k, ost+1: j)='Е';

srt_key=sort (key);

cfr2=char (zeros (i, j));

for q=1: j

t=find (srt_key==key (q));

t=t (1);

srt_key (t)='_';

cfr2 (, t)=cfr (, q);

end

cfr2=cfr2';

cfr2=cfr2 (:);

cfr2=cfr2';

Вертикальная перестановка. Текст программы расшифрования:

cfr2='str';

key='Москва';

j=size (key, 2);

i=ceil (size (cfr2,2)/size (key, 2));

cfr=char (zeros (i, j));

for k=1: i

cfr (k:)=cfr2 ((k-1)*j+1: k*j);

end

srt_key=sort (key);

cfr1=char (zeros (i, j));

for q=1: j

t=find (key==srt_key (q));

t=t (1);

key (t)='_';

cfr1 (, t)=cfr (, q);

end

dec=cfr1;

dec=dec';

dec=dec (:);

dec=dec';

Решетка Кардано. Текст программы шифрования:

for i=1: (str_count-1)

new_str=str (1: 60);

str (1: 60)='';

for j=1: 60

crdn (crdn_hls (1, j), crdn_hls (2, j))=new_str (j);

end

crdnn=crdn';

crdnn=crdnn (:)';

crdn_full=strcat (crdn_full, crdnn);

end

sz=size (str);

sz=sz (2);

for i=1: 60

if (i> sz)

crdn (crdn_hls (1, i), crdn_hls (2, i))=char (round (rand (1)*31)+1040);

else

crdn (crdn_hls (1, i), crdn_hls (2, i))=str (i);

end

end

crdnn=crdn';

crdnn=crdnn (:)';

crdn_full=strcat (crdn_full, crdnn);

Решетка Кардано. Текст программы расшифрования:

szz=size (str);

szz=szz (2);

if (rem (szz, 60)≅0)

warndlg ('Это не шифр решетки Кардано');

else

str_count=ceil (szz/60);

dec='';

for i=1: str_count

szd=size (str);

szd=szd (2);

if (szd> =60)

new_str=str (1: 60);

str (1: 60)='';

szd=60;

else

new_str=str (1: szd);

str (1: szd)='';

end

for i=1: szd

ltr=new_str ((crdn_hls (1, i) — 1)*10+crdn_hls (2, i));

dec=strcat (dec, ltr);

end

end

Конь Эйлера. Текст программы шифрования:

szz=size (str);

szz=szz (2);

str_count=ceil (szz/64);

elr_full='';

for j=1: str_count

elr=char (zeros (8,8));

szz=size (str);

szz=szz (2);

if (szz> =64)

new_str=str (1: 64);

str (1: 64)='';

else

new_str=str;

str (1: szz)='';

end

for i=1: 64

if (i< =szz)

elr (A (1, i), A (2, i))=new_str (i);

else

elr (A (1, i), A (2, i))=char (round (rand (1)*31)+1040);

end

end

elr=elr';

elr=elr (:)';

elr_full=strcat (elr_full, elr);

end

Конь Эйлера. Текст программы расшифрования:

str_count=ceil (szz/64);

dec='';

for i=1: str_count

szd=size (str);

szd=szd (2);

if (szd> =64)

new_str=str (1: 64);

str (1: 64)='';

szd=64;

else

new_str=str (1: szd);

str (1: szd)='';

end

for i=1: szd

ltr=new_str ((key (1, i) — 1)*8+key (2, i));

dec=strcat (dec, ltr);

end

end

ПоказатьСвернуть
Заполнить форму текущей работой