Эллиптические кривые в проективных координатах

Пусть GF(q), Эллиптические кривые в проективных координатах - student2.ru представляет собой конечное поле с характеристикой p. Эллиптическая кривая определяется уравнением

Эллиптические кривые в проективных координатах - student2.ru

Если характеристика p>3, то это уравнение эквивалентно следующему

Эллиптические кривые в проективных координатах - student2.ru (*)

Математическое свойство, которое делает эллиптические кривые полезными для криптографии, состоит в том, что если взять две различных точки на кривой, то соединяющая их хорда пересечет кривую в третьей точке (так как мы имеем кубическую кривую). Зеркально отразив эту точку по оси Х, мы получим еще одну точку на кривой (так как кривая симметрична относительно оси X). Если мы обозначим две первоначальных точки как P и Q, то получим последнюю – отраженную – точку P+Q. Это «сложение» удовлетворяет всем известным алгебраическим правилам для целых чисел.

Нахождение суммы и кратного точек ЭК требует вычисления обратного элемента в конечном поле. Это трудоемкая операция, требующая использование обобщенного алгоритма Евклида. Можно однако избавиться от частого использования этой операции, если рассматривать уравнение эллиптической кривой в трехмерных проективных координатах. Исходные координаты называются афинными. Точке P(x, y) в афинных координатах будет соответствовать класс эквивалентности

(X : Y : Z) = {(kx, ky, k) |k ϵ Fp, k ̸= 0},

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

(X, Y,Z) на этот знаменатель. Уравнение (5.34) перепишется в проективных координатах как

Эллиптические кривые в проективных координатах - student2.ru (5.42)

Бесконечно удаленной точки ∞ будет соответствовать класс (0, 1, 0) проективной плоскости. Если P = (X, Y,Z) ≠ ∞, тогда сопоставляя точке P точку X/Z, Y/Z, получим взаимно-однозначное соответствие между точками между точками кривой в афинных координатах и классами проективной ЭК. Для получения формул сложения и удвоения точек в проективных координатах подставим в формулы (5.34) вместо x1 и y1 выражения X1/Z1и Y1/Z1 соответственно Для формул удвоения получим

Эллиптические кривые в проективных координатах - student2.ru

Общий знаменатель для координат x2 и y2 равен Эллиптические кривые в проективных координатах - student2.ru поэтому для исключения знаменателя домножим координаты x2 и y2 на этот множитель. Получим формулы для вычисления координат удвоенной точки в проективных координатах, не использующие вычисления обратного элемента:

Эллиптические кривые в проективных координатах - student2.ru

Выпишем последовательность операций для вычисления координат удвоенной точки и подсчитаем необходимое количество операций умножения и возведения в квадрат элементов поля. Операцию умножения будем обозначать буквой M (от англ. multiplication), а возведение в квадрат буквой S (от англ. squaring). Умножения на небольшую константу и сложения мы не учитываем, поскольку эти операции имеют линейную сложность относительно длины элементов поля в то время, как операции умножения и возведения в квадрат имеют квадратичную сложность относительно длины элементов поля. Операция возведения в квадрат выполняется быстрее, чем операция умножения, и ее сложность составляет примерно от 0,6 до 0,8 от сложности умножения.

Эллиптические кривые в проективных координатах - student2.ru

Выполним те же расчеты для суммы точек.

Эллиптические кривые в проективных координатах - student2.ru

Умножая координаты x3 и y3 на общий знаменатель Эллиптические кривые в проективных координатах - student2.ru , получим формулы для суммы точек в проективных координатах:

Эллиптические кривые в проективных координатах - student2.ru

Для более эффективного вычисления выполним следующее преобразование. Обозначим T1 = X1Z2 и T2 = X2Z1 . Тогда

Эллиптические кривые в проективных координатах - student2.ru

Тогда,

Эллиптические кривые в проективных координатах - student2.ru

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

Эллиптические кривые в проективных координатах - student2.ru

Рассмотрим также важный для дальнейшего описания случай смешанного сложения, когда координаты первой точки заданы в проективных координатах, а второй – в афинных координатах.

Эллиптические кривые в проективных координатах - student2.ru

11. Вычисление кратного kQ заданной точки Q

Поскольку, арифметика эллиптических кривых не содержит прямых

формул для вычисления кратного kQ для заданной точки Q( Эллиптические кривые в проективных координатах - student2.ru , Эллиптические кривые в проективных координатах - student2.ru ), то эту

операцию выполняют с использованием операций сложения, вычитания и

удвоения точки. Для этого надо представить число k в двоичной системе

исчисления k = Эллиптические кривые в проективных координатах - student2.ru Эллиптические кривые в проективных координатах - student2.ru ... Эллиптические кривые в проективных координатах - student2.ru , Эллиптические кривые в проективных координатах - student2.ru ∈ {0, 1}, потом вычислить все точки 2Q, 4Q,

... , Эллиптические кривые в проективных координатах - student2.ru · Q и подсчитать сумму тех точек Эллиптические кривые в проективных координатах - student2.ru · Q, для которых Эллиптические кривые в проективных координатах - student2.ru = 1.

Пример. Пусть k = 13. В двоичной системе k = Эллиптические кривые в проективных координатах - student2.ru , тогда,

13Q = 8Q + 4Q + Q. Эту же точку можно вычислить как 16Q − 2Q − Q.

Приведем здесь фрагмент процедуры вычисления кратного kP точки

P , предполагая что процедуры удвоения Double(P) и сложения точек Add-

Points(P,Q) уже определены:

long Mult_k(Point P, long k) {

Point B = P ;

while (k) {

if (k%2 == 0)

{ k/ = 2; B = Double(B);}

else

{ k − −; B = AddPoints(B, P);}

}

return B;

}

Наши рекомендации