
- •Предисловие
- •Тестирование чисел на простоту и построение больших простых чисел
- •Введение
- •Элементарные методы проверки простоты чисел
- •Тесты на простоту для чисел специального вида
- •Алгоритм Миллера
- •Вероятностные тесты на простоту
- •Современные методы проверки простоты чисел
- •Заключение. Детерминированный полиномиальный алгоритм проверки простоты чисел
- •Факторизация целых чисел с экспоненциальной сложностью
- •Введение. Метод Ферма
- •101.21.2(P-1)-метод Полларда
- •Алгоритм Ленстры
- •101.21.2(P+1)-метод Уильямса и его обобщения
- •Методы Шэнкса
- •Прочие методы. Заключение
- •Факторизация целых чисел с субэкспоненциальной сложностью
- •Введение
- •Метод Диксона. Дополнительные стратегии
- •Квадратичное решето
- •Алгоритмы решета числового поля
- •Заключение
- •Алгоритм Ленстры для факторизации целых чисел с помощью эллиптических кривых
- •Вычисление порядка группы точек эллиптической кривой над конечным полем
- •Тестирование чисел на простоту с помощью эллиптических кривых
- •Заключение
- •Алгоритмы дискретного логарифмирования
- •Введение. Детерминированные методы
- •Дискретное логарифмирование в полях Галуа
- •Дискретное логарифмирование и решето числового поля
- •Частное Ферма и дискретное логарифмирование по составному модулю
- •Заключение
- •Факторизация многочленов над конечными полями
- •Введение. Вероятностный алгоритм решения алгебраических уравнений в конечных полях
- •Решение квадратных уравнений
- •Алгоритм Берлекэмпа
- •Некоторые другие усовершенствования алгоритма Берлекэмпа
- •Заключение
- •Приведенные базисы решеток и их приложения
- •Введение. Решетки и базисы
- •LLL-приведенный базис и его свойства
- •Алгоритм построения LLL-приведенного базиса решетки
- •Некоторые приложения LLL-алгоритма
- •Заключение
- •Введение
- •LLL-алгоритм факторизации: разложение по простому модулю
- •LLL-алгоритм факторизации: использование решеток
- •LLL-алгоритм факторизации: подъем разложения
- •LLL-алгоритм факторизации: полное описание
- •Практичный алгоритм факторизации
- •Факторизация многочленов с использованием приближенных вычислений
- •Заключение
- •Введение. Дискретное преобразование Фурье и его свойства
- •Заключение
- •Целочисленная арифметика многократной точности
- •Введение. Сложение и вычитание
- •Умножение
- •Деление
- •Решение систем линейных уравнений над конечными полями
- •Введение
- •Решение систем линейных уравнений в целых числах
- •Гауссово и структурированное гауссово исключение
- •Алгоритм Ланцоша
- •Алгоритм Видемана
- •Другие методы. Заключение

220 |
Гл. 8. |
Факторизация многочленов над полем рациональных чисел |
||||||||
Поскольку Z/pZ является |
полем |
и h(x) (mod p) неприводим, |
||||||||
h(x) (mod p) |
|
g(x) (mod p |
|
|
|
|
Z/pZ [x]. Следо- |
|||
|
|
и |
|
f(x) |
) |
взаимно просты в |
|
|||
|
|
|
|
|
||||||
вательно, найдутся многочлены |
|
(x), |
|
(x) Z [x] такие, что |
||||||
|
(x) (mod p)h(x) (mod p) + (x) (mod p) g(x) |
(mod p) = 1, |
||||||||
|
|
|
|
|
|
|
|
|
f(x) |
|
или, эквивалентно,
(x)h(x) + (x) gf((xx)) = 1 − p (x)
для некоторого (x) Z [x]. Умножая это равенство на (1 + p (x) + . . .
. . . + pk−1 (x)k−1)g(x), получим, что
1 (x)h(x) + 1 (x)f(x) = (1 − pk (x)k)g(x),
где 1 (x), 1 (x) Z [x]. Отсюда
1 (x) (mod pk)h(x) (mod pk)+ 1 (x) (mod pk)f(x) (mod pk)=g(x) (mod pk),
и в силу Б) получаем, что h(x) (mod pk)|g(x) (mod pk).
Теперь докажем, что из первого условия следует третье. Из свой-
|
|
|
|
f(x) |
|
|
|
|
|
f(x) |
ства Г) вытекает, что |
h(x) (mod |
p) |
|
g(x) |
(mod |
p). Поэтому |
h0 |
(x) |
|
g(x) |
|
|
|
|
|
|
|
|
|
|
|
вZ [x]. Поскольку h0 (x) неприводим, h0 (x) | g(x).
Вследующих параграфах мы подходящим образом выберем p, k
и h(x) так, чтобы выполнялись свойства А)—Г). Это приведет нас в конечном счете к нахождению разложения f(x) на множители в Z [x].
§8.3. LLL-алгоритм факторизации: использование решеток
Мы предполагаем, что f(x), p, k и h(x) Z |
[x] — те же, что и в § 8.2, |
и выполняются свойства А)—Г). Обозначим |
l = deg h(x). Тогда l n |
в силе свойств А), Б) и |
примитивности f(x); равенство l = n |
будет |
||||
по лемме 8.3 означать, что f(x) неприводим. |
|
|||||
|
Фиксируем натуральный параметр m, m l. |
|
||||
|
Рассмотрим множество |
|
|
|
||
и |
|
|
|
|
|
|
|
L = P(x) Z [x] |
|
deg P m, h(x) (mod pk) | P(x) (mod pk) |
, |
||
|
|
|||||
|
отображение |
|
|
Φ0 i=0 zjxj |
= (a0, a1, . . . , am). |
|
|
Φ0 : L → Zm+1, |
|
||||
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
§ 8.3. LLL-алгоритм факторизации: использование решеток |
221 |
= Φ Zm+1 Zm+1
Очевидно, что L 0 (L) является аддитивной подгруппой .
m + 1 линейно |
|
на самом деле является решеткой в Zm+1, |
Мы далее покажем, что L |
т. е., состоит из всех целочисленных линейных комбинаций некоторых независимых векторов.
Заметим, что |P(x)| = |Φ0 (P(x))|, где слева стоит рассматриваемая нами норма многочленов (см. § 8.1), а справа — евклидова норма век-
торов в Rm+1. |
p |
, |
. . . |
= Φ0 p |
|
· x |
|
i = 0, 1, . . . , l − 1, |
|
|
|
(8.4) |
||||
|
. . . |
|
|
|
|
|
||||||||||
Образующими L |
над Z |
являются следующие векторы: |
|
|
|
|
||||||||||
(0, , 0, |
k |
0, |
, 0) |
( |
k |
|
i), |
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Φ0 (h(x)xi−l), i = l, . . . , m. |
|
|
|
(8.5) |
||||||||
Действительно, если |
( ) |
, то |
|
( ) |
(mod |
p |
k) |
( ) (mod |
p |
k) |
( ) |
|||||
k |
|
|
|
P x L |
P x |
|
|
|
= h x |
|
k· Q x |
|||||
(mod p ) для некоторого Q(x) Z [x]. Отсюда P(x) = h(x)Q(x) + p |
|
· T (x) |
при некотором T (x) Z [x], и можно считать, что deg T (x) < deg h(x) = l, так как h(x) унитарен. Но тогда, если Q(x) = 0, то deg Q(x) = deg P(x) −
− deg h(x) m − l. k |
Кроме того, |
все многочлены |
указанного |
вида |
|
P(x) = h(x)Q(x) + p |
T (x) Z [x], |
имеющие степень |
не выше m, |
со- |
|
держатся в L. Теперь очевидно, что векторы (8.4) и (8.5) образуют L. |
|||||
Их линейная независимость над Z и над Q также очевидна: матрица, |
|||||
строки которой образуют векторы (8.4) и (8.5), является |
треугольной, |
||||
|
|
и на ее диагонали стоят числа pk (l раз) |
и единицы (m − l + 1 раз). |
||
Поэтому |
L |
является решеткой, и ее определитель (см. § 7.1) равен |
|
|
d(L) = pkl. |
(8.6) |
|
Лемма |
8.4. Пусть многочлен h0 (x) |
— из утверждения лем- |
мы 8.3. Пусть b(x) L, причем выполнено неравенство pkl > |f(x)|m · |b(x)|n.
Тогда h0 (x) делит b(x) в Z [x].
Доказательство. Пусть b(x) = 0 (иначе утверждение тривиально). Пусть g(x) = НОД(f(x), b(x)) — наибольший общий делитель в Z [x]. По лемме 8.3 достаточно доказать, что h(x) (mod p)|g(x) (mod p). Если мы предположим, что h(x) (mod p) g(x) (mod p), то в силу свойства В) из § 8.2 будет выполнено равенство
3 (x)h(x) + 3 (x)g(x) = 1 − p 3 (x) |
(8.7) |
при некоторых 3 (x), 3 (x), 3 (x) Z [x]. Обозначим |
m1 = deg b(x), |
222 |
|
|
|
|
Гл. 8. Факторизация многочленов над полем рациональных чисел |
||||||||||||
m2 = deg g(x). Тогда m m1 m2 0. Рассмотрим множество |
|||||||||||||||||
|
|
|
|
M = { f + b | , Z [x], deg < m1 − m, deg < n − m2}, |
|||||||||||||
где |
f = f(x), |
b = b(x). Степень многочленов из M не превосходит |
|||||||||||||||
n + m1 − m2 − 1. |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
Докажем, что если f + b M и deg( f + b) < m2, то = = 0. |
||||||||||||||
Действительно, так |
как |
g(x) = g| f + b, |
deg g = m2, то f + b = 0, |
||||||||||||||
|
g |
|
− |
|
g |
|
g |
g |
|
|
|
|
|
||||
|
f |
|
= |
|
|
b |
. Но НОД |
|
f |
, |
b |
= 1; поэтому |
f |
|
в Z [x]. Так как deg < |
||
< n − m2 = deg f − deg g, то |
|
= 0; тогда и |
g |
= 0. |
|||||||||||||
|
|
||||||||||||||||
|
|
|
Рассмотрим отображение |
|
|
|
|
||||||||||
|
|
|
|
|
|
Φ : M → Zn+m1−2m2 , |
= (am2 , am2+1, . . . , an+m1−m2−1). |
||||||||||
|
|
|
|
|
|
Φ |
i=0 |
|
|
aixi |
|
||||||
|
|
|
|
|
|
|
|
n+m1−m2−1 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
По доказанному выше Φ является вложением и гомоморфизмом аддитивных групп. Также по доказанному векторы
Φ(xif(x)), |
i = 0, |
1, |
. . . , m1 − m2 − 1, |
(8.8) |
Φ(xjb(x)), |
j = 0, |
1, |
. . . , n − m2 − 1, |
(8.9) |
являются линейно независимыми над Z и порождают Φ(M). Значит, Φ(M) является решеткой в Zn+m1−2m2 . По неравенству Адамара и условию леммы определитель d(Φ(M)) решетки Φ(M) удовлетворяет нера-
венству
d(Φ(M)) |f(x)|m1−m2 |b(x)|n−m2 |f|m|b|n < pkl.
Покажем теперь, что выполняется и обратное неравенство; полученное противоречие будет доказывать утверждение нашей леммы.
Докажем включение множеств |
|
|
|
|
|
|
||
|
{ (x) M | deg (x) < m2 + l} pk · Z [x]. |
(8.10) |
||||||
Пусть (x) M, deg (x) < m2 + l. Тогда |
(x) |
Z [x]. Умножим равен- |
||||||
g(x) |
||||||||
ство (8.7) на |
(x) |
и на 1 + p 3 (x) + . . . + pk−1 k−1 (x). Получим, что |
||||||
|
||||||||
|
g(x) |
|
(x) |
3 |
|
|
||
|
|
|
|
k |
|
|
||
|
4 (x)h(x) + 4 (x) (x) − g(x) p |
Z [x]. |
(8.11) |
|||||
Поскольку (x) M, b(x) L, то h(x) |
(mod pk) |
делит (x) |
(mod pk). |
|||||
Тогда из (8.11) следует, что |
|
|
|
|
|
|
||
|
|
k |
(x) |
|
|
k |
|
|
|
|
h(x) (mod p ) | |
g(x) |
(mod p ). |
|

|
§ 8.3. LLL-алгоритм факторизации: использование решеток |
223 |
|
Но deg |
(x) |
< m2 + l − m2 = l = deg h(x) = deg(h(x) (mod pk)). Значит, |
|
|
|||
g(x) |
(x) pkZ [x], откуда следует (8.10). g(x)
Хорошо известно, что в любой решетке, содержащейся в ZN, можно выбрать треугольный базис (см. [24, гл. 1]). Выберем такой базис в Φ(M) Zn+m1−2m2 . Обозначим его элементы через bi = (bi1, . . . , bii, 0, . . . , 0), где bij Z, bii = 0, i = 1, . . . , n+ m1 −2m2. При этом d(Φ(M)) =
n+m1−2m2
=|bii|. Прообразы Φ−1 (bi) векторов bi являются многочле-
i=1 |
M степени i + m2 − 1, i = 1, . . . ,kn + m1 − 2m2. Из форму- |
||||
нами из |
|||||
лы (8.10) |
следует тогда, что |
bii ≡ 0 (mod p |
) для i = 1, . . . , l. Поэтому |
||
|
kl |
. |
|||
d(Φ(M)) p |
|
|
|
Лемма 8.5. Пусть h0 (x) — неприводимый делитель f(x) такой, что h(x) (mod p) | h0 (x) (mod p). Пусть b1, . . . , bm+1 — приведенный
базис решетки L = Φ0 (L), и пусть выполнено неравенство |
|
|
|
pkl > 2mn/2 (n + 1)n/2en2 |f|n+m. |
(8.12) |
Степень многочлена h0 (x) не превосходит m тогда и только тогда, когда
|b1| < |
pkl |
|
1/n |
|
|
. |
(8.13) |
||
|f|m |
Доказательство. Из (8.13) следует, что |b1|n|f|m < pkl, т. е. выполнены условия леммы 8.4 для многочлена b(x) = Φ0 (b1) L. По определению L выполнено неравенство deg b(x) m. Из леммы 8.4 следует, что h0 (x) | b(x), поэтому deg h0 (x) m.
Пусть deg h0 (x) m. Тогда h0 (x) L. Поскольку h0 (x) делит f(x), выполнено неравенство
|h0 (x)| |
√ |
|
n |
|f(x)| |
(8.14) |
|
|||||
|
n + 1e |
(доказательство этого неравенства см. в работе [183]; оно оценивает величину коэффициентов многочлена-делителя через коэффициенты
Поскольку = 0 и L Rm+1, то |
= Φ0 (h0 (x)) L = Φ0 (L). |
делимого). Применим теорему 7.8 к вектору |
|
√
b1 2m/2| | = 2m/2|h0 (x)| 2m/2 n + 1en|f(x)|.
Отсюда
|b1|n|f(x)|m 2mn/2 (n + 1)n/2 en2 |f|m+n.

224 Гл. 8. Факторизация многочленов над полем рациональных чисел
Из (8.12) тогда получим, что
|b1|n|f(x)|m < pkl,
откуда следует (8.13).
Лемма 8.6. В обозначениях и условиях предыдущей леммы
предположим дополнительно, что |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pkl |
|
1/n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Тогда deg h0 (x) = m + 1 |
t |
|
|
| < |f(x)|m |
|
1. |
|
|
|
|
|
|
|
|
(8.15) |
|||||||||||||||
|
|
|
|
|
t = max j |
|
|
|bj |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
− |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h0 (x) = НОД |
Φ |
1 ( ), . . . , Φ 1 |
( ) |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
0− |
b1 |
0− |
|
bt |
, |
|
|
|
|
|
|
|
|
(8.16) |
|||||||||||
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
где — наибольшее целое неотрицательное число, |
для которо- |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
НОД(Φ−1 |
( ), . . . , Φ−1 ( )) |
|
Z [ ]. |
||||||||||||||
го p |
|
делит все коэффициенты |
|
|
0 |
b1 |
|
|
|
0 |
|
bt |
|
|
x |
|||||||||||||||
Доказательство. Рассмотрим |
|
|
множество |
J = |
j |
|
1 |
|
j |
|
|
m + 1, |
||||||||||||||||||
|
|
|
pkl |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1 |
|
|
|
|
|||
|bj| < |
|
= .1 По |
лемме |
8.4 |
|
|
для j J |
|
h0 (x) | Φ0− |
(bj). |
|
Пусть |
||||||||||||||||||
|f|m |
|
|
|
|
||||||||||||||||||||||||||
h1 (x) = НОДj J (Φ0− (bj)); тогда h0 (x) | h1 (x). Докажем, что J = {1, . . . , t} |
||||||||||||||||||||||||||||||
и что |
|
|
|
|
|
|
|
из (8.16). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
h0 (x) = ±h1 (x)/p1, где |
|
|
|
|
|
|
|
|
и |
многочлены |
||||||||||||||||||||
Поскольку |
deg Φ0− (bj) m |
для j = 1, . . . , m − 1, |
|
|||||||||||||||||||||||||||
Φ0−1 (bj) линейно независимы над Z, то |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|J| m + 1 − deg h1 (x). |
|
|
|
|
|
|
|
|
|
|
|
(8.17) |
||||||||||||
|
|
|
|
j |
|= |h0 (x)| |
√ |
|
|
|
n |
|f(xi)| в силу (8.14), и для i = 0, 1, . . . |
|||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||||
Далее, |h0 (x) ·x |
|
|
n + 1e |
|
||||||||||||||||||||||||||
. . . , m − deg h0 (x) многочлены |
h0 (x) · x содержатся |
в |
L и |
|
линейно |
независимы. Тогда по теореме 7.10 при j = 1, 2, . . . , m + 1 − deg h0 (x) выполнены неравенства
|bj| |
2m/2 max |
Φ ( |
( )) , Φ ( |
( ) |
) , . . . , |
Φ ( |
( ) |
· x |
m−deg h0 |
(x)) |
|} |
= |
||
|
{| 0 h0 |
x | | 0 h0 |
x |
· x | |
| 0 h0 |
x |
|
|
|
|
|
|||
|
|
= 2m/2|Φ0 (h0 (x))| = 2m/2|h0 (x)| 2m/2√ |
|
en|f(x)|. |
||||||||||
|
|
n + 1 |
||||||||||||
Отсюда, аналогично доказательству предыдущей леммы, получим |
|
|
||||||||||||
|
|
|
|bj|n|f(x)|m pkl |
|
|
|
|
|
|
(8.18) |
||||
для j = 1, . . . , m + 1 − deg h0 (x). Поэтому 1, 2, . . . , m + |
1 − deg h0 (x) J. |
|||||||||||||
Следовательно, m + 1 − deg h0 (x) |J| m + 1 − deg h1 (x); |
значит, |
|||||||||||||
deg h1 (x) deg h0 (x). Поскольку h0 (x)|h1 (x) в Z [x], то |
|
|
|
|
|
|
|
|||||||
|
|
h1 (x) = dh0 (x), |
где d Z, d = 0. |
|
|
|
|
(8.19) |