Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория Алгоритмов_заоч_14 / ТА_сам_подг(зо).doc
Скачиваний:
39
Добавлен:
07.06.2015
Размер:
507.9 Кб
Скачать

Открытое распределение ключей

В симметричных системах шифрования перед началом работы необходимо передать секретный ключ обеим сторонам. До появления криптосистем с открытым ключом распределение секретных ключей представляло сложную задачу (услуги специального курьера, организация секретного канала связи и т.п.).

Первое практическое применение криптосистем с открытым ключом – организация обмена ключами между удаленными пользователями через открытые каналы связи.

Рассмотрим практическую реализацию (протокол обмена ключами).

Необходима определенная подготовительная работа:

  • получить 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;и.

Соседние файлы в папке Теория Алгоритмов_заоч_14