Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗИ готовый.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
525.77 Кб
Скачать

37. Схема шифрования Диффи-Хелмана

Алгоритм Диффи-Хелмана (Whitfield Diffie и Martin Hellman, 1976 год) использует функцию дискретного возведения в степень.

Алгоритм Диффи-Хелмана, обеспечивая конфиденциальность передачи ключа, не может гарантировать того, что он прислан именно тем партнером, который предполагается.

Алгори́тм Ди́ффи — Хе́ллмана (DH) — алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищённый от подмены канал связи. Этот ключ может быть использован для шифрования дальнейшего обмена с помощью алгоритма симметричного шифрования.

Описание алгоритма

Предположим, что обоим абонентам известны некоторые два числа g и p (например, они могут быть «зашиты» в программное обеспечение), которые не являются секретными и могут быть известны также другим заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют большие случайные числа: первый абонент — число a, второй абонент — число b.

Алгоритм Диффи — Хеллмана, где K — итоговый общий секретный ключ

При работе алгоритма каждая сторона:

  1. генерирует случайное натуральное число aзакрытый ключ;

  2. совместно с удалённой стороной устанавливает открытые параметры p и g (обычно значения p и g генерируются на одной стороне и передаются другой), Числа p и g вибирают таким образом, чтобы

p = 2q+1 и gq mod p ≠ 1 , где q — также простое число

  1. вычисляет открытый ключ A, используя преобразование над закрытым ключом A = ga mod p

  2. обменивается открытыми ключами с удалённой стороной;

  3. вычисляет общий секретный ключ K, используя открытый ключ удаленной стороны B и свой закрытый ключ a K = Ba mod p

К получается равным с обеих сторон, потому что:

Ba mod p = (gb mod p)a mod p = gab mod p = (ga mod p)b mod p = Ab mod p

gq mod p ≠ 1

В практических реализациях, для a и b используются числа порядка 10100 и p порядка 10300. Число g не обязано быть большим и обычно имеет значение в пределах первого десятка.

38. Элементы теории чисел. Функция эйлера. Теория Ферма

Каноническим разложением числа называется разложение его на простые сомножители в виде , где - все различные простые делители числа , а - целые положительные числа.

Функцией Эйлера называется, отображение ,

- каноническое разложение .

Например, , , .

Числа и называются взаимно простыми, если у них нет общих делителей больших 1, т.е. .

Функция Эйлера от числа равна числу чисел меньших и взаимно простых с m [6].

Для взаимно простых и верно равенство [6].

Число примитивных многочленов степени над полем равно [12].

Теорема Эйлера-Ферма1). Для взаимно простых и имеет место соотношение .

Для решения уравнения , где , можно использовать теорему Эйлера-Ферма, т.е. , но это весьма трудоемкий способ. Получим решения искомого уравнения через формулу для решения эквивалентного уравнения .

По алгоритму Евклида для получения НОД двух заданных чисел нужно одно число делить на другое, затем делить делитель на получаемый остаток до тех, пока остаток не станет равным нулю. Последний больший нуля остаток будет искомым НОД.

Для чисел и последовательность шагов алгоритма Евклида выглядит как

где - остатки. Разложение в цепную дробь по последовательности частных

имеет вид

Обозначим за дробь, получаемую из приведенной цепной дроби отбрасыванием членов с индексами, большими . Например, , и т.д. Числитель, , и знаменатель, , можно вычислять рекуррентно по следующим формулам:

По определению и . Кроме того,

или

что означает

т.е. и .

Процесс получения числителей и знаменателей удобно оформить в виде таблицы:

Таким образом, корни уравнения вычисляются по формуле .

Пример. Решить уравнение . Сначала по алгоритму Евклида получается следующая цепочка соотношений:

Затем составляется таблица для вычисления

Таким образом, искомый равен 151925.

Гипотеза. Задача разложения целого числа с заданным числом разрядов на множители является труднорешаемой

Задача называется труднорешаемой, если время ее решения зависит от объема входных данных по экспоненциальному закону и не может быть сведено к полиномиальному}.

На сегодняшний день существуют весьма быстрые алгоритмы для проверки данного числа на простоту, но для разложения 200-значного числа на множители лучшим современным компьютерам по лучшим современным алгоритмам может потребоваться миллиарды лет.

Эта гипотеза лежит в основе методов Диффи-Хеллмана.