Специальный почтовый штемпель
- 1 year ago
- 0
- 0
Специальный метод решета числового поля ( англ. special number field sieve , SNFS) является методом факторизации целых чисел особого вида. Из него был получен общий метод решета числового поля , являющийся наиболее эффективным алогритмом факторизации больших целых чисел . Метод эффективен для целых чисел вида r e ± s , где r N s Z, r и s невелики(например Числа Мерсенна ).
Эвристическая оценка сложности факторизации числа n выражается формулой :
С помощью SNFS было разложено на множители число Ферма , содержащее 155 десятичных цифр .
Основную идею метода впервые предложил в своей статье , которую он разослал своим коллегам в 1988 г. В ней он проиллюстрировал свой метод на седьмом числе Ферма . Идея заключалась в выполнении просеивания не в кольце целых чисел, как в методе квадратичного решета , а в алгебраическом числовом поле. В 1990 году с помощью этого метода было разложено девятое число Ферма . Изначально метод был применим только для чисел специального вида 2 n ± c , поэтому и получил название «специальный метод решета числового поля». Позже метод был модифицирован для произвольных чисел и назван общим методом числового решета .
SNFS основан на более простом методе рационального решета . Читателю предлагается ознакомиться с данным методом до изучения SNFS.
SNFS работает следующим образом. Пусть n число для факторизации. Аналогично методу рационального решета, алгоритм SNFS может быть разбит на два шага:
Второй шаг идентичен шагу в методе рационального решета и является задачей линейной алгебры . В отличие от первого шага, который в этом методе является более эффективным.
Пусть n — это факторизуемое число. Возьмём неприводимый многочлен f и целое число m , такое что f ( m )≡0 ( mod n ) (принципы их выбора будут объяснены в следующем разделе). Пусть α корень f ; тогда существует кольцо Z [α]. Тогда существует единственное φ между Z [ α ] и Z /n Z , которое отображает α в m . Для простоты полагаем, что Z [ α ] является факториальным кольцом ; метод может быть модифицирован для случая, когда это условие не выполняется, что приведет к дополнительным вычислениям.
Затем создадим две факторных базы , одну для Z [ α ] и одну для Z . Факторная база Z [ α ] содержит все простые числа Z [ α ], чей размер ограничен значением . Факторная база Z , как и в методе рационального решета, состоит из простых чисел до некоторого граничного числа.
Затем ищем такие взаимно простые числа ( a , b ) что:
Эти пары чисел находятся методом просеивания, аналогичным методу решета Эратосфена ; это объясняет название метода решета числового поля.
Для каждой такой пары чисел ( a , b ) мы можем применить кольцо гомоморфизма φ для факторизации a + bα и каноническое кольцо гомоморфизма от Z до Z /n Z для факторизации a + bm . Приравняв их, получим мультипликативные соотношения для элементов факторной базы Z /n Z . Найдя достаточное количество таких соотношений, перемножаем их между собой как описано выше.
Не каждое число подходит для факторизации методом SNFS: необходимо заранее найти полином f подходящей степени (оптимальная степень полагается равной ; для факторизуемых на данных момент чисел N это 4,5 или 6) с малыми коэффициентами и такое x , что , где N число для факторизации. Также x должен быть таким, чтобы выполнялось для a и b не больших .
Одним из видов чисел, для которых такие полиномы существуют являются числа вида ; например, когда NFSNET раскладывали число 3^479+1, они использовали полином x^6+3 при x=3^80, так как (3^80)^6+3 = 3^480+3 и .
У чисел, определяемых линейными рекуррентными соотношениями, таких как числа Фибоначчи и числа Люка , тоже есть полиномы SNFS, но их немного сложнее получить. Например, имеет полином , и значение x , удовлетворяющее .
Если вам известны некоторые делители большого SNFS-числа, вы можете произвести SNFS вычисления для оставшейся части; для примера выше от NFSNET, 3^479+1 = (4·158071·7167757·7759574882776161031) раз 197-знаковое составное число (небольших делители были исключены методом ECM ), и SNFS применялся для 197-значного числа. Число операций для NFS зависит от размера исходного числа, но некоторые вычисления производятся быстрее по модулю меньшего числа.
Этот метод, как подмечено выше, очень эффективен для чисел вида r e ± s , где r и s относительно маленькие. Он также эффективен для чисел, представимых в виде полинома с небольшими коэффициентами. Дело в том, что специальный метод решета числового поля производит просеивание для двух числовых полей. Эффективность метода сильно зависит от размера определённых элементов в этих полях. Если число можно представить в виде полинома с маленькими коэффициентами, числа, с которыми производятся вычисления, намного меньше чисел, с которыми приходится иметь дело, если такого полинома не существует.
{{
citation
}}
:
Игнорируется текст: "Джон Поллард" (
справка
)
{{
citation
}}
:
Неизвестный параметр
|lastauthoramp=
игнорируется (
|name-list-style=
предлагается) (
справка
)
Википедия:Обслуживание CS1 (множественные имена: authors list) (
ссылка
)
от 4 февраля 2012 на
Wayback Machine
{{
citation
}}
: Википедия:Обслуживание CS1 (множественные имена: editors list) (
ссылка
)