No entiendo los escenarios de uso del mundo real de estos métodos de criptografía. ¿Puede alguien explicar cómo funcionan, con ejemplos y también su uso en el mundo real?
Wikipedia tiene un buen artículo sobre criptografía de clave pública / privada . Resumir la criptografía de clave pública / privada es un concepto, no dos. La alternativa a la criptografía de clave pública / privada es usar la criptografía simétrica que tiene una clave por par de interlocutor.
En la criptografía asimétrica, una persona / computadora tiene un par de llaves. Una clave se mantiene secreta y se llama clave privada. El otro se entrega a los compañeros de comunicación. Cualquier cosa que esté encriptada usando la clave pública solo puede ser desencriptada usando la clave privada correspondiente.
La criptografía simétrica es mucho más simple y de mayor rendimiento, pero no se escala a un gran número de interlocutores de comunicación (10 personas necesitan 45 claves para que cada una hable de forma segura entre sí).
Entonces, como resultado, ambos sistemas se usan a menudo en conjunto en el mundo real: los datos reales se cifran mediante una clave de sesión simétrica, que solo es válida para una sesión. Esta clave (o parte de la información de la que se puede derivar) se transmite mediante criptografía de clave pública / privada al comienzo de la sesión.
Cualquier cosa que esté encriptada usando una clave pública solo puede ser desencriptada usando la clave privada.
El ejemplo más común es HTTPS. Cuando se conecta a un servidor HTTPS, le enviará un certificado. Un certificado es solo una clave pública con información de identidad adjunta. Usando esta clave pública, el navegador puede enviar información al servidor que solo el servidor puede descifrar, usando su clave privada. A partir de eso, se negocia una clave de sesión simétrica entre el navegador y el servidor, que se utiliza para cifrar el tráfico.
La información de una clave privada se puede firmar y esta firma se puede verificar mediante la clave pública. El caso de uso más común es firmar un certificado para decirle al mundo que confía en que ese certificado contenga la información de identidad correcta. Hay una serie de autoridades de certificación que son de confianza predeterminadas por los navegadores comunes.
La criptografía de clave pública / privada se puede usar para muchas cosas diferentes. El ejemplo estándar es el correo electrónico, pero esto no está muy extendido porque es demasiado complicado para los usuarios promedio de computadoras. Las tarjetas inteligentes son un mejor ejemplo: almacenan la clave privada y tienen un pequeño procesador que puede hacer el cifrado y la firma. Así que la clave privada nunca abandona el dispositivo.
Me gusta la respuesta de Hendrik, pero pensé que agregaría algunas cosas más que no encajarán en un comentario.
Uso del término común:
Uso general:
El criptográfico simétrico generalmente es bastante rápido, por lo que se usa fácilmente en aplicaciones de tiempo limitado, por ejemplo, el cifrado de sesión entre dos puntos. TLS / SSL lo usa de esta manera.
Symmetric crypto tiene un gran inconveniente: todos / todo lo que lo use debe tener esa clave privada, y la clave privada debe transportarse con cuidado o perderá el valor de su privacidad. Por lo tanto, el criptográfico simétrico NO puede usarse como prueba de identidad o firma. Ese ha sido siempre el gran valor agregado de criptografía asimétrica, donde puede mantener su clave privada y distribuir la clave pública a todos los demás.
El gran ejemplo obvio (como dijo Hendrick) son los certificados de servidor en una sesión HTTPS. Si está observando con atención, el cripto asimétrico se usa de varias maneras en ese caso:
firma digital: el certificado del servidor está firmado por una Autoridad de Certificación (o es autofirmada) - esto prueba que alguna potencia superior (como GoDaddy) verificó esta información y afirma su veracidad. Esa información no se ha alterado, y puede probarse mediante la combinación de la información del certificado y comparándola con la firma de la CA después de que se haya descifrado con la clave pública de la CA.
cifrado: el cliente utiliza el certificado del servidor para cifrar y enviar la información necesaria para configurar la sesión.
identificación: el hecho de que el servidor pueda descifrar la información del cliente demuestra que posee la clave privada. La prueba de la clave privada da evidencia de que usted está, de hecho, hablando con el servidor que la CA ha certificado.
Pero, una vez que se haya completado todo el trabajo inicial del protocolo de enlace SSL / TLS, las claves asimétricas del servidor están obsoletas, las dos computadoras están hablando utilizando criptografía simétrica. El cifrado asimétrico, cuando se usa únicamente para cifrado, tiende a ser más lento que el cifrado simétrico, por lo que la mayoría de las veces un sistema adoptará un enfoque híbrido y utilizará asimétrico para las cosas que solo el cifrado asimétrico puede hacer (identificación) y se basará en el cifrado simétrico para las cosas donde el tiempo es un factor.
Lea otras preguntas en las etiquetas cryptography encryption