Специальное числовое сито - Special number field sieve

В теория чисел, филиал математика, то сито со специальным номером (SNFS) - это специализированный целочисленная факторизация алгоритм. В общее числовое поле сито (GNFS) была получена из него.

Специальное сито числового поля эффективно для целых чисел вида ре ± s, куда р и s маленькие (например Числа Мерсенна ).

Эвристически, это сложность для разложения целого числа имеет вид:[1]

в О и L-обозначения.

SNFS широко используется NFSNet (волонтер распределенных вычислений усилие), NFS @ Home и другие, чтобы разложить на множители числа Каннингем проект; какое-то время записи для целочисленной факторизации данные были учтены SNFS.

Обзор метода

SNFS основана на идее, аналогичной гораздо более простой рациональное сито; в частности, читателям может быть полезно прочитать о рациональное сито во-первых, прежде чем заняться SNFS.

SNFS работает следующим образом. Позволять п быть целым числом, которое мы хотим разложить на множители. Как в рациональное сито SNFS можно разбить на два этапа:

  • Сначала найдите большое количество мультипликативных отношений между факторная база элементов Z/пZ, таких, что количество мультипликативных отношений больше, чем количество элементов в факторной базе.
  • Во-вторых, перемножьте подмножества этих соотношений таким образом, чтобы все показатели были четными, в результате чего получатся сравнения вида а2б2 (мод п). Это, в свою очередь, немедленно приводит к факторизации п: п=gcd (а+б,п) × gcd (а-б,п). Если все сделано правильно, почти наверняка хотя бы одна такая факторизация будет нетривиальной.

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

Подробная информация о методе

Позволять п быть целым числом, которое мы хотим разложить на множители. Мы выбираем неприводимый многочлен ж с целыми коэффициентами и целым м такой, что ж(м)≡0 (мод п) (мы объясним, как они выбираются в следующем разделе). Позволять α быть корень из ж; мы можем тогда сформировать звенеть Z[α]. Есть уникальный гомоморфизм колец φ из Z[α] к Z/ пZ что отображает α к м. Для простоты предположим, что Z[α] это уникальная область факторизации; алгоритм может быть изменен для работы, когда это не так, но тогда возникают некоторые дополнительные сложности.

Далее мы настраиваем два параллельных факторные базы, один в Z[α] и один в Z. Тот в Z[α] состоит из всех простых идеалов в Z[α], норма которого ограничена выбранным значением . Факторная база в Z, как и в случае рационального решета, состоит из всех простых целых чисел с точностью до некоторой другой границы.

Затем мы ищем относительно простой пары целых чисел (а,б) такой, что:

  • а+бм является гладкий относительно факторной базы в Z (т. е. это произведение элементов факторной базы).
  • а+ гладкая относительно факторной базы в Z[α]; учитывая, как мы выбрали факторную базу, это эквивалентно норме а+ делится только на простые числа меньше чем .

Эти пары находятся в процессе просеивания, аналогичном Сито Эратосфена; это мотивирует название "Сито числового поля".

Для каждой такой пары мы можем применить гомоморфизм колец φ к факторизации а+, и мы можем применить канонический гомоморфизм колец из Z к Z/ пZ к факторизации а+бм. Уравнивание этих значений дает мультипликативное отношение между элементами большей факторной базы в Z/ пZ, и если мы найдем достаточно пар, мы можем перейти к объединению отношений и множителя п, как описано выше.

Выбор параметров

Не каждое число является подходящим выбором для SNFS: вам нужно заранее знать полином ж соответствующей степени (оптимальная степень предполагается , что составляет 4, 5 или 6 для размеров N, которые в настоящее время можно разложить на множители) с небольшими коэффициентами, а значение Икс такой, что где N - число для факторизации. Есть дополнительное условие: Икс должен удовлетворить для a и b не больше, чем .

Один набор чисел, для которых существуют такие многочлены, - это числа из Столы Каннингема; например, когда NFSNET факторизовал 3 ^ 479 + 1, они использовали многочлен x ^ 6 + 3 с x = 3 ^ 80, поскольку (3 ^ 80) ^ 6 + 3 = 3 ^ 480 + 3, и .

Числа, определяемые линейными повторениями, например Фибоначчи и Лукас числа также имеют многочлены SNFS, но их построить немного сложнее. Например, имеет полином , а значение Икс удовлетворяет .[2]

Если вам уже известны некоторые факторы большого числа SNFS, вы можете выполнить расчет SNFS по модулю оставшейся части; для приведенного выше примера NFSNET 3 ^ 479 + 1 = (4 * 158071 * 7167757 * 7759574882776161031) умноженное на 197-значное составное число (маленькие множители были удалены ECM ), а SNFS выполнялась по модулю 197-значного числа. Количество отношений, требуемых SNFS, по-прежнему зависит от размера большого числа, но отдельные вычисления выполняются быстрее по модулю меньшего числа.

Ограничения алгоритма

Этот алгоритм, как упоминалось выше, очень эффективен для чисел вида ре±s, за р и s относительно маленький. Он также эффективен для любых целых чисел, которые можно представить в виде многочлена с малыми коэффициентами. Сюда входят целые числа более общего вида аре±bsж, а также для многих целых чисел, двоичное представление которых имеет малый вес Хэмминга. Причина этого заключается в следующем: Сито числового поля выполняет просеивание в двух разных полях. Первое поле обычно представляет собой рациональные числа. Второй - поле более высокой степени. Эффективность алгоритма сильно зависит от норм некоторых элементов в этих полях. Когда целое число может быть представлено как многочлен с малыми коэффициентами, нормы, которые возникают, намного меньше, чем те, которые возникают, когда целое число представлено общим многочленом. Причина в том, что общий многочлен будет иметь гораздо большие коэффициенты, а нормы соответственно будут больше. Алгоритм пытается разложить эти нормы на фиксированный набор простых чисел. Когда количество форм меньше, эти числа с большей вероятностью будут иметь значение.

Смотрите также

Рекомендации

  1. ^ Померанс, Карл (Декабрь 1996 г.), «Сказка о двух решетах» (PDF), Уведомления AMS, 43 (12), стр. 1473–1485.
  2. ^ Франке, Йенс. «Замечания по установке для ggnfs-lasieve4». Массачусетский технологический институт Массачусетский Институт Технологий.

дальнейшее чтение