Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММЗИ / Методичка (Домашнее задание).doc
Скачиваний:
32
Добавлен:
11.04.2015
Размер:
1.41 Mб
Скачать

1.1.2 Использование алгоритма Евклида для решения теоретико-числовых задач криптологии

Рассмотренный выше метод отыскания двух чисел основывается на использовании представления этих чисел в виде произведения простых множителей. Однако на практике такой метод мало применим, так как разложение числа, как правило, неизвестно, и его отыскание (как будет показано в дальнейшем) является сложной математической задачей.

Другим, наиболее известным способом отыскания наибольшего общего делителя двух чисел является алгоритм, впервые изложенный в трудах древнегреческого математика Евклида (IV-III вв. до н.э.

Алгоритм Евклида заключается в следующем.

Пусть , гдеи мы хотим найти. Разделимнас остатком,. Если, то разделимна:,и т.д. Получим последовательность равенств с убывающими остатками:

.

(2)

где

Если — последний ненулевой остаток, то. , в этом случае.

Пример 5. Найти .

Решение:

Таким образом.

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

Теорема 1. При алгоритм Евклида позволяет вычислитьза время порядка.

Схема доказательства. Для доказательства данной теоремы достаточно показать, что за каждые два шага алгоритма остаток уменьшается, по крайней мере, вдвое [9]. Таким образом результат работы алгоритма достигается не позднее чем через делений чисел разрядностью, не превосходящихкаждое.

Теорема 2. Наибольший общий делитель двух чисели, где, можно представить в виде линейной комбинации этих чиселс целыми коэффициентами, за время порядка.

Схема доказательства. Для доказательства теоремы достаточно показать [8,9], что представление числа может быть найдено путем последовательного выражениячерез все более ранние остатки в алгоритме Евклида, на что будет затрачено одно умножение и одно сложение или вычитание. Поскольку количество операций реализующих сложение есть величина более низкого порядка, то получаем искомую оценку времени.

Определение 9. Два целых числа иназываются взаимно простыми, если, т.е. если они не имеют общих делителей больших 1.

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

.

Из определения следуют следующие свойства функции Эйлера:

1. .

2. Для любого простого

.

Несложно показать [2-4], что для любого простого и некоторого

.

1.1.3 Расширенный метод Евклида

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

Значения и, при которых, и будут искомыми в силу следующего утверждения:

Лемма. При всех , выполнимо равенство

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

.

Легко видеть, что сложность данного алгоритма отличается от сложности обычного алгоритма Евклида не более, чем на константный сомножитель, и составляет , гдедлина записи чисели.

Расширенный метод Евклида может применяться для нахождения корней частного случая диофантовых уравнений .

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

Упражнения для самоконтроля

  1. Определить, сколько делителей имеет заданное число 945.

  2. Найти степени чисел 2, 3, 4, 5 точно делящие число 23455.

  3. Найти значение двумя способами: через разложение на простые множители и используя алгоритм Евклида.

  4. При помощи алгоритма Евклида найти наибольший общий делитель и представить его в виде линейной комбинации с целыми коэффициентами.

  5. Найти ииз уравнения.