Estoy tratando de entender el proceso de verificación de firma digital, sin embargo, no obtengo la explicación en mi libro.
Si A quiere enviar un mensaje a B con una firma digital, el proceso es aparentemente como sigue:
- El mensaje que se envía tiene un algoritmo de hash público aplicado. para crear un hash
- El hash se cifra mediante la clave privada de A y luego se adjunta al mensaje que también será encriptado. Este hash encriptado es la firma digital
- B luego descifra el hash usando la clave pública de A
- El mensaje original se descifra y se pasa a través del mismo algoritmo de hashing para producir un hash
- Si los dos hashes son iguales, el mensaje se autentica, de lo contrario no puede ser autenticado
En primer lugar, ¿es correcta esta explicación?
Segundo, ¿cómo puede B descifrar el hash usando la clave pública de A? El propósito de una clave pública es que los datos se puedan cifrar.
¿Por qué A cifraría algo con su clave privada? Si envía un mensaje a B, ¿A no usaría la clave pública de B?
¿Cómo se puede pasar el mensaje original a través del mismo algoritmo de hash para producir el mismo hash si A inicialmente usó su clave privada para producir el primer hash (la clave privada de A no será conocida por B)?
Si esta explicación no es correcta, ¿dónde va mal?