- •Тема 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
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Рекомендуемая дополнительная литература
- •Глоссарий
2.3.2. Шифры замены (подстановки)
Шифрами замены называются такие шифры, преобразования из которых приводят к замене каждого символа открытого текста на другие символы – шифрообозначения, причем порядок следования шифрообозначений совпадает с порядком следования соответствующих им символов открытого сообщения.
Простейшим из шифров замены является одноалфавитная подстановка, называемая также шифром простой замены. Ключом такого шифра является взаимно однозначное отображение (подстановка) F алфавита открытого текста (X) в алфавит шифртекста (Y): F: X↔Y. Зафиксируем нумерацию символов в алфавитах X и Y: X = {x1, x2, … xn}, Y = {y1, y2, … yn}. Тогда отображение F фактически задается перестановкой порядка n = |X| = |Y|: при шифровании символ xi открытого текста заменяется на символ y(i) шифртекста. Эта перестановка может быть задана либо таблицей, либо с помощью формулы. При задании с помощью формулы значение (i) представляется в виде выражения, зависящего от i.
Типичным примером шифра замены является шифр Цезаря. Этот шифр реализует следующее преобразование текста, записанного с помощью латинского алфавита: каждая буква открытого текста заменяется буквой, стоящей на три позиции позже нее в алфавите (при этом алфавит считается записанным по кругу, то есть после буквы 'z' идет буква 'a'). Например, открытый текст "secret" будет преобразован в "vhfuhw". Ключ для шифра Цезаря можно задать в виде следующей таблицы (см. рис. 2.3). В первой строке записаны буквы открытого текста, во второй – соответствующие им буквы шифртекста.
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
a |
b |
c |
Рис. 2.3. Таблица замен шифра Цезаря. |
|||||||||||||||||||||||||
Шифр Цезаря можно описать и в виде формулы. Для этого пронумеруем буквы латинского алфавита числами от 0 до 25: a = 0, b = 1, …, z = 25. Тогда правило замены можно описать следующим образом: буква с номером i заменяется на букву с номером i+3 (mod 26), где операция "mod 26" означает вычисление остатка от деления на 26.
Разумеется, возможен обобщенный вариант шифра Цезаря, при котором буква с номером i заменяется на букву с номером i+k (mod 26). В этом случае ключом шифра является число k.
Еще больше обобщив этот метод, мы придем к семейству аффинных шифров. Для алфавита из n символов {a1, a2, …, an} аффинным шифром называется процедура, заменяющая входной символ ai на символ aj, где j = k⋅i+l (mod n). Для того чтобы имелась возможность расшифрования числа n и k должны быть взаимно простыми, то есть НОД(n, k) = 1.
Шифры простой замены в настоящее время не используются, поскольку их стойкость невелика. Методы взлома таких шифров основаны на анализе частотности отдельных символов и их комбинаций. Дело в том, что в любом языке различные буквы и комбинации из двух, трех или большего количества букв имеют характерные частоты повторений в текстах. Например, в текстах на русском языке чаще всего встречается буква 'О', затем, в порядке убывания частоты, идут буквы 'Е' (считая, что 'Е' и 'Ё' – одна и та же буква), 'А', 'И', 'Т' и т.д. Для английского языка аналогичная последовательность самых частых букв: 'E', 'T', 'A', 'I', 'N'. Самым частым символом в текстах является, однако, не буква, а символ пробела.
Ясно, что при использовании шифра простой замены частота повторений зашифрованных символов в шифртексте совпадает с частотой повторений соответствующих исходных символов в открытом тексте. Это позволяет достаточно легко вскрыть такой шифр. Более тонкие характеристики (учет сочетаемости различных букв) позволяют даже автоматизировать процесс взлома.
Для того чтобы увеличить стойкость шифров замены, применяют многоалфавитную подстановку, называемую также шифром сложной замены. Процедура шифрования для многоалфавитной замены включает набор подстановок {1, 2,…, m} и функцию-распределитель(k,i), задающую последовательность применения подстановок i. При шифровании i-го символа открытого текста применяется подстановка с номером (k,i), где k — ключ шифрования.
Частным случаем многоалфавитной замены является шифр Виженера. Формально этот шифр можно описать следующим образом. В качестве ключа шифрования выберем набор из m целых чисел: k = (k1, k2, …, km). Процедуру преобразования открытого текста t = (t1, t2, …) в шифртекст c = (c1, c2, …) построим на основе обобщенного шифра Цезаря: c1 = t1 + k1 (mod 26), c2 = t2 + k2 (mod 26), и т.д. Когда будут использованы все m компонент ключа k, для шифрования (m+1)-й буквы снова возьмем k1, и т.д. Фактически, в качестве ключа шифрования используется гамма шифра – бесконечная последовательность, образованная периодическим повторением исходного набора: k1,k2,…,km, k1,k2,…,km, k1,k2,…
Взломать шифр многоалфавитной замены немного сложнее, чем шифры простой замены, но тоже достаточно легко. Такой шифр на самом деле представляет собой одновременное применение m шифров простой замены (обобщенный шифр Цезаря), причем часть исходного текста, состоящая из букв ti, tm+i, t2m+i, … шифруются с использованием "ключа" ki (i=1, …,m).
Если известен период гаммы (т.е. число m), то к каждой такой части можно применить любой из методов взлома шифров простой замены. Если период гаммы не известен, то задача усложняется. Но и для этих случаев разработаны эффективные методы взлома. Эти методы позволяют с достаточной вероятностью определить период гаммы, после чего задача сводится к взлому шифра гаммирования с известным периодом.
Как было указано выше, основой для атак на шифры замены является анализ частот вхождений символов в шифртекст. Для того чтобы затруднить взлом шифра замены, можно попытаться скрыть частотные свойства исходного текста. Для этого надо, чтобы частоты появления разных символов в зашифрованном тексте совпадали. Такие шифры замены называются гомофоническими.
Простейшим вариантом гомофонического шифра является следующий. Предположим, что нам известны частоты вхождений символов в открытый текст. Пусть fi — частота появления i–го символа в открытом текста (i — номер буквы в алфавите). Каждой букве ti исходного алфавита (т.е. алфавита, с помощью которого записывается открытое сообщение) сопоставим подмножество Fi, содержащее fi символов выходного алфавита (т.е. алфавита, с помощью которого записывается шифртекст), причем никакие два подмножества Fi и Fj не пересекаются. При шифровании будем заменять каждое вхождение символа ti на случайный символ из множества Fi. Ясно, что средняя частота появления в шифртексте любого из символов выходного алфавита одинакова, что существенно затрудняет криптоанализ.
