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