Алгоритм COS

Алгоритм COS (Копперсмит, Одлыжко, Шреппель) — субэкспоненциальный алгоритм дискретного логарифмирования в кольце вычетов по модулю простого числа. Был предложен в 1986 году.

Исходные данные править

Пусть задано сравнение

  ((1))

Необходимо найти натуральное число x, удовлетворяющее сравнению (1).

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

1 этап. Пусть

 

Сформируем множество

 

где q — простые.


2 этап. С помощью некоторого просеивания ищем пары   — такие, что  , и


 

(рассматривается абсолютно наименьший вычет). При этом так как  , то


 

причём это абсолютно наименьший вычет в этом классе и он имеет величину  . Поэтому вероятность его гладкости выше, чем для произвольных чисел, меньших p-1.

Логарифмируя по основанию a, получим соотношение

 

Мы можем также считать, что a является гладким, то есть

 

откуда

 


3 этап. Набрав на 2-м этапе достаточно много уравнений, мы решим получившуюся систему линейных уравнений и найдём  .

4 этап. Для нахождения x введём новую границу гладкости  . Случайным перебором находим одно значение w, удовлетворяющее соотношению

 

u — простые числа «средней» величины.

5 этап. С помощью методов, аналогичных этапам 2 и 3, мы находим логарифмы простых чисел u, возникших на этапе 4.

6 этап. Находим ответ:

 

Оценка сложности править

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

Литература править

  • Василенко О.Н. Теоретико-числовые алгоритмы в криптографии. — М.: МЦНМО, 2003. — 328 с. — ISBN 5-94057-103-4.