Articulo de referencia

Criptografía de curva hiperelíptica

La criptografía de curva hiperelíptica es similar a la criptografía de curva elíptica (ECC) en la medida en que el jacobiano de una curva hiperelíptica es un grupo abeliano en e...

La criptografía de curva hiperelíptica es similar a la criptografía de curva elíptica (ECC) en la medida en que el jacobiano de una curva hiperelíptica es un grupo abeliano en el que realizar operaciones aritméticas, de la misma manera que utilizamos el grupo de puntos en una curva elíptica en ECC.

Definición

Una curva hiperelíptica (imaginaria) de género sobre un cuerpo se da por la ecuación donde es un polinomio de grado no mayor que y es un polinomio mónico de grado . De esta definición se deduce que las curvas elípticas son curvas hiperelípticas de género 1. En la criptografía de curvas hiperelípticas, a menudo se trata de un cuerpo finito . El jacobiano de , denotado , es un grupo cociente , por lo que los elementos del jacobiano no son puntos, son clases de equivalencia de divisores de grado 0 bajo la relación de equivalencia lineal . Esto concuerda con el caso de la curva elíptica, porque se puede demostrar que el jacobiano de una curva elíptica es isomorfo con el grupo de puntos de la curva elíptica. [1] El uso de curvas hiperelípticas en criptografía surgió en 1989 de la mano de Neal Koblitz . Aunque se introdujeron solo 3 años después de ECC, no muchos criptosistemas implementan curvas hiperelípticas porque la implementación de la aritmética no es tan eficiente como con criptosistemas basados ​​en curvas elípticas o factorización ( RSA ). La eficiencia de la implementación de la aritmética depende del campo finito subyacente ; en la práctica, resulta que los campos finitos de característica 2 son una buena opción para implementaciones de hardware, mientras que el software suele ser más rápido en la característica impar. [2] g {\displaystyle g} K {\displaystyle K} C : y 2 + h ( x ) y = f ( x ) K [ x , y ] {\displaystyle C:y^{2}+h(x)y=f(x)\in K[x,y]} h ( x ) K [ x ] {\displaystyle h(x)\in K[x]} g {\displaystyle g} f ( x ) K [ x ] {\displaystyle f(x)\in K[x]} 2 g + 1 {\displaystyle 2g+1} K {\displaystyle K} C {\displaystyle C} J ( C ) {\displaystyle J(C)} K {\displaystyle K}

El jacobiano en una curva hiperelíptica es un grupo abeliano y como tal puede servir como grupo para el problema del logaritmo discreto (DLP). En resumen, supongamos que tenemos un grupo abeliano y un elemento de , el DLP en implica encontrar el entero dados dos elementos de , a saber y . El primer tipo de grupo utilizado fue el grupo multiplicativo de un cuerpo finito, más tarde también se utilizaron jacobianos de curvas (hiper)elípticas. Si la curva hiperelíptica se elige con cuidado, entonces el método rho de Pollard es la forma más eficiente de resolver el DLP. Esto significa que, si el jacobiano tiene elementos, el tiempo de ejecución es exponencial en . Esto hace posible utilizar jacobianos de un orden bastante pequeño , lo que hace que el sistema sea más eficiente. Pero si la curva hiperelíptica se elige mal, el DLP será bastante fácil de resolver. En este caso, existen ataques conocidos que son más eficientes que los solucionadores de logaritmos discretos genéricos [3] o incluso subexponenciales. [4] Por lo tanto, se deben evitar estas curvas hiperelípticas. Teniendo en cuenta los diversos ataques a DLP, es posible enumerar las características de las curvas hiperelípticas que se deben evitar. G {\displaystyle G} g {\displaystyle g} G {\displaystyle G} G {\displaystyle G} a {\displaystyle a} G {\displaystyle G} g {\displaystyle g} g a {\displaystyle g^{a}} n {\displaystyle n} log ( n ) {\displaystyle \log(n)}

Ataques contra el DLP

Todos los ataques genéricos al problema del logaritmo discreto en grupos abelianos finitos, como el algoritmo de Pohlig-Hellman y el método rho de Pollard, se pueden utilizar para atacar el DLP en el jacobiano de curvas hiperelípticas. El ataque de Pohlig-Hellman reduce la dificultad del DLP al observar el orden del grupo con el que estamos trabajando. Supongamos que el grupo que se utiliza tiene elementos, donde es la factorización prima de . Pohlig-Hellman reduce el DLP en a DLP en subgrupos de orden para . Entonces, para el divisor primo más grande de , el DLP en es tan difícil de resolver como el DLP en el subgrupo de orden . Por lo tanto, nos gustaría elegir tal que el divisor primo más grande de sea casi igual a sí mismo. Requerir generalmente es suficiente. G {\displaystyle G} n = p 1 r 1 p k r k {\displaystyle n=p_{1}^{r_{1}}\cdots p_{k}^{r_{k}}} p 1 r 1 p k r k {\displaystyle p_{1}^{r_{1}}\cdots p_{k}^{r_{k}}} n {\displaystyle n} G {\displaystyle G} p i {\displaystyle p_{i}} i = 1 , . . . , k {\displaystyle i=1,...,k} p {\displaystyle p} n {\displaystyle n} G {\displaystyle G} p {\displaystyle p} G {\displaystyle G} p {\displaystyle p} # G = n {\displaystyle \#G=n} n {\displaystyle n} n p 4 {\textstyle {\frac {n}{p}}\leq 4}

El algoritmo de cálculo de índices es otro algoritmo que se puede utilizar para resolver DLP en algunas circunstancias. Para los jacobianos de curvas (hiper)elípticas existe un ataque de cálculo de índices en DLP. Si el género de la curva se vuelve demasiado alto, el ataque será más eficiente que el rho de Pollard. Hoy se sabe que incluso un género de no puede garantizar la seguridad. [5] Por lo tanto, nos quedamos con curvas elípticas y curvas hiperelípticas de género 2. g = 3 {\displaystyle g=3}

Otra restricción sobre las curvas hiperelípticas que podemos usar proviene del ataque de Menezes-Okamoto-Vanstone / ataque de Frey-Rück. El primero, a menudo llamado MOV para abreviar, se desarrolló en 1993, el segundo apareció en 1994. Considere una curva (hiper)elíptica sobre un cuerpo finito donde es la potencia de un número primo. Suponga que el jacobiano de la curva tiene elementos y es el divisor primo más grande de . Para el entero positivo más pequeño tal que existe un homomorfismo de grupo inyectivo computable del subgrupo de de orden a . Si es pequeño, podemos resolver DLP en usando el ataque de cálculo de índices en . Para curvas arbitrarias es muy grande (alrededor del tamaño de ); por lo que, aunque el ataque de cálculo de índices es bastante rápido para grupos multiplicativos de cuerpos finitos, este ataque no es una amenaza para la mayoría de las curvas. La función inyectiva utilizada en este ataque es un emparejamiento y hay algunas aplicaciones en criptografía que hacen uso de ellas. En tales aplicaciones es importante equilibrar la dureza del DLP en y ; dependiendo del nivel de seguridad , son útiles valores de entre 6 y 12. El subgrupo de es un toro . Existe algún uso independiente en la criptografía basada en toros . C {\displaystyle C} F q {\displaystyle \mathbb {F} _{q}} q {\displaystyle q} n {\displaystyle n} p {\displaystyle p} n {\displaystyle n} k {\displaystyle k} p | q k 1 {\displaystyle p|q^{k}-1} J ( C ) {\displaystyle J(C)} p {\displaystyle p} F q k {\displaystyle \mathbb {F} _{q^{k}}^{*}} k {\displaystyle k} J ( C ) {\displaystyle J(C)} F q k {\textstyle \mathbb {F} _{q^{k}}^{*}} k {\displaystyle k} q g {\displaystyle q^{g}} J ( C ) {\displaystyle J(C)} F q k {\textstyle \mathbb {F} _{q^{k}}^{*}} k {\displaystyle k} F q k {\textstyle \mathbb {F} _{q^{k}}^{*}}

También tenemos un problema, si , el mayor divisor primo del orden del jacobiano, es igual a la característica de Mediante una función inyectiva diferente podríamos entonces considerar el DLP en el grupo aditivo en lugar del DLP en el jacobiano. Sin embargo, el DLP en este grupo aditivo es trivial de resolver, como se puede ver fácilmente. Así también estas curvas, llamadas curvas anómalas, no se deben utilizar en el DLP. p {\displaystyle p} F q . {\displaystyle \mathbb {F} _{q}.} F q {\displaystyle \mathbb {F} _{q}}

Orden de los Jacobianos

Por lo tanto, para elegir una buena curva y un buen cuerpo finito subyacente, es importante conocer el orden del jacobiano. Consideremos una curva hiperelíptica de género sobre el cuerpo donde es la potencia de un número primo y definamos como pero ahora sobre el cuerpo . Se puede demostrar que el orden del jacobiano de se encuentra en el intervalo , llamado intervalo de Hasse-Weil. [6] C {\textstyle C} g {\textstyle g} F q {\textstyle \mathbb {F} _{q}} q {\textstyle q} C k {\textstyle C_{k}} C {\textstyle C} F q k {\textstyle \mathbb {F} _{q^{k}}} C k {\textstyle C_{k}} [ ( q k 1 ) 2 g , ( q k + 1 ) 2 g ] {\textstyle [({\sqrt {q}}^{k}-1)^{2g},({\sqrt {q}}^{k}+1)^{2g}]}

Pero hay más, podemos calcular el orden usando la función zeta en curvas hiperelípticas. Sea el número de puntos en . Luego definimos la función zeta de como . Para esta función zeta se puede demostrar que donde es un polinomio de grado con coeficientes en . [7] Además, se factoriza como donde para todo . Aquí denota el conjugado complejo de . Finalmente, tenemos que el orden de es igual a . Por lo tanto, los órdenes de los jacobianos se pueden encontrar calculando las raíces de . A k {\textstyle A_{k}} C k {\textstyle C_{k}} C = C 1 {\textstyle C=C_{1}} Z C ( t ) = exp ( i = 1 A i t i i ) {\textstyle Z_{C}(t)=\exp(\sum _{i=1}^{\infty }{A_{i}{\frac {t^{i}}{i}}})} Z C ( t ) = P ( t ) ( 1 t ) ( 1 q t ) {\textstyle Z_{C}(t)={\frac {P(t)}{(1-t)(1-qt)}}} P ( t ) {\textstyle P(t)} 2 g {\textstyle 2g} Z {\textstyle \mathbb {Z} } P ( t ) {\textstyle P(t)} P ( t ) = i = 1 g ( 1 a i t ) ( 1 a i ¯ t ) {\textstyle P(t)=\prod _{i=1}^{g}{(1-a_{i}t)(1-{\bar {a_{i}}}t)}} a i C {\textstyle a_{i}\in \mathbb {C} } i = 1 , . . . , g {\textstyle i=1,...,g} a ¯ {\textstyle {\bar {a}}} a {\displaystyle a} J ( C k ) {\textstyle J(C_{k})} i = 1 g | 1 a i k | 2 {\textstyle \prod _{i=1}^{g}{|1-a_{i}^{k}|^{2}}} P ( t ) {\textstyle P(t)}

Referencias

  1. ^ Déchène, Isabelle (2007). "El grupo de Picard, o cómo construir un grupo a partir de un conjunto" (PDF) . Tutorial sobre criptografía de curvas elípticas e hiperelípticas 2007 .
  2. ^ Gaudry, P.; Lubicz, D. (2009). "La aritmética de superficies de Kummer características 2 y de líneas de Kummer elípticas". Campos finitos y sus aplicaciones . 15 (2): 246– 260. doi : 10.1016/j.ffa.2008.12.006 .
  3. ^ Th'eriault, N. (2003). "Ataque de cálculo de índices para curvas hiperelípticas de género pequeño". Avances en criptología - ASIACRYPT 2003. Nueva York: Springer. ISBN 978-3540406747.
  4. ^ Enge, Andreas (2002). "Cálculo de logaritmos discretos en jacobianos hiperelípticos de alto género en tiempo demostrablemente subexponencial". Matemáticas de la computación . 71 (238): 729– 742. Bibcode :2002MaCom..71..729E. doi : 10.1090/S0025-5718-01-01363-1 .
  5. ^ Jasper Scholten y Frederik Vercauteren, Introducción a la criptografía de curvas elípticas e hiperelípticas y al criptosistema NTRU, sección 4
  6. ^ Alfred J. Menezes, Yi-Hong Wu, Robert J. Zuccherato, Una introducción elemental a las curvas hiperelípticas, página 30
  7. ^ Alfred J. Menezes, Yi-Hong Wu, Robert J. Zuccherato, Una introducción elemental a las curvas hiperelípticas, página 29
  • Colm Ó hÉigeartaigh Implementación de algunos algoritmos de curvas hiperelípticas usando MIRACL
  • DJ Bernstein Surface1271: criptografía de curva hiperelíptica de género 2 de alta velocidad: trabajo incompleto de 2006 que pretendía producir una variante Diffie-Hellman, pero que se estancó debido a dificultades para elegir superficies (a su vez, porque no se dispone de conteo de puntos para superficies grandes). Contiene software para la multiplicación escalar de Pentium M en una superficie Kummer.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Hyperelliptic_curve_cryptography&oldid=1229803805"