Primero, hay una diferencia entre hash y cifrado . SHA256 es una función 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 invertirlo. En ese caso, SHA256 no se puede revertir porque «es una función unidireccional . Al revertirlo, se produciría una ataque de preimagen , que frustra su objetivo de diseño.
En tercer lugar, la verificación SHA256 funciona al calcularlo nuevamente y comparar el resultado con el resultado en cuestión. Si ambos resultados coinciden, la verificación es exitosa. El trasfondo teórico es que es difícil encontrar otra entrada que dé el mismo resultado hash. La violación de esto crea un segundo ataque de preimagen , que frustra su objetivo de diseño.
Por último, firmas digitales no son simplemente combinaciones de hash y clave . Pero una función hash puede mejorar su seguridad.
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 unidireccional: dados algunos datos, puede calcular el hash, dado 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 codominio pequeño (por ejemplo, 256 bits para SHA256) pero un dominio grande (puede usar un hash en cualquier cadena), así que Habrá colisiones: diferentes cadenas con el mismo hash.
Por esta razón, si su contraseña se guarda en forma hash, entonces existe una contraseña infinita (pero pueden ser muy largas) que desbloquea su cuenta.
La buena noticia es que las colisiones son raras cuando usa funciones hash criptográficas , por lo que su cuenta aún está segura.
Respondiendo a la primera parte de su pregunta, la verificación de datos es fácil: si Alice envía a Bob un archivo con la suma de comprobación hash, Bob puede calcular fácilmente el hash de t l archivo que ha recibido y compárelo con el hash recibido de Alice. Esto suele ser suficiente para averiguar 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 modificó el hash. Por lo tanto, 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.
Pasamos a la respuesta a su segunda pregunta: Alice puede firmar el hash usando su clave privada antes de enviársela a Bob, de esta manera un atacante no puede manipularla sin invalidar la firma.
Ahora podría preguntar por qué Alice firma solo con su clave RSA (o similar) el hash y no todo el mensaje, esto se debe a que calcular RSA es más lento que calcular un hash (por lo que tiene que hacer lo lento solo en una cadena pequeña: el hash). Esto fue cierto especialmente cuando se creó PGP y las computadoras eran más lentas.