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

В вычислительный алгебра, то Алгоритм Кантора – Цассенхауза это метод факторинга многочлены над конечные поля (также называемые полями Галуа).

Алгоритм состоит в основном из возведения в степень и полиномиального НОД вычисления. Это было изобретено Дэвид Г. Кантор и Ганс Цассенхаус в 1981 г.

Возможно, это доминирующий алгоритм решения проблемы, заменивший предыдущий Алгоритм Берлекампа 1967 года. В настоящее время он внедрен во многих системы компьютерной алгебры.

Обзор

Фон

Алгоритм Кантора – Цассенхауза принимает в качестве входных данных бесквадратный многочлен (то есть без повторяющихся факторов) степени п с коэффициентами в конечном поле чей неприводимый многочлен факторы имеют одинаковую степень (существуют алгоритмы для эффективного факторизации произвольных многочленов в произведение многочленов, удовлетворяющих этим условиям, например, является бесквадратным многочленом с теми же множителями, что и , так что алгоритм Кантора – Цассенхауза может быть использован для факторизации произвольных многочленов). На выходе он дает полином с коэффициентами в том же поле такими, что разделяет . Затем алгоритм может быть применен рекурсивно к этим и последующим делителям, пока мы не найдем разложение в степени неприводимых многочленов (вспоминая, что звенеть полиномов над любым полем является уникальная область факторизации ).

Все возможные факторы содержатся в факторное кольцо. Если мы предположим, что имеет несократимые факторы , все степени d, то это факторкольцо изоморфно прямой продукт факторных колец . Изоморфизм из р к S, сказать , отображает многочлен к s-набор его редукций по модулю каждого из , т.е. если:

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

Основной результат

Основной результат, лежащий в основе алгоритма Кантора – Цассенхауза, следующий: Если является многочленом, удовлетворяющим:

куда сокращение по модулю как и раньше, и если какие-либо два из следующих трех наборов непусты:

то существуют следующие нетривиальные факторы :

Алгоритм

Алгоритм Кантора – Цассенхауза вычисляет многочлены того же типа, что и выше, используя изоморфизм, описанный в разделе «Предпосылки». Это происходит следующим образом, если поле имеет нечетную характеристику (процесс может быть довольно просто обобщен на поля характеристики 2). Выберите случайный многочлен такой, что . Набор и вычислить . С является изоморфизмом, мы имеем (используя наши теперь установленные обозначения):

Теперь каждый это элемент поля порядка , как отмечалось ранее. Мультипликативная подгруппа этого поля имеет порядок и так, если только , у нас есть для каждого я и, следовательно для каждого я. Если , тогда конечно . Следовательно является многочленом того же типа, что и над. Далее, поскольку , по крайней мере, два из наборов и C непусты, и вычисляя вышеуказанные НОД, мы можем получить нетривиальные множители. Поскольку кольцо многочленов над полем является Евклидова область, мы можем вычислить эти НОД, используя Евклидов алгоритм.

Приложения

Одним из важных приложений алгоритма Кантора – Цассенхауза является вычисление дискретные логарифмы над конечными полями степенного порядка. Вычисление дискретных логарифмов - важная проблема в криптография с открытым ключом. Для поля порядка степеней простоты самый быстрый из известных методов - это индексный метод исчисления, который включает факторизацию элементов поля. Если мы представим поле порядка степени простых чисел обычным способом, то есть как полиномы над базовым полем простого порядка, приведенные по модулю неприводимого полинома соответствующей степени, то это будет просто полиномиальная факторизация, как это предусмотрено алгоритмом Кантора – Цассенхауза .

Реализация в системах компьютерной алгебры

Алгоритм Кантора – Цассенхауза реализован в PARI / GP система компьютерной алгебры как factorcantor () функция.

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

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

  • Кантор, Дэвид Г.; Цассенхаус, Ганс (Апрель 1981 г.), «Новый алгоритм факторизации многочленов над конечными полями», Математика вычислений, 36 (154): 587–592, Дои:10.1090 / S0025-5718-1981-0606517-5, JSTOR  2007663, Г-Н  0606517
  • http://blog.fkraiem.org/2013/12/01/polynomial-factorisation-over-finite-fields-part-3-final-splitting-cantor-zassenhaus-in-odd-characteristic/