¿El hashing recursivo debilita las propiedades de un algoritmo de hash criptográfico?

2

Un ejemplo específico del mío se refiere a la probabilidad de colisión, donde tengo dos textos sin formato A y B que quiero hacer un hash con MD5.

Dada la función hash criptográfica H y lo siguiente:

A' = H(A)
B' = H(B)
A'' = H(H(A))
B'' = H(H(B))

¿la probabilidad de que A'' y B'' colisionen es mayor que la de A' y B' ?

    
pregunta Mansour 04.03.2015 - 07:06
fuente

2 respuestas

1

Se debería investigar si tal acción produciría o no una colisión en la práctica, pero puede considerar que un hash MD5 recursivo es solo 1 hash MD5 al final. Solo está ejecutando el hash en 32 bits de datos (la salida de su n - 1) en lugar de en n bits de datos. Por lo tanto, teniendo en cuenta que el algoritmo hash es pseudoaleatorio, en lugar de eso, podría preguntar si las colisiones son más o menos probables en 32 bits de datos frente a un tamaño variable.

Las colisiones deberían ser igualmente improbables en ambos casos, debido al hecho de que siempre son improbables con un buen algoritmo. En cuanto a la capacidad de forzar una colisión, puede derrotar métodos conocidos, pero en principio debería ser el mismo, si se investigó su nuevo algoritmo.

Finalmente, debes considerar cuál es el significado de tu miedo a las colisiones. Como lo entiendo, las colisiones permiten que se ingrese una contraseña en lugar de la contraseña, otra contraseña y la misma. En certificados, significa la capacidad de generar una nueva clave privada para cifrar datos (es decir, la contraseña de su certificado). Por lo tanto, si sus hashes de inicio de sesión se han visto comprometidos, las colisiones podrían permitirles ingresar a su sitio, pero no conocer exactamente las contraseñas de los usuarios. Y ese será principalmente el uso criptográfico de un algoritmo has - para ocultar la contraseña u otros datos de origen. En este caso, es mejor hacer hash varias veces porque aumentará la CPU necesaria para adivinar los hashes de texto sin formato. Puede asumir que uno de sus sitios ha sido pirateado, que toda su información también se ha divulgado, por lo que no es muy necesario que un atacante inicie sesión nuevamente en su sitio con una contraseña colisionada.

La capacidad de autenticar una contraseña u otros datos se reduce por colisiones, pero de nuevo es poco probable en general y también recursivamente improbable, ya que cada una tiene tantas colisiones como en el enésimo hash, que es lo mismo que un hash. El subconjunto de datos (el resultado del hash n - 1) no debe aumentar el riesgo de colisiones con una función de hash pseudoaleatoria. Si no es verdaderamente aleatorio, las colisiones definitivamente aumentan, pero eso no necesariamente hace que sean más fáciles de encontrar o crear, aunque perderá algo de iniquidad. Con un buen hash, esto debe ser mínimo y no debe preocupar la dificultad computacional obtenida por la recursión.

    
respondido por el user1122069 29.03.2015 - 07:23
fuente
-1

Al hacer varias veces, el hash te da más aleatoriedad y entropía.

La razón principal es la protección contra ataques de fuerza bruta. Usted está agregando un factor de trabajo para ralentizar las pruebas de posibles claves. Tome un código de acceso de 4 dígitos: hay 10,000 contraseñas posibles, y puede obtenerlas todas incrementando de 0 a 9999 en 1. Si usa una función de derivación de claves como PBKDF2, también deberá codificar el código de acceso X veces (generalmente 2,000 a 50,000), aumente la cantidad de trabajo que necesita hacer para obtener la clave.

Otra razón es el estiramiento clave. En lugar de usar una clave de 4 dígitos, estás usando una clave más larga para el cifrado (aunque también obtienes eso con un solo hash).

Por último, considere el caso en el que el hash se revela por alguna razón. En una sola operación de hash, podría buscar el código de acceso correspondiente al hash para una sola operación de hash. Hacer eso varias veces evita una búsqueda fácil de la contraseña original. Esto es útil cuando los usuarios usan el mismo código de acceso en varios lugares.

    
respondido por el user45475 04.03.2015 - 07:50
fuente

Lea otras preguntas en las etiquetas