Вы находитесь на странице: 1из 8

Министерство образования и науки Украины

Одесский национальный политехнический университет

Кафедра СПО

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторной работе № 1
по курсу «Безопасность программ и данных» для студентов 3-го курса специальности 121
– Инженерия программного обеспечения

Тема: «Простые методы шифрования\дешифрования.


Методы перестановки»

Одесса 2021
Методические указания к лабораторной работе «Простые методы шифрования\дешиф-
рования. Методы перестановки» по курсу «Безопасность программ и данных» для
студентов 3-го курса специальности 121 – Инженерия программного обеспечения /
Составитель: доц. Паулин О.Н. – Одесса: ОНПУ, 2021. – 8 с.
Введение

Сокрытие важного текста зародилось в глубокой древности, причём были придуманы


весьма хитроумные способы такого сокрытия (шифрования).
В средние века многие секреты использования шифров были утеряны. С начала эпохи
Возрождения (конец XIV века) начинает возрождаться и криптография.
Наряду с традиционными применениями криптографии в политике, дипломатии и
военном деле появляются и другие задачи – защита интеллектуальной собственности от
преследований инквизиции или заимствований злоумышленников.
В разработанных шифрах перестановки того времени применяются шифрующие
таблицы (ШТ), которые по сути задают правила перестановки букв в сообщении.
В качестве ключа в шифрующих таблицах используются:
• размер таблицы;
• слово или фраза, задающие перестановку;
• особенности структуры таблицы.
Большинство средств защиты информации базируется на использовании криптогра-
фических шифров и процедур\алгоритмов шифрования-расшифрования. Согласно стандарту
ГОСТ 28147-89 под шифром понимают совокупность обратимых преобразований множества
открытых данных на множество зашифрованных данных, задаваемых ключом и алгоритмом
криптографического преобразования.
Ключ – это конкретное секретное состояние некоторых параметров алгоритма
криптографического преобразования данных, обеспечивающее выбор только одного варианта
из всех возможных для данного алгоритма.
Криптоалгоритм (просто алгоритм) – последовательность относительно простых
действий (операций), осуществляемых по определённой схеме.
Основной характеристикой шифра является криптостойкость, которая определяет его
устойчивость к раскрытию методами криптоанализа. Обычно эта характеристика определя-
ется интервалом времени, необходимым для раскрытия шифра.
К шифрам, используемым для криптографической защиты информации, предъявляется
ряд требований:
• достаточная криптостойкость (надежность закрытия данных);
• простота процедур шифрования и расшифрования;
• незначительная избыточность информации за счет шифрования;
• нечувствительность к небольшим ошибкам шифрования и др.
В той или иной степени этим требованиям отвечают:
• шифры перестановок;
• шифры подстановок (замены);
• шифры гаммирования.
Шифрование перестановкой заключается в том, что символы шифрованного текста
переставляются по определенному правилу в пределах некоторого блока этого текста. При
достаточной длине блока, в рамках которого осуществляется перестановка, и сложном
порядке перестановки, который не повторяется, можно достичь приемлемой для простых
практических приложений стойкости шифра.
Шифрование подстановкой заключается в том, что символы шифрованного текста
заменяются символами того же или другого алфавита в соответствии с заранее оговоренной
схемой замены.
Шифрование гаммированием заключается в том, что символы шифрованного текста
состоят из символов некоторой случайной последовательности, именуемой гаммой шифра.
Устойчивость шифрования определяется в основном длиной (периодом) части гаммы шифра,
которая не повторяется. Поскольку с помощью ЭВМ можно генерировать практически
бесконечное гамму шифра, то данный способ является одним из основных для шифрования
информации в автоматизированных системах.
Целью данной лабораторной работы является освоение простейших методов
шифрования\дешифрования текста, т.е. методов перестановки.

Теоретические положения
Теоретические сведения и положения приведены в [1, 2].
Одним из самых примитивных табличных шифров перестановки является простая
перестановка, для которой ключом служит размер таблицы. Например, сообщение
КАФЕДРА СПО – ЛУЧШЕ ВСЕХ КАФЕДР ИКС
записывается в таблицу поочередно по столбцам. Результат заполнения таблицы из 5-и строк
и 7-и столбцов показан в табл. 1.

Таблица 1 – Заполнение таблицы из 5 строк и 7 столбцов


К Р О Ш Е Ф И

А А - Е Х Е К

Ф _ Л _ _ Д С

Е С У В К Р _

Д П Ч С А _ _

После заполнения таблицы текстом сообщения по столбцам для формирования шифр-


текста считывают содержимое таблицы по строкам. Если шифртекст для удобства приёма
записывать группами по пять букв (в случае передачи сообщения азбукой Морзе),
получается такое шифрованное сообщение:
КРОШЕ ФИАА- ЕХЕКФ _Л__Д СЕСУВ КР_ДП ЧСА__
Естественно, отправитель и получатель сообщения должны заранее условиться об
общем ключе в виде размера таблицы. Следует заметить, что объединение букв шифртекста
в 5-буквенные группы не входит в ключ шифра и осуществляется для удобства записи
несмыслового текста. При расшифровании действия выполняют в обратном порядке:
записывают шифртест слева-направо, сверху-вниз в таблицу необходимой размерности по
строкам и считывают текст по столбцам сверху-вниз, слева-направо.
ВАЖНО! Длинный текст разбивается на блоки, каждый из которых покрывается своей
ШТ. Последняя ШТ может иметь много незаполненных клеток, они заполняются пробелами.
Каждый блок обрабатывается отдельно.

4.1.2 Одиночная перестановка по ключу


Несколько большей стойкостью к раскрытию обладает метод шифрования, называемый
одиночная перестановка по ключу. Этот метод отличается от предыдущего тем, что столбцы
таблицы переставляются по ключевому слову, фразе или по набору цифр длиной в строку
таблицы. Применим в качестве ключа, например, кодовое слово 3126457
Текст сообщения возьмем из предыдущего примера, сообщение
КАФЕДРА СПО – ЛУЧШЕ ВСЕХ КАФЕДР.
В табл. 2 показано заполнения текстом сообщения и ключевым кодовым словом.
Таблиц 2 - Заполнение таблицы ключевым словом и текстом
3 1 2 6 4 5 7

К Р О Ш Е Ф И

А А - Е Х Е К

Ф _ Л _ _ Д С

Е С У В К Р _

Д П Ч С А _ _

Алгоритм шифрования включает в себя следующие шаги.


Шаг 1. Взять шифрующую таблицу некоторой размерности (может быть открытым значению).
Шаг 2. Буквы открытого текста заносятся в таблицу по столбцам сверху-вниз, слева-направо.
Шаг 3. Каждый столбец нумеруется в соответствии со значением ключа
Шаг 4. Столбцы таблицы сортируются в соответствии с порядковым номером.
Шаг 5. Из таблицы считываются буквы по строкам слева-направо, сверху-вниз и формируется шифр-
текст.
В табл. 3 представлено содержимое таблицы после шага 4.

Таблица 3 - Перестановка столбцов таблицы


1 2 3 4 5 6 7

Р О К Е Ф Ш И

А _ А Х Е Е К

_ Л Ф _ Д _ С

С У Е К Р В _

П Ч Д А _ С _

После шага 5 шифртекст будет иметь значение


РОКЕФ ШИА_А ХЕЕК_ ЛФ_Д_ ССУЕК РВ_ПЧ ДА_С_
Алгоритм расшифровки имеет следующие шаги.
Шаг 1. Взять ШТ некоторой размерности (может быть с открытым значением).
Шаг 2. Буквы шифртекста заносятся в таблицу по строкам слева-направо, сверху-вниз.
Шаг 3. В соответствии со значением элементов ключа выполняется перестановка
столбцов между собой по следующему правилу: i-й столбец таблицы переходит на
позицию, которую имеет элемент ключа со значением i.
Шаг 4. Из таблицы считываются буквы по столбцам сверху-вниз, слева-направо и
формируется открытый текст.

4.1.3 Двойная перестановка по ключу


Для обеспечения дополнительной скрытности можно повторно зашифровать
сообщение, которое уже прошло шифрование методом "одиночная перестановка по ключу".
Метод шифрования, который в ШТ переставляет в нужном порядке столбцы и строки,
называется двойной перестановкой.
В случае двойной перестановки столбцов и строк таблицы перестановки определяются
отдельно для столбцов и отдельно для строк с использованием двух ключи. один – для
столбцов, второй – для строк.
Алгоритм шифрования имеет следующие шаги.
Шаг 1. Взять ШТ некоторой размерности (может быть открытым значением).
Шаг 2. Буквы открытого текста заносятся в таблицу по столбцам сверху-вниз, слева-
направо.
Шаг 3. Каждый столбец нумеруется в соответствии со значением первого ключа.
Шаг 4. Каждая строка нумеруется в соответствии со значением второго ключа.
Шаг 5. Столбцы\строки таблицы перемешиваются в соответствии с порядковым номером.
Шаг 6. Из таблицы считываются буквы по строкам слева-направо, сверху-вниз и
формируется шифртекст одного блока.
Для примера возьмем прошлое сообщение. В качестве ключа возьмем: первый ключ –
3126457, второй ключ – 32154.
В табл. 4 показано заполнение ШТ текстом сообщения и ключевым кодовым словом.

Таблица 4 – Заполненне ключевым словом и текстом


3 1 2 6 4 5 7

3 К Р О Ш Е Ф И

2 А А - Е Х Е К

1 Ф _ Л _ _ Д С

5 Е С У В К Р _

4 Д П Ч С А _ _

В табл. 5 представлено содержание ШТ после шага 5.

Таблица 5 – Перестановка столбцов таблицы


1 2 3 4 5 6 7

3 Р О К Е Ф Ш И

2 А _ А Х Е Е К

1 _ Л Ф _ Д _ С

5 С У Е К Р В _

4 П Ч Д А _ С _

В табл. 6 представлено содержание таблицы после шага 6.

Таблица 6 – Перестановка строк таблицы


1 2 3 4 5 6 7

1 _ Л Ф _ Д _ С
2 А _ А Х Е Е К

3 Р О К Е Ф Ш И

4 П Ч Д А _ С _

5 С У Е К Р В _

По завершению работы алгоритма шифртекст будет иметь значение


 _ЛФ_Д _СА_А ХЕЕКР ОКЕФШ ИПЧДА _С_СУ ЕКРВ_
Алгоритм расшифровки имеет следующие шаги.
Шаг 1. Взять шифрующую таблицу некоторой размерности (может быть открытым
значением).
Шаг 2. Буквы шифртекст заносятся в таблицу по строкам слева направо, сверху-вниз.
Шаг 3. В соответствии со значением элементов ключа выполняется перестановка строк
между собой по следующему правилу: i-я строка таблицы переходит на позицию, которую
имеет элемент второго ключа со значением i
Шаг 4. В соответствии со значением элементов ключа выполняется перестановка столбцов
между собой по следующему правилу: i-й столбец таблицы переходит на позицию, которую
имеет элемент первого ключа со значением i
Шаг 5. Из таблицы считываются буквы по столбцам сверху-вниз, слева-направо и
формируется открытый текст одного блока.
Шаг 6. Аналогично поступаем с последующими блоками; шифротекст выстраивается в
последовательность, строка за строкой.

Оценка сложности шифра


Определение числа вариантов для таблицы при двойной перестановке (строк и столбцов)
производится по формуле
Nтабл = Nстл*Nстр = (m!)*(n!),
где m, n – соответственно число строк и столбцов.
Число вариантов двойной перестановки быстро возрастает при увеличении размера
таблицы:
• для таблицы 3x3 – 36 вариантов;
• для таблицы 4x4 – 576 вариантов;
• для таблицы 5x7 – 604 800 вариантов.

Задания для самостоятельной работы


1. Выбрать номер варианта по формуле Nвар = Nсп mod3 + 1, где Nсп – номер студента в
списке его группы и выбрать ключ шифра (размерность ШТ) из таблицы

Номер варианта Nвар 1 2 3


Ключ шифра 6х8 7х7 8х6

2. Используя словесные описания рассмотренных алгоритмов, написать последовательно


программы: сначала без ключа, далее с одним ключом, потом с двумя ключами (ключи –
произвольные) и каждый раз отлаживая их.
3. Заполнить 2 таблицы собственным текстом, состоящим из 95 символов, распределив их на
2 блока. Использовать русский алфавит (32 буквы, е и ё обозначаются одинаково), цифры от
0 до 9, все знаки препинания: {. , ; - : ! ?}, а также символ пробела ‘_’ .
4. Определите для своего задания число возможных вариантов заполнения ШТ.
Оформление протокола
Протокол должен содержать:
 Титульный лист
 Цель работы
 Краткие теоретические сведения
 Скриншоты результатов
 Выводы
 Ответы на контрольные вопросы
 Приложение – листинги программ

Контрольные вопросы
1. Для чего нужно и что представляет собой шифрование\дешифрование?
2. Какие требования предъявляются к шифрам, используемым для криптографической
защиты информации? Какие шифры отвечают этим требованиям?
3. Можно ли переставлять шаги в представленных алгоритмах? Ответ обосновать!
4. Можно ли заполнять ШТ случайным образом? Ответ обосновать!
5. Каковы недостатки рассмотренных методов шифрования\дешифрования?

Список литературы
1. Конспект лекций А.А. Блажко – см. el.opu.ua
2. Конспект лекций – файл БПД_Конспект_Лекций
3. Справочник по математике, раздел «комбинаторика».