Сито с полем специального номера
В теории чисел , разделе математики , решето специального числового поля (SNFS) представляет собой специальный алгоритм факторизации целых чисел . На его основе было получено решето общего числового поля (GNFS).
Специальное решето числового поля эффективно для целых чисел вида r и ± s , где r и s малы (например, числа Мерсенна ).
Эвристически , его сложность при факторизации целого числа имеет вид: [1]
в O и L-нотациях .
SNFS широко использовался NFSNet (волонтерской организацией распределенных вычислений ), NFS@Home и другими для факторизации чисел проекта Каннингема ; в течение некоторого времени записями для факторизации целых чисел были числа, факторизованные SNFS.
Обзор метода [ править ]
SNFS основана на идее, похожей на гораздо более простое рациональное сито ; в частности, читателям может быть полезно сначала прочитать о рациональном сите , прежде чем приступать к SNFS.
СНФС работает следующим образом. Пусть n — целое число, которое мы хотим факторизовать. Как и в рациональном сите , SNFS можно разбить на два этапа:
- Сначала найдите большое количество мультипликативных отношений среди факторной базы элементов Z / n Z , такое, что количество мультипликативных отношений больше, чем количество элементов в факторной базе.
- Во-вторых, перемножьте подмножества этих отношений так, чтобы все показатели степени были четными, в результате чего получились сравнения вида a 2 ≡ b 2 ( мод н ). Это, в свою очередь, немедленно приводит к факторизации n : n = НОД ( a + b , n ) × НОД( a - b , n ). Если все сделано правильно, почти наверняка по крайней мере одна такая факторизация будет нетривиальной.
Второй шаг идентичен случаю рационального решета и представляет собой прямую задачу линейной алгебры . Однако первый шаг выполняется другим, более эффективным способом, чем рациональное сито, путем использования числовых полей .
Подробности метода [ править ]
Пусть n — целое число, которое мы хотим факторизовать. Мы выбираем неприводимый многочлен f с целыми коэффициентами и целое число m такое, что f ( m )≡0 ( mod n ) (мы объясним, как они выбираются в следующем разделе). Пусть α — корень f ; тогда мы сможем образовать кольцо Z [α]. Существует единственный гомоморфизм колец φ из Z [ α ] в Z /n Z , который отображает α в m . Для простоты предположим, что Z [ α ] — уникальная область факторизации ; алгоритм можно модифицировать, чтобы он работал, когда это не так, но тогда возникают некоторые дополнительные сложности.
Далее мы создаем две параллельные факторные базы : одну в Z [ α ] и одну Z. в Один из Z [ α ] состоит из всех простых идеалов из Z [ α ], норма которых ограничена выбранным значением. . Факторная база в Z , как и в случае рационального решета, состоит из всех простых целых чисел с точностью до некоторой другой границы.
Затем мы ищем относительно простые пары целых чисел ( a , b ) такие, что:
- a + bm является гладким относительно факторной базы в Z (т. е. является произведением элементов факторной базы).
- a + bα является гладким относительно факторбазы в Z [ α ]; учитывая, как мы выбрали факторную базу, это эквивалентно тому, что норма a + bα делится только на простые числа, меньшие .
Эти пары обнаруживаются посредством процесса просеивания, аналогичного сито Эратосфена ; это объясняет название «Сито числового поля».
Для каждой такой пары мы можем применить кольцевой гомоморфизм φ к факторизации a + bα , и мы можем применить канонический гомоморфизм колец из Z в Z /n Z к факторизации a + bm . Установка этих равных дает мультипликативное отношение между элементами большей факторной базы в Z /n Z , и если мы найдем достаточно пар, мы сможем приступить к объединению отношений и фактора n , как описано выше.
Выбор параметров [ править ]
Не каждое число является подходящим выбором для SNFS: нужно заранее знать многочлен f соответствующей степени (оптимальная степень предполагается равной , что равно 4, 5 или 6 для размеров N, которые в настоящее время возможно факторизовать) с небольшими коэффициентами и значением x таким, что где N — число, которое нужно факторизовать. Существует дополнительное условие: x должно удовлетворять для a и b не больше, чем .
Одним из наборов чисел, для которых существуют такие полиномы, являются цифры из таблиц Каннингема ; например, когда NFSNET учитывает , они использовали полином с , с , и .
Числа, определяемые линейными рекуррентами, такие как числа Фибоначчи и Люка , также имеют полиномы SNFS, но их немного сложнее построить. Например, имеет полином , а значение x удовлетворяет . [2]
Если уже известны некоторые факторы большого числа, совместимые с SNFS, то можно выполнить расчет SNFS по модулю оставшейся части; для примера NFSNET выше, умножить на 197-значное составное число (малые множители были найдены с помощью ECM ), и SNFS была выполнена по модулю 197-значного числа. Количество связей, требуемых SNFS, по-прежнему зависит от размера большого числа, но отдельные вычисления выполняются быстрее по модулю меньшего числа.
Ограничения алгоритма [ править ]
Этот алгоритм, как уже говорилось выше, очень эффективен для чисел вида r и ± s для r и s относительно малых. Он также эффективен для любых целых чисел, которые можно представить в виде многочлена с небольшими коэффициентами. Сюда входят целые числа более общего вида ar и ± bs ж , а также для многих целых чисел, двоичное представление которых имеет низкий вес Хэмминга. Причина этого в следующем: Сито числового поля выполняет просеивание в двух разных полях.Первое поле обычно является рациональным. Второе – это область более высокой степени. Эффективность алгоритма сильно зависит от норм тех или иных элементов в этих полях. Когда целое число можно представить в виде многочлена с малыми коэффициентами, возникающие нормы намного меньше, чем те, которые возникают, когда целое число представляется многочленом общего назначения. Причина в том, что общий полином будет иметь гораздо большие коэффициенты, и нормы соответственно будут больше. Алгоритм пытается факторизовать эти нормы по фиксированному набору простых чисел. Когданормы меньше, эти цифры с большей вероятностью будут учитываться.
См. также [ править ]
Ссылки [ править ]
- ^ Померанс, Карл (декабрь 1996 г.), «Повесть о двух решетах» (PDF) , Уведомления AMS , том. 43, нет. 12, стр. 1473–1485.
- ^ Франке, Йенс. «Примечания по установке ggnfs-lasieve4» . Массачусетский технологический институт Массачусетского технологического института.
Дальнейшее чтение [ править ]
- Бирнс, Стивен (18 мая 2005 г.), «Сито числового поля» (PDF) , Math 129
- Ленстра, АК ; Ленстра, Х.В. младший ; Манасс, М.С. и Поллард, Дж.М. (1993), «Факторизация девятого числа Ферма», Mathematics of Computation , 61 (203): 319–349, Bibcode : 1993MaCom..61..319L , doi : 10.1090/S0025- 5718-1993-1182953-4 , HDL : 1887/2150
- Ленстра, АК; Ленстра, HW младший, ред. (1993), Развитие сита числового поля , Конспект лекций по математике, вып. 1554, Нью-Йорк: Springer-Verlag, ISBN. 978-3-540-57013-4
- Сильверман, Роберт Д. (2007), «Оптимальная параметризация SNFS», Журнал математической криптологии , 1 (2): 105–124, CiteSeerX 10.1.1.12.2975 , doi : 10.1515/JMC.2007.007 , S2CID 16236028