Следующий ответ был первоначально опубликован как комментарий в блоге Джила
(1) Пусть - числовое поле, где мы предполагаем, что имеет моничный минимальный многочлен . Затем можно представить элементы кольца целых чисел виде полиномов от или в виде целочисленного базиса - оба они эквивалентны.α f ∈ Z [ x ] O K αK=Q(α)αf∈Z[x]OKα
Теперь, фиксируя как в (1), мы получаем полиномиальное сокращение времени от задачи над к проблеме в . Чтобы убедиться, что вычисления (например, пересечение идеала с или факторизация полинома mod ) могут быть выполнены за полиномиальное время, см. Книгу Коэна, на которую ссылаются в предыдущем ответе.K Q Z pKKQZp
В качестве предварительного вычисления для каждого рационального простого числа делящего дискриминант (то есть дискриминанта ), найдите все простые числа лежащие выше .α f O K ppαfOKp
(2) Для проверки простоты, если задан идеальный пусть таков, что (это можно вычислить за полиномиальное время, а количество бит полиномиально на входе). Проверьте за полиномиальное время, является ли простым. Если нет, то не является простым. Если да, то найдите простые числа лежащие выше либо из предварительного вычисления, либо с помощью фактора mod . В любом случае, если является простым, это должно быть одно из этих простых чисел. p ∈ Z a ∩ Z = p Z p p a O K p f p aa◃OKp∈Za∩Z=pZppaOKpfpa
(3a), (6a) Для разложения на простые числа при заданном идеале найдите его норму . Опять же, это может быть найдено за полиномиальное время и, следовательно, не слишком велико. Коэффициент в (либо классически, либо с использованием алгоритма Шора, в зависимости от желаемого сокращения). Это дает список рациональных простых чисел, разделяющих , и, следовательно, как и в 2, мы можем найти список простых чисел разделяющих . Так как это дает список простых чисел, разделяющих y = N K Q ( a ) = [ O K : a ] y Z y O K y a | y O K aa◃OKy=NKQ(a)=[OK:a]yZyOKya|yOKa, Наконец, легко определить показатель, на который простое число делит данный идеал.
(3b), (6b) Но Гил хочет факторизации в неприводимые, а не простые числа. Оказывается, что при простой факторизации можно эффективно построить одну факторизацию в неприводимые элементы . Для этого пусть будет номером класса и отметим, что можно эффективно вычислить идеальный класс данного идеала. Теперь, чтобы найти неприводимый делитель выберите простых идеалов (возможно, с повторением) из факторизации x O K h K x h K x x h KxOKxOKhKxhKx, По принципу «голубиного отверстия» некоторое подмножество этих множителей умножается на единицу в группе классов; найти минимальное такое подмножество. Тогда его произведение является главным идеалом, порожденным неприводимым элементом. Разделите на этот элемент, удалите соответствующие идеалы из факторизации и повторите. Если факторизация имеет меньше чем элементов, тогда просто возьмите минимальное подмножество всех факторов.xhK
(4) Я думаю, что можно посчитать факторизации в неприводимые, но это немного лишняя комбинаторика - пожалуйста, дайте мне время разобраться. С другой стороны, определение их всех не представляет интереса в контексте алгоритмов субэкспоненциальной факторизации, поскольку таких факторизаций в целом экспоненциально много.
(5) Понятия не имею.