
- •Теория алгоритмов методические указания для самостоятельной подготовки к контролю знаний
- •«Компьютерные науки»
- •С о д е р ж а н и е
- •Перечень тем
- •Тема 1 Шифры перестановки. Разновидности реализации шифров перестановки Краткие теоретические сведения
- •1 Шифр сцитала
- •2 Шифр вертикальной перестановки
- •3 Шифр поворотной решетки
- •4 Шифры с использованием магичных квадратов
- •5 Перестановка бит
- •Задание
- •Варианты заданий темы 1 для самостоятельной подготовки
- •Вопросы по теории темы 1 для самостоятельной подготовки
- •Тема 2 Шифры простой замены. Разновидности реализации шифров простой замены Краткие теоретические сведения
- •Варианты реализации шифров простой замены
- •1 Система шифрования Цезаря
- •2 Афинная система подстановок
- •3 Лозунговый шифр
- •4 Шифровальный квадрат Полибия
- •5 Шифровальная таблица Трисемуса
- •4Х8 «Сколько волка ни корми, он все в лес глядит »
- •Задание
- •Варианты заданий темы 2 для самостоятельной подготовки
- •Вопросы по теории темы 2 для самостоятельной подготовки
- •Тема 3 Шифры сложной замены. Разновидности реализации шифров сложной замены Краткие теоретические сведения
- •1 Биграммный шифр Плейфейера
- •2 Шифр с использованием омофонов
- •3 Шифр Гронсфельда
- •4 Система шифрования Вижинера
- •5 Шифр «Двойной квадрат Уитстона»
- •Задание
- •Варианты заданий темы 3 для самостоятельной подготовки
- •Вопросы по теории темы 3 для самостоятельной подготовки
- •Приложение
- •Открытое распределение ключей
- •Протокол обмена ключами Диффи–Хеллмана
- •Варианты заданий 2 темы 5 для самостоятельной подготовки
- •Задание 2
- •Решение Алгоритм решения задачи следующий:
- •Варианты заданий 1, 2 темы 6 для самостоятельной подготовки
- •Вопросы по теории темы 6 для самостоятельной подготовки
- •Варианты задания 1 темы 7 для самостоятельной подготовки
- •Литература
1 Шифр сцитала
Одним из первых приспособлений для шифрования, описание которого дошло до нас, был жезл – сцитала, который использовался во время войны Спарты с Афинами в v столетии до н.э. Это устройство представляло собой цилиндр определенного диаметра, на который наматывалась без просветов и нахлестов узкая лента папируса. На этой ленте, как на листе вдоль оси цилиндра записывали обычным способом исходный текст. После этого лента снималась с цилиндра и отправлялась адресату(шифротекст можно было прочесть только намотав ленту на такой же по диаметру цилиндр). По сути, это один из вариантов практической реализации шифра маршрутной перестановки, в котором геометрическая фигура – прямоугольник, размеры которого по количеству строк определяются диаметром цилиндра, а по количеству столбцов – длиной ленты (общее количество клеток должно быть не меньше n , где n – длина исходного текста). Начало маршрутов шифрования и дешифрации совпадают – начало ленты (верхний левый угол прямоугольника), а маршруты следующие: шифрования – по строкам слева направо; дешифрации – по столбцам сверху вниз. Если оценить возможные размеры цилиндра и высоту шрифта, то верхняя оценка числа перестановок (количества ключей) вряд ли превышает 100.
2 Шифр вертикальной перестановки
Распространенной разновидностью шифра маршрутной перестановки является шифр вертикальной перестановки. В нем в качестве геометрической фигуры используют прямоугольную таблицу размера m х k , в который исходный текст вписывают построчно слева направо (или – 1-я строка – слева направо, 2-я строка – справа налево и т.д.). Для получения шифротекста считывание таблицы выполняют по столбцам, причем порядок считывания столбцов обусловлен ключом. Число таких ключей не превышает k!, где k – число столбцов прямоугольника. Ключ представляет собой некоторую последовательность из k неповторяющихся чисел, которую для простоты запоминания можно получить из легко запоминаемого слова или фразы. Существует много способов получения ключа из фразы. Наиболее простой – приписать каждой букве слова (или фразы) ее порядковый номер в алфавите естественного языка (повторяющиеся буквы в цифровую последовательность включить один раз после первого появления), а затем первым k1 числам этой последовательности поставить в соответствие k первых чисел натурального ряда, например по следующему принципу: наименьшему из чисел последовательности k1 – 1, следующему за ним – 2 и т.д., наибольшему – k. В результате таких действий образуется один из вариантов перестановки степени k(ключ), который определит порядок считывания столбцов для получения шифротекста, порядок заполнения столбцов при дешифрации, и который легко запомнить.
Для обеспечения дополнительной секретности можно повторно зашифровать полученный шифротекст перестановкой строк. Такой метод шифрования называют двойной перестановкой. В этом случае для восстановления исходного текста понадобится два ключа и обратная последовательность действий: на первом этапе восстанавливают порядок строк, затем в полученной таблице восстанавливают порядок столбцов и только после этого построчно считывают исходный текст. Число ключей в случае двойной перестановки составляет T = m!k!, а длина исходного текста составит n = mk. Число всех перестановок в тексте такой длины составит (mk)!, что существенно больше числа ключей T.