Кривая Доша–Икарта–Кохеля, ориентированная на удвоение

Тип эллиптической кривой
Кривая Доша-Икарта-Кохеля, ориентированная на удвоение, уравнения у 2 = х 3 х 2 16 х {\displaystyle y^{2}=x^{3}-x^{2}-16x}

В математике кривая Доша–Икарта–Кохеля, ориентированная на удвоение, представляет собой форму, в которой может быть записана эллиптическая кривая . Это особый случай формы Вейерштрасса , и она также важна в криптографии эллиптических кривых , поскольку удвоение значительно ускоряет (вычисление как композиция 2- изогении и ее дуальной ). Она была введена Кристофом Дошем, Томасом Икартом и Дэвидом Р. Кохелем в работе «Эффективное скалярное умножение с помощью разложений изогении». [1]

Определение

Пусть будет полем и пусть . Тогда кривая Доша–Икарта–Кохеля, ориентированная на удвоение, с параметром a в аффинных координатах представляется следующим образом: К {\displaystyle К} а К {\displaystyle a\in K}

у 2 = х 3 + а х 2 + 16 а х . {\displaystyle y^{2}=x^{3}+ax^{2}+16ax.}

Эквивалентно, в проективных координатах :

З И 2 = Х 3 + а З Х 2 + 16 а Х З 2 , {\displaystyle ZY^{2}=X^{3}+aZX^{2}+16aXZ^{2},}

с и . х = Х З {\displaystyle x={\frac {X}{Z}}} у = И З {\displaystyle y={\frac {Y}{Z}}}

Поскольку эта кривая является частным случаем формы Вейерштрасса , преобразования к наиболее распространенной форме эллиптической кривой (форме Вейерштрасса) не требуются.

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

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

В этом случае, поскольку эти кривые являются частными случаями кривых Вейерштрасса, сложение — это просто стандартное сложение на кривых Вейерштрасса. С другой стороны, чтобы удвоить точку, можно использовать стандартную формулу удвоения, но это будет не так быстро. В этом случае нейтральным элементом является θ = (0 : 1 : 0) (в проективных координатах), для которого θ = − θ . Тогда, если P = ( x , y ) — нетривиальный элемент ( Pθ ), то обратный элемент этой точки (по сложению) — P = ( x , − y ) .

Добавление

В этом случае для определения формулы сложения будут использоваться аффинные координаты :

( х 1 , у 1 ) + ( х 2 , у 2 ) = ( х 3 , у 3 ) , {\displaystyle (x_{1},y_{1})+(x_{2},y_{2})=(x_{3},y_{3}),}

где

х 3 = х 1 3 + ( х 2 а ) х 1 2 + ( х 2 2 + 2 а х 2 ) х 1 + у 1 2 2 у 2 у 1 х 2 3 а х 2 2 + у 2 2 х 1 2 2 х 2 х 1 + х 2 2 {\displaystyle x_{3}={\frac {-x_{1}^{3}+(x_{2}-a)x_{1}^{2}+(x_{2}^{2}+2ax_{2})x_{1}+y_{1}^{2}-2y_{2}y_{1}-x_{2}^{3}-ax_{2}^{2}+y_{2}^{2}}{x_{1}^{2}-2x_{2}x_{1}+x_{2}^{2}}}}

и у 3 = ( у 1 + 2 у 2 ) х 1 3 + ( а у 1 + ( 3 у 2 х 2 + а у 2 ) ) х 1 2 + ( ( 3 х 2 2 + 2 а х 2 ) у 1 2 а у 2 х 2 ) х 1 + ( у 1 3 3 у 2 у 1 2 + ( 2 х 2 3 а х 2 2 + 3 у 2 2 ) у 1 + ( у 2 х 2 3 + а у 2 х 2 2 у 2 3 ) ) х 1 3 + 3 х 2 х 1 2 3 х 2 2 х 1 + х 2 3 . {\displaystyle y_{3}={\frac {(-y_{1}+2y_{2})x_{1}^{3}+(-ay_{1}+(-3y_{2}x_{2}+ay_{2}))x_{1}^{2}+((3 x_{2}^{2}+2ax_{2})y_{1}-2ay_{2}x_{2})x_{1}+(y_{1}^{3}-3y_{2}y_{1}^{2}+( -2x_{2}^{3}-ax_{2}^{2}+3y_{2}^{2})y_{1}+(y_{2}x_{2}^{3}+ay_{2}x_{2}^{2 }-y_{2}^{3}))}{-x_{1}^{3}+3x_{2}x_{1}^{2}-3x_{2}^{2}x_{1}+x_{2}^{3}}}.}

Удвоение

2 ( х 1 , у 1 ) = ( х 3 , у 3 ) {\displaystyle 2(x_{1},y_{1})=(x_{3},y_{3})} , где

х 3 = 1 / ( 4 у 1 2 х 1 4 8 а / у 1 2 х 1 2 + 64 а 2 / у 1 2 {\displaystyle x_{3}=1/(4y_{1}^{2}x_{1}^{4}-8a/y_{1}^{2}x_{1}^{2}+64a^{2}/y_{1}^{2}}

у 3 = 1 8 у 1 3 х 1 6 + а 2 + 40 а 4 у 1 3 х 1 4 + а у 1 2 + 16 а 3 640 а 2 4 у 1 3 х 1 2 + 4 а 2 у 1 2 512 а 3 у 1 3 {\displaystyle y_{3}={\frac {1}{8y_{1}^{3}}}x_{1}^{6}+{\frac {-a^{2}+40a}{4y_{1}^{3}}}x_{1}^{4}+{\frac {ay_{1}^{2}+16a^{3}-640a^{2}}{4y_{1}^{3}}}x_{1}^{2}+{\frac {-4a^{2}y_{1}^{2}-512a^{3}}{y_{1}^{3}}}}

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

Добавление

Самым быстрым сложением является следующее (по сравнению с результатами, приведенными в: http://hyperelliptic.org/EFD/g1p/index.html), и его стоимость составляет 4 умножения, 4 возведения в квадрат и 10 сложений.

А = Y2 - Y1

АА = А 2

В = Х2 - Х1

СС = В 2

Ф = Х 1 СС

Z3 = 2CC

Д = Х2З3

ZZ 3 = Z 3 2

X 3 = 2(AA-F)-aZ 3 -D

Y 3 = ((A+B) 2 -AA-CC)(DX 3 )-Y 2 ZZ 3

Пример

Пусть . Пусть P=(X 1 ,Y 1 )=(2,1), Q=(X 2 ,Y 2 )=(1,-1) и a=1, тогда К = В {\displaystyle K=\mathbb {Q} }

А=2

АА=4

В=1

СС=1

Ф=2

Z3 = 4

Д=4

ЗЗ 3 =16

Х 3 =-4

Y3 = 336

Таким образом, P+Q=(-4:336:4)

Удвоение

Следующий алгоритм является самым быстрым (для сравнения перейдите по следующей ссылке: http://hyperelliptic.org/EFD/g1p/index.html), а его стоимость составляет 1 умножение, 5 возведений в квадрат и 7 сложений.

А = Х 1 2

В = А-а16

С = а 2 А

ГГ = Г 1 2

ГГ 2 = 2ГГ

Z 3 = 2YY 2

Х 3 = В 2

V = (Y 1 +B) 2 - YY - X 3

Y 3 = V(X 3 +64C+a(YY 2 -C))

ZZ 3 = Z 3 2

Пример

Пусть и a = 1. Пусть P = (-1,2), тогда Q = [2] P = (x3,y3) определяется как: К = В {\displaystyle K=\mathbb {Q} }

А=1

В=-15

С=2

ГГ=4

ГГ 2 =8

Z3 = 16

Х 3 =225

В=27

Y3 = 9693

ZZ3 = 256

Таким образом, Q=(225:9693:16).

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

Вычисления сложения и удвоения должны выполняться максимально быстро, поэтому удобнее использовать следующее представление координат:

х , у {\displaystyle x,y} представлены, удовлетворяя следующим уравнениям: Х , И , З , З З {\displaystyle X,Y,Z,ZZ}

х = Х З {\displaystyle x={\frac {X}{Z}}}

у = И З З {\displaystyle y={\frac {Y}{ZZ}}}

З З = З 2 {\displaystyle ZZ=Z^{2}}

Тогда кривая Доша–Икарта–Коэля, ориентированная на удвоение, задается следующим уравнением:

И 2 = З Х 3 + а З 2 Х 2 + 16 а З 3 Х {\displaystyle Y^{2}=ZX^{3}+aZ^{2}X^{2}+16aZ^{3}X} .

В этом случае — общая точка с обратным . Более того, точки над кривой удовлетворяют: для всех ненулевых. П = ( Х : И : З : З З ) {\displaystyle P=(X:Y:Z:ZZ)} П = ( Х : И : З : З З ) {\displaystyle -P=(X:-Y:Z:ZZ)} ( Х : И : З : З 2 ) = ( λ Х : λ 2 И : λ З : λ 2 З 2 ) {\displaystyle (X:Y:Z:Z^{2})=(\lambda X:\lambda ^{2}Y:\lambda Z:\lambda ^{2}Z^{2})} λ {\displaystyle \лямбда}

Более быстрые формулы удвоения для этих кривых и формулы смешанного сложения были введены Доче, Икартом и Коэлем; но в настоящее время эти формулы улучшены Дэниелом Дж. Бернстайном и Таней Ланге (см. ссылку EFD ниже).

Для получения дополнительной информации о времени выполнения, необходимом в конкретном случае, см. Таблицу стоимости операций на эллиптических кривых.

Примечания

  1. ^ Кристоф Дош, Томас Икарт и Дэвид Р. Кохель, Эффективное скалярное умножение с помощью изогенических разложений

Ссылки

  • Christophe Doche, Thomas Icart и David R. Kohel (2006). "Эффективное скалярное умножение с помощью изогенических разложений". Public Key Cryptography - PKC 2006. Lecture Notes in Computer Science. Vol. 3958. Springer Berlin / Heidelberg. pp.  191– 206. doi :10.1007/11745853_13. ISBN 978-3-540-33851-2.
  • Daniel J. Bernstein и Tanja Lange (2008). Анализ и оптимизация эллиптического скалярного умножения. Американское математическое общество. ISBN 9780821857892.
  • http://hyperelliptic.org/EFD/g1p/index.html
  • http://www.hyperelliptic.org/EFD/g1p/auto-2dik.html
Взято с "https://en.wikipedia.org/w/index.php?title=Doubling-oriented_Doche–Icart–Kohel_curve&oldid=1260326562"