Гессианская форма эллиптической кривой

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

Определение

Кривая Гессе уравнения х 3 + у 3 + 1 = 0.3 х у {\displaystyle x^{3}+y^{3}+1=0,3xy}

Пусть будет полем и рассмотрим эллиптическую кривую в следующем частном случае формы Вейерштрасса над : где кривая имеет дискриминант Тогда точка имеет порядок 3. К {\displaystyle К} Э {\displaystyle E} К {\displaystyle К} И 2 + а 1 Х И + а 3 И = Х 3 {\displaystyle Y^{2}+a_{1}XY+a_{3}Y=X^{3}} Δ = ( а 3 3 ( а 1 3 27 а 3 ) ) = а 3 3 δ . {\displaystyle \Delta =\left(a_{3}^{3}\left(a_{1}^{3}-27a_{3}\right)\right)=a_{3}^{3}\delta .} P = ( 0 , 0 ) {\displaystyle P=(0,0)}

Чтобы доказать, что имеет порядок 3, заметим, что касательная к точке — это прямая , пересекающаяся с кратностью 3 в точке . P = ( 0 , 0 ) {\displaystyle P=(0,0)} E {\displaystyle E} P {\displaystyle P} Y = 0 {\displaystyle Y=0} E {\displaystyle E} P {\displaystyle P}

Наоборот, если задана точка порядка 3 на эллиптической кривой, определенная над полем, можно привести кривую к форме Вейерштрасса с помощью так, чтобы касательная в точке была прямой . Тогда уравнение кривой будет с . P {\displaystyle P} E {\displaystyle E} K {\displaystyle K} P = ( 0 , 0 ) {\displaystyle P=(0,0)} P {\displaystyle P} Y = 0 {\displaystyle Y=0} Y 2 + a 1 X Y + a 3 Y = X 3 {\displaystyle Y^{2}+a_{1}XY+a_{3}Y=X^{3}} a 1 , a 3 K {\displaystyle a_{1},a_{3}\in K}

Чтобы получить кривую Гессе, необходимо выполнить следующее преобразование :

Сначала обозначим корень многочлена μ {\displaystyle \mu } T 3 δ T 2 + δ 2 3 T + a 3 δ 2 = 0. {\displaystyle T^{3}-\delta T^{2}+{\delta ^{2} \over 3}T+a_{3}\delta ^{2}=0.}

Затем μ = δ a 1 δ 2 / 3 3 . {\displaystyle \mu ={\delta -a_{1}\delta ^{2/3} \over 3}.}

Обратите внимание, что если имеет конечное поле порядка , то каждый элемент имеет уникальный кубический корень ; в общем случае лежит в расширенном поле K . K {\displaystyle K} q 2 ( mod 3 ) {\displaystyle q\equiv 2{\pmod {3}}} K {\displaystyle K} μ {\displaystyle \mu }

Теперь, определив следующее значение, получаем другую кривую, C, которая бирационально эквивалентна E: D = ( μ δ ) μ {\textstyle D={\frac {(\mu -\delta )}{\mu }}}

C : x 3 + y 3 + z 3 = 3 D x y z {\displaystyle C:x^{3}+y^{3}+z^{3}=3Dxyz}

которая называется кубической формой Гессепроективных координатах ) C : x 3 + y 3 + 1 = 3 D x y {\displaystyle C:x^{3}+y^{3}+1=3Dxy}

в аффинной плоскости (удовлетворяющей и ). x = X Z {\textstyle x={\frac {X}{Z}}} y = Y Z {\textstyle y={\frac {Y}{Z}}}

Более того, (в противном случае кривая была бы сингулярной ). D 3 1 {\displaystyle D^{3}\neq 1}

Начиная с кривой Гессе, бирационально эквивалентное уравнение Вейерштрасса задается при преобразованиях: и где: и v 2 = u 3 27 D ( D 3 + 8 ) u + 54 ( D 6 20 D 3 8 ) , {\displaystyle v^{2}=u^{3}-27D\left(D^{3}+8\right)u+54\left(D^{6}-20D^{3}-8\right),} ( x , y ) = ( η ( u + 9 D 2 ) , 1 + η ( 3 D 3 D x 12 ) ) {\displaystyle (x,y)=\left(\eta \left(u+9D^{2}\right),-1+\eta \left(3D^{3}-Dx-12\right)\right)} ( u , v ) = ( 9 D 2 + ε x , 3 ε ( y 1 ) ) {\displaystyle (u,v)=\left(-9D^{2}+\varepsilon x,3\varepsilon \left(y-1\right)\right)} η = 6 ( D 3 1 ) ( v + 9 D 3 3 D u 36 ) ( u + 9 D 2 ) 3 + ( 3 D 3 D u 12 ) 3 {\displaystyle \eta ={\frac {6\left(D^{3}-1\right)\left(v+9D^{3}-3Du-36\right)}{\left(u+9D^{2}\right)^{3}+\left(3D^{3}-Du-12\right)^{3}}}} ε = 12 ( D 3 1 ) D x + y + 1 {\displaystyle \varepsilon ={\frac {12\left(D^{3}-1\right)}{Dx+y+1}}}

Групповое право

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

В этом случае правильным способом будет использование формул Коши-Дебове, получая точку на бесконечности θ = (1 : −1 : 0) , то есть нейтральный элемент (обратный θ снова есть θ ). Пусть P = ( x 1 , y 1 ) — точка на кривой. Прямая содержит точку P и точку на бесконечности θ . Следовательно, P — третья точка пересечения этой прямой с кривой. Пересекая эллиптическую кривую с прямой, получаем следующее условие y = x + ( x 1 + y 1 ) {\displaystyle y=-x+(x_{1}+y_{1})} x 2 ( x 1 + y 1 ) x + x 1 y 1 = θ {\displaystyle x_{2}-(x_{1}+y_{1})\cdot x+x_{1}\cdot y_{1}=\theta }

Так как не равно нулю (потому что D 3 отличен от 1), то x -координата P равна y 1 , а y -координата P равна x 1 , т.е. или в проективных координатах . x 1 + y 1 + D {\displaystyle x_{1}+y_{1}+D} P = ( y 1 , x 1 ) {\displaystyle -P=(y_{1},x_{1})} P = ( Y 1 : X 1 : Z 1 ) {\displaystyle -P=(Y_{1}:X_{1}:Z_{1})}

В некоторых приложениях эллиптической кривой криптографии и метода факторизации эллиптических кривых ( ECM ) необходимо вычислять скалярные произведения P , скажем, [ n ] P для некоторого целого числа n , и они основаны на методе удвоения и сложения ; для этих операций требуются формулы сложения и удвоения.

Удвоение

Теперь, если — точка на эллиптической кривой, можно определить операцию «удвоения», используя формулы Коши-Дебове: P = ( X 1 : Y 1 : Z 1 ) {\displaystyle P=(X_{1}:Y_{1}:Z_{1})}

[ 2 ] P = ( Y 1 ( X 1 3 Z 1 3 ) : X 1 ( Z 1 3 Y 1 3 ) : Z 1 ( Y 1 3 X 1 3 ) ) {\displaystyle [2]P=\left(Y_{1}\cdot \left(X_{1}^{3}-Z_{1}^{3}\right):X_{1}\cdot \left(Z_{1}^{3}-Y_{1}^{3}\right):Z_{1}\cdot \left(Y_{1}^{3}-X_{1}^{3}\right)\right)}

Добавление

Таким же образом, для двух различных точек, скажем и , можно определить формулу сложения. Пусть R обозначает сумму этих точек, R = P + Q , тогда ее координаты задаются как: P = ( X 1 : Y 1 : Z 1 ) {\displaystyle P=(X_{1}:Y_{1}:Z_{1})} Q = ( X 2 : Y 2 : Z 2 ) {\displaystyle Q=(X_{2}:Y_{2}:Z_{2})}

R = ( Y 1 2 X 2 Z 2 Y 2 2 X 1 Z 1 : X 1 2 Y 2 Z 2 X 2 2 Y 1 Z 1 : Z 1 2 X 2 Y 2 Z 2 2 X 1 Y 1 ) {\displaystyle R=\left(Y_{1}^{2}\cdot X_{2}\cdot Z_{2}-Y_{2}^{2}\cdot X_{1}\cdot Z_{1}:X_{1}^{2}\cdot Y_{2}\cdot Z_{2}-X_{2}^{2}\cdot Y_{1}\cdot Z_{1}:Z_{1}^{2}\cdot X_{2}\cdot Y_{2}-Z_{2}^{2}\cdot X_{1}\cdot Y_{1}\right)}

Алгоритмы и примеры

Есть один алгоритм , который можно использовать для сложения двух разных точек или для удвоения; он предоставлен Джоем и Квискватером . Затем, следующий результат дает возможность получить операцию удвоения путем сложения:

Предложение . Пусть P = ( X,Y,Z ) — точка на эллиптической кривой Гессе E ( K ) . Тогда:

Более того, мы имеем ( Z : X : Y ) ≠ ( Y : Z : X ) .

Наконец, в отличие от других параметризаций , нет вычитания для вычисления отрицания точки. Следовательно, этот алгоритм сложения может также использоваться для вычитания двух точек P = ( X 1 : Y 1 : Z 1 ) и Q = ( X 2 : Y 2 : Z 2 ) на эллиптической кривой Гессе:

Подводя итог, адаптируя порядок входов в соответствии с уравнением (2) или (3), представленный выше алгоритм сложения может быть использован одинаково для: сложения 2 (дифф.) точек, удвоения точки и вычитания 2 точек всего с 12 умножениями и 7 вспомогательными переменными, включая 3 результирующие переменные. До изобретения кривых Эдвардса эти результаты представляли собой самый быстрый известный метод реализации скалярного умножения эллиптической кривой для сопротивления атакам по сторонним каналам .

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

Добавление

Пусть P 1 = ( X 1 : Y 1 : Z 1 ) и P 2 = ( X 2 : Y 2 : Z 2 ) — две точки, отличные от θ . Предполагая, что Z 1 = Z 2 = 1 , тогда алгоритм задается следующим образом:

А = Х 1 У 2

В = Y1 X2

X 3 = B Y 1 - Y 2 A
Y 3 = X 1 A - B X 2
Z3 = Y2X2 - X1Y1

Необходимые затраты составляют 8 умножений и 3 сложения, а дополнительные затраты — 7 умножений и 3 сложения, в зависимости от первой точки.

Пример

Учитывая следующие точки на кривой для d = −1 P 1 = (1:0:−1) и P 2 = (0:−1:1) , тогда, если P 3 = P 1 + P 2, мы имеем:

Х 3 = 0 − 1 = −1
Y3 = −1−0 = −1
Z3 = 0 − 0 = 0

Тогда: P 3 = (−1:−1:0)

Удвоение

Пусть P = ( X 1  : Y 1  : Z 1 ) — точка, тогда формула удвоения имеет вид:

  • А = Х 1 2
  • В = Y 1 2
  • Д = А + Б
  • Г = ( Х 1 + Y 1 ) 2Д
  • X 3 = (2 Y 1G ) × ( X 1 + A + 1)
  • Y 3 = ( Г − 2 X 1 ) × ( Y 1 + В + 1)
  • Z 3 = ( X 1Y 1 ) × ( Г + 2 Д )

Стоимость этого алгоритма составляет три умножения + три возведения в квадрат + 11 сложений + 3×2.

Пример

Если — точка на кривой Гессе с параметром d = −1 , то координаты задаются выражением: P = ( 1 : 1 : 1 ) {\displaystyle P=(-1:-1:1)} 2 P = ( X : Y : Z ) {\displaystyle 2P=(X:Y:Z)}

Х = (2 . (−1) − 2) (−1 + 1 + 1) = −4

Y = (−4 − 2 . (−1)) ((−1) + 1 + 1) = −2

Z = (−1 − (−1)) ((−4) + 2, 2) = 0

То есть, 2 P = ( 4 : 2 : 0 ) {\displaystyle 2P=(-4:-2:0)}

Расширенные координаты

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

http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd

x {\displaystyle x} и представлены, удовлетворяя следующим уравнениям: y {\displaystyle y} X , Y , Z , X X , Y Y , Z Z , X Y , Y Z , X Z {\displaystyle X,Y,Z,XX,YY,ZZ,XY,YZ,XZ}

  • x = X / Z {\displaystyle x=X/Z}
  • y = Y / Z {\displaystyle y=Y/Z}
  • X X = X X {\displaystyle XX=X\cdot X}
  • Y Y = Y Y {\displaystyle YY=Y\cdot Y}
  • Z Z = Z Z {\displaystyle ZZ=Z\cdot Z}
  • X Y = 2 X Y {\displaystyle XY=2\cdot X\cdot Y}
  • Y Z = 2 Y Z {\displaystyle YZ=2\cdot Y\cdot Z}
  • X Z = 2 X Z {\displaystyle XZ=2\cdot X\cdot Z}

Смотрите также

  • http://hyperelliptic.org/EFD/g1p/index.html

Примечания

  1. ^ Формулы Коши-Десбова: эллиптические кривые Гессе и атаки по боковым каналам , Марк Джой и Жан-Жак Кисквартер

Ссылки

  • Отто Гессе (1844), «Über die Elimination der Variabeln aus drei алгебраишен Gleichungen vom zweiten Grade mit zwei Variabeln», Journal für die reine und angewandte Mathematik , 10, стр. 68–96
  • Марк Джой, Жан-Жак Кискатер (2001). «Эллиптические кривые Гессе и атаки по сторонним каналам». Криптографическое оборудование и встроенные системы — CHES 2001. Конспект лекций по информатике. Том 2162. Springer-Verlag Berlin Heidelberg 2001. С.  402– 410. doi :10.1007/3-540-44709-1_33. ISBN 978-3-540-42521-2.
  • NP Smart (2001). "Гессианская форма эллиптической кривой". Криптографическое оборудование и встроенные системы — CHES 2001. Конспект лекций по информатике. Том 2162. Springer-Verlag Berlin Heidelberg 2001. С.  118– 125. doi :10.1007/3-540-44709-1_11. ISBN 978-3-540-42521-2. S2CID  30487134.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Hessian_form_of_an_elliptic_curve&oldid=1179324295"