- •Теория алгоритмов методические указания для самостоятельной подготовки к контролю знаний
- •«Компьютерные науки»
- •С о д е р ж а н и е
- •Перечень тем
- •Тема 1 Шифры перестановки. Разновидности реализации шифров перестановки Краткие теоретические сведения
- •1 Шифр сцитала
- •2 Шифр вертикальной перестановки
- •3 Шифр поворотной решетки
- •4 Шифры с использованием магичных квадратов
- •5 Перестановка бит
- •Задание
- •Варианты заданий темы 1 для самостоятельной подготовки
- •Вопросы по теории темы 1 для самостоятельной подготовки
- •Тема 2 Шифры простой замены. Разновидности реализации шифров простой замены Краткие теоретические сведения
- •Варианты реализации шифров простой замены
- •1 Система шифрования Цезаря
- •2 Афинная система подстановок
- •3 Лозунговый шифр
- •4 Шифровальный квадрат Полибия
- •5 Шифровальная таблица Трисемуса
- •4Х8 «Сколько волка ни корми, он все в лес глядит »
- •Задание
- •Варианты заданий темы 2 для самостоятельной подготовки
- •Вопросы по теории темы 2 для самостоятельной подготовки
- •Тема 3 Шифры сложной замены. Разновидности реализации шифров сложной замены Краткие теоретические сведения
- •1 Биграммный шифр Плейфейера
- •2 Шифр с использованием омофонов
- •3 Шифр Гронсфельда
- •4 Система шифрования Вижинера
- •5 Шифр «Двойной квадрат Уитстона»
- •Задание
- •Варианты заданий темы 3 для самостоятельной подготовки
- •Вопросы по теории темы 3 для самостоятельной подготовки
- •Приложение
- •Открытое распределение ключей
- •Протокол обмена ключами Диффи–Хеллмана
- •Варианты заданий 2 темы 5 для самостоятельной подготовки
- •Задание 2
- •Решение Алгоритм решения задачи следующий:
- •Варианты заданий 1, 2 темы 6 для самостоятельной подготовки
- •Вопросы по теории темы 6 для самостоятельной подготовки
- •Варианты задания 1 темы 7 для самостоятельной подготовки
- •Литература
Открытое распределение ключей
В симметричных системах шифрования перед началом работы необходимо передать секретный ключ обеим сторонам. До появления криптосистем с открытым ключом распределение секретных ключей представляло сложную задачу (услуги специального курьера, организация секретного канала связи и т.п.).
Первое практическое применение криптосистем с открытым ключом – организация обмена ключами между удаленными пользователями через открытые каналы связи.
Рассмотрим практическую реализацию (протокол обмена ключами).
Необходима определенная подготовительная работа:
получить p – большое простое число;
получить полное разложение числа (p–1) на множители;
вычислить первообразный корень rпо модулюp(rmodp)
В
сякое
составное число можно разложить на
простые множители (множители – простые
числа или их положительные целые степени,
возможно нулевые).
где pi – простые числа;bi– степени простых чисел.
Первообразный корень – любое число из
интервала
,
для которого выполняется условие:
.
Если выполняется это условие, то любое
целое числосможно представить в виде
,
гдех– некоторое положительное целое число
из интервала
.
Пару чисел (p,r
) используют в качестве общих
данных (открытого ключа).
Протокол обмена ключами Диффи–Хеллмана
1. Агенерирует элемент
,
вычисляет
и отправляет результатВ.
2. В генерирует элемент
,
вычисляет
и отправляет результат А.
3. Авычисляет значение
.
4. Ввычисляет значение
.
Замечание:после получения
значения
и
должны быть уничтожены.
В результате выполнения протокола
каждый из абонентов АиВ получает
общий ключ
,
который может быть использован в
симметричных системах шифрования,
причем противник, которому известен
открытый ключ (p,r
) и который перехватил числа
и
не сможет вычислить значение
.
Задание 1
Для реализации криптосистемы RSAабонентАхочет получить открытый и секретный ключи, используя пару простых чисел(p, q)(см. таблицу вариантов к задаче 2). Выполнить все действия за абонентаАи действия за абонентаВпо пересылке сообщенияm= 17 абонентуАс последующей расшифровкой.
РЕШЕНИЕ
Пусть А выбралN=p ∙q= 7х13 = 91 иe = 5; тогдаφ(N)∙= 6х12 = 72 . Открытый ключ (91,5) . Для вычисления секретного ключаd необходимо решить уравнение
5 d ≡ 1(mod 72) ; или. 72 n +5 d = 1
Подставляя в это уравнение числа = 0, ± 1, ± 2 и т.д. получим единственное целочисленное решение при n= –2d= 29 (секретный ключ).
Пусть Врешил отправитьАсообщениеm=3. Используя открытый ключ (91,5) он получил шифротекст3 5 (mod91) → 61 . Шифротекст 61Впередает по открытому каналуА. Для восстановления исходного сообщенияАвыполняет следующее вычисление:
61 29 (mod91) → 3.
Варианты заданий 1 темы 5 для самостоятельной подготовки
Таблица вариантов к заданию 1
|
Вариант |
(p, q) |
|
1 |
11, 23 |
|
2 |
13, 29 |
|
3 |
5, 31 |
|
4 |
7, 37 |
|
5 |
3, 41 |
|
6 |
5, 43 |
|
7 |
7, 47 |
|
8 |
3, 53 |
|
9 |
13, 19 |
|
0 |
23, 17 |
Задание 2
Абоненты АиВреализуют протокол получения общего ключа Диффи – Хеллмана, используя в качестве открытых данных пару чисел(p,r)(см. таблицу вариантов к заданию 2, r определить самостоятельно в соответствии с требованиями теории). Определить общий ключk, еслиa = 8,b = 37. Решение задачи представить в виде сценария (кто, что и в какой последовательности вычисляет и передает по каналам связи).
РЕШЕНИЕ
Пусть p= 43 (простое число),r= 3 – первообразный корень по
;
пара чисел (43,3) – открытый ключ для
выработки секретного ключа
.
1 Пусть в результате выполнения протокола
Агенерирует элемент
,
и вычисляет
.
2 Аналогичные действия Вдают
следующий результат: элемент
,
и вычисление
.
После выполнения пунктов 3, 4 протокола
результат следующий:
![]()
.
Рекомендации для практической реализации
1 Простое число pнеобходимо выбирать так, чтобы числоp -1имело достаточно большой сомножительpmax > 2160.
2 r– не обязательно должен быть первообразным корнем; достаточно следующего:
r≠ 1;
и
.
