
- •Предисловие
- •Введение
- •Раздел I основания математики Глава 1. Элементы теории множеств
- •1.1. Понятие множества
- •1.2. Операции над множествами
- •1.3. Аксиомы и теоремы алгебры множеств
- •Глава 2. Числа
- •2.1. Системы счисления
- •2.2. Классы чисел
- •2.3. Элементы статистической обработки данных
- •2.4. Алгоритмы решения вычислительных задач
- •Глава 3. Элементы математической логики
- •3.1. Понятие высказывания
- •3.2. Операции над высказываниями
- •2.3. Аксиомы и теоремы алгебры логики
- •Раздел II основы математического анализа Глава 4. Функции
- •4.1. Понятие функции
- •4.2. Аппроксимация функций
- •4.3. Предел функции
- •Глава 5. Основы дифференциального исчисления
- •5.1. Производная функции
- •5.2. Свойства дифференцируемых функций
- •5.3. Дифференциал функции
- •Глава 6. Основы интегрального исчисления
- •6.1. Определенный интеграл
- •6.2. Машинные алгоритмы вычисления определенных интегралов
- •Раздел III основы теории вероятностей Глава 7. Понятие вероятности
- •7.1. Элементы комбинаторики
- •7.2. Случайные события
- •7.3. Классическое определение вероятности
- •7.4. Теорема умножения вероятностей
- •7.5. Основные формулы теории вероятностей
- •Глава 8. Случайные величины
- •8.1. Понятие случайной величины
- •8.2. Законы распределения случайных величин
- •8.3. Числовые характеристики случайных величин
- •8.4. Канонические распределения случайных величин
- •8.5. Энтропия и информация
- •Раздел IV. Основные способы и методы защиты информации Глава 9. Основы криптографической защиты информации
- •9.1. Принципы и основные понятия криптографической защиты информации
- •9.2. Основные понятия и определения
- •Глава 10. Методы криптографической защиты информации
- •10.1. Методы перестановки
- •10.2. Метод гаммирования
- •Ответы к задачам
- •Раздел I.
- •Глава 1. Элементы теории множеств
- •Глава 2. Числа
- •Глава 3. Элементы математической логики
- •Раздел II. Основы математического анализа
- •Глава 4. Функции
- •Глава 5. Основы дифференциального исчисления
- •Глава 6. Основы интегрального исчисления
- •Раздел III. Основы теории вероятностей
- •Глава 7. Понятие вероятности
- •Глава 8. Случайные величины
- •Глава 9. Основы криптографической защиты информации
- •Глава 10. Методы криптографической защиты информации
- •Приложение тесты
- •Тест 1. Элементы теории множеств
- •Тест 4. Функции
- •Тест 5. Основы дифференциального исчисления
- •Определенный интеграл
- •Тест 7. Понятие вероятностй
- •Тест 8. Случайные величины
- •Тест 10. Методы криптографической защиты информации
- •Литература
- •Сведения об авторах
- •Королёв Владимир Тимофеевич, Ловцов Дмитрий Анатольевич,
- •Математика и информатика Часть первая
Раздел IV. Основные способы и методы защиты информации Глава 9. Основы криптографической защиты информации
9.1. Принципы и основные понятия криптографической защиты информации
Криптография – наука о защите информации от несанкционированного использования. В течение тысячелетий она применялась для запутывания посторонних относительно сообщений, которыми обменивались государственные деятели, в частности военные. Круг людей, применявших криптографию, был весьма ограничен, а методы этой науки держались в секрете. Однако в последние десятилетия, когда человечество вступило в эпоху информационного общества, криптографические методы защиты информации стали использоваться очень широко. Профессионально грамотная работа юристов в правовых автоматизированных информационных системах требует от них известного уровня подготовки и в области криптографии.
Изложение основ криптографии начнем с описания типовой ситуации, а именно, передачи секретных сообщений некоторым отправителем получателю. Отправителями сообщений и их получателями могут быть физические лица, организации, технические системы. Из методических соображений удобно абстрактных участников обмена сообщениями отождествить с героями фильма «Семнадцать мгновений весны». Отправитель – это Юстас, а получатель – Алекс.
Сообщения передаются по открытой системе коммуникации, в которой они в принципе доступны для перехвата лицами, отличными от получателя. Сегодня массово используется такая система коммуникации, как сеть Интернет. Она, наряду с несомненными достоинствами, оказывается уязвимой для несанкционированного доступа к сообщениям третьих лиц. В Интернете легко реализуется не только перехват, но и подмена сообщений (вредоносная их модификация). Таким образом, в криптографии у Юстаса и Алекса есть противник – старина Мюллер, который может перехватывать сообщения, передаваемые по открытому каналу. Он владеет методами криптоанализа, в основе которых лежит формально-логический аппарат для снятия секретности с перехваченных сообщений. В его распоряжении имеются самые мощные из современных вычислительных ресурсов. Мюллер может вносить в перехваченную криптограмму вредоносные изменения. В результате принятое Алексом сообщение может не совпадать с исходным.
На
рис. 9.1 показана классическая система
коммуникации для передачи секретных
сообщений.
Перед тем, как передать сообщение по открытому каналу связи, Юстас выполняет его зашифрование с помощью ключа. В результате в открытый канал поступает зашифрованное сообщение – криптограмма. Алекс, приняв эту криптограмму, расшифровывает ее с помощью того же ключа и в результате имеет принятое сообщение. Если Мюллеру не удалось внести в криптограмму изменений, то принятое сообщение совпадает с исходным.
Таблица 9.1 |
|||
m |
Am |
An |
n |
0 |
А |
Г |
3 |
1 |
Б |
Д |
4 |
2 |
В |
Е |
5 |
3 |
Г |
Ж |
6 |
4 |
Д |
З |
7 |
5 |
Е |
И |
8 |
6 |
Ж |
Й |
9 |
7 |
З |
К |
10 |
8 |
И |
Л |
11 |
9 |
Й |
М |
12 |
10 |
К |
Н |
13 |
11 |
Л |
О |
14 |
12 |
М |
П |
15 |
13 |
Н |
Р |
16 |
14 |
О |
С |
17 |
15 |
П |
Т |
18 |
16 |
Р |
У |
19 |
17 |
С |
Ф |
20 |
18 |
Т |
Х |
21 |
19 |
У |
Ц |
22 |
20 |
Ф |
Ч |
23 |
21 |
Х |
Ш |
24 |
22 |
Ц |
Щ |
25 |
23 |
Ч |
Ъ |
26 |
24 |
Ш |
Ы |
27 |
25 |
Щ |
Ь |
28 |
26 |
Ъ |
Э |
29 |
27 |
Ы |
Ю |
30 |
28 |
Ь |
Я |
31 |
29 |
Э |
А |
0 |
30 |
Ю |
Б |
1 |
31 |
Я |
В |
2 |
Следует отметить, что объем самих сообщений существенно превышает объем сведений о ключе, и передача их по закрытому каналу обошлась бы много дороже, чем по открытому каналу.
Рассмотрим пример конкретного шифра, в качестве которого выберем шифр Цезаря. Этот шифр римский император применял для засекречивания своих сообщений на латинском языке. Мы же адаптируем его к русскому языку, в алфавите которого 32 буквы (Е и Ё неразличимы и нет символа пробела).
Сам шифр приведен в табл. 9.1. В левом затемненном столбце табл. 9.1 находятся символы Am алфавита исходного сообщения, в правом затемненном столбце – соответствующие им символы An зашифрованного текста (криптограммы). Нетрудно заметить, что правый столбец получен из левого путем циклического сдвига его символов вверх на три позиции. С каждым сдвигом на одну позицию символ из первой строки столбца перемещается в самую последнюю строку этого столбца, а все остальные символы сдвигаются на одну позицию вверх. Так за три сдвига в первой строке столбца An оказывается буква Г, а в последней – буква В.
Зашифрование исходного сообщения с помощью табл. 9.1 происходит так: каждая его буква Am из правого затемненного столбца табл. 9.1 заменяется буквой An в соответствующей строке табл. 9.1. Расшифрование состоит в том, что каждая буква An криптограммы из левого затемненного столбца табл. 9.1 заменяется буквой Am в соответствующей строке табл. 9.1.
Пример. Пусть исходным сообщением будет слово ДАННЫЕ. Юстас после применения к нему шифра Цезаря получает криптограмму ЗГРРЮИ. Алекс, имея табл. 9.1, по полученной криптограмме без труда восстановит исходное сообщение.
Формализованное описание шифра Цезаря со сдвигом на произвольное число k позиций получим, действуя с номерами m символов исходного сообщения столбца Am и с номерами n символов An зашифрованного сообщения.
Правило (алгоритм) зашифрования – вычисление номера n символа зашифрованного сообщения по номеру m символа исходного сообщения и величине сдвига k – описывается такой формулой:
n=(m+k)mod M. (9.1)
Число k называют ключом шифра Цезаря (в табл. 9.1. k=3), а M – количество символов алфавита (у нас M=32).
Алгоритм расшифрования секретного сообщения – получение номера m символа восстанавливаемого текста по номеру n символа криптограммы и значению ключа k – задается так:
m=(n+(M-k))mod M. (9.2)
Напомним, что (A)mod M – остаток от деления A на M нацело.
Понятно, что пользоваться неизменным ключом опасно. Поэтому Юстас и Алекс договариваются менять ключ k, к примеру, после передачи каждого сообщения. В этом случае можно сказать, что ключ порождается некоторым источником ключа (рис. 9.1).
В криптографии считается, что алгоритмы зашифрования и расшифрования не являются секретными, секретным является значение k ключа.
Пример. Рассмотрим действия Мюллера, в руках которого криптограмма ЗГРРЮИ, и ему известно, что она получена по алгоритму (9.1), а расшифровывается по алгоритму (9.2). Мюллер пытается по содержанию криптограммы определить ключ.
Всякую попытку определить ключ по криптограмме называют атакой на шифр, а удачную атаку называют взломом шифра.
Самая
очевидная стратегия действий Мюллера
– последовательный перебор всех
возможных значений ключа k=
и анализ результатов подстановки их в
формулу (9.2).
В табл. 9.2 сведены некоторые из полученных им результатов. Как видим, довольно быстро Мюллер установил, что k=3.
Таблица 9.2 |
|
k |
результат |
0 |
ЗГРРЮИ |
1 |
ЖВП… |
2 |
ЕБОО… |
3 |
ДАННЫЕ |
4 |
ГВМ… |
|
|
13 |
Ъ… |
14 |
Ы… |
15 |
Ь… |
|
|
29 |
КЖ… |
30 |
ЙЕУ… |
31 |
ИДТТ… |
А значения k=13, 14, 15 отбрасываются вместе с первой полученной буквой результата, так как в русском языке нет слов, начинающихся с Ъ, Ы, Ь.
Шифр Цезаря обладает низкой стойкостью к взлому. Причина нестойкости шифров, подобных шифру Цезаря, обусловлена тем, что алфавит русского языка (да и любого другого естественного языка) имеет такое свойство: его буквы появляются в осмысленных текстах с разной вероятностью. В русских текстах чаще всего (с вероятностью 0.094) встречается буква О, а реже всего (с вероятностью 0.002) – буква Э. Имеют различные вероятности появления в осмысленных текстах и сочетания из двух букв (биграмм), из трех и более букв. В нашем примере Мюллер использовал тот факт, что большинство из полученных сочетаний букв имеют равную нулю вероятность появления в словах.
Взломать шифр Цезаря можно еще быстрее, если знать, что биграмма НН встречается чаще всех других пар одинаковых букв. В криптограмме имеем пару РР. Предположим, что в исходном сообщении ей отвечает пара НН. Проверка этого предположения сразу раскрывает значение ключа k. Для буквы Р значение n=16 получено по формуле (9.1) из номера m=13 для буквы Н:
16=(13+k)mod M. (9.3)
Функция (A)mod
M принимает
значения
с периодом M=32.
Поэтому уравнение (9.3) имеет бесконечное
число решений. Первым из них будет то,
которое получается при 13+k<M=32:
16=13+k, k=3. .
Следующее решение уравнения (9.3) отстоит от k=3 на величину M=32 и равно 35. Оно и все последующие решения лежат за пределами возможных значений k= и их отбрасывают. Применив значение k=3 к символам криптограммы, получаем осмысленный результат, то есть взламываем шифр.
Рассмотрим еще один пример. Юстас должен передать Алексу пятизначный номер ячейки камеры хранения, где для него вложена посылка. Положим, что в номерах ячеек одинаковые цифры не допускаются. Юстас зашифровывает номер с помощью шрифта Цезаря, приспособленного к алфавиту из десяти арабских цифр, а именно, теперь в формулах (9.1) и (9.2) используется модуль M=10. И пусть у Юстаса получилась такая криптограмма: 52481.
Таблица 9.3 |
|||
k |
результат |
k |
результат |
0 |
52481 |
5 |
07936 |
1 |
41370 |
6 |
96825 |
2 |
30269 |
7 |
85714 |
3 |
29158 |
8 |
74603 |
4 |
18047 |
9 |
63592 |

Объясним этот феномен. В данный разряд номера можно записать:
или любую из десяти цифр, если все пять разрядов его еще пусты,
или любую из девяти цифр, если занят один из пяти разрядов,
или любую из восьми цифр, если заняты два из пяти разрядов,
или любую из семи цифр, если заняты три из пяти разрядов,
или любую из шести цифр, если свободен один из пяти разрядов.
Значит, вероятность
появления любой из десяти цифр в любом
из пяти разрядов номера равна
.
Сообщения из равновероятных символов
обладают максимальной энтропией. А
шифры, построенные на алфавите из таких
символов, нельзя взломать.