Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology_konspekt.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.09 Mб
Скачать

Раздел седьмой

1. Задача факторизации.

Формулировка задачи выглядит так:

Задано: n>1 натуральное.

Найти: каноническое разложение числа n, т.е. представить n в виде

разложения в произведение степеней простых чисел.

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

Лучшие из известных алгоритмов (включая вероятностные) работают за время

,

при этом лучшее значение . Имеется алгоритм с недоказанной оценкой времени работы

.

Границей современных возможностей разложения являются числа порядка .

Узкая задача факторизации формулируется так:

Задано: , где р и q – простые.

Найти: р и q .

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

Определение. Простое число р называется сильным простым, если выполняются следующие условия:

1) Число р-1 имеет большой простой делитель r;

2) Число r-1 имеет большой простой делитель;

3) Число р+1 имеет большой простой делитель.

2. Задача распознавания квадратичности.

Формулировка задачи для простого р выглядит так:

Задано: N, p – простое нечетное, .

Распознать: существует ли такое у Z, что ?

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

3. Задача извлечения корня квадратного по простому модулю.

Формулировка задачи для простого р выглядит так:

Задано: N, p – простое нечетное, .

Найти: такое у Z, что , если оно существует.

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

Вход: р – простое.

  1. Выбрать случайное Z .

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

Следует заметить, что так как квадратичных вычетов и невычетов по модулю р существует по , то вероятность неудачи при каждом выборе равна ½. Поэтому при независимых выборах в серии из k опытов вероятность неудачи составит всего .

Итак, выделим три случая (предполагая, что х есть квадратичный вычет по mod p):

1) если р = 4m + 3, то по критерию Эйлера

и поэтому, домножая обе части полученного сравнения на х, получаем

;

2) если р = 8m + 5, то по критерию Эйлера

,

откуда, извлекая корень квадратный из обеих частей сравнения, имеем

;

учитывая, что в этом случае

,

получаем,

для ,

иначе,

;

3) если р = 8m + 1, то здесь придется описать подробнее процедуру нахождения корня. Пусть р = 2 t + 1, где (t , 2) = 1 и k 3. Из критерия Эйлера получаем, что

, откуда имеем .

Выберем квадратичный невычет z (mod p). Тогда

.

Отсюда, для любого целого s , равного 0 или t, получаем

, .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]