Эффективные алгоритмы скалярного умножения в группе точек эллиптической кривой

ЧЕБЫШЕВСКИЙ СБОРНИК

Том 14 Выпуск 4

УДК003.26.51

ЭФФЕКТИВНЫЕ АЛГОРИТМЫ СКАЛЯРНОГО УМНОЖЕНИЯ В ГРУППЕ ТОЧЕК ЭЛЛИПТИЧЕСКОЙ КРИВОЙ

А. С. Платонов, А. Н. Гамова

Аннотация

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

Ключевые слова: эллиптические кривые.

EFFICIENT ALGORITHMS FOR SCALAR MULTIPLICATION OVER ELLIPTIC CURVES

A. S. Platonov, A. N. Gamova

Abstract

The paper describes several algorithms for scalar multiplication over elliptic curves and compares the performance of their implementations.

Key words: elliptic curves.

1. Скалярное умножение на кривых Коблица

Рассмотрим модификацию общего алгоритма скалярного умножения для частного случая эллиптических кривых над полем характеристики 2. Аномальными бинарными кривыми называются несуперсингулярные кривые Е0 и Е\, заданные уравнениями:

Еа : У2 + XV = X3 + аХ2 + 1

Чаще всего их называют кривыми Коблица. Рассмотрим несколько основных свойств этих кривых. Порядок кривой Еа(Г2т) всегда будет кратен либо 2, либо 4. При этом наибольший интерес с криптографической точки зрения представляют кривые, порядок которых имеет вид /р , где р - простое число и / равно 2 или 4.

Если предположить, что порядок кривой Ea(F2m) равен fp, то главной подгруппой этой кривой называется подгруппа порядка p (число f называют кофактором). При этом точка P = (x,y) принадлежит главной подгруппе тогда и только тогда, когда tr(x) = 1 (при a =1) или tr(x) = 0 и tr(y) = tr(Xx), где А2 + А = x (при a = 0). Алгоритм, описанный в этой статье, работает только с точками главной подгруппы.

Одно из свойств кривых Ea(F2m) состоит в том, что если (x,y) £ Ea(F2m), то и (x2,y2) £ Ea(F2 ). Также, из определения операции сложения точек эллиптической кривой следует следующее равенство:

(x4,y4) + 2(x,y) = л (x2,y2) для любых (x,y) на Ea(F2m), где

л = (-i)(1-a).

Отображение т : (x,y) ^ (x2,y2) называется эндоморфизмом Фробениуса. Справедливо равенство:

(т2 + 2)P = лтР

Рассмотрим подкольцо кольца эндоморфизмов кривой Ea(F2m), порожденное эндоморфизмом Фробениуса. Обозначим его Z[т]. Представление его элементов в виде многочленов от т с целыми коэффициентами неоднозначно. Например, согласно приведенному выше равенству, эндоморфизм т2 — цт + 2 нулевой. Рассмотрим приведенное выше уравнение в поле комплексных чисел и обозначим также через т его корень

Л + \/—7

2

Сопоставим каждому эндоморфизму из Z[т] комплексное число. Говорят, что кривые Ea обладают комплексным умножением на т. Это позволяет нам заменять операции умножения на числа из кольца Z[т] операцией т, то есть простым возведением в квадрат обеих координат точки. Для того, чтобы использовать этот факт, рассмотрим алгоритм, преобразующий множитель п.

При вычислении скалярного произведения пР, число п можно представить, как элемент кольца Z [т]. Такое представление п в виде суммы степеней т называют т-адической несовместной формой (т-adic non-adjacent form - TNAF). Использование TNAF натуральных чисел позволяет умножать скалярно на эти числа точки кривой Ea, не используя операцию удвоения точек, а используя только сложение и возведение в квадрат.

Algorithm 1: Вычисление TNAF числа п.

Data: натуральные числа ro, ri Result: TNAF

1 Co — ro; ci — ri;

2 5 — <>

3 while c0 = 0 or c1 = 0 do if c0 mod 2 = 1 then

u — 2 — (c0 — 2c1 mod 4) Co —— co — u else

8 end

9 Добавить u в начало S

10

11 end

12 TNAF S

Например, TNAF числа 9 = т5 — т3 + 1. Значит 9Р = (x32,y32) — (x8,y8) + (x,y) и, пренебрегая возведением в квадрат, для вычисления 9P потребуется выполнить 2 операции обращения и 4 операции умножения в поле F2m . При использовании стандартного метода скалярного умножения потребовалось бы

4 операции обращения и 8 операций умножения. Алгоритм 1 описывает способ вычисления TNAF числа n = ro + riT.

Для дальнейшего повышения эффективности вычислений можно произвести модулярную редукцию, которая уменьшит длину TNAF в два раза. Для проведения модулярной редукции требуется использование операций округления и деления в кольце Z [т]. Описание алгоритмов данных операций в этой статье не приводится, ознакомиться с ними можно в [1].

Для кривой Ea(F2m) порядка fp введем элемент 8 = (тm — 1)/(т — 1). Тогда для любых двух элементов р и y из Z[т], для которых справедливо y = р mod 8, выполняется yP = рР. Значит TNAF(y) и TNAF(р) эквивалентны в главной подгруппе. Определим редуцированную TNAF(RTNAF) элемента n:

RTNAF(n) = TNAF(р), где р = n mod 8.

Таким образом, для вычисления RTNAF нужно определить алгоритм редукции числа n по модулю 8. Введем вспомогательные переменные

(—1)*

si f

где Uk - последовательность Люка. Ниже приведен алгоритм вычисления n mod

8.

Algorithm 2: Вычисление n mod 8 Data: натуральное число n, параметры so, si, a, m, p. Result: числа r0, r1 такие, что r0 + r1 т = n mod 8

1 do —— So + ¡¿Si

2 Ao — Son/p

3 A1 — s1n/p

4

5 ro — n — doqo - 2S1Q1

6 r1 — s1qo — soq1

Используя изложенные выше сведения, можно построить эффективный алгоритм скалярного умножения nP в главной подгруппе кривой Ea(F2m).

Algorithm 3: Вычисление nP с использованием RTNAF.

Data: точка эллиптической кривой P, натуральное число n, параметры so, s1, a, m, p.

Result: Q = nP

i (ro, r1) — n mod 8

2 Q — O , Po — P

з while ro = 0 or r1 = 0 do

4 if r0 mod 2 =1 then

5 u — 2 —

ro — ro — u

6 if u = 1 then

7 Q — Q + Po

8 end

9 if u = — 1 then

10 Q — Q — Po

11 end

12 end

13 P0 ^ tP0

14

15 end

2. Проективные координаты

Проведем сравнение производительности алгоритма 3 с методом, использующим смешанные проективные координаты [2]. Ниже изложено краткое описание данного метода.

При сложении двух точек эллиптической кривой над полем характеристики, большей 3 (т.е. для кривой, имеющих вид у2 = х3 + ах + Ь) требуется произ-

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

Рассмотрим эллиптическую кривую над полем К, и положим с и й положительными числами. Определим отношение эквивалентности на ненулевых тройках из К3 следующим образом:

(Х1,У1,Е1) - X У2, ^2), X1 = XX У = ХаУ2, Zl = AZЪA е К,Х = 0.

Класс эквивалентности, содержащий тройку (Х,У^) е К3 \{(0, 0, 0)}, обозначим следующим образом:

(X : У : Z) = (ХСХ, ХаУ, AZ) : Х е К.

Класс эквивалентности (X : У : Z) называется проективной точкой, а (X, У, Z) - ее представителем. Множество всех проективных точек обозначается Р(К). Следует отметить, что если (X/,У/,Z/) е (X : У : Z), то (X' : У' : ^) = (X : У : Z). Таким образом, каждый элемент класса эквивалентности может служить его представителем. В частности, если положить Z = 0, то (X/Zс,У/Zа, 1) является представителем проективной точки (X : У : Z), причем единственным представителем с координатой Z =1. Таким образом, мы получаем однозначное соответствие между набором проективных точек

Р(К) = (X : У : Z) : X,У,Z е К^ = 0

и набором аффинных точек

А(К) = (х,у) : х,у е К.

Набор проективных точек

Р(К)0 = (X : У : Z) : X,У,Z е К^ = 0

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

Проективная форма уравнения эллиптической кривой Е над полем К получается путем подстановки х = X/Zс,у = У/Zл и избавления от знаменателей (то есть путем домножения на Z в некоторой степени). Если некоторый представитель класса (X,У^) е К3 \{(0, 0, 0)} удовлетворяет полученному проективному уравнению, то ему удовлетворяет любой представитель класса (X : У : Z). Таким образом можно сказать, что проективная точка (X : У : Z) лежит на

кривой E. Проективные точки из P(K)0, лежащие на кривой E, будут являться бесконечно удаленными точками. Использование подобных замен позволяет избавиться от операции обращения при сложении двух точек за счет увеличения числа других операций.

Наиболее часто используемые системы координат для кривых над полями больших характеристик (у2 = x3 + ax + b) - стандартная проективная система координат (P), система координат Якоби (J), система координат Чудновского-Якоби (Jc), модифицированная система координат Якоби (Jm).

Некоторые системы координат позволяют быстро производить удвоение точки, другие - сложение двух точек. Однако при реализации алгоритмов на эллиптических кривых вовсе не обязательно использовать только одну систему координат. Если нам требуется складывать различные точки, можно использовать одну систему координат, а если нужно производить удвоения точки -другую. Алгоритм 4 использует эту идею.

Algorithm 4: Вычисление nP с использованием смешанных координат. Data: точка P = (X1 : Y1 : Z1) в системе координат Якоби, лежащая на кривой у2 = x3 + ax + b и целое число n > 0 Result: nP = (Xn : Yn : Zn) в системе координат Якоби

1 P*

2 while n > 1 do

3 if n mod 2 =1 then

4 u — 2 — n mod 4

5 n — n — u

6 if u = 1 then

7 | p * - p * _|_ t

8 end

9 if u = — 1 then

10 p * — p * — t

11 end

12 end

13 n ^ n/2

14 T <- 2T

15 end

3. Сравнение производительности алгоритмов скалярного умножения

В таблице 1 показаны результаты сравнения трех алгоритмов умножения точки на скаляр: стандартный алгоритм для кривой Еа(Е2 т) с использованием

NAF формы, алгоритм 4 с использованием смешанных координат для кривой Ea(Fp) и алгоритм 3, использующий RTNAF для кривой Коблица. Для кривых характеристики 2 использовались кривые Коблица, рекомендованные стандартом NIST. Для алгоритма 4 использовались случайно сгенерированные кривые аналогичной характеристики.

Характеристика поля, биты 163 233 283 409 571

t(Standart NAF), мс 6.96 13.89 20.21 45.66 101.57

t(Algorithm 4), мс 2.08 3.39 3.92 8.32 18.46

t(Algorithm 3), мс 2.06 3.71 6.02 13.14 28.43

Таблица 1: Среднее время проведения операции скалярного умножения

Использование смешанных координат дает больший прирост производительности, особенно при увеличении характеристики P. Однако алгоритм RTNAF может также использовать проективные координаты для сложения двух точек. Для этого нужно модифицировать метод вычисления тР - эта операция должна возводить в квадрат все координаты точки. Идея алгоритма, использующего одновременно RTNAF и проективные координаты, состоит в том, что для сложения двух точек мы используем проективные координаты, а для удвоения точки - операцию т. Однако при реализации этого алгоритма стоит учитывать, что использование проективных координат для сложения двух точек даст прирост производительности лишь в том случае, если в поле F2m операция обращения выполняется хотя бы в 13 раз медленнее (в проективной системе Лопеса-Дахаба), чем операция умножения.

СПИСОК ЦИТИРОВАННОЙ ЛИТЕРАТУРЫ

1. Solinas J. A. Efficient Arithmetic on Koblitz Curves // Journal Designs, Codes and Cryptography. 2000. Vol. 19, № 2-3. P. 195-249.

2. Платонов А. С., Гамова А. Н. Проективные координаты в криптографии эллиптических кривых // Компьютерные науки и информационные технологии: материалы Международной научной конференции. Саратов, 2012. С. 256-258.

REFERENCES

1. Solinas J. A. Efficient Arithmetic on Koblitz Curves // Journal Designs, Codes and Cryptography. 2000. Vol. 19, № 2-3. pp. 195-249.

2. Platonov A. S., Gamova A. N. Projective coordinates for elliptic curve cryptography // Computer Science and Information Technology: Proceedings of the International Scientific Conference. Saratov, 2012. pp. 256-258 (in Russian).

Саратовский государственный университет им. Н. Г. Чернышевского. Поступило 14.09.2013