Факторизация многочленов над конечными полями - Factorization of polynomials over finite fields

В математика и компьютерная алгебра то факторизация многочлена состоит из разложения его на товар из несводимые факторы. Это разложение теоретически возможно и уникально для многочлены с коэффициенты в любом поле, но необходимы довольно сильные ограничения на поле коэффициентов, чтобы можно было вычислить факторизацию с помощью алгоритм. На практике алгоритмы разработаны только для многочленов с коэффициентами в конечное поле, в поле рациональных чисел или в конечно порожденное расширение поля одного из них.

Все алгоритмы факторизации, включая случай многомерных полиномов над рациональными числами, сводят проблему к этому случаю; видеть полиномиальная факторизация. Он также используется для различных приложений конечных полей, таких как теория кодирования (циклическое резервирование коды и Коды BCH ), криптография (криптография с открытым ключом с помощью эллиптические кривые ), и вычислительная теория чисел.

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

Фон

Конечное поле

Теория конечных полей, истоки которой восходят к работам Гаусс и Галуа, играл роль в различных разделах математики. Из-за применимости концепции к другим темам математики и наук, таким как информатика, возродился интерес к конечным областям, и это частично связано с важными приложениями в теория кодирования и криптография. Приложения конечных полей вводят некоторые из этих достижений в криптография, компьютерная алгебра и теория кодирования.

Конечное поле или Поле Галуа это поле с конечный порядок (количество элементов). Порядок конечного поля всегда равен основной или власть прайма. Для каждого основная сила q = пр, существует ровно одно конечное поле с q элементы вплоть до изоморфизм. Это поле обозначено GF(q) или же Fq. Если п простое, GF(п) это основное поле порядка п; это поле классы остатков по модулю п, и это п элементы обозначаются 0, 1, ..., п−1. Таким образом а = б в GF(п) означает то же, что и аб (мод п).

Неприводимые многочлены

Позволять F - конечное поле. Что касается общих полей, непостоянный многочлен ж в F[Икс] называется несводимый над F если это не произведение двух многочленов положительной степени. Полином положительной степени, неприводимый над F называется сводимый по F.

Неприводимые полиномы позволяют строить конечные поля непростого порядка. Фактически, для основной власти q, позволять Fq конечное поле с q элементы, единственные с точностью до изоморфизма. Полином ж степени п больше единицы, что неприводимо над Fq, определяет расширение поля степени п которое изоморфно полю с qп элементы: элементами этого расширения являются многочлены степени ниже, чем п; сложение, вычитание и умножение на элемент Fq принадлежат многочленам; произведение двух элементов - это остаток от деления на ж их произведения в виде полиномов; Обратный элемент может быть вычислен с помощью расширенного алгоритма НОД (см. Арифметика алгебраических расширений ).

Отсюда следует, что для вычислений в конечном поле непростого порядка необходимо сгенерировать неприводимый многочлен. Для этого обычно используют случайный многочлен и проверяют его на неприводимость. Для повышения эффективности умножения в поле обычно ищут многочлены вида Иксп + топор + б.[нужна цитата ]

Неприводимые полиномы над конечными полями также полезны для Псевдослучайный генераторы чисел с использованием регистров сдвига с обратной связью и дискретный логарифм над F2п.

Количество неприводимых монические полиномы степени n больше Fq это количество апериодические ожерелья, данный Функция подсчета ожерелий Моро Mq(п). Тесно связанная функция ожерелья Nq(п) считает монические многочлены степени п которые являются первичными (степень неприводимого); или, альтернативно, неприводимые многочлены всех степеней d, которые делят n.[1]

Пример

Полином п = Икс4 + 1 неприводимо над Q но не над любым конечным полем.

  • На любом расширении поля F2, п = (Икс+1)4.
  • На любом другом конечном поле по крайней мере одно из значений −1, 2 и −2 является квадратом, потому что произведение двух неквадратов является квадратом, и поэтому мы имеем
  1. Если тогда
  2. Если тогда
  3. Если тогда

Сложность

Алгоритмы полиномиального разложения используют базовые полиномиальные операции, такие как произведения, деления, НОД, степени одного полинома по модулю другого и т. Д. умножение двух полиномов степени не выше п можно сделать в О(п2) операции в Fq используя "классическую" арифметику, или в О(пбревно(п) журнал (журнал (п))) операции в Fq с помощью «быстрая» арифметика. А Евклидово деление (деление с остатком) может быть выполнено в те же временные рамки. Стоимость полиномиальный наибольший общий делитель между двумя многочленами степени не выше п можно принять как О(п2) операции в Fq классическими методами или как О(пбревно2(п) журнал (журнал (п))) операции в Fq используя быстрые методы. Для полиномов час, грамм степени не более п, возведение в степень часq мод грамм можно сделать с О(бревно(q)) полиномиальные произведения, используя возведение в степень возведением в квадрат метод, то есть О(п2бревно(q)) операции в Fq классическими методами, или О(пбревно(q)бревно(п) журнал (журнал (п))) операции в Fq используя быстрые методы.

В следующих алгоритмах сложность выражается в количестве арифметических операций в Fq, используя классические алгоритмы арифметики многочленов.

Алгоритмы факторинга

Многие алгоритмы факторизации многочленов по конечным полям включают следующие три этапа:

  1. Факторизация без квадратов
  2. Факторизация четкой степени
  3. Факторизация равной степени

Важным исключением является Алгоритм Берлекампа, объединяющий этапы 2 и 3.

Алгоритм Берлекампа

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

Факторизация без квадратов

Алгоритм определяет без квадратов факторизация для многочленов, коэффициенты которых происходят из конечного поля Fq порядка q = пм с п прайм. Этот алгоритм сначала определяет производная а затем вычисляет НОД полинома и его производной. Если это не один, то НОД снова делится на исходный многочлен, при условии, что производная не равна нулю (случай, который существует для непостоянных многочленов, определенных над конечными полями).

В этом алгоритме используется тот факт, что если производная многочлена равна нулю, то это многочлен от Иксп, то есть, если коэффициенты принадлежат Fп, то п-я степень полинома, полученного подстановкой Икс к Икс1/п. Если коэффициенты не принадлежат Fп, то пКорень -й степени многочлена с нулевой производной получается такой же заменой на Икс, завершенный применением обратной Автоморфизм Фробениуса к коэффициентам.

Этот алгоритм работает также в области характеристика ноль, с той лишь разницей, что он никогда не входит в блоки инструкций, где пвычисляются корни th. Однако в этом случае Алгоритм Юна намного эффективнее, потому что вычисляет наибольшие общие делители многочленов более низких степеней. Следствием этого является то, что при факторизации многочлена по целым числам следующий алгоритм не используется: сначала вычисляется факторизация без квадратов по целым числам, а для факторизации полученных многочленов выбирается п такие, что они остаются бесквадратными по модулю п.

Алгоритм: SFF (Факторизация без квадратов) Вход: А монический многочлен ж в Fq[Икс] куда q = pм    Выход: Бесквадратная факторизация ж    р ← 1 # Сделать ш быть произведением (без кратности) всех факторов ж # кратность которых не делится на п    cgcd(ж, ж′)    шж/c        # Шаг 1. Определите все факторы в ш    я←1     пока ш ≠ 1 делать        уgcd(ш, c)        факш/у        рр·факя        шу; cc/у; яя + 1     конец пока    # c теперь продукт (с кратностью) оставшихся факторов ж       # Шаг 2: Определите все оставшиеся факторы с помощью рекурсии # Обратите внимание, что это факторы ж кратность которых кратна п    если c ≠ 1 тогда        cc1/п        рр·SFF(c)п    конец, если        Выход(р)

Идея состоит в том, чтобы идентифицировать продукт всех несводимых факторов ж с такой же кратностью. Это делается в два этапа. На первом этапе используется формальная производная от ж найти все множители с кратностью, не делимой на п. На втором этапе определяются оставшиеся факторы. Поскольку все остальные множители имеют кратность, кратную п, что означает, что они являются полномочиями п, можно просто взять п-й квадратный корень и применить рекурсию.

Пример бесквадратной факторизации

Позволять

разложить по полю с тремя элементами.

Алгоритм сначала вычисляет

Поскольку производная отлична от нуля, имеем ш = ж/c = Икс2 + 2 и мы входим в цикл while. После одного цикла имеем у = Икс + 2, z = Икс + 1 и р = Икс + 1 с обновлениями я = 2, ш = Икс + 2 и c = Икс8 + Икс7 + Икс6 + Икс2+Икс+1. Второй раз через цикл дает у = Икс + 2, z = 1, р = Икс + 1, с обновлениями я = 3, ш = Икс + 2 и c = Икс7 + 2Икс6 + Икс + 2. Третий раз через петлю тоже не меняется р. В четвертый раз в цикле получаем у = 1, z = Икс + 2, р = (Икс + 1)(Икс + 2)4, с обновлениями я = 5, ш = 1 и c = Икс6 + 1. С ш = 1, мы выходим из цикла while. С c ≠ 1, это должен быть идеальный куб. Кубический корень из c, полученный заменой Икс3 к Икс является Икс2 + 1, и вызов процедуры без квадратов рекурсивно определяет, что она не содержит квадратов. Следовательно, кубизируя это и комбинируя со значением р до этой точки дает разложение без квадратов

Факторизация четкой степени

Этот алгоритм разбивает многочлен без квадратов на произведение многочленов, все неприводимые множители которых имеют одинаковую степень. Позволять жFq[Икс] степени п - факторизуемый многочлен.

Алгоритм Факторизация с четкой степенью (DDF) Вход: Уравнительный многочлен без квадратов жFq[Икс]    Выход: Набор всех пар (грамм, d), такое что ж имеет неприводимый фактор степени d и грамм является произведением всех монических неприводимых множителей ж степени d.    Начинать                пока  делать                         если грамм ≠ 1, тогда                 ;                е * := е */грамм;            конец, если            я := я+1;        конец пока;        если е * ≠ 1, тогда ;        если S = ∅            затем вернись {(ж, 1)}            иначе вернуться S    Конец

Правильность алгоритма основана на следующем:

Лемма. За я ≥ 1 многочлен

является произведением всех унитарных неприводимых многочленов от Fq[Икс] чья степень делит я.

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

может быть заменен на

Следовательно, мы должны вычислить:

есть два метода:

Метод I. Начнем со значения

вычисленный на предыдущем шаге, и для вычисления его q-я степень по модулю нового е *, с помощью возведение в степень возведением в квадрат метод. Это требует

арифметические операции в Fq на каждом шагу, и таким образом

арифметические операции для всего алгоритма.

Метод II. Используя тот факт, что q-я степень - это линейная карта над Fq мы можем вычислить его матрицу с помощью

операции. Затем на каждой итерации цикла вычислите произведение матрицы на вектор (с О(град (ж)2) операции). Это вызывает общее количество операций в Fq который

Таким образом, этот второй метод более эффективен и обычно предпочтительнее. Более того, матрица, которая вычисляется этим методом, используется большинством алгоритмов для факторизации равной степени (см. Ниже); таким образом, использование его для факторизации с разной степенью экономит дополнительное время вычислений.

Факторизация равной степени

Алгоритм Кантора – Цассенхауза

В этом разделе мы рассмотрим факторизацию монического бесквадратного одномерного многочлена жстепени п, над конечным полем Fq, у которого есть р ≥ 2 попарно различных неприводимых факторов каждая степень d.

Сначала мы опишем алгоритм Кантора и Цассенхауза (1981), а затем вариант, который имеет немного лучшую сложность. Оба являются вероятностными алгоритмами, время работы которых зависит от случайного выбора (Алгоритмы Лас-Вегаса ) и имеют хорошее среднее время работы. В следующем разделе мы описываем алгоритм Шоупа (1990), который также является алгоритмом факторизации равной степени, но является детерминированным. Все эти алгоритмы требуют нечетного порядка q для поля коэффициентов. Дополнительные алгоритмы факторизации см., Например, Книга Кнута Искусство программирования Том 2.

Алгоритм Алгоритм Кантора – Цассенхауза. Вход: Конечное поле Fq нечетного порядка q. Многочлен без квадратов ж в Fq[Икс] степени п = rd,                 у которого есть р ≥ 2 неприводимых множителя степени каждого d    Выход: Множество монических неприводимых факторов ж.
    Факторы: = {ж}; в то время как размер (факторы) < р сделать, выбрать час в Fq[Икс] с deg (час) < п наугад;         для каждого ты in Факторы с градусом (ты) > d делать, если gcd (грамм, ты) ≠ 1 и gcd (грамм, ты) ≠ ты, затем Факторы: = Факторы; endif; Конечные факторы возврата.

Правильность этого алгоритма основывается на том, что кольцо Fq[Икс]/ж является прямым продуктом полей Fq[Икс]/жя куда жя работает на неприводимых факторах ж. Поскольку все эти поля имеют qd элементы, составляющие грамм в любом из этих полей равен нулю с вероятностью

Отсюда следует, что полином gcd (грамм, ты) является произведением факторов грамм для которых компонент грамм равно нулю.

Было показано, что среднее количество итераций цикла while алгоритма меньше , что дает среднее количество арифметических операций в Fq который .[2]

В типичном случае, когда dбревно(q) > п, эта сложность может быть уменьшена до

выбирая час в ядре линейного отображения

и заменяя инструкцию

к

Доказательство действительности такое же, как и выше, с заменой прямого произведения полей Fq[Икс]/жя прямым произведением их подполей на q элементы. Сложность раскладывается на для самого алгоритма, для вычисления матрицы линейной карты (которая уже может быть вычислена в бесквадратной факторизации) и О(п3) для вычисления его ядра. Можно отметить, что этот алгоритм работает и в том случае, если факторы имеют разную степень (в данном случае число р факторов, необходимых для остановки цикла while, находится как размерность ядра). Тем не менее, сложность немного лучше, если перед использованием этого алгоритма выполняется факторизация без квадратов (как п может уменьшаться при бесквадратной факторизации, это снижает сложность критических шагов).

Алгоритм Виктора Шупа

Как и алгоритмы предыдущего раздела, Виктор Шуп Алгоритм является алгоритмом факторизации равной степени.[3] В отличие от них, это детерминированный алгоритм. Однако на практике он менее эффективен, чем алгоритмы предыдущего раздела. Для алгоритма Шоупа ввод ограничен полиномами над простыми полями. Fп.

Худший случай временная сложность алгоритма Шупа имеет фактор Хотя эта сложность экспоненциальна, она намного лучше, чем предыдущие детерминированные алгоритмы (алгоритм Берлекампа), в которых п как фактор. Однако существует очень мало полиномов, для которых время вычисления экспоненциально, а средняя временная сложность алгоритма полиномиальна от куда d - степень полинома, а п - количество элементов основного поля.

Позволять грамм = грамм1 ... граммk - желаемая факторизация, где граммя - различные монические неприводимые многочлены степени d. Позволять п = град (грамм) = kd. Мы считаем звенеть р = Fq[Икс]/грамм и обозначим также через Икс образ Икс в р. Кольцо р является прямым продуктом полей ря = Fq[Икс]/граммя, и обозначим через пя естественный гомоморфизм от р на ря. В Группа Галуа из ря над Fq цикличен по порядку d, порожденный полевой автоморфизм тытып. Отсюда следует, что корни граммя в ря находятся

Как и в предыдущем алгоритме, этот алгоритм использует тот же подалгебра B из р как Алгоритм Берлекампа, иногда называемый "подагеброй Берлекампа" и определяемый как

Подмножество S из B говорят разделительный набор если для каждого 1 ≤я < j ≤ k Существует s ∈ S такой, что . В предыдущем алгоритме разделяющее множество строится путем случайного выбора элементов S. В алгоритме Шупа разделяющее множество строится следующим образом. Позволять s в р[Y] быть таким, чтобы

потом является разделяющим множеством, потому что за я =1, ..., k (два монических многочлена имеют одинаковые корни). Поскольку граммя попарно различны, для каждой пары различных индексов (я, j) хотя бы один из коэффициентов sчас удовлетворит

Имея разделяющий набор, алгоритм Шупа действует как последний алгоритм из предыдущего раздела, просто заменяя инструкцию «выбрать произвольно. час в ядре линейного отображения "по" выбрать час + я с час в S и я в 1, ..., k−1}".

Сложность времени

Как описано в предыдущих разделах, для факторизации по конечным полям существуют рандомизированные алгоритмы полинома временная сложность (например, алгоритм Кантора-Цассенхауза). Также существуют детерминированные алгоритмы с полиномиальной средней сложностью (например, алгоритм Шупа).

Существование детерминированного алгоритма с полиномиальной сложностью наихудшего случая все еще остается открытой проблемой.

Тест на несводимость Рабина

Подобно алгоритму факторизации разной степени, алгоритм Рабина[4] основана на сформулированной выше лемме.Алгоритм факторизации четкой степени проверяет каждый d не более половины степени входного полинома. Алгоритм Рабина использует то, что факторы не нужны для рассмотрения меньшего количества d. В остальном он похож на алгоритм факторизации с разной степенью. Это основано на следующем факте.

Позволять п1, ..., пk, быть всеми простыми делителями п, и обозначим , для 1 ≤ яk многочлен ж в Fq[Икс] степени п неприводимо в Fq[Икс] если и только если , для 1 ≤я ≤ k, и ж разделяет . Фактически, если ж имеет коэффициент степени, не делящий п, тогда ж не разделяет ; если ж имеет коэффициент деления степени п, то этот множитель делит хотя бы одну из

Алгоритм Тест на несводимость Рабина Вход: Учетный многочлен ж в Fq[Икс] степени п,         п1, ..., пk все различные простые делители числа п.    Выход: Либо "ж неприводимо "или"ж сводится ". за j = От 1 до k делать         ;    за я = От 1 до k делать         ;        грамм : = gcd (ж, час);        если грамм ≠ 1, затем вернись "ж сводится " и СТОП;    конец для;    ;    если грамм = 0, затем вернись "ж неприводимо ", иначе вернуться "ж сводится "

Основная идея этого алгоритма - вычислить начиная с самого маленького путем повторного возведения в квадрат или использования Автоморфизм Фробениуса, а потом взять соответствующий gcd. Используя элементарную полиномиальную арифметику, вычисление матрицы автоморфизма Фробениуса требует операции в Fq, вычисление

потребности О(п3) дальнейших операций, а самому алгоритму требуется О(кн2) операций, что в сумме дает операции в Fq. Использование быстрой арифметики (сложность для умножения и деления, и для вычисления GCD), вычисление повторным возведением в квадрат , а сам алгоритм , что в сумме дает операции в Fq.

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

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

  • КЕМПФЕРТ, H (1969) На Факторизация многочленов Департамент математики, Государственный университет Огайо, Колумбус, Огайо 43210
  • Шуп, Виктор (1996) Гладкость и факторизация полиномов над конечными полями Департамент компьютерных наук Университета Торонто
  • Фон Цур Гатен, Дж.; Панарио, Д. (2001). Факторинг полиномов по конечным полям: обзор. Журнал символических вычислений, Том 31, выпуски 1-2, январь 2001 г., стр. 3-17.
  • Гао Шухун, Панарио Даниэль,Проверка и построение неприводимых многочленов над конечными полями Департамент математических наук, Университет Клемсона, Южная Каролина, 29634-1907, США. и факультет информатики Университета Торонто, Канада M5S-1A4
  • Шуп, Виктор (1989) Новые алгоритмы нахождения неприводимых многочленов над конечными полями Департамент компьютерных наук Висконсинского университета в Мэдисоне
  • Геддес, Кейт О.; Czapor, Stephen R .; Лабан, Джордж (1992). Алгоритмы компьютерной алгебры. Бостон, Массачусетс: Kluwer Academic Publishers. С. xxii + 585. ISBN  0-7923-9259-0.

внешняя ссылка

Примечания

  1. ^ Кристоф Ройтенауэр, Круглые тела и неснижаемые многочлены, Анна. Sci. математика Квебека, том 12, № 2, стр. 275-285
  2. ^ Флажолет, Филипп; Steayaert, Жан-Марк (1982), Автоматы, языки и программирование, Конспект лекций по вычисл. Наук, 140, Springer, стр. 239–251, Дои:10.1007 / BFb0012773, ISBN  978-3-540-11576-2
  3. ^ Виктор Шуп, О детерминированной сложности факторизации многочленов над конечными полями, Information Processing Letters 33: 261-267, 1990
  4. ^ Рабин, Майкл (1980). «Вероятностные алгоритмы в конечных полях». SIAM Журнал по вычислениям. 9 (2): 273–280. CiteSeerX  10.1.1.17.5653. Дои:10.1137/0209024.