Предмет: «Методы и средства защиты информации» Лабораторная работа №1 Тема: «Шифрование текста» 1. Шифры замены Наиболее известными и часто используемыми шифрами являются шифры замены. Они характеризуются тем, что отдельные части сообщения (буквы, слова, ...) заменяются на какие-либо другие буквы, числа, символы и т.д. При этом замена осуществляется так, чтобы потом по шифрованному сообщению можно было однозначно восстановить передаваемое сообщение. Пусть, например, зашифровывается сообщение на русском языке и при этом замене подлежит каждая буква сообщения. Формально в этом случае шифр замены можно описать следующим образом. Для каждой буквы исходного алфавита строится некоторое множество символов попарно не пересекаются при так, что множества и , то есть любые два различные множества не содержат одинаковых элементов. Множество множеством шифробозначений для буквы называется . Таблица (1) является ключом шифра замены. Зная ее, можно осуществить как шифрование, так и расшифрование. При шифровании каждая буква любым символом из множества открытого сообщения, начиная с первой, заменяется . Если в сообщении содержится несколько букв из них заменяется на любой символ из , то каждая . За счет этого с помощью одного ключа (1) можно получить различные варианты зашифрованного сообщения для одного и того же открытого сообщения. 1.1 Шифр Цезаря. Этот шифр реализует следующее преобразование открытого текста: каждая буква открытого текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу, т.е. после буквы ``я'' следует буква ``а''. Отметим, что Цезарь заменял букву третьей после нее буквой, но можно заменять и какой-нибудь другой. Главное, чтобы тот, кому посылается шифрованное сообщение, знал эту величину сдвига. Пример 1.1. ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC YHQL YLGL YLFL Veni vidi vici – “Пришел, увидел,победил”. Ю. Цезарь. Донесение Сенату о победе над понтийским царем 1.2 Лозунговый шифр. Другим примером шифра замены может служить лозунговый шифр. Здесь запоминание ключевой последовательности основано на лозунге - легко запоминаемом слове. Пример 1.2 Выберем слово-лозунг ``учебник'' и заполним вторую строку таблицы по следующему правилу: сначала выписываем слово-лозунг, а затем выписываем в алфавитном порядке буквы алфавита, не вошедшие в слово-лозунг. а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я у ч е б н и к а в г д ж з Л м о п р с т ф х ц ш щ ъ ы ь э ю я 1.3. Парный шифр В этом шифре ключом является фраза, содержащая 15 разных букв. Подписывая под этими буквами буквы в алфавитном порядке, не вошедшие в этот ключ, получаем разбиение 30 основных букв русского алфавита на пары. Чтобы получить из сообщения шифрованный текст, заменяют каждую букву сообщения своим напарником. Пример 1.3 Выбираем в качестве ключа фразу “Железный шпиц дома лежит”, получим разбиение основных букв русского алфавита на пары, как указано ниже: 1 2 3 ж е л б в г е 4 5 б з н ы к р с и 7 8 9 10 11 12 13 14 ш п и ц д о м а у ф х ч щ ь э ю 15 л е ж и т я Таким образом, получаем отображение букв основного алфавита на последовательность, состоящую из тех же букв а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ю ж е л щ в б к х з г э р ь ф н ы я ш п и ч ц у д ь ы э ю я о с м а т Поэтому сообщение “Встреча отменяется, явка раскрыта”, переходит в следующий шифртекст ЕЫЯНВ ЦЮЬЯЭ ВРТВЯ ЫТТЕЗ ЮНЮЫЗ НСЯЮ Очевидно, что в качестве ключа можно использовать любую фразу, в которой имеется не менее 15 разных букв основного алфавита 1.4. “Квадрат Полибия” В Древней Греции (II в. до н. э.) был известен шифр, называемый “квадрат Полибия”. Это устройство представляло собой квадрат 55(6x5), столбцы и строки которого нумеровали цифрами от 1 до 5. В каждую клетку записывалась одна буква (в греческом варианте одна клетка оказывалась пустой, а в латинском – в одну клетку помещали две буквы I, J). В результате каждой букве отвечала пара чисел по номеру строки и столбца. Пример 1.4. A B C D E 13 34 22 24 44 34 15 42 22 34 43 45 32 F G H I,J K L M N O P Cogito ergo sum – лат. “Я мыслю, следовательно, существую” Р. Декарт Q R S T U V W X Y Z А Б В Г Д Е,Ё Ж З И,Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь,Ъ Э Ю Я Рассмотренные шифры имеют одну слабость. Если в открытом сообщении часто встречается какая-либо буква, то в шифрованном сообщении часто будет встречаться соответствующий ей символ или буква. Поэтому при вскрытии шифра замены обычно стараются наиболее часто встречающимся символам шифрованного сообщения поставить в соответствие буквы открытого сообщения с наибольшей предполагаемой частотой появления. Если шифрованное сообщение достаточно большое, то этот путь приводит к успеху, даже если вы не знаете ключа. Кроме частоты появления букв, могут быть использованы другие обстоятельства, помогающие раскрыть сообщение. Например, может быть известна разбивка на слова и расставлены знаки препинания. Рассматривая небольшое число возможных вариантов замены для предлогов и союзов, можно попытаться определить часть ключа. 2. Шифры перестановки Шифр, преобразования из которого изменяют только порядок следования символов исходного текста, но не изменяют их самих, называется шифром перестановки (ШП). Рассмотрим преобразование из ШП, предназначенное для зашифрования сообщения длиной символов. Его можно представить с помощью таблицы (6) где - номер места шифр текста, на которое попадает первая буква исходного сообщения при выбранном преобразовании, - номер места для второй буквы и т.д. В верхней строке таблицы выписаны по порядку числа от 1 до , а в нижней - те же числа, но в произвольном порядке. Такая таблица называется подстановкой степени . Зная подстановку, задающую преобразование, можно осуществить как зашифрование, так и расшифрование текста. Например, если для преобразования используется подстановка и в соответствии с ней зашифровывается слово МОСКВА, то получится КОСВМА. 2.1 Шифр “Решетка Кардано” Для использования такого шифра, изготавливается трафарет из прямоугольного листа клетчатой бумаги размера клеток. В трафарете вырезано клеток так, что при наложении его на чистый лист бумаги того же размера четырьмя возможными способами его вырезы полностью покрывают всю площадь листа. Буквы сообщения последовательно вписываются в вырезы трафарета (по строкам, в каждой строке слева направо) при каждом из четырех его возможных положений в заранее установленном порядке. Поясним процесс шифрования на примере. Пример 2.1. Пусть в качестве ключа используется решетка , приведенная на рис. 2.1. Рис. 2.1. Зашифруем с ее помощью текст ШИФРРЕШЕТКАЯВЛЯЕТСЯЧАСТНЫМСЛУЧАЕМШИФРАМАРШРУТНОЙПЕРЕСТАНОВКИ Наложив решетку на лист бумаги, вписываем первые 15 (по числу вырезов) букв сообщения: ШИФРРЕШЕТКАЯВЛЯ.... Сняв решетку, мы увидим текст, представленный на рис. 7. Поворачиваем решетку на . В окошечках появятся новые, еще не заполненные клетки. Вписываем в них следующие 15 букв. Получится запись, приведенная на рис. 2.3. Затем переворачиваем решетку на другую сторону и зашифровываем остаток текста аналогичным образом (рис. 2.4,2.5). Рис. 2.2. Рис. 2.3. Рис. 2.4. Рис. 2.5. Получатель сообщения, имеющий точно такую же решетку, без труда прочтет исходный текст, наложив решетку на шифр текст по порядку четырьмя способами. Число возможных трафаретов, то есть количество ключей шифра ``решетка'', составляет . Этот шифр предназначен для сообщений длины . Число всех перестановок в тексте такой длины составит . Однако, уже при размере трафарета , что во много раз больше числа число возможных решеток превосходит 4 миллиарда. 2.2. Шифр вертикальной перестановки Широко распространена разновидность шифра маршрутной перестановки, называемая шифром вертикальной перестановки (ШВП). В нем снова используется прямоугольник, в который сообщение вписывается обычным способом (по строкам слева направо). Выписываются буквы по вертикали, а столбцы при этом берутся в порядке, определяемом ключом. Пример 2.2. Пусть этот ключ таков: (5,1,4,7,2,6,3), и с его помощью надо зашифровать сообщение: ВОТПРИМЕРШИФРАВЕРТИКАЛЬНОЙПЕРЕСТАНОВКИ Впишем сообщение в прямоугольник, столбцы которого пронумерованы в соответствии с ключом: 5 1 4 В О Т Е Р Ш В Е Р Л Ь Н Р Е С В К И 7 П 2 6 3 Р И М Р А К А П Е Н О - - И Ф Т И О Й Т А - - Теперь, выбирая столбцы в порядке, заданном ключом, и выписывая последовательно буквы каждого из них сверху вниз, получаем такую криптограмму: ОРЕЬЕКРФИЙА-МААЕО-ТШРНСИВЕВЛРВИРКПН-ПИТОТ- 3. Многоалфавитные шифры замены с периодическим ключом 3.1 Шифр Виженера Неудобство рассмотренных ранее шифров очевидно, так как в случае использования стандартного алфавита таблица частот встречаемости букв алфавита позволяет определить один или несколько символов, а этого иногда достаточно для вскрытия шифра, поэтому использовались различные приемы, для того чтобы затруднить дешифрование, например, использование “таблицы Виженера”, которая представляет собой квадратную таблицу с числом строк и столбцов, равным количеству букв алфавита. Чтобы зашифровать какое-либо сообщение, выбирают слово – лозунг (например “монастырь”) и надписывают его над сообщением с необходимым повторением. Чтобы получить шифрованный текст, находят очередной знак лозунга, начиная с первого, в вертикальном алфавите, а ему соответствующий знак сообщения в горизонтальном алфавите. На пересечении выделенных столбца и строки находим первую букву шифра. Очевидно, что ключом к такому шифру является используемый лозунг. Пример 1.3. монаст ыр ьмонаст ыр ьмон рас кину л ос ьмореши ро ко ъоюкщяоыиэищобчушкьши Т а б л и ц а Виженера А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е З И И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж И И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Ц Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ч Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ш Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Щ Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Ь Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ъ Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Ход работы: 1. Изучить все представленные шифры 2. Написать программу, реализующую шифр, согласно вашему варианту. Программа должна выполнять как кодирование, так и раскодирование информации; все входные данные должны обрабатываться на ошибки пользователя. 3. Ответить на контрольные вопросы 4. Отчет по лабораторной работе должен быть в электронном виде и содержать краткое описание изученных шифров и код программы согласно варианту задания. Варианты: 1. Шифр Цезаря. Для выполнения используем русский алфавит, буквы строчные. 2. Шифр Цезаря. Для выполнения используем английский алфавит, буквы строчные. 3. Квадрат Полибия. Для выполнения используем русский алфавит, буквы заглавные. Из алфавита формируем прямоугольник размерностью 5х6. Совмещаем буквы е,ё; ь,ъ; и,й 4. Квадрат Полибия. Для выполнения используем английский алфавит, буквы строчные. Из алфавита формируем прямоугольник размерностью 5х5. Совмещаем буквы i, j 5. Лозунговый шифр. Для выполнения используем русский алфавит, буквы строчные 6. Лозунговый шифр. Для выполнения используем английский алфавит, буквы строчные. 7. Парный шифр. Для выполнения используем русский алфавит, буквы строчные 8. Парный шифр. Для выполнения используем английский алфавит, буквы строчные. 9. Решетка Кардано. Для выполнения используем решетку: 10. Решетка Кардано. Для выполнения используем решетку: 11. Шифр вертикальной перестановки. Для выполнения используем строчные буквы русского алфавита. 12. Шифр вертикальной перестановки. Для выполнения используем строчные буквы английского алфавита. 13. Шифр Виженера. Для выполнения работы использовать таблицу, представленную в примере (русский алфавит). 14. Шифр Виженера. Для выполнения работы составить таблицу из английского алфавита. Контрольные вопросы 1. Кодирование текста с помощью шифра Цезаря. 2. Кодирование текста с помощью лозунгового шифра. 3. Кодирование текста с помощью парного шифра. 4. Кодирование текста с помощью шифра “Квадрат Полибия”. 5. Кодирование текста с помощью шифра “Решетка Кардано”. 6. Кодирование текста с помощью шифра вертикальной перестановки. 7. Кодирование текста с помощью шифра Виженера.