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

§ 5.4. Дискретное логарифмирование в полях Галуа

137

§ 5.4. Дискретное логарифмирование в полях Галуа

Фиксируем простое число p, натуральное число n > 1, и обозначим q = pn. Пусть a — образующий элемент циклической группы GF(q) . Мы хотим решить уравнение

ax = b

(5.4)

в GF(q). Для этого также используются алгоритмы с факторными базами. В случае, когда p невелико, такой алгоритм описан в [144, гл. 4]. Он

имеет эвристическую оценку сложности

 

 

 

1

 

Lq

 

2 ; const арифметических

операций.

 

 

 

Алгоритм index-calculus.

 

 

 

 

 

1 этап.

(Предварительные вычисления.) Поле GF(q) изоморф-

но GF(p) [y]/(f(y)),

где f(y) GF(p) [y] — неприводимый унитарный

многочлен

степени

n. Поэтому элементы

 

поля GF(q) представимы

в виде многочленов степени не более n − 1. Умножение таких многочленов производится по модулю f(y). В частности, a = a(y) — некоторый многочлен. Элемент a1 = a(q−1)/(p−1) имеет порядок p − 1 и образует GF(p) . С его помощью мы составляем таблицу логарифмов «констант» — т. е. элементов простого поля GF(p) GF(q). Для этого мы вычисляем a01 = 1, a1, a21, . . . , ap12; это делается быстро, так как мы предположили, что p невелико.

2 этап. (Выбор факторной базы.) Факторная база B GF(q) состоит из всех неприводимых многочленов g степени не выше t, где t — некоторый параметр, t < n (выбор параметра t связан с оценкой сложности алгоритма).

3этап. (Нахождение соотношений.) Случайно перебирая m, 1 m

q − 2, мы находим те значения, для которых выполнено соотношение

am ≡ c0

 

g g (m) (mod f(y)),

 

g B

где c0 GF(p). Для факторизации нам приходится использовать деление многочленов над конечным полем. Из найденного соотношения следует, что

m ≡ loga c0 + g (m) loga g (mod q − 1).

g B

Здесь loga c0 нам уже известны, а loga g — неизвестные величины.

поненциальную оценку сложности Lpn

138 Гл. 5. Алгоритмы дискретного логарифмирования

4 этап. (Нахождение алгоритмов элементов факторной базы.) Найдя на 3 этапе достаточно много соотношений (больше, чем |B|), мы решаем систему линейных уравнений в кольце Z/(q − 1)Z и находим

loga g для g B.

5 этап. (Нахождение индивидуального логарифма.) В простейшей версии алгоритма мы ищем одно значение m, для которого

b · am ≡ c1

g g (mod f(x)),

g B

 

 

 

где c1 GF(p). Отсюда находим искомое значение

loga b ≡ −m + loga c1 +

q loga g (mod q − 1).

 

g B

 

 

Конец алгоритма.

В случае, когда p велико, описанный выше алгоритм неэффективен. Для логарифмирования в поле GF(p2) Эль Гамаль в работе [108]

предложил алгоритм, имеющий оценку сложности Lp 21 ; const ариф-

метических операций. В его методе используется вложение

поля GF(p2)

в кольцо целых алгебраических чисел ZK некоторого мнимого квадратичного одноклассного поля K

f : GF(p2) ZK .

Одноклассность поля K означает, что в ZK есть однозначное разложение на простые множители, и каждый идеал является главным. Наше уравнение ax = b в GF(p2) тогда перейдет в уравнение x = в ZK , где = f(a), = f(b). Далее используется стандартная схема логарифмирования с факторной базой, неоднократно описанная нами выше. При этом в качестве элементов факторной базы используются простые (неразложимые) элементы кольца ZK с небольшой нормой.

Заметим, что алгоритм Эль Гамаля явился, по сути, предвестником алгоритма решета числового поля.

Еще один алгоритм был предложен Эль Гамалем в работе [109]. Это алгоритм дискретного логарифмирования в поле GF(pn), где p

большое простое число, n > 2. Он также имеет эвристическую субэкс-

1

2 ; const . В нем используется

представление GF(pn) в виде ZK/P, где ZK — кольцо целых алгебраических чисел числового поля K, P — простой идеал ZK c нормой, равной pn.

§ 5.4. Дискретное логарифмирование в полях Галуа

139

Теперь рассмотрим случай p = 2, q = 2n. В 1984 г. в работе

[95]

Д. Копперсмит предложил

алгоритм, который имеет эвристическую

 

Lq

3

;

 

1

-

оценку сложности

 

1

 

const . Это был первый субэкспоненциаль

 

 

 

ный алгоритм с показателем 3 ; для факторизации алгоритмы с такой оценкой сложности появились лишь в 1990 г. (решето числового поля; см. гл. 3).

Опишем идею алгоритма Копперсмита на примере. Этот алгоритм основан на нахождении хорошего представления поля GF(q) в виде GF(q) = GF(2) [x]/(P(x)), где неприводимый многочлен P(x) имеет вид P(x) = xn + Q(x), deg Q(x) < n2/3. Пусть n = 127; можно положить P(x) = x127 + x + 1 — неприводимый многочлен в GF(2) [x]. Мы будем рассматривать поле GF(2127) = GF(2) [x]/(P(x)). Пусть a = a(x) — образующий циклической группы GF(2127) . Предположим,

что мы выбрали

A(x), B(x) GF(2) [x],

deg A(x) 10,

deg B(x) 10,

НОД(A(x), B(x))

= 1. Мы рассматриваем A(x), B(x)

как

элементы

GF(2127). Пусть

C(x) = x32A(x) + B(x),

тогда deg C(x) 42.

Если мы

рассмотрим многочлен D(x),

 

 

 

D(x) ≡ C(x)4 (mod P(x)),

deg D(x) < 127,

 

 

то

D(x) ≡ x128A(x)4 + B(x)4 (mod P(x)),

и поскольку

x128 ≡ x2 + x (mod P(x)),

то

D(x) (x2 + x)A(x)4 + B(x)4 (mod P(x)).

Таким образом,

C(x)4 ≡ D(x) (mod P(x)), deg D(x) 42, deg C(x) 42.

Поскольку степени C(x) и D(x) невелики, то с достаточно высокой вероятностью они разложатся в произведение неприводимых многочленов малой степени, которые составляют факторную базу. То есть

C(x) ≡ gj (x)ej (mod P(x)),

j

D(x) ≡ gj (x)fj (mod P(x)).

j

140

Гл. 5. Алгоритмы дискретного логарифмирования

Тогда сравнение

4

ej loga gj (x)

fj loga gj (x) (mod q − 1)

 

j

j

есть соотношение для неизвестных loga gj (x) — дискретных логарифмов элементов факторной базы нашего поля GF(2127). Это однородные уравнения. Однако можно считать, что наше основание a = a(x) в уравнении (5.4) само есть неприводимый многочлен малой степени, или что оно раскладывается в произведение таких многочленов:

a = a(x) ≡ gj (x)vj (mod P(x)).

j

Это дает нам неоднородное уравнение

1 = loga a ≡ vj loga gj (x) (mod q − 1),

j

и мы получаем неоднородную систему линейных уравнений относительно неизвестных величин loga gj (x). В остальном схема алгоритма Копперсмита аналогична схеме алгоритма Адлемана, описанного

в§ 5.3.

Вработах [269; 270] с помощью некоторого усовершенствования

алгоритма Копперсмита было проведено дискретное логарифмирование в поле GF(2607). Этап нахождения соотношений занял около 19 000 mips-years. Для решения систем линейных уравнений было использовано структурированное гауссово исключение, и затем для уплотненной системы был применен алгоритм Видемана (см. об этом алгоритме гл. 11). На решение системы линейных уравнений ушло более двух месяцев. Автор [269] также делает вывод о том, что ис-

пользованный им метод не позволяет осуществлять в настоящее время дискретное логарифмирование в GF(2n) для n 997.

О дискретном логарифмировании в поле GF(pn) см. также [173; 32].

§5.5. Дискретное логарифмирование и решето числового поля

В данном параграфе мы расскажем об алгоритмах решета числового поля для дискретного логарифмирования по простому модулю. Алгоритмы решета числового поля для факторизации появились несколько раньше (см. об этом § 3.6). Основываясь на идеях этих алгоритмов, Д. Гор-

§ 5.5. Дискретное логарифмирование и решето числового поля

141

дон в 1993 г. в работе [127] предложил алгоритм решения уравнения

ax ≡ b (mod p),

(5.5)

где p — простое число; сложность алгоритма составляет эвристически

Lp

1

; 32/3

арифметических операций.

3

Метод

Гордона оказался непрактичным. Широкауер в работе [236]

предложил свою версию алгоритма решета числового поля для решения (5.5) со сложностью Lp 13 ; (64/9)1/3 арифметических операций.

Его алгоритм был реализован Вебером, и в работе [274] описано лога

-

 

 

 

рифмирование по модулю

p

1040

, а в работе [238] 1996 г. — по модулю

65

 

p 10 . Также Вебер в работе [275] провел некоторые предваритель-

ные вычисления, связанные с дискретным логарифмированием по предложенному МакКарли модулю p 10129; позднее в [278] было найдено решение задачи (5.5) для данного p. Однако это число p имеет специальный вид, и поэтому используется специальное решето числового поля, работающее быстрее. Вебер в 1997 г. в своей диссертации [276] провел логарифмирование по модулю p 1085, не имеющему специального вида, как решетом числового поля (метод Широкауера), так и с помощью алгоритма Копперсмита—Одлыжко—Шреппеля (версия с гауссовыми целыми). При этом оказалось, что алгоритм решета числового поля работает медленнее для данного p (см. [277; 276]), чем алгоритм Копперсмита—Одлыжко—Шреппеля. Позднее Жу и Лерсье показали, что для p > 10100 алгоритмы решета числового поля работают быстрее, чем алгоритм Копперсмита—Одлыжко—Шреппеля, см. [134]. В январе 2001 г. Жу и Лерсье провели логарифмирование по модулю p 10110 (см. [135]), а в апреле 2001 г. — по модулю p 10120 (см. [136]). В настоящее время это — рекордное значение p для дискретного логарифмирования по простому модулю, не имеющему специального вида.

Прежде чем описать схему алгоритмов решета числового поля для решения (5.5), скажем еще несколько слов о других результатах в этой области.

Широкауер в работе [237] обобщил алгоритм работы [236] на случай поля GF(pn). При q = pn оценка сложности составляет Lq [1/3; (64/9)1/3] арифметических операций. Фактически это верно при фиксированном p и n → ∞. Согласно [237], указанная оценка справедлива и при log p > n2+ для некоторого > 0. Семаев в работе [247] также получил ряд результатов о дискретном логарифмировании в конечных непростых полях.

142 Гл. 5. Алгоритмы дискретного логарифмирования

В работе [33] идеи Копперсмита и Широкауера применены для

получения алгоритма дискретного логарифмирования в простом по-

ле GF(p) с

 

 

1/3

 

Lp

 

3

; c , где c =

наилучшей известной оценкой сложности

 

 

1

 

 

 

 

 

= (92 + 26

13)

 

 

/3 1,902.

 

 

 

 

Для чисел специального вида в работе [127] была предложена

версия алгоритма решета числового поля со сложностью Lp

2

; c ,

5

где c

1,00475. За счет того, что c близка к 1, такой алгоритм в неко-

 

торых случаях работает быстрее алгоритмов со сложностью

 

1

;

,

Lp 3

как показывает пример работы [278].

 

c

См. также [208; 152].

Теперь мы опишем, следуя [276], общую схему алгоритмов решета числового поля для решения задачи (5.5). Мы опишем также, в виде некоторого частного случая этой схемы, версию алгоритма Копперсмита—Одлыжко—Шреппеля с гауссовыми целыми. Принято рассматривать алгоритм работы [97] как отдельный метод, отличный от решета числового поля, поскольку он был придуман раньше и имеет собственную оценку сложности.

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

Схема алгоритма.

1 этап. На этом этапе мы сводим решение уравнения (5.5) к решению уравнений

ax ≡ s (mod p), s S,

где S — некоторое конечное множество достаточно малых натуральных чисел. Грубо говоря, мы ищем одно z N, такое, что

 

az · b ≡ sj

(mod p),

 

 

 

 

 

 

j

 

 

 

 

 

где sj — не очень большие простые числа, скажем, sj Lp

2

; const .

3

 

z

 

 

методом эллип

Факторизацию a · b (mod

p) мы можем проводить

 

 

-

тических кривых Ленстры

(см. гл.

4). Тогда S = {sj},

loga b ≡ −z +

+ j

loga sj (mod p − 1).

 

 

 

 

 

 

2 этап. С помощью некоторой техники мы выбираем два многочлена g1 (x), g2 (x) Z [x], deg gi (x) = ni, i = 1, 2, имеющих общий корень

§ 5.5. Дискретное логарифмирование и решето числового поля

143

m(mod p). Мы обозначаем для j = 1, 2:

j C — фиксированный корень gj (x), hj N — старший коэффициент gj (x),

Kj Q( j),

Oj = ZKj — кольцо целых алгебраических чисел поля Kj. Замечание 5.7. Версия алгоритма Копперсмита—Одлыжко—

Шреппеля с гауссовыми целыми в рамках данной схемы выглядит следующим образом:

1)n1 = 2; g1 (x) — неприводимый многочлен второй степени; поле K1 есть мнимое квадратичное одноклассное поле;

2)n2 = 1, g2 (x) — линейный многочлен вида Ux + V, U, V Z.

3 этап. (Выбор факторной базы.) Для j = 1, 2 мы находим факторные базы

Fj = { | — простые идеалы Oj, Norm < Bj} {hj}.

Здесь Bj — некоторые постоянные, субэкспоненциально зависящие от p.

4 этап. С помощью некоторого просеивания мы находим множество пар C = {(c, d)} Z2 такое, что для i = 1, 2 идеалы (hi (c + d i)) в кольце Oj гладки по отношению к факторной базе Fj. При этом множество C должно быть достаточно велико, |C| > |F1| + |F2|.

5 этап. Для каждого s S мы находим специальные соотношения. Для каждого простого идеала s O1, лежащего над s, мы находим пару чисел c, d такую, что идеал (h1 (c + d))/ 1 гладок по отношению к F1 и идеал (h2 (c + d 2)) гладок по отношению к F2.

6 этап. Для каждого большого простого числа q, делящего p − 1 (мы считаем, что факторизация p − 1 нам известна), делаем следующее.

1.Вычисляем так называемые аддитивные характеры Широкауера (определение см. ниже) от элементов hj (c + d j), j = 1, 2, (c, d) C.

2.Находим матрицу A с элементами из поля Z/qZ. Ее столбцы состоят из векторов показателей в разложении hj (c + d j) на простые идеалы и из значений аддитивных характеров.

3.Путем решения системы линейных уравнений AX ≡ 0 (mod q) находим элементы i Oi, i = 1, 2, такие, что i = qi , i Oi, i = 1, 2.

4.С помощью кольцевых эндоморфизмов

j : Z [hj j] Z/pZ, j (hj j) ≡ hjm (mod p), j = 1, 2,

мы переходим от q-х степеней в кольцах Oj к целым числам и находим k, l Z такие, что ak · bl ≡ dq (mod p). Из этого следует, что

144 Гл. 5. Алгоритмы дискретного логарифмирования

k + lx ≡ 0 (mod q), где x (mod p − 1) — решение (5.5). Отсюда мы находим значение x (mod q).

Замечание 5.8. Для версии [97] с гауссовыми целыми нам не нужно вычислять аддитивные характеры Широкауера, поскольку мы работаем в кольцах Oi с однозначным разложением на множители и с конечной группой единиц.

7 этап. На 6 этапе мы нашли значение x (mod q) для больших простых делителей q числа p − 1. Предположим, что p − 1 не делится на квадрат большого простого числа. Тогда недостающие значения x (mod q q), где q — небольшие простые числа, q q p − 1, мы найдем с помощью алгоритма Полига—Хеллмана. Затем с помощью китайской теоремы об остатках мы найдем искомое значение x (mod p − 1).

Конец алгоритма.

Определим теперь аддитивные характеры Широкауера, возникающие на 6 этапе алгоритма. Пусть — алгебраическое число, deg = n, f(x) = anxn + . . . + a0 Z [x] — минимальный многочлен для , K = Q( ), O = ZK — кольцо целых алгебраических чисел поля K. Положим

Γ = { O | l NormK/Q ( )},

E = НОК |(O/b) | b — простые идеалы O, b|(l) .

Очевидно, что Γ является подгруппой относительно умножения. Рассмотрим отображение

: (Γ, ·) → lO/l2O, ( ) = E 1 (mod l2O).

Нетрудно видеть, что является гомоморфизмом мультипликативной полугруппы в аддитивную группу lO/l2O. Пусть

O = Z 1 . . . Z n,

где

 

,

 

,

n — целый

базис

кольца

 

O. Тогда

 

2

 

является

. . .

 

lO/l

O

1

 

 

 

 

2

 

линейным

пространством

над

Z/lZ

с

базисом

l 1 (mod l nO), . . .

. . . , l n (mod l2O). Пусть Ωi ≡ l i (mod l2O), и пусть i ( ) = i=1 bii,

где bi Z/lZ. Рассмотрим отображения

 

i : Γ Z/lZ,

 

 

≡ bi

(mod

).

 

 

i ( )

 

l

Эти отображения называются аддитивными характерами Широкауера, причем однозначно определяется набором 1, . . . , n.

Вработе [236] показано, что при некоторых условиях из равенства

( ) = 0 следует, что = l, где O. Это обеспечивает нам нахождение элементов i = qi на 6 этапе алгоритма.

Теперь вкратце опишем просеивание, применяемое на 4 этапе алгоритма. Условие гладкости идеала (hi (c + d i)) в кольце Oi равносильно