В математике кривая Доша–Икарта–Кохеля, ориентированная на удвоение, представляет собой форму, в которой может быть записана эллиптическая кривая . Это особый случай формы Вейерштрасса , и она также важна в криптографии эллиптических кривых , поскольку удвоение значительно ускоряет (вычисление как композиция 2- изогении и ее дуальной ). Она была введена Кристофом Дошем, Томасом Икартом и Дэвидом Р. Кохелем в работе «Эффективное скалярное умножение с помощью разложений изогении». [1]
Пусть будет полем и пусть . Тогда кривая Доша–Икарта–Кохеля, ориентированная на удвоение, с параметром a в аффинных координатах представляется следующим образом:
Эквивалентно, в проективных координатах :
с и .
Поскольку эта кривая является частным случаем формы Вейерштрасса , преобразования к наиболее распространенной форме эллиптической кривой (форме Вейерштрасса) не требуются.
Интересно проанализировать групповой закон в криптографии эллиптических кривых , определяя формулы сложения и удвоения, поскольку эти формулы необходимы для вычисления кратных точек [ n ] P (см. Возведение в степень путем возведения в квадрат ). В общем случае групповой закон определяется следующим образом: если три точки лежат на одной прямой, то они в сумме дают ноль. Таким образом, по этому свойству групповые законы различны для каждой формы кривой.
В этом случае, поскольку эти кривые являются частными случаями кривых Вейерштрасса, сложение — это просто стандартное сложение на кривых Вейерштрасса. С другой стороны, чтобы удвоить точку, можно использовать стандартную формулу удвоения, но это будет не так быстро. В этом случае нейтральным элементом является θ = (0 : 1 : 0) (в проективных координатах), для которого θ = − θ . Тогда, если P = ( x , y ) — нетривиальный элемент ( P ≠ θ ), то обратный элемент этой точки (по сложению) — − P = ( x , − y ) .
В этом случае для определения формулы сложения будут использоваться аффинные координаты :
где
и
, где
Самым быстрым сложением является следующее (по сравнению с результатами, приведенными в: 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, тогда
А=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) определяется как:
А=1
В=-15
С=2
ГГ=4
ГГ 2 =8
Z3 = 16
Х 3 =225
В=27
Y3 = 9693
ZZ3 = 256
Таким образом, Q=(225:9693:16).
Вычисления сложения и удвоения должны выполняться максимально быстро, поэтому удобнее использовать следующее представление координат:
представлены, удовлетворяя следующим уравнениям:
Тогда кривая Доша–Икарта–Коэля, ориентированная на удвоение, задается следующим уравнением:
.
В этом случае — общая точка с обратным . Более того, точки над кривой удовлетворяют: для всех ненулевых.
Более быстрые формулы удвоения для этих кривых и формулы смешанного сложения были введены Доче, Икартом и Коэлем; но в настоящее время эти формулы улучшены Дэниелом Дж. Бернстайном и Таней Ланге (см. ссылку EFD ниже).
Для получения дополнительной информации о времени выполнения, необходимом в конкретном случае, см. Таблицу стоимости операций на эллиптических кривых.