¿Función de hash reversible?

10

¿Hay alguna función hash reversible?

La función hash como SHA y MD5 no son reversibles. Me gustaría saber si existen algunas funciones hash reversibles?

    
pregunta Geek 13.07.2014 - 18:40
fuente

4 respuestas

19

La definición de una función hash criptográfica incluye resistencia a las imágenes previas: dada h (x) , no debería ser posible recuperar x . Una función hash "reversible" es exactamente lo contrario de esa propiedad. Por lo tanto, no puede tener una "función hash reversible" más de la que puede tener un pez alérgico al agua.

Es posible que desee una función hash que, para la mayoría de las personas, es una función hash criptográfica con todas sus propiedades, pero que también incluye algún tipo de trampilla que permite revertirla si conoce alguna específica secreto. Este tipo de cosas podrían existir pero requiere matemáticas, como la criptografía asimétrica. No estoy al tanto de tal construcción en este momento, pero uno podría posiblemente someter a un jurado a algo basado en un módulo RSA, o tal vez una curva elíptica con coordenadas tomadas módulo un módulo RSA (no tengo un diseño preciso en mente, pero Tengo la intuición de que se puede hacer de esa manera).

    
respondido por el Tom Leek 13.07.2014 - 18:50
fuente
5

Por lo general, un hash no criptográfico no se puede revertir (esto es, independientemente de otras propiedades especiales de los hash criptográficos, como la resistencia a la colisión / preimagen). La razón por la que generalmente no es posible es que simplemente no tiene suficiente información.

Una función hash (generalmente) convierte N bits de entrada en M bits de salida, donde M es una pequeña constante y la mayor parte del tiempo N > M es verdadero. Por supuesto, N no necesita ser más grande que M , es perfectamente posible generar, por ejemplo. un hash SHA de un solo byte, pero generalmente el mensaje hash es más largo (a menudo mucho más largo) que el valor hash.

Eso significa ni más ni menos que eso para revertir el hash y restaurar el mensaje original, tendrías que usar magia de adivinación para completar la información que falta. Hay 2 soluciones N-M , y cada una de ellas es tan correcta como las demás.

Entonces, si hash, por ejemplo, una cadena de 36 bytes con SHA y tratas de revertir esto, hay 2 soluciones 128 , todas ellas igualmente correctas.
Si se sabe que la entrada tiene ciertas propiedades conocidas (como comenzar con una secuencia conocida, como From: , o una entropía particularmente baja), es posible que pueda descartar la mayoría de las soluciones y finalmente encontrar un texto claro plausible. , tal vez incluso la correcta, pero esto no es ni mucho menos trivial, y nunca puedes probar que tienes la correcta, a menos que ya lo supieras o tengas otra forma de verificación.

    
respondido por el Damon 14.07.2014 - 16:54
fuente
1

Tal vez esté buscando algo como PKI, donde una cadena se puede cifrar con una clave pública en un extremo y descifrar con una clave privada en el otro. Obviamente, no es un hash, sino una forma de cifrar / descifrar una cadena para pasar un secreto.

    
respondido por el Scott Duffy 28.10.2016 - 16:16
fuente
0

Algunos algoritmos hash, como los CRC (como señalé anteriormente) son reversibles. Consulte este documento para ver un enfoque para hacer esto. (Los CRC son rápidos de calcular e ideales para proteger los datos contra la corrupción donde no hay requisitos de seguridad).

El diseño de hashes criptográficamente seguros tiene como objetivo garantizar que no haya dicho acceso directo y que encontrar una coincidencia de hash requiere una búsqueda completa del espacio de teclas.

    
respondido por el Rich 11.04.2017 - 07:05
fuente

Lea otras preguntas en las etiquetas