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

114 Гл. 4. Применение кривых для проверки простоты и факторизации

нам вообще не нужно будет проводить деление по модулю n. Однако Коен [89, гл. 10] все же рекомендует аффинные координаты в сочетании с усовершенствованием Монтгомери.

Замечание 4.8. Алгоритм Ленстры аналогичен (P − 1)-методу Полларда, описанному в гл. 2. В нем, так же, как и в (P − 1)-методе, возможна вторая стадия, см. [89; 192; 74].

§4.3. Вычисление порядка группы точек эллиптической кривой над конечным полем

Вычисление порядка группы точек на эллиптической кривой над конечным простым полем имеет важные приложения как в криптографии, так и в алгоритмах проверки простоты чисел, о которых будет рассказано в следующем параграфе.

Пусть p — простое число, p > 3, эллиптическая кривая E = Ea,b

над полем Z/pZ задана уравнением y2 = x3 + ax + b. Для нахождения |E(Z/pZ)| Р. Шуф в 1985 г. в работе [244] предложил алгоритм, имеющий полиномиальную сложность O(log8 p) битовых операций (см. также [245]). Дальнейшие усовершенствования алгоритма Шуфа были предложены Аткином, Элкисом, Мюллером и другими авторами, см. [65; 113; 202; 171; 245]. Это позволило на практике вычислять порядки групп точек для простых полей, число элементов которых записывается несколькими сотнями десятичных цифр; рекордное значение p равно 10499 + 153.

В данном параграфе мы опишем первоначальный алгоритм Шуфа из работы [244].

Обозначим через Z/pZ алгебраическое замыкание поля Z/pZ. Отображение Фробениуса : E(Z/pZ) → E(Z/pZ) определяется соот-

ношениями

(O) = O.

(x, y) = (xp, yp),

Нетрудно доказать, что является

гомоморфизмом и вложением

E(Z/pZ) в себя; очевидно, что точки E(Z/pZ) остаются неподвижными при действии . Пусть

|E(Z/pZ)| = p + 1 − t,

по теореме Хассе |t| < 2p. Целое число t называется следом отображения Фробениуса; отображение удовлетворяет уравнению

2 − t + p = 0.

§ 4.3. Вычисление порядка группы точек эллиптической кривой

115

Для каждого натурального числа n обозначим через E[n] подгруппу E(Z/pZ), состоящую из точек, порядок которых делит n:

E[n] = {P E(Z/pZ) | nP = O}.

Теорема 4.9 (см. [256]). Если n > 1 и p не делит n, то группа E[n] изоморфна Z/pZ × Z/pZ.

Пример 4.10. Рассмотрим x1, x2, x3 — три различных корня уравнения x3 + ax + b = 0 в Z/pZ. Тогда

E[2] = {(xi, 0) : i = 1, 2, 3} {O}.

Определим многочлены n (x, y) Z/pZ [x, y], n = 1, 0, 1, 2, . . ., следующими соотношениями:

1 (x, y) = 1, 0 (x, y) = 0, 1 (x, y) = 1, 2 (x, y) = 2y,3 (x, y) = 3x4 + 6ax2 + 12bx − a2,

4 (x, y) = 4y(x6 + 5ax4 + 20bx3 5a2x2 4abx − 8b2 − a3); далее при n 3

2n (x, y) = n (x, y) ( n+2 (x, y) n−1 (x, y)2 n−2 (x, y) n+1 (x, y)2)/(2y), и при n 2

2n+1 (x, y) = n+2 (x, y) n (x, y)3 n+1 (x, y)3 n−1 (x, y);

везде y2 следует заменять на x3 + ax + b.

Многочлены n (x, y) называются многочленами деления. Нетрудно доказать по индукции, что fn (x), определенные равенством

fn (x) =

n (x, y)/y,

если n четное,

 

n (x, y),

если n нечетное,

являются многочленами от x, т. е. fn (x) Z/pZ [x]. Кроме того, если n— нечетно, p n, то deg fn (x) = (n2 1)/2.

Теорема 4.11. Пусть P = (x, y) E(Z/pZ) \E[2]. Пусть n 3. Равенство nP = O выполнено тогда и только тогда, когда fn (x) = 0.

Теорема 4.12. Пусть

P = (x, y) E(

Z/pZ

) \E[2],

n 2, причем

nP =/ O. Тогда

 

 

 

 

 

 

 

nP= x−

n 1 (x, y) n+1 (x, y)

 

n+2 (x, y) n−1 (x, y)2n−2

(x, y) n+1

(x, y)2

.

n (x, y)2

,

 

4y n (x, y)3

 

 

Далее в алгоритме Шуфа мы будем находить значение t (mod l) для небольших простых чисел l. Если таких l будет достаточно много,

8*

116 Гл. 4. Применение кривых для проверки простоты и факторизации

точнее, если Πl > 4p, то, найдя затем по китайской теореме об остатках значение t (mod Πl), мы получим, что искомое значение t равно абсолютно наименьшему вычету в классе t (mod Πl). Это следует из теоремы Хассе (см. § 4.1). Тогда мы найдем искомое значение

|E(Z/pZ)| = p + 1 − t.

случай l = 2. Согласно приведенному вы-

Рассмотрим сначала

ше примеру, в E(Z/pZ)

найдется ненулевая точка P = (x, 0) второго

порядка, если и только если выполнено условие НОД(xp − x, x3 + ax + b) =/ 1.

Это условие равносильно четности числа |E(Z/pZ)| что, в свою очередь, равносильно четности t, поскольку p + 1 четно. Итак, t ≡ 0 (mod 2) тогда и только тогда, когда

НОД(xp − x, x3 + ax + b) =/ 1;

в противном случае t ≡ 1 (mod 2).

Везде далее мы обозначаем через l нечетное фиксированное (небольшое) простое число, l =/ p. Реально в алгоритме следует рассматривать простые числа l порядка O(log p).

Рассмотрим группу E[l]; очевидно, что (E[l]) E[l]. Легко показать, что является изоморфизмом E[l]. Обозначим l = |E[l] . Тогда l удовлетворяет уравнению

2l − t l + p = 0.

Покажем, что если l удовлетворяет уравнению

2l − t l + p = 0

при некотором t Z, то t ≡ t (mod l). Действительно, вычитая второе уравнение из первого, получим

(t − t ) l = 0 на E[l],

откуда t ≡ t (mod l), поскольку l — изоморфизм.

Теперь нам надо найти значение , 0 l − 1, для которого2l l + p = 0 на E[l].

Тем самым мы определим значение t (mod l). Другими словами, нам нужно найти Z/lZ, для которого на E[l] выполняется равенство2l + p = l. Случай = 0 рассматривается отдельно. Если же =/ 0, то, для

k ≡ p (mod l), 1 k l − 1,

§ 4.3. Вычисление порядка группы точек эллиптической кривой

117

мы, по теореме 4.12, примененной к точке P = (x, y) E[l] \O можем переписать наше равенство 2l (P) + pP = l (P) в виде

(xp2 , yp2) x − k−1 (x, y) k+1 (x, y) ,k (x, y)2

k+2 (x, y) k−1 (x, y)2 k−2 (x, y) k+1 (x, y)2 =

4y k (x, y)3

= xp 1 (x, y) +1 (x, y) p,(x, y)2

+2 (x, y) 1 (x, y)2 2 (x, y) +1 (x, y)2 p . 4y (x, y)3

Знак обозначает операцию сложения точек на кривой. Последнее равенство приводится к виду

H1 (x) 0 (mod fl (x)),

H2 (x) 0 (mod fl (x)),

где H1 (x), H2 (x) Z/pZ [x]. В результате перебора = 0, 1, . . . , l − 1 мы найдем истинное значение t ≡ (mod l). Так выглядит основная идея алгоритма, которую мы далее конкретизируем.

Алгоритм Шуфа.

Алгоритм находит t (mod l) для таких простых чисел l, что l > 4p. Затем с помощью китайской теоремы об остатках находится истинное значение t. Значение t (mod 2) находим так, как было сказано выше. Пусть далее l > 2, l — фиксированное простое

число, l =/ p.

1 этап алгоритма для фиксированного l. Мы проверяем, существует ли точка P = (x, y) E[l] \O такая, что

2l (P) = ±kP,

где k ≡ p (mod l), 1 k l − 1. Сначала проверяем по первой координате; это означает, что должно выполняться равенство

xp2 = x − k−1 (x, y) k+1 (x, y) .k (x, y)2

При четном k это равенство имеет вид

x

p2

= x −

fk−1 (x)fk+1 (x)

,

 

fk (x)2 (x3 + ax + b)

118 Гл. 4. Применение кривых для проверки простоты и факторизации

а при нечетном k

xp2 = x − fk−1 (x)fk+1 (x) (x3 + ax + b) . fk (x)2

Следовательно, по теореме 4.11 точка P = (x, y) E[l] \O, удовлетворяющая соотношению 2l (P) = ±kP, существует тогда и только тогда, когда

НОД((xp2 − x)fk (x)2 (x3 + ax + b) + fk−1 (x)fk+1 (x), fl (x)) =/ 1

при четном k, и

НОД((xp2 − x)fk (x)2 + fk−1 (x)fk+1 (x) (x3 + ax + b), fl (x)) =/ 1

при нечетном k. Если же соответствующий НОД (при k четном или нечетном) равен 1, то искомое не сравнимо с 0 по модулю l. Действительно, если 0 (mod l), то

 

( l2 + k) (P) = 0 для всех P E[l],

 

.

а в нашем случае (при НОД = 1)

таких точек нет, за исключением

O

 

2

 

 

В случае неразрешимости уравнения

l (P)

= ±kP на E[l] \O мы пере-

ходим на 2-й этап алгоритма.

 

 

P E[l] \O, для которой

2

Предположим, что существует

точка

l

(P) = ±kP = ±pP.

 

 

 

 

 

1случай. Если 2l (P) = −pP, то ( 2l + p)P = O. Так как ( 2 − t +

+p) (P) = O для любой точки P на кривой, то отсюда (t l) (P) = O.

Поскольку l — изоморфизм E[l], получаем, что t ≡ 0 (mod l). Таким образом, в данном случае мы нашли искомое t (mod l).

2 случай. Если l2 (P) = pP, то, пользуясь снова уравнением 2

− t + p = 0,

получаем соотношение (2p − t l) (P) = O. Поскольку

2pP =/ O для

P E[l] \O, то t ≡ 0 (mod l). Поэтому l (P) =

2p

· P

t

(здесь

1

обозначает t1 (mod l)). Применяя снова l, получим

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

2p

 

2

 

 

 

 

 

 

pP = l2 (P) =

 

l (P) =

4p

· P.

 

 

 

t

t2

Отсюда

p ≡ 4p2/t2

(mod l),

 

 

 

или t2 4p (mod l). В частности, в этом случае p является квадратичным вычетом по модулю l.

Теперь решим уравнение w2 ≡ p (mod l) (алгоритм решения таких уравнений см. далее в главе 6; для малых l возможен перебор). Для его

§ 4.3. Вычисление порядка группы точек эллиптической кривой

119

решения w будет выполнено сравнение t ≡ ±2w (mod l), и нам останется лишь определить истинный знак + или .

Подставляя t ≡ ±2w (mod l) в уравнение для l, получим

2l 2w l + w2 = 0,

или ( l w)2 = 0 тождественно на E[l]. Поэтому собственное значение линейного отображения l на E[l] может быть только ±w (mod l) (если r — собственное значение, то (r w)2 0 (mod l)). Проверку существования решения Q E[l] уравнения ( w)Q = O осуществляем так же, как выше мы осуществляли проверку существования решения уравнения 2l (P) = ±kP. Точнее, пусть Q = (x, y). Тогда для выполнения равенства l (Q) = ±wQ по первой координате должно выполняться равенство

xp = x − w−1 (x, y) w+1 (x, y) .w (x, y)2

Отсюда при w четном

 

 

x

p

= x −

fw−1 (x)fw+1 (x)

,

 

 

 

 

fw (x)2 (x3 + ax + b)

 

а при w нечетном

 

 

 

 

 

 

 

 

x

p

= x −

fw−1 (x)fw+1 (x) (x3 + ax + b)

.

 

 

fw (x)2

 

Существование такой точки Q E[l] равносильно тому, что

НОД((xp − x)fw (x)2 (x3 + ax + b) + fw−1 (x)fw+1 (x), fl (x)) =/ 1

при w четном, а при w нечетном

НОД((xp − x)fw (x)2 + fw−1 (x)fw+1 (x) (x3 + ax + b), fl (x)) =/ 1.

Если теперь такая точка Q существует (т. е. соответствующий НОД не равен 1), то надо определить знак ±w по второй координате. Если

(xp, yp) = l (w) = wQ =

x −

 

 

w (x, y)2

2

,

 

2

 

 

 

w

 

1

(x, y) w+1

(x, y)

 

 

 

 

 

w+2 (x, y) w−1 (x, y) w−2 (x, y) w+1

(x, y)

 

,

 

 

 

 

 

4y w (x, y)3

 

 

то отсюда

fw+2 (x) · yf2 − fw−2 (x) · yfw+1 (x)2 yp = w 1

4y4fw (x)3

2l (P) = kP,

120 Гл. 4. Применение кривых для проверки простоты и факторизации

при w четном и

fw+2 (x) · y2f2 − fw−2 (x) · y2fw+1 (x)2 yp = w 1 .

4yfw (x)3

при w нечетном. Пользуясь соотношением y2 = x3 + ax + b, получаем, что при w четном будет выполняться соотношение l (Q) = wQ, если

НОД 4fw (x)3 (x3+ax+b)p

2

−fw+2 (x)fw−1

 

+3

Соответственно, при w нечетном

НОД 4fw (x)3 (x3+ax+b)p−2

1−fw+2 (x)fw−1

В случае, когда l (Q) = −wQ, вторая

при w четном

 

+fw+2 (x)fw−1

НОД 4fw (x)3 (x3+ax+b)p

2

 

+3

(x)2+fw−2

(x)2+fw−2

(x)fw+1 (x)2, fl (x) =/ 1.

(x)fw+1 (x)2, fl (x) =/ 1.

координата меняет знак. Тогда

(x)2−fw−2 (x)fw+1 (x)2, fl (x) =/ 1,

и

 

 

 

 

 

1+fw+2 (x)fw−1 (x)2−fw−2 (x)fw+1 (x)2, fl (x) =/ 1.

НОД 4fw (x)3 (x3+ax+b)p−2

при w нечетном.

 

 

 

 

 

 

 

 

 

 

 

Теперь предположим, что не существует точки Q E[l] \O такой,

что

 

l (Q) = ±wQ. Кроме

 

того, мы

находимся в условиях 2 случая,

 

 

 

2

2

 

 

 

 

E[l] \

O

 

 

 

 

2

т. е. существует P

 

 

 

такая, что

 

l (P)

= kP. Покажем, что на-

ше

предположение невозможно.

2У

нас

l (P) = (±w) P; кроме того,

выше мы показали,

что

( l w)

P = O. Из

этих двух соотношений

следует, что

w2P 2w l (P) + w2P = O,

т. е. 2w2P = ±2w l (P). Так как 2w =/ 0 (mod l), то отсюда l (P) = ±wP. Мы же предположили, что для всех точек Q E[l] \O (включая и P), равенство l (Q) = ±wQ невозможно. Это означает, что наше предположение было неверным.

Итак, если существует точка P E[l] \O такая, что то существует и точка Q E[l] \O такая, что l (Q) = ±wQ.

В итоге 1 этап алгоритма реализуется следующим образом. Если не существует точки P E[l] \O, для которой 2l (P) = ±kP, то мы

§ 4.3. Вычисление порядка группы точек эллиптической кривой

121

переходим на 2 этап алгоритма. Если же такая точка P существует (т. е. соответствующий НОД в начале описания первого этапа не

равен 1), то при

 

p

= 1 мы

полагаем t ≡ 0 (mod l)

(поскольку

 

l

2

 

 

 

l

 

 

2 случай

невозможен). Если же

p

= +1, то мы находим w Z такое,

 

 

 

 

 

что w ≡ p (mod l) и 0 < w < l. Затем проверяем, будет ли +w или −w собственным значением для l на E[l] (проверку осуществляем так, как это описано выше). Если ±w не является собственным значением l на E[l], то t ≡ 0 (mod l) — искомое значение, как это было объяснено выше.

Если l (Q) = wQ для некоторой точки Q E[l] \O, то 2l (Q) = pQ.

Тогда, пользуясь соотношением l (Q) = 2tpQ, найденным ранее, получим

w − 2tp 0 (mod l).

Так как p ≡ w2 0 (mod l), то отсюда t ≡ 2w (mod l) есть искомое значение t по модулю l.

Если l (Q) = −wQ для некоторой точки Q E[l] \O, то аналогично получим

 

 

 

w +

2p

0 (mod l),

 

 

 

 

t

 

откуда t ≡ −2w (mod l).

 

 

 

 

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

если на 1 этапе окажется, что существует

P

 

2

 

 

 

E[l] \O, для которой

l

(P) = ±kP, то мы определим искомое значение

t (mod l), и тогда 2-й этап для данного l будет не нужен.

2 этап алгоритма для фиксированного l. Пусть на 1 этапе оказалось, что не существует точки P E[l] \O, для которой

2l (P) = ±kP = ±pP.

Тогда искомое значение , ≡ t (mod l), для которого на E[l] выполняется равенство

2l + p = l,

будет не равно нулю, =/ 0, как это уже показано ранее.

Далее мы перебором , 1 l −2 1 , ищем то значение, для которого соотношение

( 2l + p) (P) = ± l (P)

122 Гл. 4. Применение кривых для проверки простоты и факторизации

выполняется на E[l] тождественно. Для P = (x, y) E[l] \O левая часть запишется при k ≡ p (mod l), 1 k < l в виде

(xp2 , yp2)

 

x−

 

k (x, y)2

,

4y k (x, y)3

 

 

,

 

 

k−1

(x, y) k+1

(x, y)

k+2 (x, y) k

1 (x, y)2 k−2

(x, y) k+1

(x, y)2

 

причем сложение на кривой проводится по формуле секущей, поскольку сейчас 2l (P) =/ ±pP для всех P E[l] \O. Правая часть, т. е.

± l (P) = ± l ( P), имеет вид

xp 1 (x, y) +1 (x, y) p,(x, y)2

± +2 (x, y) 1 (x, y)2 2 (x, y) +1 (x, y)2 p . 4y (x, y)3

Поскольку ( 2l + p) (P) = ± l (P) тождественно на E[l], нам уже не надо вычислять наибольший общий делитель с fl (x), а надо проверять делимость на fl (x). Для написания соответствующих формул надо рассмотреть четыре случая в зависимости от четности k и .

Пусть, например, k четно и четно. Тогда

(xp2 , yp2)

 

x

 

f

 

fk−1 (x)fk+1 (x)

)

,

fk+2 (x)fk−1 (x)2 − fk−2 (x)fk+1 (x)2

=

 

 

 

 

 

(x)2 (

3

 

 

 

 

4( 3

+ b)f

 

(x)3

·

y

 

2

 

 

 

k

x

 

+ ax + b

 

x

+ ax 2

k

 

 

 

 

p

 

 

f 1 (x)f +1 (x)

p

 

 

 

f +2 (x)f 1 (x) − f 2 (x)f +1

(x)

 

 

p

= x

 

,

±

 

 

 

.

 

f (x)2 (x3 + ax + b)

4(x3 + ax + b)f (x)3 · y

 

 

 

Пользуясь соотношением y2 = x3 + ax + b, нетрудно показать, что левая часть этого равенства имеет вид

 

H2

(x) ,

H4

(x)

· y±

 

,

 

 

 

H1

(x)

 

H3

(x)

 

 

1

 

а правая часть —

H6

(x) , ±H8

(x)

· y±

,

 

 

H5

(x)

 

 

H7

(x)

 

 

1

где H1 (x), . . . , H8 (x) Z/pZ [x]. Тогда для проверки тождества

( 2l + p) (P) = ± l (P)

по первой координате нам нужно проверить, что H1 (x)H6 (x)−H5 (x)H2 (x) делится на fl (x) в Z/pZ [x]. Если это не так, то мы переходим к следующему . Если это так, то мы выбираем знак ± числа , выполняя