- •Предисловие
- •Тестирование чисел на простоту и построение больших простых чисел
- •Введение
- •Элементарные методы проверки простоты чисел
- •Тесты на простоту для чисел специального вида
- •Алгоритм Миллера
- •Вероятностные тесты на простоту
- •Современные методы проверки простоты чисел
- •Заключение. Детерминированный полиномиальный алгоритм проверки простоты чисел
- •Факторизация целых чисел с экспоненциальной сложностью
- •Введение. Метод Ферма
- •101.21.2(P-1)-метод Полларда
- •Алгоритм Ленстры
- •101.21.2(P+1)-метод Уильямса и его обобщения
- •Методы Шэнкса
- •Прочие методы. Заключение
- •Факторизация целых чисел с субэкспоненциальной сложностью
- •Введение
- •Метод Диксона. Дополнительные стратегии
- •Квадратичное решето
- •Алгоритмы решета числового поля
- •Заключение
- •Алгоритм Ленстры для факторизации целых чисел с помощью эллиптических кривых
- •Вычисление порядка группы точек эллиптической кривой над конечным полем
- •Тестирование чисел на простоту с помощью эллиптических кривых
- •Заключение
- •Алгоритмы дискретного логарифмирования
- •Введение. Детерминированные методы
- •Дискретное логарифмирование в полях Галуа
- •Дискретное логарифмирование и решето числового поля
- •Частное Ферма и дискретное логарифмирование по составному модулю
- •Заключение
- •Факторизация многочленов над конечными полями
- •Введение. Вероятностный алгоритм решения алгебраических уравнений в конечных полях
- •Решение квадратных уравнений
- •Алгоритм Берлекэмпа
- •Некоторые другие усовершенствования алгоритма Берлекэмпа
- •Заключение
- •Приведенные базисы решеток и их приложения
- •Введение. Решетки и базисы
- •LLL-приведенный базис и его свойства
- •Алгоритм построения LLL-приведенного базиса решетки
- •Некоторые приложения LLL-алгоритма
- •Заключение
- •Введение
- •LLL-алгоритм факторизации: разложение по простому модулю
- •LLL-алгоритм факторизации: использование решеток
- •LLL-алгоритм факторизации: подъем разложения
- •LLL-алгоритм факторизации: полное описание
- •Практичный алгоритм факторизации
- •Факторизация многочленов с использованием приближенных вычислений
- •Заключение
- •Введение. Дискретное преобразование Фурье и его свойства
- •Заключение
- •Целочисленная арифметика многократной точности
- •Введение. Сложение и вычитание
- •Умножение
- •Деление
- •Решение систем линейных уравнений над конечными полями
- •Введение
- •Решение систем линейных уравнений в целых числах
- •Гауссово и структурированное гауссово исключение
- •Алгоритм Ланцоша
- •Алгоритм Видемана
- •Другие методы. Заключение
Глава 7. Приведенные базисы решеток и их приложения
§ 7.1. Введение. Решетки и базисы
Пусть Rn — n-мерное евклидово пространство со скалярным произведением (·, ·). Пусть b1, . . . , bn Rn — линейно независимые вектора. Решеткой в Rn называется множество
Λ = Λ(b1, . . . , bn) = Zb1 . . . Zbn = {x1b1 + . . . + xnbn | x1, . . . , xn Z};
векторы b1, . . . , bn называются базисом решетки. Определителем решетки называется величина d(Λ),
d(Λ) = (det (bi, bj) i,j=1,...,n)1/2.
Базис решетки можно выбирать разными способами; однако поскольку один базис выражается через другой с помощью целочисленной матрицы с определителем ±1, d(Λ) является инвариантом решетки. Имеет место неравенство Адамара:
d(Λ) n |bi|,
i=1
где |b| — евклидова норма вектора b Rn. Если e1, . . . , en — ортонор-
мированный базис Rn, и bi = n bijej, i = 1, . . . , n, то
j=1
d(Λ) = | det bij i,j=1,...,n|.
Замечание 7.1. Превосходным введением в геометрию чисел является книга Касселса [24]. В ней можно найти описание различных свойств решеток и их приложений.
Решетка является дискретным множеством, т. е. в любом ограниченном множестве пространства Rn содержится лишь конечное число точек решетки.
Напомним процесс ортогонализации Грама—Шмидта. Пусть b1, . . . , bn — линейно независимые векторы в Rn. Пусть векторы
§ 7.1. Введение. Решетки и базисы |
187 |
b1 , . . . , bn определяются соотношениями
i−1 |
|
b1 = b1, bi = bi − ijbj , |
i = 2, . . . , n, |
=1 |
|
j |
|
где |
|
ij = (bi, bj )/(bj , bj ), |
1 j < i. |
Тогда векторы b1 , . . . , bn попарно ортогональны.
При применении решеток в различных теоретико-числовых алгоритмах важную роль играют базисы, состоящие из достаточно коротких векторов. Ниже мы рассмотрим различные виды таких базисов.
Фиксируем решетку Λ в Rn и рассмотрим множество GΛ, состоящее из всех ее базисов. Рассмотрим на GΛ следующее отношение упорядоченности: при {a1, . . . , an}, {b1, . . . , bn} GΛ
{a1, . . . , an} < {b1, . . . , bn},
если существует номер j такой, что при всех i < j справедливо равенство
|ai| = |bi|, но |aj| < |bj|.
Определение 7.2. Минимальный элемент GΛ по отношению < называется приведенным по Минковскому базисом решетки.
Поскольку норма на решетке принимает дискретное множество значений, то приведенный по Минковскому базис существует. Однако он может быть не единственен. Например, в решетке Zn любая перестановка единичных векторов e1, . . . , en образует приведенный по Минковскому базис.
Рассмотрим теперь другое отношение упорядоченности <T. Пусть a = (x1, . . . , xn), b = (y1, . . . , yn, ), a, b Rn. Скажем, что a <T b, если |a| < |b|, либо |a| = |b| и существует номер j такой, что xi = yi при i < j, но xj > yj (т. е. у меньшего вектора первая отличная координата больше). Очевидно, что любые два вектора из Rn сравнимы по отношению <T . Теперь продолжим это отношение <T на множество GΛ: если {a1, . . . , an}, {b1, . . . , bn} GΛ, то
{a1, . . . , an} <T {b1, . . . , bn},
если существует номер j такой, что ai = bi при i < j, но aj <T bj. Определение 7.3. Минимальный элемент множества GΛ по отно-
шению <T называется вполне приведенным базисом.
Замечание 7.4. Легко видеть, что вполне приведенный базис существует и единственен. В [217, гл. 3] приведен алгоритм нахождения вполне приведенного базиса решетки.
188 |
Гл. 7. Приведенные базисы решеток и их приложения |
Приведенные по Минковскому и вполне приведенные базисы решеток имеют важные приложения в вычислительной алгебраической теории чисел, см. [217, гл. 3, 5]. В теоретико-числовых алгоритмах часто используются базисы, приведенные по Ленстре—Ленстре—Ловасу (LLL-приведенные базисы), о которых мы расскажем в следующих параграфах.
§ 7.2. LLL-приведенный базис и его свойства
Определение 7.5. Базис b1, . . . , bn решетки Λ Rn называется LLL-приведенным, если для векторов b1 , . . . , bn и коэффициентов ij, полученных с помощью процесса ортогонализации Грама—Шмидта (см. § 7.1), выполнены неравенства:
| ij| |
1 |
, |
1 j < i n, |
(7.1) |
||||||||
2 |
||||||||||||
|
+ |
|
|
|
|
|
2 |
|
3 |
|
2 |
|
|bi |
|
ii−1bi−1 |
| |
4 |
|bi−1 |
| . |
(7.2) |
|||||
Замечание 7.6. LLL-приведенные базисы впервые были введены в работе [160]. Условие (7.2) означает, что вектор bi + ii−1bi−1, равный проекции вектора bi на Lоб (b1, . . . , bi−2) , не является очень маленьким по сравнению с проекцией вектора bi на Lоб (b1, . . . , bi−2) .
Опишем ряд важных свойств LLL-приведенных базисов.
Теорема 7.7. Пусть b1, . . . , bn — LLL-приведенный базис решетки Λ Rn. Тогда:
1.|bj|2 2i−1|bi |2 при всех i, j, 1 j < i n;
2.d(Λ) n |bi| 2n(n−1)/4d(Λ);
i=1
3. |b1| 2(n−1)/4d(Λ)1/n.
Доказательство. Поскольку векторы bi ортогональны, то
|
|bi + ii−1bi−1|2 = |bi |2 + ii2−1|bi−1|2. |
|
||||
Так как 2 |
1/4, то из неравенства (7.2) следует, что |
|
||||
ii−1 |
|
|
|
|
|
|
|
2 |
1 |
|
2 |
|
|
|
|bi | |
|
|
|bi−1 |
| . |
|
|
2 |
|
||||
Отсюда следует неравенство |
|
|
|
|
|
|
|
|bj | 2i−j|bi |2, |
(7.3) |
||||
§ 7.2. LLL-приведенный базис и его свойства |
189 |
выполняющееся при всех i j. В силу ортогональности bi , получим
|bi|2 = |bi |2 + i<j |
ij2 |bj |2 |bi |2 |
1 + 1 j<i 41 |
2i−j |
= |
|||
|
|
|
|
|
|
|
|
|
|
= |bi |2 1 + |
1 |
(2i−1 − 1) 2i−1|bi |2. |
|||
|
|
2 |
|||||
Поэтому |bj|2 |
2j−1|bj |2 2j−1 · 2i−j|bi |2, |
что |
доказывает первое |
||||
утверждение теоремы. |
|
|
|
|
|
|
|
Первое неравенство во втором утверждении теоремы есть неравенство Адамара. Второе неравенство выполняется, поскольку
|
|bi| 2 i=1 i−21 |
|bi | = 2 |
2− |
· d(Λ). |
n |
i |
n(n |
1) |
|
n |
n |
|||
i=1 |
|
=1 |
|
|
Здесь мы воспользовались тем (обозначая через [b1, . . . , bn] матрицу, в i-й строке которой стоят координаты вектора bi), что выполнены равенства
|
|
|
|
|
|
|
|
|
1/2 |
|
|
|
|
|
|
|
1/2 |
|
n |
d(Λ) = |
det[b1, . . . , bn] |
= |
det[b , . . . , |
b |
] |
= |
|
, b ) |
|
|
= |
b . |
|||||||
= det[b , . . . , b ] |
|
[b , . . . , b |
]T |
|
n |
= |
|
det (b |
|
|
|||||||||
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
n |
· |
|
1 |
n |
|
|
|
|
|
|
|
i |
j |
|
|
|
| i | |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=1 |
Наконец, из неравенства |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
следует, что |
|b1|2 2i−1|bi |2, |
|
i = 1, . . . , n, |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|b1|2n 2n(n−1)/2 n |bi |2 = 2n(n−1)/2d(Λ)2, i=1
что доказывает последнее утверждение теоремы.
Теорема 7.8. Пусть b1, . . . , bn — LLL-приведенный базис решетки Λ. Тогда для любого вектора x Λ \0 справедливо нера-
венство
|b1|2 2n−1|x|2.
Замечание 7.9. Утверждение теоремы 7.8 означает, что вектор b1 является одним из самых коротких векторов решетки.
x |
x |
r b |
|
r |
= |
|
|
i |
|
где ri Z. Предста- |
Доказательство. Пусть |
x |
n |
ribi Λ \0, |
|||||||
|
|
n |
|
|
|
i=1 |
|
|
|
|
вим |
в виде = |
i |
i |
i |
|
R. Если |
|
0 — |
максимальный номер, |
|
i |
|
|||||||||
|
, где |
|
|
|
|
|||||
|
|
=1 |
|
|
|
|
|
|
|
|
