
- •Тема 1. Введение в проблемы информационной безопасности 9
- •Тема 2. Криптографические методы защиты информации 30
- •Тема 3. Симметричные криптосистемы 52
- •Тема 4. Асимметричные криптосистемы 81
- •Тема 5. Методы и средства защиты информации от несанкционированного доступа 105
- •Тема 6. Средства защиты от компьютерных вирусов 126
- •Введение
- •Тема 1. Введение в проблемы информационной безопасности
- •1.1. Концептуальная модель информационной безопасности
- •1.1.1. Основные понятия и определения
- •1.1.2. Взаимосвязь понятий в области информационной безопасности
- •1.2. Основные угрозы информационной безопасности и каналы утечки информации
- •1.2.1. Основные виды угроз
- •1.2.2. Каналы утечки информации
- •1.3. Основные виды атак на информацию
- •1.3.1. Атаки доступа
- •1.3.2. Атаки модификации
- •1.3.3. Атаки на отказ в обслуживании
- •1.3.4. Атаки отказа от обязательств
- •1.4. Классификация методов и средств защиты информации
- •1.4.1. Основные методы защиты информации
- •1.4.2. Неформальные средства защиты
- •1.4.3. Формальные средства защиты
- •Вопросы для повторения
- •Резюме по теме
- •Тема 2. Криптографические методы защиты информации
- •2.1. Принципы криптографической защиты информации
- •2.1.1. Шифры
- •2.1.2. Односторонние функции
- •2.1.4. Электронная цифровая подпись
- •2.1.5. Генераторы псевдослучайных последовательностей
- •2.2. Криптоанализ и виды криптоаналитических атак
- •2.3. Основные криптографические преобразования в симметричных криптосистемах
- •2.3.1. Шифры перестановки
- •2.3.2. Шифры замены (подстановки)
- •2.3.3. Шифры гаммирования
- •2.3.4. Композиционные блочные шифры
- •Вопросы для повторения
- •Резюме по теме
- •Тема 3. Симметричные криптосистемы
- •3.1. Сеть Фейстеля
- •3.2. Алгоритм криптографического преобразования данных гост 28147-89
- •3.3. Стандарт шифрования сша нового поколения
- •3.4. Комбинирование блочных шифров
- •3.5. Режимы работы блочных шифров
- •3.5.1. Режим "Электронная кодовая книга"
- •3.5.2. Режим "Сцепление блоков шифртекста"
- •3.5.3. Режим обратной связи по шифртексту
- •3.5.4. Режим обратной связи по выходу
- •3.6. Режимы работы алгоритма криптографического преобразования данных гост 28147-89
- •Вопросы для повторения
- •Резюме по теме
- •Тема 4. Асимметричные криптосистемы
- •4.1. Алгоритмы шифрования с открытым ключом
- •4.1.1. Криптосистема rsa
- •4.1.2. Криптосистемы Диффи-Хеллмана и Эль Гамаля
- •4.1.3. Криптосистема на основе эллиптических кривых
- •4.2. Алгоритмы криптографического хэширования
- •4.2.1. Алгоритм безопасного хэширования
- •4.2.2. Односторонние хэш-функции на основе симметричных блочных алгоритмов
- •4.2.3. Алгоритм хэширования гост р 34.11–94
- •4.3. Алгоритмы электронной цифровой подписи
- •4.3.1. Алгоритм цифровой подписи rsa
- •4.3.2. Алгоритм цифровой подписи Эль Гамаля (egsa)
- •4.3.3. Алгоритм цифровой подписи dsa
- •4.3.4. Алгоритмы электронной цифровой подписи гост р 34.10–94 и гост р 34.10–2001
- •Вопросы для повторения
- •Резюме по теме
- •Тема 5. Методы и средства защиты информации от несанкционированного доступа
- •5.1. Основные понятия концепции защиты от несанкционированного доступа
- •5.2. Идентификация и аутентификация
- •5.2.1 Аутентификация пользователя на основе паролей и процедуры "рукопожатия"
- •5.2.2. Проверка подлинности пользователя по наличию материального аутентификатора
- •5.2.3. Аутентификация пользователя по биометрическим характеристикам
- •5.3. Управление доступом и регистрация доступа к ресурсам асои
- •5.4. Защита информации от несанкционированного доступа в сетях
- •Вопросы для повторения
- •Резюме по теме
- •Тема 6. Средства защиты от компьютерных вирусов
- •6.1. Классификация компьютерных вирусов
- •6.1.1. Файловые вирусы
- •6.1.2. Загрузочные вирусы
- •6.1.3. Макровирусы
- •6.1.4. Сетевые вирусы
- •6.1.5. Прочие вредоносные программы
- •6.2. Методы обнаружения и удаления компьютерных вирусов
- •6.2.1. Профилактика заражения компьютера
- •6.2.2. Использование антивирусных программ
- •6.2.3. Методы обнаружения и удаления неизвестных вирусов
- •Вопросы для повторения
- •Резюме по теме
- •Практикум (лабораторный)
- •Лабораторная работа №1. Программная реализация простых шифров перестановки и замены
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №2. Генерация и исследование псевдослучайных последовательностей. Реализация потокового шифрования данных
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №5. Изучение электронной цифровой подписи и принципов шифрования с открытым ключом с использованием системы pgp
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Рекомендуемая дополнительная литература
- •Глоссарий
Контрольные вопросы к защите
Объясните процесс формирования псевдослучайных чисел с использованием ЛКГ.
Объясните процесс формирования псевдослучайной последовательности с использованием РСЛОС.
Поясните суть монобитного теста.
Поясните суть блочного теста.
Поясните суть теста серий.
Поясните суть теста длин серий.
Объясните процесс отбора псевдослучайных последовательностей по FIPS 140–1.
Опишите особенности реализации шифра гаммирования. В чем состоит его отличие от шифра замены?
Способ оценки результатов
Критерии оценки результатов совпадают с критериями, определенными при описании лабораторной работы №1 в разделе "Способ оценки результатов".
Лабораторная работа №3. Изучение принципов создания блочных шифров на примере алгоритма DES
Целью лабораторной работы является изучение принципов построения блочных шифров, основанных на сети Фейстеля, на примере алгоритма DES.
Требования к содержанию, оформлению и порядку выполнения
Отчет по выполнению лабораторной работы должен содержать: титульный лист, название работы, цель работы и содержательную часть.
В содержательной части отчета по выполнению лабораторной работы требуется привести:
общее описание алгоритма DES;
результаты шифрования сообщения на заданном ключе (сообщение и ключ определяются индивидуальным заданием);
выводы по лабораторной работе.
Теоретическая часть
Самым распространенным и наиболее известным алгоритмом симметричного шифрования является DES (Data Encryption Standard). Алгоритм был разработан в 1977 году, в 1980 году был принят NIST (National Institute of Standards and Technolody США) в качестве стандарта (FIPS PUB 46).
В основу алгоритма DES положена классическая сеть Фейстеля с двумя ветвями (см. раздел 3.1). Он осуществляет шифрование 64-битовых блоков данных с помощью 64-битового ключа, в котором значащими являются 56 бит (остальные 8 бит – проверочные биты для контроля на четность). Обобщенная схема процесса шифрования в алгоритме DES показана на рис. Л3.1. Этот процесс заключается в начальной перестановке битов 64-битового блока, шестнадцати раундах шифрования и, наконец, в конечной перестановке битов.
При описании алгоритма DES применены следующие обозначения:
L и R – последовательности битов (левая (left) и правая (right));
LR – конкатенация последовательностей L и R, т.е. такая последовательность битов, длина которой равна сумме длин L и R; в последовательности LR биты последовательности R следуют за битами последовательности L;
– операция побитового сложения по модулю 2.
Пусть из файла исходного текста считан очередной 64-битовый (8-байтовый) блок Т. Этот блок Т преобразуется с помощью матрицы начальной перестановки IP (табл. Л3.1).
|
Рис. Л3.1. Структура алгоритма DES. |
Таблица Л3.1
Матрица начальной перестановки IP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
Биты входного блока Т (64 бита) переставляются в соответствии с матрицей IP: бит 58 входного блока Т становится битом 1, бит 50 – битом 2 и т.д. Эту перестановку можно описать выражением Т0 = IP(Т). Полученная последовательность битов Т0 разделяется на две последовательности: L0 – левые или старшие биты, R0 – правые или младшие биты, каждая из которых содержит 32 бита.
Затем выполняется итеративный процесс шифрования, состоящий из 16 раундов. Пусть Тi , – результат i-й итерации:
Тi = Li Ri
где Li=t1, t2,…,t32 (первые 32 бита), Ri=t33, t34,…,t64 (последние 32 бита). Тогда результат i-й итерации описывается следующими формулами:
Li = Ri–1, i = 1, 2,…,16;
Ri== Li–1 f(Ri–1, Ki), i = 1, 2,…,16.
Функция f называется функцией шифрования. Ее аргументами являются последовательность Ri–1, получаемая на предыдущем шаге итерации, и 48-битовый раундовый подключ Ki который является результатом преобразования 64-битового ключа шифра К.
На последнем шаге итерации получают последовательности R16 и L16 , которые конкатенируются в 64-битовую последовательность R16 L16.
По окончании шифрования осуществляется восстановление позиций битов с помощью матрицы обратной перестановки IP –1 (табл. Л3.2).
Таблица Л3.2
Матрица обратной перестановки IP –1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
Процесс расшифрования аналогичен процессу шифрования. На входе алгоритма используется зашифрованный текст, который подвергается начальной перестановке IP, затем следуют 16 раундов преобразования, но ключи Ki используются в обратной последовательности: K16 используется на первом раунде, K1 используется на последнем раунде. После последнего раунда процесса расшифрования две половины выхода меняются местами и подвергаются обратной перестановке IP –1. Выходом этой стадии является незашифрованный текст.
Схема вычисления функции шифрования f(Ri–1, Ki) показана на рис. Л3.2.
|
Рис. Л3.2. Схема вычисления функции шифрования f. |
Для вычисления значения функции f используются:
функция E (расширение 32 бит до 48);
функция S1 , S2 ,..., S8 (преобразование 6-битового числа в 4-битовое);
функция P (перестановка битов в 32-битовой последовательности).
Аргументами функции шифрования f являются Ri–1 (32 бита) и Ki (48 бит). Результат функции E(Ri–1) есть 48-битовое число. Функция расширения E, выполняющая расширение 32 бит до 48 (принимает блок из 32 бит и порождает блок из 48 бит), определяется табл. Л3.3.
В соответствии с этой таблицей первые три бита E(Ri–1) – это биты 32, 1 и 2, а последние – 31, 32, 1. Полученный результат складывается по модулю 2 (операция XOR) с текущим значением ключа Ki и затем разбивается на восемь 6-битовых блоков B1 , B2 ,…, B8:
E(Ri–1) Ki.= B1 , B2 ,…, B8 .
Таблица Л3.3
Функция расширения E
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Далее каждый из этих блоков используется как номер элемента в функциях-матрицах (S–блоках): S1 , S2 ,..., S8 , содержащих 4-битовые значения (табл. Л3.4).
Следует отметить, что выбор элемента в матрице Sj , осуществляется достаточно оригинальным образом. Пусть на вход матрицы Sj; поступает 6-битовый блок Bj =b1 b2 b3 b4 b5 b6 , тогда 2-битовое число b1 b6 указывает номер строки матрицы, а 4-битовое число b2 b3 b4 b5 – номер столбца.
Например, если на вход матрицы S1 поступает 6-битовый блок
B1 =b1 b2 b3 b4 b5 b6 = 100110,
то 2-битовое число b1 b6= 10(2)=2(10) указывает строку с номером 2 матрицы S1, а 4-битовое число b2 b3 b4 b5=0011(2)=3(10) – указывает столбец с номером 3 матрицы S1. Это означает, что в матрице S1 блок B1 = 100110 выбирает элемент на пересечении строки с номером 2 и столбца с номером 3, т.е. элемент 8(10) = 1000(2) . Совокупность 6-битовых блоков B1 , B2 ,…, B8 обеспечивает выбор 4-битового элемента в каждой из матриц S1 , S2 ,..., S8.
В результате получаем S1(B1), S2(B2),...,S8(B8), т.е. 32-битовый блок. Этот 32-битовый блок преобразуется с помощью функции перестановки битов P (табл. Л3.5).
Таким образом, функция шифрования есть
f(Ri–1,Ki) = P(S1(B1), S2(B2),…,S8(B8)).
На каждой итерации используется новое значение ключа Ki (длиной 48 бит). Новое значение ключа Ki вычисляется из начального ключа K (рис. Л3.3). Ключ K представляет собой 64-битовый блок с 8 битами контроля по четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64. Для удаления контрольных битов и подготовки ключа к работе используется функция G первоначальной подготовки ключа (табл. Л3.6).
Таблица Л3.6 разделена на две части. Результат преобразования G(K) разбивается на две половины C0 и D0 по 28 бит каждая. Первые четыре строки матрицы G определяют, как выбираются биты последовательности C0 (первым битом C0 будет бит 57 ключа шифра, затем бит 49 и т.д., а последними битами – биты 44 и 36 ключа). Следующие четыре строки матрицы G определяют, как выбираются биты последовательности D0 (т.е. последовательность D0 будет состоять из битов 63, 55, 47, ...,12, 4 ключа шифра).
Таблица Л3.4
Функции преобразования S1 , S2 ,..., S8
|
|
Номер столбца |
||||||||||||||||
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
|
0 |
14 |
4 |
13 |
1 |
2 |
15 |
11 |
8 |
3 |
10 |
6 |
12 |
5 |
9 |
0 |
7 |
|
|
1 |
0 |
15 |
7 |
4 |
14 |
2 |
13 |
1 |
10 |
6 |
12 |
11 |
9 |
5 |
3 |
8 |
S1 |
|
2 |
4 |
1 |
14 |
8 |
13 |
6 |
2 |
11 |
15 |
12 |
9 |
7 |
3 |
10 |
5 |
0 |
|
|
3 |
15 |
12 |
8 |
2 |
4 |
9 |
1 |
7 |
5 |
11 |
3 |
14 |
10 |
0 |
6 |
13 |
|
|
0 |
15 |
1 |
8 |
14 |
6 |
11 |
3 |
4 |
9 |
7 |
2 |
13 |
12 |
0 |
5 |
10 |
|
|
1 |
3 |
13 |
4 |
7 |
15 |
2 |
8 |
14 |
12 |
0 |
1 |
10 |
6 |
9 |
11 |
5 |
S2 |
|
2 |
0 |
14 |
7 |
11 |
10 |
4 |
13 |
1 |
5 |
8 |
12 |
6 |
9 |
3 |
2 |
15 |
|
|
3 |
13 |
8 |
10 |
1 |
3 |
15 |
4 |
2 |
11 |
7 |
6 |
12 |
0 |
5 |
14 |
9 |
|
Н |
0 |
10 |
0 |
9 |
14 |
6 |
3 |
15 |
5 |
1 |
13 |
12 |
7 |
11 |
4 |
2 |
8 |
|
о |
1 |
13 |
7 |
0 |
9 |
3 |
4 |
6 |
10 |
2 |
8 |
5 |
14 |
12 |
11 |
15 |
1 |
S3 |
м |
2 |
13 |
6 |
4 |
9 |
8 |
15 |
3 |
0 |
11 |
1 |
2 |
12 |
5 |
10 |
14 |
7 |
|
е |
3 |
1 |
10 |
13 |
0 |
6 |
9 |
8 |
7 |
4 |
15 |
14 |
3 |
11 |
5 |
2 |
12 |
|
р |
0 |
7 |
13 |
14 |
3 |
0 |
6 |
9 |
10 |
1 |
2 |
8 |
5 |
11 |
12 |
4 |
15 |
|
|
1 |
13 |
8 |
11 |
5 |
6 |
15 |
0 |
3 |
4 |
7 |
2 |
12 |
1 |
10 |
14 |
9 |
S4 |
|
2 |
10 |
6 |
9 |
0 |
12 |
11 |
7 |
13 |
15 |
1 |
3 |
14 |
5 |
2 |
8 |
4 |
|
|
3 |
3 |
15 |
0 |
6 |
10 |
1 |
13 |
8 |
9 |
4 |
5 |
11 |
12 |
7 |
2 |
14 |
|
|
0 |
2 |
12 |
4 |
1 |
7 |
10 |
11 |
6 |
8 |
5 |
3 |
15 |
13 |
0 |
14 |
9 |
|
с |
1 |
14 |
11 |
2 |
12 |
4 |
7 |
13 |
1 |
5 |
0 |
15 |
10 |
3 |
9 |
8 |
6 |
S5 |
т |
2 |
4 |
2 |
1 |
11 |
10 |
13 |
7 |
8 |
15 |
9 |
12 |
5 |
6 |
3 |
0 |
14 |
|
р |
3 |
11 |
8 |
12 |
7 |
1 |
14 |
2 |
13 |
6 |
15 |
0 |
9 |
10 |
4 |
5 |
3 |
|
о |
0 |
12 |
1 |
10 |
15 |
9 |
2 |
6 |
8 |
0 |
13 |
3 |
4 |
14 |
7 |
5 |
11 |
|
к |
1 |
10 |
15 |
4 |
2 |
7 |
12 |
9 |
5 |
6 |
1 |
13 |
14 |
0 |
11 |
3 |
8 |
S6 |
и |
2 |
9 |
14 |
15 |
5 |
2 |
8 |
12 |
3 |
7 |
0 |
4 |
10 |
1 |
13 |
11 |
6 |
|
|
3 |
4 |
3 |
2 |
12 |
9 |
5 |
15 |
10 |
11 |
14 |
1 |
7 |
6 |
0 |
8 |
13 |
|
|
0 |
4 |
11 |
2 |
14 |
15 |
0 |
8 |
13 |
3 |
12 |
9 |
7 |
5 |
10 |
6 |
1 |
|
|
1 |
13 |
0 |
11 |
7 |
4 |
9 |
1 |
10 |
14 |
3 |
5 |
12 |
2 |
15 |
8 |
6 |
S7 |
|
2 |
1 |
4 |
11 |
13 |
12 |
3 |
7 |
14 |
10 |
15 |
6 |
8 |
0 |
5 |
9 |
2 |
|
|
3 |
6 |
11 |
13 |
8 |
1 |
4 |
10 |
7 |
9 |
5 |
0 |
15 |
14 |
2 |
3 |
12 |
|
|
0 |
13 |
2 |
8 |
4 |
6 |
15 |
11 |
1 |
10 |
9 |
3 |
14 |
5 |
0 |
12 |
7 |
|
|
1 |
1 |
15 |
13 |
8 |
10 |
3 |
7 |
4 |
12 |
5 |
6 |
11 |
0 |
14 |
9 |
2 |
S8 |
|
2 |
7 |
11 |
4 |
1 |
9 |
12 |
14 |
2 |
0 |
6 |
10 |
13 |
15 |
3 |
5 |
8 |
|
|
3 |
2 |
1 |
14 |
7 |
4 |
10 |
8 |
13 |
15 |
12 |
9 |
0 |
3 |
5 |
6 |
11 |
|
Таблица Л3.5
Функция перестановки битов P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
|
Рис. Л3.3. Схема алгоритма вычисления ключей. |
Таблица Л3.6
Функция G первоначальной подготовки ключа
(переставленная выборка 1)
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
Как видно из табл. Л3.6, для генерации последовательностей C0 и D0 не используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут служить для других целей (например, для контроля по четности). Таким образом, в действительности ключ шифра является 56-битовым.
После определения C0 и D0 рекурсивно определяются Ci и Di, i=1, 2,…,16. Для этого применяются операции циклического сдвига влево на один или два бита в зависимости от номера шага итерации, как показано в табл. Л3.7.
Таблица Л3.7
Таблица сдвигов для вычисления ключа
Номер итерации |
Количество сдвигов влево |
Номер итерации |
Количество сдвигов влево |
1 |
1 |
9 |
1 |
2 |
1 |
10 |
2 |
3 |
2 |
11 |
2 |
4 |
2 |
12 |
2 |
5 |
2 |
13 |
2 |
6 |
2 |
14 |
2 |
7 |
2 |
15 |
2 |
8 |
2 |
16 |
1 |
Операции сдвига выполняются для последовательностей Ci и Di независимо. Например, последовательность C3 получается посредством циклического сдвига влево на две позиции последовательности C2 , а последовательность D3 – посредством сдвига влево на две позиции последовательности D2 , C16 и D16 получаются из C15 и D15 посредством сдвига влево на одну позицию.
Ключ Ki , определяемый на каждом шаге итерации, есть результат выбора конкретных битов из 56-битовой последовательности Ci Di и их перестановки. Другими словами, ключ Ki = H(Ci Di ), где функция Н определяется матрицей, завершающей обработку ключа (табл. Л3.8).
Таблица Л3.8
Функция Н завершающей обработки ключа
(переставленная выборка 2)
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
Как следует из табл. Л3.8, первым битом ключа Ki будет 14-й бит последовательности Ci Di , вторым – 17-й бит, 47-м битом ключа Ki , будет 29-й бит Ci Di , а 48-м битом – 32-й бит Ci Di.