Автор работы: Пользователь скрыл имя, 18 Апреля 2011 в 11:13, дипломная работа
Цель работы – исследовать теоретические основы криптографии и создать электронное обучающее средство на основе исследованного материала.
Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом, волновала человеческий ум с давних времен. История криптографии − ровесница истории человеческого языка. Более того, первоначально письменность сама по себе была своеобразной криптографической системой, так как в древних обществах ею владели только избранные. Священные книги древнего Египта, древней Индии тому примеры.
Введение 2
Глава 1. Теоретическая часть 4
1.1. Шифры замены 4
1.1.1. Шифры простой замены 4
1.1.2. Частотный анализ 5
1.1.3. Гомофонный шифр замены 7
1.1.4. Полиграммный шифр 8
1.1.5. Полиалфавитные шифры 9
1.1.6. Математическая модель шифра замены 10
1.1.7. Классификация шифров замены 12
1.1.8. Поточные шифры простой замены 15
1.1.9. Блочные шифры простой замены 17
1.1.10. Многоалфавитные шифры замены 20
1.2. Шифры перестановки 21
1.2.1. Шифры обхода 21
1.2.2. Шифр Кардано 21
1.2.3.Общая схема шифра перестановки 23
1.2.4. Маршрутные перестановки 24
1.2.5. Криптоанализ шифров перестановки 25
1.3. Аффинные шифры 27
1.3.1. Шифр сдвига 27
1.3.2. Линейный шифр 28
1.3.3. Аффинный шифр 29
1.3.4. Аффинные шифры высших порядков 30
1.3.5. Криптоанализ аффинных шифров 34
1.4. Цифровые криптоалгоритмы 36
1.4.1. Шифр одноразового блокнота 36
Глава 2. Программная реализация 39
2.1. Структура программы 39
2.1.1. Вводная часть 39
2.1.2. Структура обучающего средства 40
2.2. Представленные примеры криптоалгоритмов 41
2.2.1. Шифр Цезаря 41
2.2.2. Шифр сдвига 42
2.2.3. Шифр Виженера 42
2.2.4. Маршрутные перестановки 43
2.2.5. Аффинный шифр 44
2.2.6. Шифр одноразового блокнота 44
Заключение 45
Используемая литература 47
Широкое применение получили так называемые маршрутные перестановки, основанные на некоторой геометрической фигуре. Подробное описание маршрутных перестановок описано в главе 2 пункте «2.2.4. Маршрутные перестановки».
Широкое распространение получила разновидность маршрутной перестановки, называемая вертикальной перестановкой. В этой системе также используется прямоугольная таблица, в которую сообщение записывается обычным образом (по строкам слева направо). Выписывается же сообщение по вертикали (сверху вниз), при этом столбцы выбираются в порядке, определяемом числовым ключом.
Пример (вертикальной перестановки):
Зашифруем
фразу «вот пример шифра вертикальной
перестановки», используя прямоугольник
размером 6 × 7 и числовой ключ (5,1,4,7,2,6,3).
5 | 1 | 4 | 7 | 2 | 6 | 3 |
в | о | т | п | р | и | м |
е | р | ш | и | ф | р | а |
в | е | р | т | и | к | а |
л | ь | н | о | й | п | е |
р | е | с | т | а | н | о |
в | к | и |
Отметим, что нецелесообразно
заполнять последнюю строку
Теперь, выписывая буквы по столбцам в порядке, указанном числовым ключом, получим такую криптограмму:
ореьекрфийамааеотшрнсивев
При расшифровании, в первую
очередь, надо определить
В нашем примере 38 = 7 · 5 + 3, поэтому в заполненной таблице имеется 3 длинных и 4 коротких столбца. Согласно числовому ключу, начальные буквы криптограммы берутся из второго (по счету слева) столбца, он – длинный (так как первые три столбца – длинные), поэтому первые шесть букв образуют пятый столбец (он – короткий). И так далее.
Более сложные маршрутные перестановки могут использовать другие геометрические фигуры и более “хитрые” маршруты, как, например, при обходе шахматной доски “ходом коня”, пути в некотором лабиринте и т.п. Возможные варианты зависят от фантазии составителя системы и, конечно, естественного требования простоты ее использования.
Укажем сначала основные идеи, используемые при вскрытии вертикальных перестановок.
Заметим прежде всего, что буквы каждого столбца заполненного прямоугольника выписываются в криптограмму подряд, то есть криптограмма разбивается на отрезки, являющиеся столбцами таблицы. Поэтому при дешифровании следует попытаться соединить две группы последовательных букв криптограммы так, чтобы они образовывали хорошие (“читаемые”) с точки зрения обычного текста комбинации. Для этого естественно использовать наиболее частые биграммы открытого текста, которые можно составить из букв рассматриваемого шифрованного текста.
Конечно, мы не знаем длины столбцов, но некоторые ограничения на них можно получит, используя положение конкретных букв. Так, столбцы должны иметь одинаковые длины или первый столбец может быть длиннее второго на одну букву, и тогда эта буква – последняя буква сообщения.
Если приписываемые к друг другу буквы разделены, скажем, только двумя буквами, то мы можем составить в соседних столбцах не более трех пар, и длина каждого столбца не превышает четырех. Кроме того, ограничением может послужить появление запретной биграммы (например, гласная – мягкий знак).
Заметим, что при автоматизации этого процесса можно приписать каждой биграмме вес, равный частоте ее появления в открытом тексте. Тогда целесообразно отобрать ту пару столбцов, которая имеет наибольший вес. Кстати, появление одной биграммы с низкой частотой может указать на то, что длину столбца надо ограничить.
Выбрав пару столбцов, мы аналогичным образом можем подобрать к ним третий (справа или слева) и т.д. Описанная процедура значительно упрощается при использовании вероятных слов, то есть слов, которые могут встретиться в тексте с большой вероятностью.
Рассмотрим так же метод, применимый к любым шифрам перестановки. Допустим, что к двум или более сообщениям (или отрезкам сообщений) одинаковой длины применяется один и тот же шифр перестановки. Тогда очевидно, что буквы, которые находились на одинаковых местах в открытых текстах, окажутся на одинаковых местах и в шифрованных текстах.
Впишем зашифрованные сообщения одно под другим так, что первые буквы всех сообщений оказываются в первом столбце, вторые – во втором и т.д. Если предположить, что две конкретные буквы в одном из сообщений идут одна за другой в открытом тексте, то буквы, стоящие на тех же местах в каждом из остальных сообщений, соединяются подобным же образом. Значит, они могут служить проверкой правильности первого предложения, подобно тому как комбинации, которые дают два столбца в системе вертикальной перестановки, позволяют проверить, являются ли соседними две конкретные буквы из этих столбцов. К каждому из указанных двухбуквенных сочетаний можно добавить третью букву для образования триграммы и т.д. Если располагать не менее чем четырьмя сообщениями одинаковой длины, то можно с уверенностью гарантировать их вскрытие подобным образом.
Рассмотрим, как можно описать шифр простой замены с применением арифметического аппарата. Польза такого подхода понятна – вычислительную технику почти всегда проще научить оперировать с числовой информацией, чем с символьной. Основная договоренность, которую мы будем соблюдать, такова: n – символьный алфавит, отождествляем с кольцом . Обозначением количества букв в алфавите открытого текста и будет служить n. Каждая буква заменяется своим номером в алфавите, причем нумерация начинается с нуля. Например, латинская азбука отождествляется с , а русская с . Русская буква «а» шифруется как «0», буква «б» как «1», «в» как «2» и так далее. Теперь для букв открытого текста мы можем свободно применять операцию сложения и умножения по соответствующему модулю.
Допустим, во всех последующих примерах сообщения записываются в русском алфавите без пропусков между словами и разделительных знаков, т.е. n = 33, и все вычисления будем производить в Z33.
Шифр сдвига
Ключ: s , такое, что .
Шифрование: в сообщении каждая буква x заменяется буквой .
Дешифрование: в криптотексте каждая буква заменяется буквой , где . Величину обратного сдвига будем называть расшифровывающим ключом.
Пример:
Пусть требуется зашифровать слово «ЗАВТРА» и для шифровки используется ключ s = 5. В цифровой форме слово «ЗАВТРА» представляется последовательностью: 8, 0, 2, 19, 17, 0. Сложим эту последовательность с s по модулю 33. Получили новую последовательность: 13, 5, 7, 24, 22, 5, где ответом криптотекста является «ОЕЗЩЧЕ».
Дешифрование производится с использованием расшифровывающего ключа: s’ = 33 – 5 = 28. При шифровании мы получили криптотекст «ОЕЗЩЧЕ» = 13, 5, 7, 24, 22, 5. Сложим эту последовательность с s’ по модулю 33. Получим новую последовательность 8, 0, 2, 19, 17, 0 = «ЗАВТРА» .
По аналогии введем и рассмотрим линейный шифр.
Ключ: a , такое, что и .
Шифрование: в сообщении каждая буква x заменяется буквой .
Дешифрование: в криптотексте каждая буква заменяется буквой , где - расшифровывающий ключ.
Пример:
Пусть для шифрования используется ключ . Рассмотрим процедуру шифрования сообщения «ЗАВТРА». В цифровой форме оно представляется последовательностью чисел 8, 0, 2, 19, 17, 0. Умножение на 2 по модулю 33 дает последовательность 16, 0, 4, 5, 1, 0, где ответом криптотекста является «ПАДЕБА».
Дешифрование проводится таким же образом, только с использованием расшифровывающего ключа, вычисляемого по формуле
a’ = a-1(mod n) ↔ a ∙ a’ ≡ 1(mod n).
В нашем примере а = 2, следовательно, 2 ∙ a’ ≡ 1(mod 33). По определению сравнения по модулю 2 ∙ a’ = 1 + 33 ∙ n. Попробуем найти a’ с помощью перебора n. Пусть n = 1, тогда
2 ∙ a’ = 1 + 33 ∙ 1 → 2 ∙ a’ = 1 + 33 → 2 ∙ a’ = 34 → a’ = 17.
Расшифрующий ключ найден. При шифровании мы получили криптотекст «ПАДЕБА» = 16, 0, 4, 5, 1, 0. Умножение на 17 по модулю 33 приведет к 8, 0, 2, 19, 17, 0 = «ЗАВТРА».
Обобщением и шифра сдвига, и линейного шифра является аффинный шифр.
Ключ: а, такие, что , и .
Шифрование: в сообщении каждая буква x заменяется буквой .
Дешифрование: в криптотексте каждая буква заменяется буквой , где пара и является расшифровывающим ключом.
Пример:
Пусть для шифровки используется ключ а = 2, s = 1. Чтобы зашифровать сообщение «ЗАВТРА», представим его в цифровой форме как последовательность 8, 0, 2, 19, 17, 0. Умножение на 2 по модулю 33 дает последовательность 16, 0, 4, 5, 1, 0. К результату добавляем единицу и получаем последовательность 17, 1, 5, 6, 2, 1, которая соответствует криптотексту «РБЕЁВБ».
Дешифрование криптотекста «РБЕЁВБ» = 17, 1, 5, 6, 2, 1 происходит с использованием ключа a’ = 17, вычисленного в примере на использование линейного шифра, и s’, вычисляемого по формуле: s’ = (- 17 ∙1)(mod 33) = 16.
Умножение каждого из чисел по модулю 33 на 17 и прибавление 16 дает 8, 0, 2, 19, 17, 0 = «ЗАВТРА».
Как и каждый шифр простой замены аффинный шифр поддается частотному анализу. При этом, частотный метод используется даже не на полную мощность.
Подумаем,
как можно расширить
Шифр сдвига k-го порядка (шифр Виженера с периодом k)
Информация о работе Создание электронного обучающего средства по криптографии