В геометрии кривая Гессе — это плоская кривая, похожая на лист Декарта . Она названа в честь немецкого математика Отто Гессе . Эта кривая была предложена для применения в криптографии эллиптических кривых , поскольку арифметика в этом представлении кривой выполняется быстрее и требует меньше памяти, чем арифметика в стандартной форме Вейерштрасса . [1]
Пусть будет полем и рассмотрим эллиптическую кривую в следующем частном случае формы Вейерштрасса над : где кривая имеет дискриминант Тогда точка имеет порядок 3.
Чтобы доказать, что имеет порядок 3, заметим, что касательная к точке — это прямая , пересекающаяся с кратностью 3 в точке .
Наоборот, если задана точка порядка 3 на эллиптической кривой, определенная над полем, можно привести кривую к форме Вейерштрасса с помощью так, чтобы касательная в точке была прямой . Тогда уравнение кривой будет с .
Чтобы получить кривую Гессе, необходимо выполнить следующее преобразование :
Сначала обозначим корень многочлена
Затем
Обратите внимание, что если имеет конечное поле порядка , то каждый элемент имеет уникальный кубический корень ; в общем случае лежит в расширенном поле K .
Теперь, определив следующее значение, получаем другую кривую, C, которая бирационально эквивалентна E:
которая называется кубической формой Гессе (в проективных координатах )
в аффинной плоскости (удовлетворяющей и ).
Более того, (в противном случае кривая была бы сингулярной ).
Начиная с кривой Гессе, бирационально эквивалентное уравнение Вейерштрасса задается при преобразованиях: и где: и
Интересно проанализировать групповой закон эллиптической кривой, определяющий формулы сложения и удвоения (потому что атаки SPA и DPA основаны на времени выполнения этих операций). Более того, в этом случае нам нужно использовать только одну и ту же процедуру для вычисления сложения, удвоения или вычитания точек, чтобы получить эффективные результаты, как сказано выше. В общем случае групповой закон определяется следующим образом: если три точки лежат на одной прямой, то они в сумме дают ноль . Таким образом, по этому свойству групповые законы различны для каждой кривой.
В этом случае правильным способом будет использование формул Коши-Дебове, получая точку на бесконечности θ = (1 : −1 : 0) , то есть нейтральный элемент (обратный θ снова есть θ ). Пусть P = ( x 1 , y 1 ) — точка на кривой. Прямая содержит точку P и точку на бесконечности θ . Следовательно, − P — третья точка пересечения этой прямой с кривой. Пересекая эллиптическую кривую с прямой, получаем следующее условие
Так как не равно нулю (потому что D 3 отличен от 1), то x -координата − P равна y 1 , а y -координата − P равна x 1 , т.е. или в проективных координатах .
В некоторых приложениях эллиптической кривой криптографии и метода факторизации эллиптических кривых ( ECM ) необходимо вычислять скалярные произведения P , скажем, [ n ] P для некоторого целого числа n , и они основаны на методе удвоения и сложения ; для этих операций требуются формулы сложения и удвоения.
Удвоение
Теперь, если — точка на эллиптической кривой, можно определить операцию «удвоения», используя формулы Коши-Дебове:
Добавление
Таким же образом, для двух различных точек, скажем и , можно определить формулу сложения. Пусть R обозначает сумму этих точек, R = P + Q , тогда ее координаты задаются как:
Есть один алгоритм , который можно использовать для сложения двух разных точек или для удвоения; он предоставлен Джоем и Квискватером . Затем, следующий результат дает возможность получить операцию удвоения путем сложения:
Предложение . Пусть P = ( X,Y,Z ) — точка на эллиптической кривой Гессе E ( K ) . Тогда:
2 |
Более того, мы имеем ( Z : X : Y ) ≠ ( Y : Z : X ) .
Наконец, в отличие от других параметризаций , нет вычитания для вычисления отрицания точки. Следовательно, этот алгоритм сложения может также использоваться для вычитания двух точек P = ( X 1 : Y 1 : Z 1 ) и Q = ( X 2 : Y 2 : Z 2 ) на эллиптической кривой Гессе:
3 |
Подводя итог, адаптируя порядок входов в соответствии с уравнением (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
Необходимые затраты составляют 8 умножений и 3 сложения, а дополнительные затраты — 7 умножений и 3 сложения, в зависимости от первой точки.
Учитывая следующие точки на кривой для d = −1 P 1 = (1:0:−1) и P 2 = (0:−1:1) , тогда, если P 3 = P 1 + P 2, мы имеем:
Тогда: P 3 = (−1:−1:0)
Пусть P = ( X 1 : Y 1 : Z 1 ) — точка, тогда формула удвоения имеет вид:
Стоимость этого алгоритма составляет три умножения + три возведения в квадрат + 11 сложений + 3×2.
Если — точка на кривой Гессе с параметром d = −1 , то координаты задаются выражением:
Х = (2 . (−1) − 2) (−1 + 1 + 1) = −4
Y = (−4 − 2 . (−1)) ((−1) + 1 + 1) = −2
Z = (−1 − (−1)) ((−4) + 2, 2) = 0
То есть,
Существует еще одна система координат, с помощью которой можно представить кривую Гессе; эти новые координаты называются расширенными координатами . Они могут ускорить сложение и удвоение. Чтобы получить больше информации об операциях с расширенными координатами, см.:
http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd
и представлены, удовлетворяя следующим уравнениям: