
- •Тема 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
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Рекомендуемая дополнительная литература
- •Глоссарий
4.2.2. Односторонние хэш-функции на основе симметричных блочных алгоритмов
В качестве односторонних хэш-функций можно использовать симметричные блочные алгоритмы шифрования. Идея в том, что если безопасен блочный алгоритм, то и односторонняя хэш-функция будет безопасной.
Самым очевидным способом является шифрование сообщения в режиме CBC или CFB с помощью фиксированного ключа и вектора инициализации IV. Последний блок шифртекста можно рассматривать в качестве хэш-значения сообщения M. При таком подходе не всегда возможно построить безопасную одностороннюю хэш-функцию, но всегда можно получить код аутентификации сообщения.
Более безопасный вариант хэш-функции можно получить, используя блок сообщения в качестве ключа, предыдущее хэш-значение – в качестве входа, а текущее хэш-значение – в качестве выхода.
При условии, что хэш-функция корректна, безопасность этой схемы основана на безопасности лежащего в ее основе блочного алгоритма шифрования.
Схема хэширования, у которой длина хэш-значения равна длине блока показана на рис. 4.5. Ее работа описывается выражениями:
h0 = IV,
hi = EA(B) C,
где IV – вектор инициализации (случайное начальное значение); A, B и C могут быть либо Mi, hi–1, (Mi hi–1), либо константы (возможно равные 0).
|
Рис. 4.5. Обобщенная схема формирования хэш-функции. |
Сообщение M разбивается на блоки Mi, принятой длины, которые обрабатываются поочередно.
Три различные переменные A, B и С могут принимать одно из четырех возможных значений, поэтому в принципе можно получить 64 варианта общей схемы этого типа. Из них 52 варианта являются либо тривиально слабыми, либо небезопасными. Остальные 12 безопасных схем хэширования перечислены в таблице 4.1.
Таблица 4.1 (начало)
Схемы безопасного хэширования
Номер схемы |
Функция хэширования |
1. |
|
2. |
|
3. |
|
4. |
|
5. |
|
6. |
|
7. |
|
8. |
|
9. |
|
Таблица 4.1 (окончание)
Схемы безопасного хэширования
Номер схемы |
Функция хэширования |
10. |
|
11. |
|
12. |
|
Первые четыре схемы безопасны против всех криптографических атак. Они приведены на рис. 4.6.
|
Рис. 4.6. Четыре схемы безопасного хэширования. |
4.2.3. Алгоритм хэширования гост р 34.11–94
Стандарт ГОСТ Р 34.11–94 определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации. Этот стандарт базируется на блочном алгоритме шифрования ГОСТ 28147–89.
Хэш-функция, определяемая стандартом, формирует 256 битовое значение. Параметром алгоритма является стартовый вектор хэширования Н – произвольное фиксированное значение длиной также 256 бит.
Сообщение M обрабатывается блоками по 256 бит справа налево. Каждый блок сообщения обрабатывается так называемой шаговой функцией хэширования по следующему алгоритму.
1. Генерация четырех ключей длиной 256 бит каждый.
2. Шифрование 64-битных значений промежуточного хэш-кода H на ключах Ki (i = 1, 2, 3, 4) с использованием алгоритма ГОСТ 28147–89 в режиме простой замены.
3. Перемешивание результата шифрования.
Для генерации ключей используются следующие данные:
промежуточное значение хэш-кода Н длиной 256 бит;
текущий обрабатываемый блок сообщения М длиной 256 бит;
параметры – три значения С2, С3 и С4 длиной 256 бит следующего вида: С2 и С4 состоят из одних нулей, а С3 равно
18 08 116 024 116 08 (08 18)2 18 08 (08 18)4 (18 08)4,
где степень обозначает количество повторений 0 или 1.
Для формирования ключей используются две формулы, определяющие перестановку и сдвиг. Перестановка Р байтов определяется следующим образом: каждое 256-битное значение рассматривается как последовательность тридцати двух 8-битных значений. Перестановка Р элементов 256-битной последовательности выполняется по формуле y = (x), где x – порядковый номер 8-битного значения в исходной последовательности; y – порядковый номер 8-битного значения в результирующей последовательности.
(i + 1 + 4(k – 1)) = 8i + k,
где i = 0…3, k = 1…8.
Сдвиг А определяется по формуле A(x) = (x1 x2) || x4 || x3 || x2, где xi – соответствующие 64 бита 256-битного значения x, символ || обозначает конкатенацию.
Для вычисления ключей присваиваются следующие начальные значения:
i = 1, U = H, V = M.
W = U V, K1 = Р (W)
Затем ключи K2, K3, K4 вычисляются последовательно по следующему алгоритму:
U = A(U) Сi,
V = A(A(V)),
W = U V,
Ki = Р(W).
Далее выполняется шифрование 64-битных элементов текущего значения Н с ключами K1, K2, K3 и K4. При этом Н рассматривается как последовательность 64-битных значений: H = h4 || h3 || h2 || h1. Результатом шифрования является S = s1 || s2 || s3 || s4, где si = EKi(hi), i = 1, 2, 3, 4, EKi – шифрование алгоритмом ГОСТ 28147–89 в режиме простой замены.
Наконец на заключительном этапе обработки очередного блока выполняется перемешивание полученной последовательности. 256-битное значение рассматривается как последовательность η16 || η15 || ... || η1 шестнадцати 16-битных значений.
Сдвиг обозначается Ψ и определяется следующим образом:
Ψ (η16 || η15 || ... || η1) = η1 η2 η3 η4 η13 η16 || η16 || ... || η2.
Результирующее значение хэш-кода определяется следующим образом:
,
где H – предыдущее значение хэш-кода, M – текущий обрабатываемый блок, Ψi – i-ая степень преобразования Ψ.
Шаговая функция хэширования используется непосредственно в процедуре формирования хэш-значения.
Входными параметрами этого алгоритма являются:
исходное сообщение М произвольной длины;
стартовый вектор хэширования Н, длина которого равна 256 битам;
контрольная сумма Σ, начальное значение которой равно нулю и длина равна 256 битам;
переменная L, начальное значение которой равно длине сообщения.
Сообщение М делится на блоки длиной 256 бит и обрабатывается справа налево. Очередной блок i обрабатывается следующим образом:
1.
2.
3. L рассматривается как неотрицательное целое число, к этому числу прибавляется 256 и вычисляется остаток от деления получившегося числа на 2256. Результат присваивается L.
Здесь
обозначает
следующую операцию: Σ
и Mi
рассматриваются как неотрицательные
целые числа длиной 256 бит. Выполняется
обычное сложение этих чисел и находится
остаток от деления результата сложения
на 2256.
Этот остаток и является результатом
операции.
Самый левый, т.е. самый последний блок М' обрабатывается следующим образом:
1. Блок М' добавляется слева нулями так, чтобы его длина стала равна 256 битам.
2.
Вычисляется
.
3. L рассматривается как неотрицательное целое число, к этому числу прибавляется длина исходного сообщения М и находится остаток от деления результата сложения на 2256.
4. Вычисляется Н = (М', Н).
5. Вычисляется Н = (L, Н).
6. Вычисляется Н = (Σ, Н).
Результирующим хэш-значением является Н.