De la página de Wikipedia sobre el tema , obtengo, a nivel teórico, cómo el proceso de cifrado y el descifrado de un mensaje funciona. El artículo establece que:
En un sistema de cifrado de clave pública, cualquier persona puede cifrar un mensaje usando la clave pública del receptor, pero tal mensaje puede ser descifrado solo con la clave privada del receptor.
Hasta ahora, todo bien. En términos muy simples, muy , podría tener mi privado que es 123
y usar su hash md5 ( 202cb962ac59075b964b07152d234b70
) como clave pública. Por lo tanto, siempre puedo regenerar la clave pública conociendo la clave privada pero no al revés. Luego, hablando de firmar un mensaje, está escrito que
La autenticación de mensajes implica el hashing del mensaje para producir un "digerir" y cifrar el compendio con la clave privada para producir un firma digital. A partir de entonces, cualquiera puede verificar esta firma mediante (1) calculando el hash del mensaje, (2) descifrando la firma con la clave pública del firmante y (3) comparando el resumen calculado con el resumen descifrado
La parte que no entiendo es decrypting the signature with the signer's public key
. ¿No se indica en la primera parte que solo una clave privada puede descifrar un mensaje?
Según tengo entendido, el tipo de algoritmo utilizado aquí es algo diferente del "hash md5" que propuse anteriormente porque puede descifrar un mensaje cifrado con la clave pública si conoce la clave privada y descifra un mensaje cifrado Clave privada al conocer la clave pública.
¿Cómo funcionan estos algoritmos?