En geometría , la curva de Hesse es una curva plana similar al folio de Descartes . Lleva el nombre del matemático alemán Otto Hesse . Esta curva se sugirió para su aplicación en criptografía de curva elíptica , porque la aritmética en esta representación de la curva es más rápida y necesita menos memoria que la aritmética en la forma estándar de Weierstrass . [1]
Definición
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/5/53/Hessian_curve.svg/300px-Hessian_curve.svg.png)
Dejar ser un campo y considerar una curva elíptica en el siguiente caso especial de forma de Weierstrass sobre:
donde la curva tiene discriminante Entonces el punto tiene orden 3.
Para probar eso tiene orden 3, tenga en cuenta que la tangente a a es la linea que se cruza con multiplicidad 3 en .
Por el contrario, dado un punto de orden 3 en una curva elíptica ambos definidos sobre un campo se puede poner la curva en forma de Weierstrass con de modo que la tangente en es la linea . Entonces la ecuación de la curva es con .
Ahora, para obtener la curva de Hesse, es necesario hacer la siguiente transformación :
Primero deja denotar una raíz del polinomio
Luego
Tenga en cuenta que si tiene un campo finito de orden , entonces cada elemento de tiene una raíz cúbica única ; en general,se encuentra en un campo de extensión de K .
Ahora, definiendo el siguiente valor se obtiene otra curva, C, que es biracionalmente equivalente a E:
- :
que se llama forma hessiana cúbica (en coordenadas proyectivas )
- :
en el plano afín (satisfaciendo y ).
Además, (de lo contrario, la curva sería singular ).
A partir de la curva de Hesse, una ecuación de Weierstrass biracionalmente equivalente viene dada por
bajo las transformaciones:
y
dónde:
y
Derecho de grupo
Es interesante analizar la ley de grupo de la curva elíptica, definiendo las fórmulas de suma y duplicación (porque los ataques SPA y DPA se basan en el tiempo de ejecución de estas operaciones). Además, en este caso, solo necesitamos usar el mismo procedimiento para calcular la suma, duplicación o resta de puntos para obtener resultados eficientes, como se dijo anteriormente. En general, la ley de grupo se define de la siguiente manera: si tres puntos se encuentran en la misma línea, entonces suman cero . Entonces, según esta propiedad, las leyes de grupo son diferentes para cada curva.
En este caso, la forma correcta es utilizar las fórmulas de Cauchy-Desboves, obteniendo el punto en el infinito θ = (1: −1: 0) , es decir, el elemento neutro (la inversa de θ es nuevamente θ ). Sea P = ( x 1 , y 1 ) un punto en la curva. La líneacontiene el punto P y el punto en el infinito θ . Por lo tanto, - P es el tercer punto de la intersección de esta línea con la curva. Al intersectar la curva elíptica con la línea, se obtiene la siguiente condición
Desde no es cero (porque D 3 es distinto de 1), la coordenada x de - P es y 1 y la coordenada y de - P es x 1 , es decir, o en coordenadas proyectivas .
En algunas aplicaciones de criptografía de curva elíptica y el método de factorización de curva elíptica ( ECM ) es necesario calcular las multiplicaciones escalares de P , digamos [ n ] P para algún número entero n , y se basan en el método de doble y suma ; estas operaciones necesitan las fórmulas de suma y duplicación.
Duplicación
Ahora si es un punto en la curva elíptica, es posible definir una operación de "duplicación" usando las fórmulas de Cauchy-Desboves:
Adición
De la misma manera, para dos puntos diferentes, digamos y , es posible definir la fórmula de adición. Sea R la suma de estos puntos, R = P + Q , entonces sus coordenadas están dadas por:
Algoritmos y ejemplos
Hay un algoritmo que se puede usar para agregar dos puntos diferentes o para duplicar; lo dan Joye y Quisquater . Entonces, el siguiente resultado da la posibilidad de obtener la operación de duplicación por la suma:
Proposición . Sea P = ( X, Y, Z ) un punto en una curva elíptica de Hesse E ( K ) . Luego:
(2).
Además, tenemos ( Z : X : Y ) ≠ ( Y : Z : X ) .
Finalmente, contrariamente a otras parametrizaciones , no hay resta para calcular la negación de un punto. Por lo tanto, este algoritmo de suma también se puede utilizar para restar dos puntos P = ( X 1 : Y 1 : Z 1 ) y Q = ( X 2 : Y 2 : Z 2 ) en una curva elíptica de Hesse:
(3)
En resumen, adaptando el orden de las entradas de acuerdo con la ecuación (2) o (3), el algoritmo de suma presentado anteriormente se puede usar indistintamente para: Sumar 2 (diferencia) puntos, Doblar un punto y Restar 2 puntos con solo 12 multiplicaciones y 7 variables auxiliares, incluidas las 3 variables de resultado. Antes de la invención de las curvas de Edwards , estos resultados representan el método más rápido conocido para implementar la multiplicación escalar de la curva elíptica hacia la resistencia contra ataques de canal lateral .
Para algunos algoritmos, la protección contra ataques de canal lateral no es necesaria. Entonces, para estas duplicaciones puede ser más rápido. Dado que hay muchos algoritmos, aquí solo se proporciona el mejor para las fórmulas de suma y duplicación, con un ejemplo para cada uno:
Adición
Sea P 1 = ( X 1 : Y 1 : Z 1 ) y P 2 = ( X 2 : Y 2 : Z 2 ) dos puntos distintos de θ . Suponiendo que Z 1 = Z 2 = 1, entonces el algoritmo viene dado por:
A = X 1 Y 2
B = Y 1 X 2
- X 3 = B Y 1 - Y 2 A
- Y 3 = X 1 A - B X 2
- Z 3 = Y 2 X 2 - X 1 Y 1
El costo necesario es 8 multiplicaciones y 3 adiciones costo de readición de 7 multiplicaciones y 3 adiciones, dependiendo del primer punto.
- Ejemplo
Dados los siguientes puntos en la curva para d = −1 P 1 = (1: 0: −1) y P 2 = (0: −1: 1) , entonces si P 3 = P 1 + P 2 tenemos:
- X 3 = 0-1 = −1
- Y 3 = −1−0 = −1
- Z 3 = 0 - 0 = 0
Entonces: P 3 = (−1: −1: 0)
Duplicación
Sea P = ( X 1 : Y 1 : Z 1 ) un punto, entonces la fórmula de duplicación viene dada por:
- A = X 1 2
- B = Y 1 2
- D = A + B
- G = ( X 1 + Y 1 ) 2 - D
- X 3 = (2 Y 1 - G ) × ( X 1 + A + 1)
- Y 3 = ( G - 2 X 1 ) × ( Y 1 + B + 1)
- Z 3 = ( X 1 - Y 1 ) × ( G + 2 D )
El costo de este algoritmo es tres multiplicaciones + tres cuadraturas + 11 adiciones + 3 × 2.
- Ejemplo
Si es un punto sobre la curva de Hesse con parámetro d = −1 , entonces las coordenadas de están dados por:
X = (2. (−1) - 2) (−1 + 1 + 1) = −4
Y = (−4-2. (−1)) ((−1) + 1 + 1) = −2
Z = (−1 - (−1)) ((−4) + 2. 2) = 0
Es decir,
Coordenadas extendidas
Existe otro sistema de coordenadas con el que se puede representar una curva de Hesse; estas nuevas coordenadas se denominan coordenadas extendidas . Pueden acelerar la adición y la duplicación. Para obtener más información sobre las operaciones con las coordenadas extendidas, consulte:
http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd
y están representados por satisfaciendo las siguientes ecuaciones:
Ver también
Para obtener más información sobre el tiempo de ejecución requerido en un caso específico, consulte Tabla de costos de operaciones en curvas elípticas.
enlaces externos
Notas
- ^ Fórmulas de Cauchy-Desbove: curvas elípticas hessianas y ataques de canal lateral , Marc Joye y Jean-Jacques Quisquarter
Referencias
- Otto Hesse (1844), "Über die Elimination der Variabeln aus drei algebraischen Gleichungen vom zweiten Grade mit zwei Variabeln", Journal für die reine und angewandte Mathematik , 10, págs. 68–96
- Marc Joye, Jean-Jacques Quisquater (2001). "Curvas elípticas de Hesse y ataques de canal lateral". Hardware criptográfico y sistemas integrados - CHES 2001 . Apuntes de conferencias en Ciencias de la Computación. 2162 . Springer-Verlag Berlin Heidelberg 2001. págs. 402–410. doi : 10.1007 / 3-540-44709-1_33 . ISBN 978-3-540-42521-2.
- NP Smart (2001). "La forma de Hesse de una curva elíptica". Hardware criptográfico y sistemas integrados - CHES 2001 . Apuntes de conferencias en Ciencias de la Computación. 2162 . Springer-Verlag Berlin Heidelberg 2001. págs. 118-125. doi : 10.1007 / 3-540-44709-1_11 . ISBN 978-3-540-42521-2.