Solo hash de curva elíptica

Función hash criptográfica
Hash de curva elíptica únicamente (ECOH)
General
DiseñadoresDaniel RL Brown, Matt Campagna, René Struik
Primera publicación2008
Derivado deMuHASH
Detalle
Tamaños de resúmenes224, 256, 384 o 512
El mejor criptoanálisis público
Segunda preimagen

El algoritmo de hash de curva elíptica únicamente (ECOH) se presentó como candidato para SHA-3 en la competencia de funciones hash del NIST . Sin embargo, fue rechazado al comienzo de la competencia debido a que se encontró un segundo ataque de preimagen .

El ECOH se basa en el algoritmo hash MuHASH , que aún no ha sido atacado con éxito . Sin embargo, MuHASH es demasiado ineficiente para su uso práctico y se tuvieron que realizar cambios. La principal diferencia es que donde MuHASH aplica un oráculo aleatorio [ aclaración necesaria ] , ECOH aplica una función de relleno . Suponiendo oráculos aleatorios, encontrar una colisión en MuHASH implica resolver el problema del logaritmo discreto . MuHASH es, por lo tanto, un hash demostrablemente seguro , es decir, sabemos que encontrar una colisión es al menos tan difícil como algún problema matemático conocido.

ECOH no utiliza oráculos aleatorios y su seguridad no está estrictamente relacionada directamente con el problema del logaritmo discreto, pero aún así se basa en funciones matemáticas. ECOH está relacionado con el problema de Semaev de encontrar soluciones de bajo grado para las ecuaciones polinómicas de suma sobre un cuerpo binario, llamado Problema de Polinomio de Suma . Hasta ahora no se ha dado un algoritmo eficiente para resolver este problema. Aunque no se ha demostrado que el problema sea NP-hard , se supone que tal algoritmo no existe. Bajo ciertas suposiciones, encontrar una colisión en ECOH también puede verse como una instancia del problema de suma de subconjuntos . Además de resolver el Problema de Polinomio de Suma, existe otra forma de encontrar segundas preimágenes y, por lo tanto, colisiones, el ataque de cumpleaños generalizado de Wagner .

ECOH es un buen ejemplo de función hash que se basa en funciones matemáticas (con el enfoque de seguridad demostrable ) en lugar de en la clásica mezcla ad hoc de bits para obtener el hash.

El algoritmo

Dado , ECOH divide el mensaje en bloques . Si el último bloque está incompleto, se rellena con un solo 1 y luego con la cantidad apropiada de 0. Sea además una función que asigna un bloque de mensaje y un entero a un punto de curva elíptica. Luego, utilizando la asignación , cada bloque se transforma en un punto de curva elíptica y estos puntos se suman con dos puntos más. Un punto adicional contiene el relleno y depende solo de la longitud del mensaje. El segundo punto adicional depende de la longitud del mensaje y del XOR de todos los bloques de mensajes. El resultado se trunca para obtener el hash . norte {\estilo de visualización n} METRO {\estilo de visualización M} norte {\estilo de visualización n} METRO 0 , , METRO norte 1 {\displaystyle M_{0},\ldots ,M_{n-1}} PAG {\estilo de visualización P} PAG {\estilo de visualización P} PAG i Estilo de visualización P_{i}} incógnita 1 Estilo de visualización X_{1} incógnita 2 Estilo de visualización X_{2} yo {\estilo de visualización H}

PAG i := PAG ( METRO i , i ) incógnita 1 := PAG " ( norte ) incógnita 2 := PAG ( METRO i , norte ) Q := i = 0 norte 1 PAG i + incógnita 1 + incógnita 2 R := F ( Q ) {\displaystyle {\begin{aligned}P_{i}&{}:=P(M_{i},i)\\X_{1}&{}:=P'(n)\\X_{2}&{}:=P^{*}(M_{i},n)\\Q&{}:=\sum _{i=0}^{n-1}P_{i}+X_{1}+X_{2}\\R&{}:=f(Q)\end{aligned}}}

Los dos puntos adicionales se calculan mediante y . suma todos los puntos de la curva elíptica y los dos puntos adicionales. Finalmente, el resultado se pasa a través de una función de transformación de salida f para obtener el resultado hash . Para leer más sobre este algoritmo, consulte "ECOH: el hash de curva elíptica únicamente". PAG " {\estilo de visualización P'} PAG Estilo de visualización P* Q {\estilo de visualización Q} R {\estilo de visualización R}

Ejemplos

Se propusieron cuatro algoritmos ECOH, ECOH-224, ECOH-256, ECOH-384 y ECOH-512. El número representa el tamaño del resumen del mensaje. Se diferencian en la longitud de los parámetros, el tamaño del bloque y en la curva elíptica utilizada. Los dos primeros utilizan la curva elíptica B-283: , con parámetros (128, 64, 64). ECOH-384 utiliza la curva B-409: , con parámetros (192, 64, 64). ECOH-512 utiliza la curva B-571: , con parámetros (256, 128, 128). Puede realizar hashes en mensajes de longitud de bits de hasta . incógnita 283 + incógnita 12 + incógnita 7 + incógnita 5 + 1 Estilo de visualización X^{283}+X^{12}+X^{7}+X^{5}+1} incógnita 409 + incógnita 87 + 1 Estilo de visualización X^{409}+X^{87}+1} incógnita 571 + incógnita 10 + incógnita 5 + incógnita 2 + 1 Estilo de visualización X^{571}+X^{10}+X^{5}+X^{2}+1} 2 128 {\estilo de visualización 2^{128}}

Propiedades

  • Incrementalidad : el ECOH de un mensaje se puede actualizar rápidamente, dado un pequeño cambio en el mensaje y un valor intermedio en el cálculo del ECOH.
  • Paralelización : Esto significa que el cálculo puede realizarse en sistemas paralelos. PAG i " s {\displaystyle P_{i}}
  • Velocidad : el algoritmo ECOH es aproximadamente mil veces más lento que SHA-1 . Sin embargo, dados los avances en hardware de escritorio hacia la paralelización y la multiplicación sin acarreo , ECOH puede en unos años ser tan rápido como SHA-1 para mensajes largos. Para mensajes cortos, ECOH es relativamente lento, a menos que se utilicen tablas extensas.

Seguridad de ECOH

Las funciones hash ECOH se basan en funciones matemáticas concretas. Se diseñaron de tal manera que el problema de encontrar colisiones se pudiera reducir a un problema matemático conocido y difícil (el problema de la suma de subconjuntos ). Esto significa que si se pudieran encontrar colisiones, se podría resolver el problema matemático subyacente, que se supone que es difícil e irresoluble en tiempo polinómico . Se sabe que las funciones con estas propiedades son demostrablemente seguras y son bastante únicas entre el resto de funciones hash. Sin embargo, más tarde se encontró una segunda preimagen (y, por lo tanto, una colisión) porque las suposiciones dadas en la prueba eran demasiado sólidas.

Polinomio de suma de Semaev

Una forma de encontrar colisiones o segundas preimágenes es resolver polinomios de suma de Semaev . Para una curva elíptica dada E, existen polinomios que son simétricos en las variables y que se anulan exactamente cuando se evalúan en las abscisas de los puntos cuya suma es 0 en . Hasta el momento, no existe un algoritmo eficiente para resolver este problema y se supone que es difícil (pero no se ha demostrado que sea NP-duro ). F norte Estilo de visualización f_{n} norte {\estilo de visualización n} mi {\estilo de visualización E}

Más formalmente: Sea un cuerpo finito, una curva elíptica con ecuación de Weierstrass con coeficientes en y el punto del infinito. Se sabe que existe un polinomio multivariable si y solo si existen < tales que . Este polinomio tiene grado en cada variable. El problema es encontrar este polinomio. F {\displaystyle \mathbf {F}} mi {\estilo de visualización E} F {\displaystyle \mathbf {F}} Oh {\estilo de visualización O} F norte ( incógnita 1 , , incógnita norte ) {\displaystyle f_{n}(X_{1},\ldots ,X_{N})} y 1 , , y norte {\displaystyle y_{1},\ldots ,y_{n}} ( incógnita 1 , y 1 ) + + ( incógnita norte , y norte ) = Oh {\displaystyle (x_{1},y_{1})+\ldots +(x_{n},y_{n})=O} 2 norte 2 Estilo de visualización 2^{n-2}}

Discusión sobre seguridad demostrable

El problema de encontrar colisiones en ECOH es similar al problema de la suma de subconjuntos . Resolver un problema de suma de subconjuntos es casi tan difícil como el problema del logaritmo discreto . Generalmente se supone que esto no es factible en tiempo polinomial . Sin embargo, se debe suponer una heurística significativamente flexible, más específicamente, uno de los parámetros involucrados en el cálculo no es necesariamente aleatorio sino que tiene una estructura particular. Si uno adopta esta heurística flexible, entonces encontrar una colisión ECOH interna puede verse como una instancia del problema de la suma de subconjuntos .

Existe un segundo ataque de preimagen en forma de ataque de cumpleaños generalizado.

Segundo ataque de pre-imagen

Descripción del ataque : Este es un ataque de cumpleaños generalizado de Wagner . Requiere 2 143 tiempo para ECOH-224 y ECOH-256, 2 206 tiempo para ECOH-384 y 2 287 tiempo para ECOH-512. El ataque establece el bloque de suma de comprobación en un valor fijo y utiliza una búsqueda de colisión en los puntos de la curva elíptica. Para este ataque tenemos un mensaje M e intentamos encontrar un M' que genere el mismo mensaje. Primero dividimos la longitud del mensaje en seis bloques. Entonces . Sea K un número natural. Elegimos K números diferentes para y definimos por . Calculamos los K puntos de la curva elíptica correspondientes y los almacenamos en una lista. Luego elegimos K valores aleatorios diferentes para , definimos , calculamos y los almacenamos en una segunda lista. Tenga en cuenta que se conoce el objetivo Q. solo depende de la longitud del mensaje que hemos fijado. depende de la longitud y del XOR de todos los bloques de mensajes, pero elegimos los bloques de mensajes de modo que este sea siempre cero. De esta manera queda fijado para todos nuestros intentos. METRO " = ( METRO 1 , METRO 2 , METRO 3 , METRO 4 , METRO 5 , METRO 6 ) {\displaystyle M'=(M_{1},M_{2},M_{3},M_{4},M_{5},M_{6})} ( METRO 0 , METRO 1 ) {\displaystyle (M_{0},M_{1})} METRO 2 Estilo de visualización M_{2} METRO 2 := METRO 0 + METRO 1 {\displaystyle M_{2}:=M_{0}+M_{1}} PAG ( METRO 0 , 0 ) + PAG ( METRO 1 , 1 ) + PAG ( METRO 2 , 2 ) {\displaystyle P(M_{0},0)+P(M_{1},1)+P(M_{2},2)} ( METRO 3 , METRO 4 ) {\estilo de visualización (M_{3},M_{4})} METRO 5 := METRO 3 + METRO 4 Estilo de visualización M_{5}:=M_{3}+M_{4}} Q incógnita 1 incógnita 2 PAG ( METRO 3 , 3 ) PAG ( METRO 4 , 4 ) PAG ( METRO 5 , 5 ) {\displaystyle Q-X_{1}-X_{2}-P(M_{3},3)-P(M_{4},4)-P(M_{5},5)} incógnita 1 Estilo de visualización X_{1} incógnita 2 Estilo de visualización X_{2} incógnita 2 Estilo de visualización X_{2}

Si K es mayor que la raíz cuadrada del número de puntos de la curva elíptica, entonces esperamos una colisión entre las dos listas. Esto nos da un mensaje con: Esto significa que este mensaje conduce al valor objetivo Q y, por lo tanto, a una segunda preimagen, que era la pregunta. La carga de trabajo que tenemos que hacer aquí es dos veces K cálculos de hash parciales. Para obtener más información, consulte "Un segundo ataque de preimagen contra el hash de curva elíptica únicamente (ECOH)". ( METRO 1 , METRO 2 , METRO 3 , METRO 4 , METRO 5 , METRO 6 ) {\displaystyle (M_{1},M_{2},M_{3},M_{4},M_{5},M_{6})} Q = i = 0 5 PAG ( METRO i , i ) + incógnita 1 + incógnita 2 {\displaystyle Q=\sum _{i=0}^{5}P(M_{i},i)+X_{1}+X_{2}}

Parámetros reales:

  • ECOH-224 y ECOH-256 utilizan la curva elíptica B-283 con aproximadamente puntos en la curva. Elegimos y obtenemos un ataque con complejidad . 2 283 {\estilo de visualización 2^{283}} K = 2 142 Estilo de visualización K=2^{142}} 2 143 {\estilo de visualización 2^{143}}
  • ECOH-384 utiliza la curva elíptica B-409 con aproximadamente puntos en la curva. La elección da como resultado un ataque con complejidad 2 409 {\estilo de visualización 2^{409}} K = 2 205 Estilo de visualización K=2^{205}} 2 206 . {\estilo de visualización 2^{206}.}
  • ECOH-512 utiliza la curva elíptica B-571 con aproximadamente 10 puntos en la curva. La elección da como resultado un ataque con complejidad. 2 571 {\estilo de visualización 2^{571}} K = 2 286 Estilo de visualización K=2^{286}} 2 287 . {\estilo de visualización 2^{287}.}

EcoH2

Los comentarios oficiales sobre ECOH incluyeron una propuesta llamada ECOH2 que duplica el tamaño de la curva elíptica en un esfuerzo por detener el segundo ataque de preimagen de Halcrow-Ferguson con una predicción de un rendimiento mejorado o similar.

Referencias

  • Daniel RL Brown, Matt Campagna, Rene Struik (2008). "ECOH: el algoritmo hash de curva elíptica".
  • Michael A. Halcrow, Niels Ferguson (2009). "Un segundo ataque de preimagen contra el algoritmo hash de curva elíptica (ECOH)".
Retrieved from "https://en.wikipedia.org/w/index.php?title=Elliptic_curve_only_hash&oldid=1084905606"