
- •Конспект лекций по дисциплине «основы дискретной математики»
- •Лекция № 1. Дискретное и непрерывное
- •Введение
- •Счетные и несчетные числовые множества
- •Лекция № 2. Системы счисления
- •Позиционные и непозиционные системы
- •Десятичная система
- •Двоичная система
- •Код Грея
- •Троичная система счисления
- •Восьмеричная и шестнадцатеричная системы счисления
- •Лекция № 3. Фракталы
- •3.1. Канторово множество
- •3.2. Ковер Серпинского и снежинка Коха
- •3.3. Стохастические фракталы
- •3.4. Энтропийная размерность
- •3.5. Фрактал Мандельброта
- •Лекция № 4. Основы математической логики
- •Виды доказательства
- •Логические высказывания, связки и операции
- •Набор истинностных значений 0001 в первой строке таблицы соответствует результатам операций:
- •Переменные и формулы в исчислении высказываний
- •Булевы функции
- •Основные эквивалентности:
- •Предикаты
- •Семантика исчисления предикатов
- •X(человек(X) смертный(X)),
- •Правило резолюции
- •Лекция № 5. Множества и подмножества
- •Задание множеств
- •Парадокс Рассела
- •Сравнение множеств
- •Операции над множествами
- •Свойства операций над множествами
- •Проблема континуума
- •Лекция № 6. Математическая индукция
- •Сумма нечетных чисел
- •Сумма натуральных чисел
- •Снова считаем подмножества
- •Биномиальные коэффициенты
- •Треугольник Паскаля
- •Бином Ньютона для дробных и отрицательных показателей
- •Гамма-функция
- •Лекция № 7. Комбинаторика
- •Введение
- •Размещения без повторений
- •Сочетания без повторений
- •Размещения с повторением
- •Сочетания с повторением
- •Формула Стирлинга
- •Подстановки
- •Лекция № 8. Числа фибоначчи и простые числа
- •Задача Фибоначчи
- •Сумма чисел Фибоначчи
- •Формула для чисел Фибоначчи
- •Простые числа
- •Лекция № 9. Кодирование
- •Введение
- •Алфавитное кодирование
- •Разделимые схемы
- •Помехоустойчивое кодирование
- •Лекция № 10. Шифрование
- •Введение
- •Модулярная арифметика
- •Шифрование с открытым ключом
Лекция № 10. Шифрование
Введение
Шифрование – это кодирование данных с целью защиты от несанкционированного доступа. Область знаний о шифрах, методах их создания и раскрытия называется криптографией (или тайнописью).
Криптография известна с глубокой древности и использует самые разнообразные шифры, как чисто информационные, так и механические. В настоящее время наибольшее практическое значение имеет защита данных в компьютере, поэтому далее рассматриваются программные шифры для сообщений в алфавите {0,1}.
Начнем с определения
операции:
.
Здесь операнды: a
и b
– целые числа, а результат данной
операции – остаток, возникающий при
целочисленном делении a
на b.
Пример 10.1.
15
2 =
,
26
3 =
,
32
4 =
.
Пусть имеется генератор псевдослучайных чисел, работающий по определенному алгоритму. Часто используется следующий алгоритм:
, (10.1)
где
– предыдущее псевдослучайное число,
– последующее псевдослучайное число,
а коэффициенты a,
b,
c
постоянны и хорошо известны. Обычно
c=
,
где
– разрядность процессора,
,
а b
– нечетное. В этом случае последовательность
псевдослучайных чисел имеет период c.
Пример 10.2. В
табл. 10.1 приведены результаты расчетов
по формуле (10.1) для различных ключей
шифра
и коэффициентов: a=81,
b=9,
c=65536.
Таблица 10.1
|
|
|
|
|
|
|
|
|
|
|
1 |
90 |
7299 |
1404 |
48197 |
37342 |
10055 |
28032 |
42377 |
24674 |
32523 |
10 |
819 |
812 |
245 |
19854 |
35319 |
42800 |
58937 |
55314 |
23995 |
43060 |
100 |
8109 |
1478 |
54191 |
64104 |
15089 |
42570 |
40307 |
53612 |
17205 |
17358 |
1000 |
15473 |
8138 |
3827 |
47852 |
9397 |
40270 |
50615 |
36592 |
14841 |
22482 |
10000 |
23577 |
9202 |
24475 |
16404 |
18013 |
17270 |
22623 |
63000 |
56737 |
8186 |
Процесс шифрования
определяется следующим образом. Шифруемое
сообщение представляется в виде
последовательности слов
,
каждое длины
,
которые складываются по модулю два со
словами последовательности
,
то есть
.
Последовательность называется гаммой шифра. Процесс расшифровывания заключается в том, чтобы еще раз сложить шифрованную последовательность с той же самой гаммой шифра:
.
Ключом шифра является начальное значение , которое является секретным и должно быть известно только отправителю и получателю шифрованного сообщения. Шифры, в которых для зашифровки и расшифровки используется один и тот же ключ, называются симметричными.
Описанный метод
шифрования обладает существенным
недостатком. Если известна хотя бы часть
исходного сообщения, то все сообщение
может быть легко дешифровано. Действительно,
пусть известно одно исходное слово
.
Тогда
,
и далее вся правая часть гаммы шифра определяется по указанной формуле генератора псевдослучайных чисел.
Для повышения криптостойкости симметричных шифров применяются различные приемы.
Вычисление гаммы шифра по ключу более сложным (или секретным) способом.
Применение вместо
более сложной (но обратимой операции) для вычисления шифровки.
Предварительное перемешивание битов исходного сообщения по фиксированному алгоритму.
В настоящее время широкое распространение получили шифры с открытым ключом. Эти шифры не являются симметричными – для зашифровки и расшифровки используются разные ключи. При этом ключ, используемый для зашифровки, является открытым (не секретным) и может быть сообщен всем желающим отправить шифрованное сообщение. А ключ, используемый для расшифровки, является закрытым и хранится в секрете получателем шифрованных сообщений. Даже знание всего зашифрованного сообщения и открытого ключа, с помощью которого оно было зашифровано, не позволяет дешифровать сообщение без знания закрытого ключа.
Для описания метода шифрования с открытым ключом нужны некоторые факты из теории чисел, изложенные (без доказательства) в следующем разделе.