Неприводимые многочлены в конечном поле K
В этом разделе мы научимся определять для заданного многочлена с коэффициентами из конечного поля P={0, 1, 2, ... q - 1}, является ли этот многочлен неприводимым в поле P. Неприводимые многочлены используются для построения линейных сдвиговых регистров с обратной связью (см. раздел 3.1.6). Наш алгоритм основывается на следующей теореме.
Теорема. Пусть F – конечное поле, состоящее из q элементов. Тогда для любого натурального многочлен
является произведением всех неприводимых над полем F многочленов степени k.
Из этой теоремы сразу следует, что для произвольного многочлена
является произведением всех линейных сомножителей
,
является произведением всех квадратичных сомножителей
и т.д. Поэтому, если
=1 для
, то
является неприводимым многочленом. Наибольший общий делитель двух многочленов находят с помощью алгоритма Евклида, используя соотношение
, где
- остаток от деления
на
.
Упомянутый тест на неприводимость можно заменить более быстрым альтернативным тестом: многочлен над полем F=
является неприводимым тогда и только тогда, когда
, и
для всех простых делителей k степени n.
Пример. Показать неразложимость многочлена над полем F2={0,1}.
В данном случае, n=3, q=2. Для вычисления поделим столбиком
на
и найдем остаток:
. Остаток равен x. Простым делителям числа n=3 являются только k=1, поэтому остается только проверить, что
. Для этого делим первый многочлен на второй и находим остаток
. Теперь по алгоритму Евклида
.
14. ρ-метод Полларда для дискретного логарифмирования — алгоритм дискретного логарифмирования в кольце вычетов по простому модулю, имеющий экспоненциальную сложность. Он был предложен Поллардом в 1978 году.
Постановка задачи
Для заданного простого числа p и двух целых чисел a и b требуется найти целое число x, удовлетворяющее сравнению:
Идея алгоритма
Рассматриваются три числовые последовательности:
определённые следующим образом:
Замечание: везде рассматривается наименьшие неотрицательные вычеты.
Далее рассматриваются наборы и ищется номер i, для которого
. Для такого i выполнено
Если при этом , то
Эвристическая оценка сложности составляет
15. Методы факторизации целых чисел. (ρ-1) – метод Полларда.
Факторизацией целого числа называется его разложение в
произведение простых сомножителей. Такое разложение, согласно основной
теореме арифметики, всегда существует и является единственным (с
точностью до порядка следования множителей). Задача факторизации является вычислительно сложной задачей. Однако никому пока не удалось получить высоких нижних оценок этого алгоритма.
Все методы факторизации в зависимости от их производительности можно разбить на две группы: экспоненциальные методы и субэкспоненциальные методы. Среди субэкспоненциальных алгоритмов следует выделить метод эллиптических кривых Ленстры, являющийся аналогом (ρ − 1)-метода Полларда. Последний имеет экспоненциальную оценку сходимости.
(ρ -1) – метод Полларда основан на Теореме Ферма:
Пусть n—факторизуемое число, а 1 < p < n– его простой делитель. Согласно теореме, для любого a, 1 ≤ a < p, выполняется условие ap−1 ≡ 1( mod p), если р – простое.
n = p*q, где p,q – нечётные простые числа =>
для любого а<p: ap-1 mod p = 1, aq-1 mod q = 1 =>
ap-1 = k*p, а (p-1) – чётное число.
НОД(ap-1-1,n) = p.
Предположим: p-1 = 2r^1 * 3r^2 *…*Br^t. Пусть B<B1 – грань для множества (p-1).
Вычисляем M(B1) = ∏ pir^i, pir^i < B1.
Выберем произвольное число a, например 2, и вычислим aM mod n.
Если НОД(n, aM−1) = d, 1<d<n, то задание выполнено.
Вторая стадия (ρ -1) – алгоритма Полларда.
Вторая стадия алгоритма предполагает, что существует только один
простой множитель q числа p − 1, значение которого больше границы B1 .
Выбираем новую границу B2 ~ B12.
Обозначим через b число aM(B1) mod n, вычисленное на первой стадии работы алгоритма.
Выпишем последовательность q0 < q1 < ... < qs всех простых чисел на интервале [B1; B2] . Если искомый множитель p−1 равен qi , то для нахождения делителя n, необходимо вычислить cо = bqо mod n, и найти d=НОД(n, со − 1). Если d = 1, то вычислим следующее ci. Каждое последующее значение ci+1 вычисляется по формуле bqi+1 mod n = bqi+δi mod n = bqi · bδi mod n = ci · bδi mod n, где δi = qi+1 − qi.