- •Тема 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
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Рекомендуемая дополнительная литература
- •Глоссарий
3.2. Алгоритм криптографического преобразования данных гост 28147-89
В нашей стране установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отдельных вычислительных комплексах и ЭВМ, который определяется ГОСТ 28147-89. Стандарт обязателен для организаций, предприятий и учреждений, применяющих криптографическую защиту, хранимых и передаваемых в сетях ЭВМ, в отдельных вычислительных комплексах и ЭВМ.
Этот алгоритм предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. Он представляет собой 64-битовый блочный алгоритм с 256-битовым ключом, основанный на сети Фейстеля.
Алгоритм шифрования блока данных по ГОСТ 28147-89 описывается схемой, представленной на рис. 3.2. Обозначения на схеме:
–
32-разрядные накопители;
– 32-разрядный сумматор по модулю 232
([+]);
– 32-разрядный сумматор по модулю 2 ();
R – 32-разрядный регистр циклического сдвига;
КЗУ –
ключевое запоминающее устройство на
256 бит, состоящее из восьми 32-разрядных
накопителей
;
S
– блок подстановки, состоящий из восьми
узлов замены (S-блоков
замены)
.
|
Рис. 3.2. Схема преобразования информации в алгоритме шифрования блока по ГОСТ 28147–89. |
Открытые
данные, подлежащие шифрованию, разбивают
на 64-разрядные блоки
.
Процедура шифрования 64-разрядного блока
включает 32 раунда (цикла) (j = 1…32).
В
ключевое запоминающее устройство вводят
256 бит ключа K в виде
восьми 32-разрядных подключей
:
.
Последовательность битов блока
разбивают на две последовательности по 32 бита: b(0) а(0), где b(0) – левые или старшие биты, а(0) – правые или младшие биты.
Эти
последовательности вводят в накопители
и
;
перед началом первого раунда шифрования.
В результате начальное заполнение накопителя :
Номер разряда |
32 |
31 |
… |
2 |
1 |
a(0) = ( |
|
|
…, |
|
|
Начальное заполнение накопителя :
Номер разряда |
32 |
31 |
… |
2 |
1 |
b(0) = ( |
|
|
…, |
|
|
Первый раунд (j = 1) процедуры шифрования 64-разрядного блока открытых данных можно описать уравнениями:
,
.
Здесь
а(1) – заполнение
,
b(1) – заполнение
после 1-го раунда шифрования; f
– функция шифрования.
Аргументом
функции f является
сумма по модулю
числа а(0) (начального заполнения
накопителя
)
и числа
– подключа, считываемого из накопителя
КЗУ. Каждое из этих чисел равно 32 битам.
Функция
f включает две операции
над полученной 32-разрядной суммой
.
Первая
операция является подстановкой (заменой)
и выполняется блоком подстановки S.
Блок подстановки S
состоит из восьми узлов замены (S-блоков
замены)
с памятью 64 бит каждый. Поступающий из
на блок подстановки S
32-разрядный вектор разбивают на восемь
последовательно идущих 4-разрядных
векторов, каждый из которых преобразуется
в четырехразрядный вектор соответствующим
узлом замены. Каждый узел замены можно
представить в виде таблицы-подстановки
шестнадцати четырехразрядных двоичных
чисел в диапазоне 0000…1111. Входной вектор
указывает адрес строки в таблице, а
число в этой строке является выходным
вектором. Затем четырехразрядные
выходные векторы последовательно
объединяют в 32-разрядный вектор. Узлы
замены (таблицы-подстановки) представляют
собой ключевые элементы, которые являются
общими для сети ЭВМ и редко изменяются.
Эти узлы замены должны сохраняться в
секрете. Считается, что стойкость
алгоритма ГОСТ 28147-89 во многом определяется
структурой узлов замены.
Долгое время структура S-блоков в открытой печати не публиковалась. В настоящее время известны S-блоки, которые используются в приложениях Центрального Банка Российской Федерации и считаются достаточно сильными. Их устройство дано в табл. 3.1. Каждый S-блок может быть представлен в виде строки чисел от 0 до 15, расположенных в некотором порядке. Тогда порядковый номер числа будет являться входным значением S-блока, а само число – выходным значением S-блока.
Таблица 3.1
Рекомендуемые узлы замены для алгоритма ГОСТ 28147-89
№ S-блока |
Значение входа |
|||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
1 |
4 |
10 |
9 |
2 |
13 |
8 |
0 |
14 |
6 |
11 |
1 |
12 |
7 |
15 |
5 |
3 |
2 |
14 |
11 |
4 |
12 |
6 |
13 |
15 |
10 |
2 |
3 |
8 |
1 |
0 |
7 |
5 |
9 |
3 |
5 |
8 |
1 |
13 |
10 |
3 |
4 |
2 |
14 |
15 |
12 |
7 |
6 |
0 |
9 |
11 |
4 |
7 |
13 |
10 |
1 |
0 |
8 |
9 |
15 |
14 |
4 |
6 |
12 |
11 |
2 |
5 |
3 |
5 |
6 |
12 |
7 |
1 |
5 |
15 |
13 |
8 |
4 |
10 |
9 |
14 |
0 |
3 |
11 |
2 |
6 |
4 |
11 |
10 |
0 |
7 |
2 |
1 |
13 |
3 |
6 |
8 |
5 |
9 |
12 |
15 |
14 |
7 |
13 |
11 |
4 |
1 |
3 |
15 |
5 |
9 |
0 |
10 |
14 |
7 |
6 |
8 |
2 |
12 |
8 |
1 |
15 |
13 |
0 |
5 |
7 |
10 |
4 |
9 |
2 |
3 |
14 |
6 |
11 |
8 |
12 |
Вторая операция – циклический сдвиг влево (на 11 разрядов) 32-разрядного вектора, полученного с выхода блока подстановки S. Циклический сдвиг выполняется регистром сдвига R.
Далее
результат работы функции шифрования f
суммируют поразрядно по модулю 2 в
сумматоре
с 32-разрядным начальным заполнением
b(0) накопителя
.
Затем полученный на выходе
результат (значение а(1)) записывают
в накопитель
,
а старое значение
(значение а(0)) переписывают в
накопитель
(значение b(1) = а(0)).
На этом первый раунд завершается.
Последующие
раунды осуществляются аналогично, при
этом во втором раунде из КЗУ считывают
заполнение
– подключ
,
в третьем – подключ
и т.д., в восьмом раунде – подключ
.
В раундах с 9-го по 16-й, а также в с 17-го
по 24-й подключи из КЗУ считываются в том
же порядке:
.
В последних восьми раундах с 25-го по
32-й порядок считывания подключей из КЗУ
обратный:
.
Таким образом, при шифровании в 32 циклах
осуществляется следующий порядок
выборки из КЗУ подключей:
В 32-м
раунде результат из сумматора
вводится в накопитель
,
а в накопителе
сохраняется прежнее заполнение.
Полученные после 32-го раунда заполнения
накопителей
и
являются блоком зашифрованных данных
,
соответствующим блоку открытых данных
.
Таким образом уравнения шифрования блока имеют вид:
при
j = 1…24,
при
j = 25…31,
при
j = 32,
где
– заполнение
после j-го раунда
шифрования,
– заполнение
после j-го раунда, j
= 1…32.
Блок зашифрованных данных (64 разряда) выводится из накопителей , в следующем порядке: из разрядов 1…32 накопителя , затем из разрядов 1…32 накопителя , т.е. начиная с младших разрядов:
.
Криптосхема, реализующая алгоритм расшифрования блока, имеет тот же вид, что и при шифровании (см. рис. 3.2).
В КЗУ вводят 256 бит ключа, на котором осуществлялось шифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки по 64 бита в каждом. Ввод любого блока в накопители и производят так, чтобы начальное значение накопителя , имело вид:
Номер разряда |
32 |
31 |
… |
2 |
1 |
a(32) = ( |
|
|
…, |
|
|
Начальное заполнение накопителя :
Номер разряда |
32 |
31 |
… |
2 |
1 |
b(32) = ( |
|
|
…, |
|
|
Расшифрование осуществляется по тому же алгоритму, что и шифрование, с тем изменением, что заполнения накопителей считываются из КЗУ в раундах расшифрования в следующем порядке:
Уравнения расшифрования имеют вид:
при
j=1…8,
при
j=9…31,
при
j=32.
Полученные после 32 циклов работы заполнения накопителей и образуют блок открытых данных
,
соответствующий блоку зашифрованных данных .
