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

§ 3.6. Алгоритмы решета числового поля

93

Отметим, что на практике алгоритм Шнорра—Ленстры никогда активно не использовался. Алгоритм Ленстры для факторизации с помощью эллиптических кривых (о котором см. 4) имеет ту же оценку сложности и так же требует немного памяти, но групповые операции на кривой выполняются значительно быстрее, чем операции в группе классов квадратичных форм. Поэтому алгоритм Ленстры считается значительно более эффективным и активно используется на практике.

Алгоритм Ленстры—Померанса также является

вероятностным

и раскладывает n на множители в среднем за Ln

1

; 1

арифметических

2

операций. Этот алгоритм, так же как и алгоритм Шнорра—Ленстры, работает с группой классов бинарных квадратичных форм отрицательно дискриминанта и также ищет амбигову форму. Однако оценка сложности алгоритма Ленстры—Померанса является строгой и не использует недоказанные гипотезы и эвристические рассуждения. Более того, в работе [169] показано, что для некоторой бесконечной достаточно плотной последовательности натуральных чисел n эвристические рассуждения, лежащие в основе оценки сложности алгоритма Шнорра—Ленстры, являются неверными. Поэтому фактически у нас нет сейчас оснований считать, что алгоритм Шнорра—Ленстры имеет указанную выше оценку сложности.

Заметим, что алгоритм Ленстры—Померанса, как и алгоритм Шнорра—Ленстры, никогда активно не использовался на практике.

§ 3.6. Алгоритмы решета числового поля

Алгоритм решета числового поля для факторизации целых чисел специального вида (special number field sieve, или SNFS) был впервые предложен в 1990 г. в работе [161]. С его помощью было разложено на множители число Ферма F9 = 2512 + 1, записываемое 155 десятичными знаками (см. об этом [162]). Эвристическая оценка сложности составляет Ln [1/3; c] арифметических операций при c = (32/9)1/3 = 1,5263. . . Числа n, к которым применяется SNFS, имеют вид n = re − s, где r N, s Z, r и |s| невелики.

Впоследствии метод был обобщен и применен для факторизации произвольных целых чисел. Он получил название general number field sieve или, сокращенно, GNFS. Оценка сложности также составляет Ln [1/3; c] при некоторой постоянной c.

В настоящее время рекордным значением для натуральных чисел, разложенных с помощью SNFS, является число специального вида,

94 Гл. 3. Факторизация целых чисел с субэкспоненциальной сложностью

записываемое 227 десятичными знаками, см. [265]. Для RSA-чисел n, не имеющих специального вида, рекордные разложения были найдены

в1999 г.: сначала было разложено 140-значное RSA-число (см. [87]),

а затем 155-значное RSA-число (512 битов), см. [88]. На факторизацию этого последнего числа потребовалось около 8400 mips-year1.

Метод решета числового поля и его усовершенствования описаны

вряде работ, см. [107; 110; 111; 112; 159; 162; 163; 203; 204; 205; 226; 227; 290]. В настоящее время, согласно [74], это самый эффективный метод факторизации для чисел n > 10110 (сравнение NFS с методом квадратичного решета см. в конце § 3.4); см. об этом также обзоры [211] и [209].

Фактически решето числового поля не является алгоритмом. Это метод вычисления, состоящий из нескольких этапов, и каждый из этих этапов обслуживается несколькими алгоритмами. Подробное описание SNFS и GNFS выходит далеко за рамки данной книги. Для того, чтобы читатель получил представление о методе решета числового поля и об используемым этим методом средствах, мы схематически опишем факторизацию числа Ферма F9, следуя работе [162].

Далее в этом параграфе мы предполагаем, что читатель знаком с основами алгебраической теории чисел в объеме, например, книги [263].

Обозначим N = F9 = 2512 + 1. Еще в 1903 г. был найден простой делитель p7 = 2424833. Мы обозначим n = N/p7. Это число было далее разложено с помощью SNFS на два сомножителя: n = p49 · p99. Для этого потребовалось около 700 рабочих станций и один суперкомпьютер для решения системы линейных уравнений; работа заняла несколько месяцев. Предполагалось предварительно (хотя это и не проверялось), что n не есть степень простого числа; это допущение в конечном счете оказалось верным.

Схема метода SNFS для n.

1 этап. Выбор факторной базы.

Факторная база состоит из некоторого множества элементов ap Z/nZ, ap = 0, где p пробегает некоторое конечное множество индексов P0. Все ap обратимы в Z/nZ (иначе был бы найден делитель n). Обозначим через ZP0 множество |P0|-мерных векторов:

ZP0 = {( p)p P0 | p Z}.

1Mips (англ.) — сокр. от million instructions per second — миллион команд в секунду (единица измерения быстродействия ЭВМ); year — год, mips-year — единица измерения числа операций за год.

−→
zjvj ≡ 0 (mod 2),

§ 3.6. Алгоритмы решета числового поля

95

Рассмотрим отображение

 

f : ZP0 → (Z/nZ) , f(( p)p P0) =

app (mod n).

 

p P0

Это отображение на, если {ap} порождают (Z/nZ) ; обычно вает, хотя доказать это, как правило, достаточно сложно.

2 этап. Нахождение соотношений.

Здесь мы ищем векторы v Ker f, т. е. такие v = (vp)p P

торых

apvp ≡ 1 (mod n).

 

так и бы-

0 , для ко-

p P0

Нам нужно найти достаточно большое множество V = {v Ker f} этих векторов, точнее, |V| должно быть немного больше |P0|.

3 этап. Нахождение зависимостей.

Здесь мы ищем нетривиальную линейную зависимость по модулю 2 найденных векторов v V; их количество больше, чем их размерность, поэтому такая зависимость существует. Для ее нахождения мы решаем систему линейных уравнений

j

где V = {vj}. Это большая разреженная система линейных уравнений над полем Z/2Z. Решив ее, мы тем самым найдем непустое подмножество W V, для которого

→−

v = 0 (mod 2).

 

 

v W

Тогда w =

1

 

 

v — есть вектор с целыми коэффициентами, причем

2

v W

 

 

2w Ker f. Это означает, что при X ≡ f(W) (mod n) выполнено срав-

нение

X2 ≡ f(2W) ≡ 1 (mod n).

Тогда мы проверяем, выполняется ли неравенство

1 < НОД(X ± 1, n) < n.

Если да, то делитель n найден, и мы останавливаемся. Иначе возвращаемся либо на 2 этап (находим новые соотношения), либо на 1 этап (строим новую факторную базу).

Конец схемы.

96 Гл. 3. Факторизация целых чисел с субэкспоненциальной сложностью

Для факторизации нашего числа n = F9/p7

рассматривается чис-

√5

 

 

 

 

4

√5

 

i

 

 

ловое поле K = Q( 2). Элементы

поля K имеют вид

5 i

qi (

2) ,

=

 

 

 

 

 

=0

 

 

 

где qi Q; им соответствуют векторы (q0, q1, q2, q3, q4) Q . Сложение

таких элементов (векторов) проводится покоординатно, а умножение

√

выполняется с помощью соотношения ( 5 2)5 = 2. Мы обозначаем через Norm норму алгебраического числа K в поле K; символом (j) мы обозначаем элемент j ( ), где 1, 2, 3, 4, 5 — все изоморфизмы

K в C.

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

√5

 

 

 

l

 

 

=

Лемма 3.23.

 

1

4,

,

 

 

 

 

 

 

 

 

.

 

 

 

Norm(

 

 

 

)

5

l 5

.

 

 

Пусть

 

 

a b

R

 

Тогда

a −

 

 

 

 

 

 

b

 

= a

− 2 b

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

√ l

— корни многочлена

x

−

 

Доказательство. Поскольку j (

 

 

2)

 

 

 

2 ,

выполняются равенства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

a

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Norm(a − (√2)lb) = b5 Norm

 

 

−

(√52)l =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

5

 

 

 

a

 

5

− 2l ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= b5 j=1 b

− j (√2)l

= b5 b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Лемма доказана.

Обозначим через ZK кольцо целых алгебраических чисел поля K;

можно

√5

2]. Зафиксируем

границу

гладкости

доказать, что ZK = Z [

B R>0

(это достаточно большое число).

 

 

 

Определение 3.24. Число ZK

называется

B-гладким,

если

Norm Z является B-гладким числом

(т. е. Norm = ±

 

prp ,

 

p — простое,

где rp Z 0).

p B

 

Пусть R — коммутативное кольцо с единицей, — кольцевой гомо-

морфизм:

 

 

 

 

 

 

√5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→ R,

 

(1) = 1.

 

 

 

 

 

 

 

 

 

 

 

 

√5

 

 

 

: Z [ 2]

 

 

 

 

 

 

 

 

Тогда для c =

 

 

 

 

 

 

 

 

 

 

 

 

 

5

=

 

(2)5= 2 R.

 

( 2) N выполнено равенство c

 

 

Обратно, если найдется элемент c R такой,

5что c = 2 R, то мы

можем определит5 ь кольцевой гомоморфизм

 

 

√

 

 

 

 

 

 

 

 

: Z [

2] → R соотношени-

ями

 

(1) = 1,

 

 

√

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 2) = c.

= F9/p7

 

 

 

 

 

 

 

 

 

 

 

 

 

2205

 

Пример 3.25. Для

n

мы положим

 

 

 

 

 

 

,

 

(mod ).

 

 

 

512

 

 

 

 

 

5

≡ 2

1025

 

 

R = Z/nZ c ≡

 

n

Так как 2

≡ −1 (mod n), 5 то

c

 

≡ 2 (mod n). Поэтому суще5 -

ствует

гомоморфизм

√

 

 

 

 

 

 

 

 

 

 

 

 

 

 

√

= 2205

 

(mod n).

 

 

 

 

: Z [ 2] → Z/nZ такой,

что

 

(1) = 1,

( 2) =

Лемма 3.26. Пусть p — простое число,

p ≡ 1 5

(mod 5). Тогда

в Z/pZ существует единственное c такое, что c

 

≡ 2 (mod p).

 

 

 

§ 3.6. Алгоритмы решета числового поля

 

97

≡

Доказательство. Существует единственное k N такое, что 5k ≡

1 (mod

p −

1), 1

 

5

 

p

−

k

—

отображения

 

 

 

k

 

 

1. Тогда, если f(x) и g(x)

 

Z/pZ в себя, f(x) = x , g(x) = x , то f(g(x)) — тождественное отображение. Следовательно, f(x) есть отображение на, откуда следует наше утверждение.

Лемма 3.27. Если5 p ≡ 1 (mod 5), то в Z/pZ либо нет ни одно-

го такого

c

, что c

≡

2 (mod p), либо есть 5 таких элементов

 

 

 

5

 

c Z/pZ, что c

≡ 2

(mod p). Если обозначить их через c0, . . . , c4,

 

 

 

p−1 j

, где a — первообразный корень по модулю p.

то cj = c0 · a

5

Теперь рассмотрим ненулевые идеалы B в дедекиндовом кольце

√5

 

 

 

 

 

идеала B определяется равенством Norm B =

2]. Норма

Zm = Z [

= |ZK /B|.

Норма мультипликативна, т. е. Norm AB = Norm A Norm B. Можно доказать, что поле K одноклассное, т. е. группа классов идеалов состоит из одного элемента; другими словами, любой идеал в ZK является главным.

Пусть P = (0) — простой идеал ZK. Тогда ZK /P = GF(pk) для некоторого простого числа p и натурального k.

Определение 3.28. Простой идеал P называется простым идеалом первой степени, если ZK /P = GF(p), где p — простое число.

По теореме Куммера простые идеалы первой степени в ZK имеют

√5

 

 

5

− 2, f(c) ≡

вид P = (p, 2 − c), где p — простое число, c Z, f(x) = x

 

≡ 0 (mod p). При э5 том для естестве5 нного гомоморфизма ZK → ZK /P =

√

√

5

 

 

= GF(p) элемент

2 переходит в

2 ≡ c (mod p), и c ≡ 2 (mod p).

Лемма 3.29. Если p ≡ 1 (mod 5), то в кольце ZK существует единственный простой идеал P нормы p. При этом для элемента ZK равенство P = ( ) справедливо тогда и только тогда, когда | Norm | = p.

Доказательство. По теореме Куммера простые идеалы ZK, лежа-

щие над

p

, имеют вид P

√5

 

 

унитарные мно

-

 

 

 

i = (p, fi ( 2)), где fi (x) Z [x] —

ei

 

гочлены, fi (x) (mod p) неприводимы в Z/pZ [x], и f(x) =

fi

(x) (mod p).

Кроме того, Norm Pi = pdeg fi (x) . Следовательно, Pi —i простой идеал первой степени тогда и только тогда, когда fi (x) — линейный многочлен. Но f(x) (mod p) по лемме 3.26 имеет единственный линейный множитель; из этого следует единственность P.

Далее, если P = ( ), то Norm P = | Norm | = p. Обратно, если | Norm | = Norm( ) = p, то из разложения идеала ( ) в произведение простых идеалов, мультипликативности нормы и единственности P следует, что ( ) = P.

7 О. Н. Василенко

98

 

 

 

 

 

Гл. 3.

Факторизация целых чисел с субэкспоненциальной сложностью

 

 

 

 

 

Пример 3.30. Пусть

p

= 2. Тогда

 

( ) =

x

5

 

2

 

 

5

(mod 2),

(2) =

 

 

 

 

5

 

 

 

 

5

 

 

 

 

5

 

 

5

 

 

 

f x

 

 

−

 

≡ x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

(2,

 

√

2)

 

 

 

 

, где

 

 

√

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= P

P = ( 2) — простой идеал первой степени. При

этом Z/P = Z/2Z.

 

 

 

 

 

 

5

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 3.31. Пусть p = 3, f(x) = x

− 2

 

 

 

 

 

 

 

 

 

= (x + 1) ×

 

 

≡ x

5 + 1 (mod 3)

×

(x

4

− x

3

 

+ x

2

− x +

1) (mod 3). Тогда P = (3,

√

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 + 1) — единственны5 й

простой идеал первой степени нормы 3. Далее, для элемента

 

= 1

+

√

 

2

с

помощью

 

леммы

3.23

находим,

что

Norm = 3.

Поэтому

P =

= (1 + √5 2).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c Z/pZ,

c5 ≡

 

Определение 3.32. Пусть p — простое

 

число,

 

≡ 2

 

(mod p). Через Ψp,c

мы будем обозначать

кольцевой5

гомомор-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

√

 

 

 

 

 

 

 

 

физм Ψp,c : ZK → Z/pZ, определяемый равенством Ψp,c (

2)

= c.

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

√

 

 

 

Лемма 3.33. Пусть P— простой идеал первой степени в Z [

 

2],

P = (p5,

 

√5

 

− c), где

p — простое

число,

 

c5 ≡ 2

(mod

p). Пусть

2

 

 

 

 

 

√

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z [ 2]. Равенство P = ( ) имеет место тогда и только тогда,

когда | Norm | = p и Ψp,c ( ) = 0.

Доказательство. Очевидно, что

ZK / Ker Ψp,c Z/pZ.

√

Поэтому Ker Ψp,c — простой идеал в ZK , содержащий p и 5 2 − c; следовательно, Ker Ψp,c = P.

Если | Norm | = p и Ψp,c ( ) = 0, то P и нормы ( ) и P совпадают,

откуда ( ) = P.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если же P = ( ), то P, откуда Ψp,c ( ) = 0. При этом равенство

| Norm | = p очевидно.

 

 

5

 

 

 

 

5

 

 

 

 

 

 

 

Пример 3.34. Пусть

 

= 1 +

√

 

 

2

 

√

 

3

,

Norm

 

= −151, p =

 

 

( 2)

 

− 2( 5

2)

 

= 151 — простое число. Если c = 116, то c

≡ 2

(mod 151). Нетруд-

но

убедиться5

в

том, что

Ψ151,116 ( ) ≡ 0

(mod

 

151). Поэтому P =

=

√

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(151, 2 − 116)

= ( ) — простой идеал первой степени в ZK .

 

Следствие 3.35. С помощью леммы 3.33 можно находить обра-

зующие простых идеалов первой степени в ZK .

 

 

 

Определение 3.36. Число ZK называется единицей поля K, ес-

ли −1 ZK .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По теореме Дирихле о единицах любая единица поля K имеет вид

 

 

 

 

 

= ± 1l1 2l2 ,

 

 

 

l1, l2 Z,

 

 

 

 

где 1 и 2 — основные единицы поля K.

Поскольку поле K одноклассное, то любой ненулевой простой идеал P имеет вид P = ( P) для некоторого P ZK. Тогда для любого

§ 3.6. Алгоритмы решета числового поля

99

элемента ZK \0 из разложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( ) =

 

 

 

PmP( )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

следует равенство

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mP( )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

| Norm P|mP( ) .

где — единица поля K. При этом также | Norm | =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

 

Пример 3.37. Пусть

 

 

 

 

 

 

 

 

 

 

 

√5

 

 

 

4

, Norm

 

 

 

 

 

 

 

 

 

 

 

 

= −1 + ( 2)

 

 

= 15. Тогда ( ) = P1P2,

где P1, P2 — простые идеалы нормы 3 и 5 соответственно. Такие идеалы

единственны, причем P1

=

(1 +

√5

 

 

 

 

 

 

 

 

 

 

 

 

√5

 

2

 

 

2) (пример 3.31), а P2

= (1 + ( 2) ).

Поэтому

 

 

 

 

√5

4

 

 

 

 

 

 

 

 

√5

 

 

 

 

 

 

 

 

√5

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1

2) (1

 

 

 

 

откуда

мы

находим,

−

1 + (

 

 

2)

 

=

 

+

 

 

 

 

+

(

2) ),

 

5

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Элемент 1

 

 

является

единицей

поля

 

K, причем

что 1 = −1 + √2.

 

 

 

Norm 1 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

√5

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 3.38. Пусть

 

 

 

 

 

 

 

 

 

 

 

. Тогда, аналогично примеру 3.37,

 

 

= 1 + ( 2)

 

находим 1 +

√5

 

 

 

3

= 2 (1

+

√5

 

 

2

, и 2 = −1 +

√5

2

 

√5

 

3

√5

 

 

4

 

2)

 

 

2)

 

—

(

 

 

 

2)

 

 

(

2)

 

− (

 

+ ( 2)

 

еще одна единица поля K, Norm 2 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее в

алгоритме

 

решета

 

числового поля

 

для

факторизации

n = F9/p7 авторы [162] считали, что найденные в примерах 3.37 и 3.38 единицы 1 и 2 являются основными единицами поля K. При этом никаких противоречий в ходе работы алгоритма не возникало, и он успешно завершил работу. Заметим, что существуют алгоритмы построения основных единиц числового поля (см. [217]), однако в данном случае они не применялись.

Пусть — произвольная единица поля K. Тогда =

v0 v1 v2

, где

0 1 2

0 = −1, а единицы 1, 2 были найдены нами в примерах 3.37 и 3.38; vj Z. Нам далее нужно уметь находить v0, v1, v2, зная . Очевидно, что v0 = 0, если Norm > 0; v0 = 1, если Norm < 0. Положим

 

 

 

1 = e(log 2)/5,

 

2 i+log 2

1, 2 C,

 

 

 

2 = e

5 ,

и рассмотрим кольцевые гомоморфизмы

 

 

 

 

 

√5

 

 

 

 

 

 

 

2] → C,

 

√5

 

 

Ψj : Z [

 

 

 

= j, j = 1, 2. Тогда

при

 

j = 1, 2

справедливы равенства

 

 

Ψj ( 2)

 

log |Ψj ( )| = v1 log |Ψj ( 1)| + v2 log |Ψj ( 2)|, и можно показать, что опре-

делитель

матрицы

log |Ψj ( k)|

j,k=1,2 отличен от нуля. Поскольку

v1

,

v2 — целые

числа, то с помощью приближенных вычислений мы

 

 

 

 

 

сможем их найти, зная

.

 

7*

100 Гл. 3. Факторизация целых чисел с субэкспоненциальной сложностью

Теперь осуществим первый этап алгоритма — построение факторной базы. Мы выбираем границу гладкости B = 1294973 для n = F9/p7. Рассматриваем все простые числа p B. Для каждого p

ищем c Z/pZ, c5 ≡ 2

(mod p), и составляем таблицу пар5

(p, c), со-

ответствующих простым идеалам первой степени P =

 

√

 

 

(p,

2

− c). Для

нахождения c

можно

применять вероятностный

алгоритм

решения

k

f x

≡

 

p

(см. гл.

6). Точнее, если

 

p ≡

1

(mod 5),

уравнения

( )

 

0 (mod )

 

 

то c ≡ 2

(mod

p), где 5k ≡ 1 (mod

p − 1). Если же p ≡ 1

(mod 5),

то сперва проверяем выполнение сравнения 2(p−1)/5

≡

1 (mod p). Ес-

ли оно не выполняется, то

уравнение

c

5

 

 

 

 

 

5

 

≡ 2 (mod p) неразрешимо;

в противном случае для решения x

 

− 2 ≡ 0 (mod p) применяем веро-

ятностный алгоритм.

 

 

 

 

 

 

 

 

 

 

 

 

После нахождения множества простых идеалов первой степени

√

P = (p, 5 2 − c) мы должны найти P ZK , такие, что P = ( P). Для

этого можно использовать следующий перебор. Рассмотрим множество

T = i=0

ri (√5 2)i

ri Z, |ri| const .

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Теоретические оценки для значения

const в определении T можно из-

влечь из результатов [8, гл. 2]. Для T вычисляем Norm . Если

Norm = p — простое число и p B, то затем мы перебираем простые

√5

2 − c). Если

идеалы первой степени P, делящие данное p, т. е. P = (p,

такой идеал P единственен, то = P — его образующий. Если же таких P несколько, то — образующий того из них, для которого Ψp,c ( ) = 0 (по утверждению 3.33).

На

деле

авторы

[162]

использовали несколько более тонкий

 

 

 

 

4

i

 

 

√5

 

 

3

 

 

 

 

 

 

 

 

 

 

перебор: перебирали

 

= i=0 si

, где

 

= −(

2)

 

.

Здесь si — вза-

имно

простые целые

числа,

 

si

0, если

si+1 = . . . = s4 = 0,

 

 

причем

 

 

 

 

 

 

 

 

 

 

 

 

 

-

4

 

15000.

 

 

 

 

 

 

 

 

 

 

 

и i=0 si2 · 26i/5

 

 

 

 

 

 

 

 

 

 

 

С помощью этого перебора было найдено 49 726 образующих про стых идеалов первой степени. Всего затем было найдено 99 500 образующих простых идеалов первой степени для нашей таблицы пар

(p, c) ↔ P. Оставшиеся образующие искал5

и аналогичным перебором

идеалов P

нормы 8 Norm

P

 

√

3

 

 

 

 

(здесь

 

= −( 2) ); т. е. находили элемен-

ты

 

нормы 8p и, поделив

 

на , находили образующие P.

Далее можно считать (заменяя при необходимости P на − P), что Norm P > 0.

(p) = ( 1)v1 ( 2)v2

§ 3.6. Алгоритмы решета числового поля

101

Теперь рассмотрим гомоморфизм :

 

 

 

 

 

 

 

 

 

 

√5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2] → Z/nZ,

 

 

 

 

 

 

 

 

 

 

 

 

√5

 

 

 

: Z [

 

 

 

√5

 

 

 

 

(1)

≡ 1 (mod n),

 

 

 

205

(mod n), из примера 3.25. При

 

 

 

 

3

 

 

 

 

 

 

( 2) ≡ 2

 

 

= −( 2)

 

 

 

 

 

 

 

 

( ) = −2615 ≡ 2103 (mod n),

 

 

 

 

 

 

 

поскольку

2512 ≡ −1

 

(mod

n). Величина 2103 имеет

порядок

n1/5,

и из этого в дальнейшем мы извлечем немалую пользу. Заметим, что при a, b Z верно сравнение

(a + b ) ≡ a + 2103b (mod n).

Факторная база P0, которую мы строим сейчас, будет состоять из:

1)99 700 простых чисел p, p B1 = 1295377;

2)0 = −1, 1, 2 — из примеров 3.37 и 3.38;

3) P — образующих для 99 500 простых идеалов первой степени P ZK, Norm P B2 = 1294973.

Для любого индекса P0 мы полагаем a = ( ) Z/nZ,

и это есть завершение 1 этапа алгоритма.

Теперь опишем 2 этап алгоритма — нахождение соотношений. Три-

√

виальные соотношения вида 20 = 1 и 2 = ( 5 2)5 мы не используем. Далее, имеется 4944 простых числа p из нашей факторной базы, для которых f(x) ≡ x5 − 2 (mod p) разлагается на линейные множители. Для этих p справедливо равенство

p = P,

P|(p)

где P — найденные нами образующие простых идеалов P, а — единицы поля K. Для мы находим представление = v11 · v22 с помощью приближенных вычислений (как это было описано выше); 0 = −1 не входит в это представление, так как p > 0 и все P положительны по построению. Отсюда получаем соотношения

( P).

P|(p)

Эти соотношения составили приблизительно 2,5% от всех соотношений, построенных на 2 этапе.

102 Гл. 3. Факторизация целых чисел с субэкспоненциальной сложностью

Дальнейшее построение соотношений происходит с помощью методов решета. Мы перебираем пары a, b Z, b > 0, такие, что

1)НОД(a, b) = 1;

2)|a + 2103b| = | (a + b )| является B1-гладким числом, за исклю-

чением, может быть, одного простого делителя p1, B1 < p1 < 108;

3) |a5 − 8b5| является B2-гладким, за исключением, может быть, одного простого делителя p2, B2 < p2 < 108.

Если p1 и p2 отсутствуют, то пара a, b дает нам полное соотношение; в противном случае соотношение называется частичным. Заметим, что поскольку Norm(a + b ) = a5 − 8b5, то при p2 = 1 число a + b является B2-гладким.

Лемма 3.39. Пусть a, b Z, (a, b) = 1. Тогда любой простой идеал P кольца ZK , делящий a + b , является простым идеа-

лом первой степени. При этом, если разложение Norm(a + b )

на простые множители имеет вид

 

 

m

 

k

Norm(a + b ) =

qek ,

 

k

 

=1

то идеал (a + b ) в кольце ZK раскладывается на простые идеалы следующим образом:

m

 

(a + b ) = Qek .

 

 

 

 

 

 

=1

k

 

 

 

 

 

 

 

k

 

 

Здесь Qk | (qk) и при k > 2 определяется по формуле

Qk = (qk,

√5

 

 

1

1

2

(mod qk)),

 

 

2

− 2−

(ab− )

 

а при qk = 2 идеал Qk =

√5

 

 

 

 

 

 

 

 

 

 

 

( 2).

 

 

 

Доказательство. Пусть p > 2 — простое число, P— простой идеал, такой, что P | (p) и P | (a + b ). Поскольку (a, b) = 1, то p b. Следовательно, ab−1 (mod p) P, откуда

√

(ab−1 (mod p))2 − 2 = (ab−1 (mod p))2 − 2 5 2 P,

√

5 2 − (2−1 (ab−1)2) (mod p) P.

По утверждению 3.23, Norm(a + b ) = a5 − 8b5. Поскольку a5 − 8b5 ≡ ≡ 0 (mod p), то

(2−1 (ab−1)2)5 − 2 ≡ 0 (mod p).

§ 3.6. Алгоритмы решета числового поля

103

√

Положим c ≡ 2−1 (ab−1)2 (mod p). По теореме Куммера Q = (p, 5 2 − c) является простым идеалом первой степени, причем Q P. Следовательно, Q = P — простой идеал первой степени.

Мы показали также, что для каждого простого числа p = qk, делящего Norm(a + b ), простой идеал Qk в ZK , делящий a + b и qk, определен однозначно по указанной в лемме 3.39 формуле. Отсюда сле-

 

Qkek .

дует равенство (a + b ) = m

k=1

3.39 сводит факторизацию идеа-

Следствие 3.40. Лемма

ла (a + b ) (где (a, b) = 1)

на простые идеалы к целочисленной

факторизации нормы Norm(a + b ) = a5 − 8b5 на простые числа следующим образом. Пусть

(a + b ) =

PkP.

P —

простые идеалы

 

Тогда по лемме 3.39 Norm P — простое число, и Norm(a + b ) = (Norm P)kP.

P

Пусть P — простой идеал, делящий a + b , Norm P = p — простое число.

1)

Если p ≡

1 (mod 5),

то для данного p

идеал P единственен

 

 

 

5

5

 

 

 

по лемме 3.29; тогда kP = P((a + b )) = p (a

− 8b ).

5 како-

2)

Если p ≡ 1

(mod 5), то сначала надо выяснить, для

 

 

 

 

 

 

√

 

 

го c из имеющегося набора значений простой идеал P = (p,

 

2

− c)

входит в разложение идеала (a + b ). Воспользуемся отображением Ψ из доказательства леммы 3.39. Тогда

 

 

 

 

 

 

 

 

 

√5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c ≡ Ψ( 2) (mod P),

 

 

 

и если P | (a + b ), то

 

 

 

 

 

 

 

Отсюда

 

Ψ(a + b ) ≡ aΨ(1) + bΨ( ) ≡ 0 (mod p).

 

 

 

 

 

Ψ( ) ≡ c3 (mod p) ≡

a

 

 

 

 

 

 

 

 

 

(mod p).

 

 

 

 

 

 

 

 

b

 

 

 

Поэтому

 

 

 

 

 

 

c6 ≡ 2c ≡

a

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(mod p),

 

 

 

 

 

1

 

a

 

2

b

 

 

 

2

 

 

 

 

 

(mod p) определяется по a, b и p однозначно.

−

b

 

 

откуда c ≡

 

 

√5

 

 

 

 

 

 

 

5

5

 

 

 

 

 

 

 

 

 

Тогда для этого c P = (p, 2 − c) и

 

P(a + b ) =

 

p (a

− 8b ).

= (a + b )
uP
P

104

 

Гл. 3.

Факторизация целых чисел с субэкспоненциальной сложностью

 

Итак, мы можем находить разложение идеала (a + b ) в произве-

дение простых идеалов кольца ZK .

 

 

 

 

Вернемся теперь к нахождению соотношений на 2 этапе алго-

ритма. Пусть

(a, b) = 1 и пара

a, b дает

полное соотношение, т. е.

|a + 2103b| является B1-гладким

числом

и Norm(a + b ) = a5 − 8b5

является B2-гладким числом. Тогда имеют место следующие соотно-

шения.

 

 

 

 

uP

 

B2.

 

 

 

 

 

 

1) a + b =

PuP, где — единица, P— простые идеалы, Norm P

 

 

 

 

P

 

 

 

 

 

 

Описанным выше способом мы находим показатели

 

. Затем

вычисляем

P

и находим разложение для :

= v0 v1 v2 .

0 1 2

Показатель v0 определяется знаком , а v1 и v2 мы находим с помощью приближенных вычислений, как это было описано ранее.

2) a + 2103b = ± pwp , и это разложение мы находим с помощью

p B1

просеивания, о котором будет сказано чуть позже.

Теперь применим отображение из примера 3.25. Тогда

± pwp = a + 2103b ≡ (a + b ) (mod n) ≡

2

 

i

≡ ( i)vi

( P)uP (mod n),

=0

P

и это есть соотношение между элементами факторной базы, которое мы построили на 2 этапе алгоритма.

Мы ограничились рассмотрением пары a, b, дающей полное соотношение. Если соотношение частичное, т. е. появляются дополнительные простые числа p1, p2, то далее с помощью некоторой техники исключения из нескольких таких соотношений делают одно полное соотношение. Здесь используется теория графов; мы не рассматриваем эту технику в деталях.

Накопив достаточно много соотношений, мы переходим к 3 этапу алгоритма и находим X Z, X2 ≡ 1 (mod n), с помощью решения системы линейных уравнений над полем Z/2Z. При факторизации n = F9/p7 использовалось структурированное гауссово исключение для решения систем линейных уравнений над Z/2Z (см. об этом гл. 11).

 

§ 3.6. Алгоритмы решета числового поля

 

 

105

Теперь

объясним,

как

проводилось

 

нахождение

пар

,

,

103

b и a

5

− 8b

5

являются B1

- и

a

b Z

(a, b) = 1,

таких, что

a + 2

 

 

 

B2-глад-

кими числами соответственно. Для этого использовалось просеивание, аналогичное просеиванию в методе квадратичного решета из § 3.4.

Зафиксируем

b, 0 < b < 2, 5 · 106.

Выберем

некоторый отрезок

[−A; A]

(где A зависит от b), в котором будут изменяться значения a.

Заводим

массив,

пронумерованный

элементами

a [−A; A], a Z,

(a, b) = 1. В элемент массива с номером a мы заносим достаточно грубо вычисленное значение log |a + 2103b|. Далее для каждого простого числа p, p B1, мы идем по арифметической прогрессии номеров a, для которых a + 2103b ≡ 0 (mod p), т. е. a = a0 (p) + jp, j Z. Из элементов массива с номерами a вычитаем грубо вычисленное значение log p. Аналогичное просеивание делаем для некоторых степеней pk простого числа p: в прогрессии a + 2103b ≡ 0 (mod pk) из элементов массива с номерами a также вычитаем log p.

После того, как мы проведем просеивание по всем p, в нашем массиве образуются некоторые результирующие значения. Если элемент массива с номером a окажется маленьким, то, скорее всего, a + 2103b будет B1-гладким числом. Тогда мы факторизуем a + 2103b пробными делениями на p B1. Если a + 2103b окажется B1-гладким, за исключением, может быть, одного простого p1, B1 < p1 < 108, то мы сохраняем пару a, b в некотором массиве M.

Замечание 3.41. На деле просеивание происходит более тонким способом, но мы не будем здесь это обсуждать. Читатель может обратиться к оригинальной работе [162] за дальнейшими разъяснениями.

Теперь для пар a, b из массива M мы проводим аналогичное просеивание для нахождения B2-гладких чисел a5 − 8b5 = Norm(a + b ). В итоге мы найдем некоторое множество пар a, b, дающих полное или частичное соотношение.

Для факторизации n = F9/p7 было найдено 44 106 полных соотношений и 2 903 999 частичных соотношения. Для этого использовалось около 700 рабочих станций в течение около 5 недель. Было затрачено примерно 340 mips-year. Затем решение системы линейных уравнений над полем Z/2Z заняло около 6 недель на суперкомпьютере. В итоге n разложилось на два множителя, простота каждого из которых была проверена с помощью алгоритма Ленстры—Коена (см. гл. 1). На этом факторизация числа Ферма F9 была завершена.

Замечание

3.42. Нам

осталось лишь пояснить, каким образом

было выбрано

числовое

√5

поле K = Q( 2) для факторизации чис-

ла n = F9/p7. Мы опишем выбор числового поля для факторизации