
- •153003, Г. Иваново, ул. Рабфаковская, 34
- •Введение
- •Лабораторная работа №1. Шифрование простой подстановкой и перестановкой. Генераторы псевдослучайных чисел, гаммирование
- •Перестановки
- •Обратимые операции
- •Гаммирование
- •Задания
- •Лабораторная работа №2. Дешифрование, частотный анализ. Маскировка длины символа Дешифрование
- •Частотный анализ
- •Маскировка длины символа
- •Выполнение битовых операций
- •Сжатие методом Хаффмана
- •Задания
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Ивановский государственный энергетический университет имени В. И. Ленина»
Кафедра программного обеспечения компьютерных систем
Основы криптографии
Методические указания к лабораторным работам № 1,2 по курсу «Методы и средства защиты информации»
Иваново 2004
Составитель Е. Б. ИГНАТЬЕВ
Редактор В. А. ГУСЕВ
Цель настоящих методических указаний – помочь студентам выполнить лабораторные работы по курсу «Методы и средства защиты информации».
Методические указания предназначены для студентов IV курса направления «Информатика и вычислительная техника».
Методические указания утверждены цикловой методической комиссией факультета информатики и вычислительной техники
Рецензент
кафедра программного обеспечения компьютерных систем ГОУ ВПО «Ивановский государственный энергетический университет»
ОСНОВЫ КРИПТОГРАФИИ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ № 1,2 ПО КУРСУ «МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ ИНФОРМАЦИИ»
Составитель Игнатьев Евгений Борисович
Редактор Н.С. Работаева
Лицензия ИД № 05285 от 4 июля 2001 г.
Подписано в печать 4.11.04. Формат 60х84 1/16.
Печать плоская. Усл. печ. л. 1,39.
Тираж 50. Заказ № .
ГОУ ВПО «Ивановский государственный энергетический университет»
153003, Г. Иваново, ул. Рабфаковская, 34
Отпечатано в РИО ИГЭУ
Введение
Криптография является одним из наиболее мощных средств обеспечения конфиденциальности и контроля целостности информации.
В криптографической терминологии исходный текст именуют открытым текстом (plaintext или clear text). Чтобы скрыть смысл исходного текста применяются два типа преобразований: кодирование и шифрование.
Для кодирования (encode) используются кодировочные книги или таблицы, содержащие наборы часто используемых фраз. Каждой из этих фраз соответствует произвольно выбранное кодовое слово, которое чаще всего задается набором цифр. Для декодирования (decoding) требуется такая же книга или таблица.
Шифрование, или зашифрование (encryption), представляет собой процедуру преобразования открытого текста в зашифрованное сообщение, или шифротекст (cipher text). Процесс, при котором из шифротекста извлекается открытый текст, называют расшифрованием (decryption). Обычно в процессе шифрования и расшифрования используется некий ключ и алгоритм обеспечивает, что расшифрование можно сделать, лишь зная этот ключ.
Ключ – конкретное секретное состояние некоторого параметра (параметров), обеспечивающее выбор одного преобразования из совокупности возможных для используемого метода шифрования.
Ключ не зависит от шифруемого сообщения. Изменение ключа должно приводить к изменению зашифрованного сообщения.
Незашифрованное сообщение будем обозначать символом P (от слова plaintext). Зашифрованное сообщение будем обозначать символом С (от слова chiphertext).
Безопасность, обеспечиваемая традиционной криптографией, зависит от нескольких факторов.
Во-первых, криптографический алгоритм должен быть достаточно сильным, чтобы передаваемое зашифрованное сообщение невозможно было расшифровать без ключа, используя только различные статистические закономерности зашифрованного сообщения или какие-либо другие способы его анализа.
Во-вторых, безопасность передаваемого сообщения должна зависеть от секретности ключа, но не от секретности алгоритма. Алгоритм должен быть проанализирован специалистами, чтобы исключить наличие слабых мест, при которых плохо скрыта взаимосвязь между незашифрованным и зашифрованным сообщениями. К тому же при выполнении этого условия производители могут создавать дешевые аппаратные чипы и свободно распространяемые программы, реализующие данный алгоритм шифрования.
В-третьих, алгоритм должен быть таким, чтобы нельзя было узнать ключ, даже зная достаточно много пар (зашифрованное сообщение, незашифрованное сообщение), полученных при шифровании с использованием данного ключа.
Лабораторная работа №1. Шифрование простой подстановкой и перестановкой. Генераторы псевдослучайных чисел, гаммирование
Было доказано, что в криптографии существуют только два основных типа преобразований – замены и перестановки.
Перестановки
В простейших перестановочных шифрах символы открытого текста изменяют свое местоположение. Например, в шифрах колонной замены. Открытый текст построчно вписывается в матрицу с нумерованными столбцами. Столбцы переставляются в соответствии с заданной последовательностью. Затем текст считывается опять построчно.
К перестановочным шифрам принадлежат такие шифры, как «маршрутная транспозиция», «решетка Кардано» и т.п.
Замены
Шифрование методом замены (подстановки) основано на алгебраической операции, называемой подстановкой. Подстановкой называется взаимно однозначное отображение некоторого конечного множества М на себя.
В шифрах замены символ открытого текста заменяется одним или несколькими символами зашифрованного текста.
В криптографии рассматриваются четыре типа подстановки (замены): моноалфавитная, гомофоническая, полиалфавитная и полиграммная.
Моноалфавитная подстановка
Такие подстановки называются прямыми подстановками или простой замены.
При моноалфавитной замене каждой букве алфавита открытого текста ставится в соответствие одна буква шифротекста из этого же алфавита.
Преобразование может быть задано с помощью таблицы подстановки или формулой, например:
C = (aP + s) mod N ,
где P – код символа исходного текста;
C – код символа зашифрованного текста;
N – количество символов в алфавите;
a – десятичный коэффициент (a и N не должны иметь общих делителей);
s – коэффициент сдвига.
Пpимеp1.
Открытый текст: "ШИФРОВАНИЕ_ЗАМЕНОЙ".
Подстановка задана таблицей:
Алфавит открытого текста: А Б В Г Д …
Алфавит шифротекста: _ Я Ю Э Ь …
Шифротекст: "ИШМРТЮ_УШЫАЩ_ФЫУТЧ".
Этот шифр легко поддается частотному анализу встречаемости символов и пар символов.
Гомофоническая подстановка
Гомофоническая замена одному символу открытого текста ставит в соответствие несколько символов шифротекста. Этот метод применяется для искажения статистических свойств шифротекста.
Пример 2.
Открытый текст: "ЗАМЕНА".
Подстановка задана таблицей:
Алфавит открытого текста: А Б … Е Ж З ... М Н ...
17 23 … 97 47 76 … 32 55 …
Алфавит шифротекста: 31 44 … 51 67 19 … 28 84 …
48 63 … 15 33 59 … 61 34…
Шифротекст: "76 17 32 97 55 31".
Таким образом, при гомофонической замене каждая буква открытого текста заменяется по очереди цифрами соответствующего столбца.
Полиалфавитная подстановка
Полиалфавитная подстановка использует несколько алфавитов шифротекста. Пусть используется k алфавитов. Тогда открытый текст:
Х=x1x2… xkxk+1… x2kx2k+1…
заменяется шифротекстом:
Y=f1(x1)f2(x2)… fk(xk)f1(xk+1)… fk(x2k)f1(x2k+1)…
где fi(xj) означает символ шифротекста i-го алфавита для символа открытого текста xj.
Пример 3.
Открытый текст: "ЗАМЕНА", k=3.
Подстановка задана таблицей из примера 2.
Шифротекст: "76 31 61 97 84 48".
К полиалфавитным подстановкам относится шифр Вижинера, в котором шифрование выполняется по формуле
Ci = (Pi + Kj) mod N ,
где Pi – код i-го символа открытого текста в алфавите
(0 >= Pi >= N-1, 0 >= i >= M-1);
M – число символов открытого текста;
Ci – код i-го символа зашифрованного текста в алфавите
(0 >= Ci >= N-1);
N – количество символов в алфавите;
Kj – код j-го символа ключа (j = i mod L; 0 >= j >= L-1);
L – длина ключа.
Таблица кодов символов алфавита:
_ |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
К |
Л |
М |
Н |
О |
П |
Р |
С |
Т |
У |
Ф |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
Х |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
Пример 4.
Открытый текст: "ЗАМЕНА".
Ключ: "КЛЮЧ".
L=4; M=6.
З |
А |
М |
Е |
Н |
А |
К |
Л |
Ю |
Ч |
К |
Л |
С0 = 8 + 11 (mod 33) = 19 → Т
С1 = 1 + 12 (mod 33) = 13 → М
С2 = 13+ 31 (mod ЗЗ) = 11 → К
С3 = 6 + 24 (mod 33) = 30 → Э
С4 = 14+11 (mod 33) = 25 → Ш
С5 = 1 +12 (mod 33) = 13 → М
Шифротекст: "ТМКЭШМ".
Шифры Бофора (также полиалфавитные) используют формулы:
уi = ki - xi (mod n) и yi = xi - ki (mod n).
Полиграммная подстановка
Полиграммная замена формируется из одного алфавита с помощью специальных правил. В качестве примера рассмотрим шифр Плэйфера.
В этом шифре алфавит располагается в матрице. Открытый текст разбивается на пары символов XiXi+1. Каждая пара символов открытого текста заменяется на пару символов из матрицы следующим образом:
1) если символы находятся в одной строке, то каждый из символов пары заменяется на стоящий правее его (за последним символом в строке следует первый);
2) если символы находятся в одном столбце, то каждый символ пары заменяется на символ, расположенный ниже его в столбце (за последним нижним символом следует верхний);
3) если символы пары находятся в разных строках и столбцах, то они считаются противоположными углами прямоугольника. Символы заменяются на символы, находящиеся в тех же столбцах, но соответствующие другим углам прямоугольника;
4) если в открытом тексте встречаются два одинаковых символа подряд, то перед шифрованием между ними вставляется специальный символ (например, тире).
Пример 5.
Открытый текст: "ШИФР_ПЛЭЙФЕРА".
Матрица алфавита:
А |
Х |
Б |
М |
Ц |
В |
Ч |
Г |
Н |
Ш |
Д |
О |
Е |
Щ |
, |
Х |
У |
П |
. |
З |
Ъ |
Р |
И |
Й |
С |
Ь |
К |
Э |
Т |
Л |
Ю |
Я |
_ |
Ы |
Ф |
- |
Шифротекст: "РДЫИ,-СТ-И.ХЧС"