Cifrado de clave pública

En esta página, aprenderás sobre un método criptográfico de uso común que es más seguro.

El problema fundamental que la criptografía está tratando de resolver es cómo hacer llegar un mensaje a tu amigo que no pueda ser interceptado por tus enemigos. El cifrado simétrico tiene una debilidad fundamental: la clave de cifrado es en sí misma un mensaje que debe enviarse a tu amigo pero que tu enemigo no debe interceptar.

La criptografía de clave pública es una técnica matemática para evitar la necesidad de comunicar una clave secreta de una persona a otra. En cambio, cada persona tiene dos claves: una clave privada conocida solo por esa persona y una clave pública que todos en el mundo pueden conocer. Si Bob quiere enviar un mensaje secreto a Alice, lo encripta con la clave pública de Alice. Entonces nadie más que Alice podrá descifrarlo. Solo su clave privada puede deshacer el cifrado y nadie puede descifrar la clave privada de la clave pública.

IOC-2.B.5

El cifrado de clave pública (public key encryption) utiliza un par de claves: una clave pública para el cifrado y una clave privada para el descifrado. El remitente usa la clave pública para cifrar el mensaje y el receptor usa su clave privada para descifrarlo.

https://commons.wikimedia.org/wiki/File:Public_key_encryption.svg

Aquí hay un modelo visual de cifrado de clave pública (de wikimedia.org).

Diagrama de cifrado de clave pública que muestra un mensaje que se cifra con una clave pública y se descifra con una clave privada

Aquí hay un video que usa la mezcla de pintura como metáfora para el cifrado de clave pública.

Conecta tus auriculares o altavoces

Si tu conexión bloquea YouTube, mira el video aquí, pero empieza a las 2:25.

La criptografía simétrica utiliza la misma clave secreta para codificar y decodificar un mensaje, y existe desde hace miles de años. Su debilidad es que la clave se convierte en otro mensaje que debe transmitirse de forma segura.

¿Quién inventó el cifrado de clave pública?

La idea de la clave pública fue publicada por primera vez por Whitfield Diffie y Martin Hellman en 1976. Pero resulta que se había inventado antes pero los gobiernos la mantuvieron en secreto.

La criptografía de clave pública (asimétrica) se creó en la década de 1970. Utiliza dos claves diferentes para el cifrado y el descifrado, por lo que compartir la clave pública no revela la clave privada. El cifrado de clave pública es el principal método de cifrado en la actualidad debido a su alto nivel de seguridad.

  1. Aprendiste sobre el cifrado simétrico en Página 1: Criptografía.
    Habla con tu compañero Describe cómo el cifrado de clave pública ofrece una mejor seguridad en la transmisión de mensajes que el cifrado simétrico. ¿Confiarías en que este método funcione para enviar un número de tarjeta de crédito?
También es posible utilizar la clave privada para el cifrado y la clave pública para el descifrado...

Eso no es bueno para mensajes secretos (¿por qué no?), pero es útil para firmas digitales. Yo uso mi clave privada para encriptar un mensaje; y tú usas mi clave pública para descifrarlo. Si obtienes un mensaje significativo como resultado, eso prueba que el mensaje fue encriptado con mi clave privada. (Si deseo tanto mantener la confidencialidad como realizar una firma digital, cifro el mensaje con mi clave privada para firmarlo, luego cifro el resultado cifrado nuevamente con tu clave pública para mantenerlo en secreto. Lo descifra dos veces, primero con tu clave privada y luego con mi clave pública). Este es un buen ejemplo de composición de funciones: la salida del primer cifrado es la entrada del segundo cifrado.

Este cómic fue escrito por Randall Munroe (fuente: xkcd).
Un cómic con 4 viñetas. En cada panel, una persona está sentada frente a una computadora. En el panel 1, dicen: 'He estado publicando mi clave pública durante 15 años, pero nunca nadie me la pidió ni la usó para nada, que yo sepa'. En los paneles 2 y 3, la persona se sienta en silencio. En el panel 4, dicen 'Tal vez debería intentar publicar mi clave privada en su lugar.'

HTTP Seguro

SSL/TLS, capa de conexión segura/seguridad de la capa de transporte, (secure sockets layer/transport layer security) es el estándar utilizado para la transferencia de información criptográficamente segura en Internet.

Las conexiones HTTP seguras (aquellas que usan https:// en lugar de http://) usan un protocolo llamado Transport Layer Security (TLS) o tal vez una versión anterior llamada Secure Sockets Layer (SSL). Ambos se basan en criptografía de clave pública. Con SSL/TLS, el sitio que estás visitando envía su clave pública y tu navegador la usa para cifrar la información que envías.

Los estándares abiertos ayudan a la seguridad...

Para que funcione correctamente, una función criptográfica debe ser fácil de invertir para el titular de la clave privada, pero difícil de invertir para cualquier otra persona. ¿Cómo sabemos lo que significa "duro"? Por ejemplo, los métodos criptográficos actuales se basan en la dificultad de encontrar factores primos de números muy grandes. No hay prueba de que alguien encuentre una forma rápida de hacerlo, pero la gente está bastante segura de ello porque el problema ha sido bien estudiado por muchos matemáticos. (Por otro lado, cuando las computadoras cuánticas se vuelvan prácticas, la factorización será fácil y se necesitarán nuevos métodos criptográficos. Los nuevos desarrollos de investigación en 2019 hacen que el criptoanálisis cuántico práctico no parezca tan lejano.)

Lo que hace posible que los matemáticos estudien la dificultad de descifrar la criptografía de Internet es que el método utilizado, la función criptográfica, se publica abiertamente. Esto puede parecer extraño; si quieres guardar secretos, ¿no deberías mantener la técnica en secreto también? Pero los algoritmos secretos pueden tener debilidades que pasan desapercibidas hasta que algún tipo malo las explota. Los estándares abiertos permiten estudiar un algoritmo antes de que se utilice en la práctica.

Autoridades de certificación

IOC-2.B.6

Las autoridades de certificación (Certificate authorities) son organizaciones que emiten certificados digitales para verificar quién es el propietario de las claves de cifrado utilizadas para las comunicaciones seguras.

En lugar de confiar en que el sitio web es quien dice ser, ahora debes confiar en que la Autoridad de certificación sea confiable.

La criptografía de clave pública no resuelve todos los problemas, porque un intruso (por ejemplo, Eve) podría publicar una clave pública falsa haciéndose pasar por Alice. Entonces, Bob podría encriptar accidentalmente su mensaje para Alice usando la clave falsa de Eve, y solo Eve podría leer el mensaje destinado a Alice. En la práctica, esto se soluciona en parte al confiar en terceros de confianza, llamados Autoridades de certificación, para certificar claves públicas. En las opciones de seguridad de su navegador puede ver todas las Autoridades de Certificación en las que confía.

Pero esto solo hace retroceder el problema una capa. ¿Cómo saben las autoridades de certificación que tú eres quien dices ser? El problema es un poco como cómo tu banco sabe que tú eres quien dices ser cuando lo llamas por teléfono. Es decir, te hacen preguntas para las que esperan que solo tú sepas la respuesta.
  1. Puede parecer increíble que un remitente (por ejemplo, Alice) pueda hacer pública su clave de cifrado y, sin embargo, nadie excepto ella puede descifrar su mensaje. El método de clave pública se basa tanto en las matemáticas como en las limitaciones actuales de la velocidad de las computadoras. Lee "Secrecy Changes Forever" ("El secreto cambia para siempre") (Blown to Bits, páginas 178-181) para entender cómo funciona esto.
  2. Lee "The Key Agreement Protocol" ("El protocolo de acuerdo de claves") y "Public Keys for Private Messages" ("Claves públicas para mensajes privados") (Blown to Bits, páginas 181-183) para obtener más detalles sobre el cifrado de clave pública.
  1. Investiga un poco sobre los sistemas de encriptación modernos, como el criptosistema RSA, que se utiliza para realizar transacciones seguras en Internet.