En la criptografía de clave pública, el par de claves utilizado para el cifrado y descifrado lo determina únicamente el destinatario.
Entonces, si desea enviarme un mensaje, debe solicitarme que genere un par de claves.
Luego genero el par de claves utilizando una función matemática, una parte de la cual le envío (clave pública) y la otra parte que me guardo (clave privada) . Luego encriptas el mensaje usando la clave pública y me lo envías. Luego descifro el mensaje usando mi clave privada.
- Cómo resolver redes lentas
- ¿Qué es VPN (red privada virtual) y cuáles son sus ventajas y desventajas? ¿Cómo lo uso en Android?
- ¿Con qué frecuencia el NIC actualizó el HOSTS.TXT original?
- ¿Cuáles son los beneficios del monitoreo de seguridad de red?
- ¿Cuál es el retraso de propagación?
Si quiero enviarle un mensaje, debo solicitarle que genere un par de claves. Luego me envías la clave pública y te guardas la clave privada. Luego cifro usando la clave pública y se la envío a usted y usted descifra usando su clave privada.
La importancia de la criptografía de clave pública es que coloca la responsabilidad de la seguridad únicamente en los puntos finales de comunicación (y no en el canal). No hay forma de que una suplantación de identidad en el canal pueda abarcar la seguridad. La única forma en que la seguridad podría verse comprometida es si alguien piratea los sistemas finales. Aquí es donde entran los programas antimalware.
Ahora, una cosa que debe haber notado es que las claves públicas y privadas se generan a partir de una única función matemática. Por lo tanto, en teoría, es posible calcular uno del otro. Sin embargo, en la práctica, esto es computacionalmente costoso. Así es como la criptografía de clave pública garantiza la seguridad.
En el algoritmo RSA , por ejemplo, generar la clave de descifrado a partir de la clave de cifrado requeriría que se factoreara el producto de dos números primos. Esto es posible en teoría, pero computacionalmente costoso en la práctica.
Dado que se utiliza un par de claves diferente para la comunicación en ambas direcciones, este método también se conoce como criptografía de clave asimétrica .
Firmas digitales
Sin embargo, una forma en que la criptografía de clave pública podría verse comprometida sería si un usuario B impone como usuario A y solicita una clave pública del servidor.
El usuario B puede enviar mensajes falsos en el nombre del usuario A al servidor.
Para evitar esto, utilizamos firmas digitales.
Digamos que B impone como A y solicita una clave pública del servidor. El servidor luego le pide a B una ‘firma’ , es decir, cualquier contenido arbitrario codificado usando la clave privada de A.
Dado que B no tiene acceso a la clave privada de A, B cifra el mensaje arbitrario utilizando su propia clave privada y lo envía al servidor. El servidor luego le pide a A su clave pública para descifrar esta ‘firma’.
A envía su clave pública al servidor. Luego, el servidor intenta descifrar la firma con esta clave y falla (ya que se ha cifrado con la clave privada de B). El servidor se da cuenta de que el usuario que afirma ser A no es, de hecho, A.
Luego, el servidor descarta la solicitud de B de una clave pública. El administrador del sistema puede contactar a la policía.
************************************************** ******************************
PD: La implementación de los algoritmos anteriores puede tener diferencias significativas en los sistemas del mundo real. Para señalar algunos:
1. No es necesario solicitar claves públicas enviando un correo electrónico al administrador del sistema. Pueden ser generados automáticamente .
2. Las firmas digitales no se solicitan por separado. Suelen acompañar el mensaje que se envía.
3. El contenido utilizado para enviar firmas digitales no es arbitrario. Es un “resumen” del mensaje que se enviará, realizado mediante una función hash.
Sin embargo, estas son diferencias de implementación. El objetivo principal de esta respuesta fue proporcionar una visión general de las ideas involucradas en la criptografía de clave pública y espero que sea útil.