¿Cómo funcionan los algoritmos de firma digital en un entorno de clave pública / privada?

0

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?

    
pregunta pistacchio 10.06.2016 - 13:44
fuente

2 respuestas

3

En un algoritmo asimétrico tienes dos teclas. Llamémoslos A y B. Independientemente de lo que cifres con A, debes descifrar con B. Lo que cifres con B, debes descifrar con A. (Esto es cierto para todos, pero la mayoría de los algoritmos asimétricos. También, en la práctica implementaciones es un poco más complicado, vea el comentario de techrafs.)

Una de estas claves se elige para que sea privada y se mantenga en secreto. El otro es elegido para ser público, y puede ser distribuido.

Cuando se firma un mensaje, el resumen se cifra con la clave privado . Por lo tanto, debe ser descifrado con la clave pública. El hecho de que se haya cifrado con la clave privada demuestra la identidad de la persona que la firma, ya que solo ella debe tener la clave privada. El hecho de que se pueda descifrar con la clave pública hace que la firma sea útil, ya que cualquiera puede verificarla.

Tenga en cuenta que nuestro sistema donde el hash MD5 de la clave privada es la clave pública no funcionaría. ¿Cómo descifraría un mensaje cifrado con la clave privada si solo tiene el hash MD5 de la clave privada? Si desea comprender cómo se hace realmente, consulte RSA .

    
respondido por el Anders 10.06.2016 - 13:51
fuente
1

Los algoritmos asimétricos están diseñados para tener un par de claves: la clave pública , que se difunde a cualquiera , y la clave privada , que es retenido por el individuo o sistema que generó el par de claves. Las claves son especiales porque SOLO la clave privada puede descifrar los mensajes cifrados con la clave pública , y solo la clave pública puede descifrar los mensajes cifrados con la tecla privada .

Para cualquiera de las dos personas que deseen comunicarse de forma segura, cada una deberá generar su par de claves PROPIO y compartir las claves públicas entre sí. Luego, cuando se comunican, se ve algo como esto:

CadaoriginadordemensajesenelejemploanteriorestáusandolateclapúblicadeAliceparacifraryenviarmensajesaAlice.Aliceusasuclaveprivadaparadescifrarlosmensajesyvercuálesson.SiAliciaquiereresponderles,puedeusarsuclaveprivadaparacifrarla(peroCUALQUIERAconsuclavepúblicapodríadescifrarla),ousarlapúblicaclave,dedecirMaría,paraenviarunmensajeaMaría.EntoncessoloMarypodríadescifraresemensajeconsuclaveprivada.

Enloquerespectaanorepudio(elremitentenopuedenegarqueenvióelmensaje)yintegridaddedatos(compruebequeelmensajenosemodificó),elprocesofuncionaasí:

1)Marydeseaenviarunmensajey"firmarlo" para demostrar que proviene de ella.

2) Mary aplasta el mensaje (produciendo el resumen del mensaje y lo cifra con su clave privada .

3) Mary puede enviar el mensaje, junto con el resumen del mensaje encriptado como una firma

Cualquier persona que desee verificar el mensaje, sigue este proceso:

1) Tome el mensaje y haga un hash utilizando el mismo algoritmo que Mary utilizó para generar el resumen de mensajes

2) Descifre el resumen de mensaje que vino con el mensaje usando la clave pública de Mary

3) Compara los dos valores hash, si son idénticos, entonces sabes que el mensaje no se modificó (verificando su integridad ,) y probaste que el mensaje TAMBIÉN vino de Mary ( no repudio ,) porque el message digest solo pudo haberse descifrado correctamente usando la clave pública de Mary , lo que significaba que TENÍA que haber sido cifrado con el de Mary < em> clave privada , y solo Mary debería tener esa clave.

En cuanto a cómo el algoritmo de clave compartida produce el secreto compartido, me gustaría ver Diffe-Hellman, enlace

    
respondido por el Desthro 10.06.2016 - 17:18
fuente

Lea otras preguntas en las etiquetas