stringtranslate.com

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

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

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

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

Обзор

Фон

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

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

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

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

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

где — сокращение по модулю , как и прежде, и если любые два из следующих трех множеств непусты:

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

Алгоритм

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

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

Приложения

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

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

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

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

Ссылки

  1. ^ Кантор, Дэвид Г.; Цассенхаус , Ганс (апрель 1981 г.), «Новый алгоритм факторизации многочленов над конечными полями», Математика вычислений , 36 (154): 587–592, doi : 10.1090/S0025-5718-1981-0606517-5 , JSTOR  2007663, MR  0606517
  2. ^ Элиа, Микеле; Скипани, Давиде (2015), «Улучшения в алгоритме факторизации Кантора–Цассенхауза», Mathematica Bohemica , 140 (3), Институт математики, Чешская академия наук: 271–290, arXiv : 1012.5322 , doi : 10.21136/mb.2015.144395

Внешние ссылки