Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретико-числовые алгоритмы в криптографии.pdf
Скачиваний:
290
Добавлен:
23.03.2015
Размер:
2.46 Mб
Скачать

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+m12m2 ,

= (am2 , am2+1, . . . , an+m1−m21).

 

 

 

 

 

 

Φ

i=0

 

 

aixi

 

 

 

 

 

 

 

 

 

n+m1−m21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По доказанному выше Φ является вложением и гомоморфизмом аддитивных групп. Также по доказанному векторы

Φ(xif(x)),

i = 0,

1,

. . . , m1 − m2 1,

(8.8)

Φ(xjb(x)),

j = 0,

1,

. . . , n − m2 1,

(8.9)

являются линейно независимыми над Z и порождают Φ(M). Значит, Φ(M) является решеткой в Zn+m12m2 . По неравенству Адамара и условию леммы определитель 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+m12m2 . Обозначим его элементы через bi = (bi1, . . . , bii, 0, . . . , 0), где bij Z, bii = 0, i = 1, . . . , n+ m1 2m2. При этом d(Φ(M)) =

n+m12m2

=|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,

 

Φ01 (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)