¿Por qué no se puede descifrar SHA256? [cerrado]

-3

¿Desde muchos foros he visto que los datos de SHA256 no se pueden descifrar? Si eso es verdad, ¿cómo se verifican los datos? ¿Cuál es el uso de simplemente cifrar los datos? ¿La misma pregunta se aplica a las firmas digitales (que creo que son el valor de hash y la clave privada)?

    
pregunta Gaurav Mathur 14.12.2016 - 10:36
fuente

2 respuestas

6

Primero, hay una diferencia entre hashing y encriptación . SHA256 es una función de hash, no una función de cifrado.

En segundo lugar, dado que SHA256 no es una función de cifrado, no se puede descifrar. Lo que quieres decir es probablemente revertirlo. En ese caso, SHA256 no se puede revertir porque es una función unidireccional . Revertirlo provocaría un ataque de preimagen , que anula su objetivo de diseño.

En tercer lugar, la verificación SHA256 funciona calculando de nuevo y comparando el resultado con el resultado actual. Si ambos resultados coinciden, entonces la verificación es exitosa. El trasfondo teórico es que es difícil encontrar otra entrada que dé el mismo resultado de hash. La violación de esto crea un segundo ataque de preimagen , que derrota su objetivo de diseño.

Finalmente, las firmas digitales no son simplemente combinaciones de hash y clave . Pero una función hash puede mejorar su seguridad.

    
respondido por el Cyker 14.12.2016 - 11:09
fuente
2

SHA256 no es una función de cifrado sino una función hash . La diferencia fundamental es que si bien el cifrado es una función bidireccional (dada la clave), el hash es solo una función de una manera: dado algunos datos puede calcular el hash, dado que el hash es difícil (y matemáticamente imposible) recuperar los datos. .

Dije que es matemáticamente imposible encontrar los datos del hash porque, por lo general, una función hash tiene un pequeño dominio de código (por ejemplo, 256 bits para SHA256) pero un gran dominio (puedes enlazar cualquier cadena), por lo que habrá colisiones: Diferentes cadenas con el mismo hash.

Por esta razón, si su contraseña se guarda en forma de hash, entonces existe una contraseña infinita (pero pueden ser muy largas) que desbloquea su cuenta.

La buena noticia es que las colisiones son poco frecuentes cuando se utilizan funciones hash criptográficas , por lo que su cuenta sigue siendo segura.

Respondiendo a la primera parte de su pregunta, la verificación de datos es fácil: si Alice le envía a Bob un archivo con la suma de comprobación de hash, Bob puede calcular fácilmente el hash del archivo que recibió y compararlo con el hash que recibió de Alice. Esto suele ser suficiente para descubrir si ha habido algún error durante la transmisión (por lo que el archivo está dañado), pero no es suficiente si la transmisión ha sido alterada por algún atacante que también alteró el hash. Así que Alice y Bob necesitan un canal seguro para transmitir el hash (por ejemplo, una página https con un certificado válido) o necesitan firmar el hash de alguna manera.

Entonces pasamos a la respuesta a tu segunda pregunta: Alice puede firmar el hash usando su clave privada antes de enviarla a Bob, de esta manera un atacante no puede manipularla sin invalidar la firma.

Ahora puede preguntar por qué Alice firma con su clave RSA (o similar) solo el hash y no todo el mensaje, esto se debe a que calcular RSA es más lento que calcular un hash (por lo tanto, tiene que hacer lo lento solo en una cadena pequeña: el hash). Esto fue cierto especialmente cuando se creó PGP y las computadoras fueron más lentas.

    
respondido por el Enrico Polesel 14.12.2016 - 11:14
fuente

Lea otras preguntas en las etiquetas