![](/user_photo/2706_HbeT2.jpg)
- •Оглавление
- •Раздел 1. Математические основы криптографии
- •1.1. Делимость и алгоритм евклида
- •1.1.1 Отношение делимости
- •1.1.2 Использование алгоритма Евклида для решения теоретико-числовых задач криптологии
- •1.1.3 Расширенный метод Евклида
- •1.2. Сравнения
- •1.2.1. Отношение сравнимости
- •1.2.2. Использование свойств сравнений для решения теоретико-числовых задач криптологии
- •Раздел 2. Криптографические системы с открытым ключом
- •2.1. Основные сведения о криптографических системах
- •2.2. Шифрование с использованием криптосистемы rsa
- •2.3. Цифровая подпись в схеме Эль-Гамаль
- •2.4. Обмен информацией с использованием протокола Шамира
- •Раздел 3. Контрольные задания
- •3.1. Программа работы
- •3.2. Примеры выполнения контрольных заданий
- •3.2.1. Шифрование с использованием криптосистемы rsa
- •3.2.2. Цифровая подпись в схеме Эль – Гамаль
- •3.2.3. Обмен информацией с использованием протокола Шамира
- •3.3. Варианты контрольных заданий
- •3.3.1. Шифрование с использованием криптосистемы rsa
- •3.3.2. Цифровая подпись в схеме Эль-Гамаль
- •3.3.3. Обмен информацией с использованием протокола Шамира
- •Библиографический список
1.1.2 Использование алгоритма Евклида для решения теоретико-числовых задач криптологии
Рассмотренный
выше метод отыскания
двух чисел основывается на использовании
представления этих чисел в виде
произведения простых множителей. Однако
на практике такой метод мало применим,
так как разложение числа, как правило,
неизвестно, и его отыскание (как будет
показано в дальнейшем) является сложной
математической задачей.
Другим, наиболее известным способом отыскания наибольшего общего делителя двух чисел является алгоритм, впервые изложенный в трудах древнегреческого математика Евклида (IV-III вв. до н.э.
Алгоритм Евклида заключается в следующем.
Пусть
,
где
и мы хотим найти
.
Разделим
на
с остатком
,
.
Если
,
то разделим
на
:
,
и т.д. Получим последовательность
равенств с убывающими остатками
:
|
|
(2) |
где
Если
— последний ненулевой остаток, то
.
, в этом случае
.
Пример 5. Найти
.
Решение:
Таким образом.
Для практического использования приведенного алгоритма важнейшим является вопрос о времени его выполнения.
Теорема 1. При
алгоритм Евклида позволяет вычислить
за время порядка
.
Схема доказательства.
Для
доказательства данной теоремы достаточно
показать, что за каждые два шага алгоритма
остаток уменьшается, по крайней мере,
вдвое [9]. Таким образом результат работы
алгоритма достигается не позднее чем
через
делений чисел разрядностью, не
превосходящих
каждое.
Теорема 2.
Наибольший
общий делитель
двух чисел
и
,
где
,
можно представить в виде линейной
комбинации этих чисел
с
целыми коэффициентами
,
за время порядка
.
Схема доказательства.
Для
доказательства теоремы достаточно
показать [8,9], что представление числа
может быть найдено путем последовательного
выражения
через все более ранние остатки в алгоритме
Евклида, на что будет затрачено одно
умножение и одно сложение или вычитание.
Поскольку количество операций реализующих
сложение есть величина более низкого
порядка, то получаем искомую оценку
времени.
Определение 9.
Два целых
числа
и
называются взаимно простыми, если
,
т.е. если они не имеют общих делителей
больших 1.
Определение
10. Для любого
целого положительного числа
функция Эйлера
определяется как число неотрицательных
целых
,
меньших
и взаимно простых с
:
|
|
|
Из определения следуют следующие свойства функции Эйлера:
1.
.
2. Для любого
простого
|
|
|
Несложно показать
[2-4], что для любого простого
и некоторого
|
|
|
1.1.3 Расширенный метод Евклида
Рассмотрим теперь
расширенный алгоритм Евклида, позволяющий
наряду с наибольшим общим делителем
чисел
и
находить натуральные числа
и
,
удовлетворяющие равенству
.
От обычного алгоритма Евклида он
отличается тем, что наряду с
последовательностью остатков
вычисляются ещё две вспомогательные
последовательности
и
.
Расширенный алгоритм Евклида заключается
в следующем. Пусть
,нам необходимо
найти натуральные числа
и
,
удовлетворяющие равенству
.
На первом шаге положим, что
.Далее будем
выполнять следующую последовательность
действий, до тех пор пока
:
Значения
и
,
при которых
,
и будут искомыми в силу следующего
утверждения:
Лемма. При
всех
,
выполнимо равенство
Доказательство.
Применим индукцию по
.
При
равенство очевидно. Если равенства
доказаны для всех значений индексов
меньших
,
то для
,
пользуясь индуктивным предположением,
получим
.
Легко видеть, что
сложность данного алгоритма отличается
от сложности обычного алгоритма Евклида
не более, чем на константный сомножитель,
и составляет
,
где
длина записи чисел
и
.
Расширенный метод
Евклида может применяться для нахождения
корней частного случая диофантовых
уравнений
.
В криптографии расширенный метод очень часто применяется для нахождения обратного значения по модулю, подробнее будет рассмотрено в разделе 2.
Упражнения для самоконтроля
Определить, сколько делителей имеет заданное число 945.
Найти степени чисел 2, 3, 4, 5 точно делящие число 23455.
Найти значение
двумя способами: через разложение на простые множители и используя алгоритм Евклида.
При помощи алгоритма Евклида найти наибольший общий делитель
и представить его в виде линейной комбинации с целыми коэффициентами.
Найти
и
из уравнения
.