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

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. Найти и из уравнения .