Criptografía de clave pública


La criptografía de clave pública , o criptografía asimétrica , es un sistema criptográfico que utiliza pares de claves . Cada par consta de una clave pública (que puede ser conocida por otros) y una clave privada (que puede no ser conocida por nadie excepto por el propietario). La generación de tales pares de claves depende de algoritmos criptográficos que se basan en problemas matemáticos denominados funciones unidireccionales . La seguridad efectiva requiere mantener privada la clave privada; la clave pública se puede distribuir abiertamente sin comprometer la seguridad. [1]

En dicho sistema, cualquier persona puede cifrar un mensaje utilizando la clave pública del receptor previsto , pero ese mensaje cifrado solo puede descifrarse con la clave privada del receptor . Esto permite, por ejemplo, que un programa de servidor genere una clave criptográfica destinada a una criptografía de clave simétrica adecuada y luego use la clave pública compartida abiertamente de un cliente para cifrar esa clave simétrica recién generada .. Luego, el servidor puede enviar esta clave simétrica cifrada al cliente a través de un canal no seguro; solo el cliente puede descifrarlo utilizando la clave privada del cliente (que se empareja con la clave pública utilizada por el servidor para cifrar el mensaje). Dado que el cliente y el servidor tienen la misma clave simétrica, pueden usar de forma segura el cifrado de clave simétrica (probablemente mucho más rápido) para comunicarse a través de canales que de otro modo serían inseguros. Este esquema tiene la ventaja de no tener que compartir manualmente las claves simétricas (un problema fundamentalmente difícil) mientras obtiene la ventaja de mayor rendimiento de datos de la criptografía de clave simétrica .

Con la criptografía de clave pública, también es posible una autenticación robusta . Un remitente puede combinar un mensaje con una clave privada para crear una firma digital corta en el mensaje. Cualquiera que tenga la clave pública correspondiente del remitente puede combinar ese mensaje con una firma digital reclamada; si la firma coincide con el mensaje, se verifica el origen del mensaje (es decir, debe haber sido realizado por el propietario de la clave privada correspondiente). [2] [3]

Los algoritmos de clave pública son primitivas de seguridad fundamentales en los criptosistemas modernos , incluidas las aplicaciones y los protocolos que ofrecen garantía de confidencialidad, autenticidad y no repudiabilidad de las comunicaciones electrónicas y el almacenamiento de datos. Son la base de numerosos estándares de Internet, como Transport Layer Security (TLS) , S/MIME , PGP y GPG . Algunos algoritmos de clave pública brindan distribución de claves y confidencialidad (p. ej., intercambio de claves Diffie-Hellman ), algunos brindan firmas digitales (p. ej., algoritmo de firma digital ) y otros brindan ambas (p. ej., RSA). En comparación con el cifrado simétrico , el cifrado asimétrico es bastante más lento que un buen cifrado simétrico, demasiado lento para muchos propósitos. Los criptosistemas actuales (como TLS , Secure Shell ) utilizan tanto el cifrado simétrico como el cifrado asimétrico, a menudo utilizando el cifrado asimétrico para intercambiar de forma segura una clave secreta que luego se utiliza para el cifrado simétrico.

Antes de mediados de la década de 1970, todos los sistemas de cifrado utilizaban algoritmos de clave simétrica , en los que tanto el remitente como el destinatario utilizan la misma clave criptográfica con el algoritmo subyacente, quienes deben mantenerla en secreto. Por necesidad, la clave en cada sistema de este tipo tenía que ser intercambiada entre las partes comunicantes de alguna manera segura antes de cualquier uso del sistema, por ejemplo, a través de un canal seguro . Este requisito nunca es trivial y muy rápidamente se vuelve inmanejable a medida que aumenta el número de participantes, o cuando los canales seguros no están disponibles, o cuando (como es práctica criptográfica sensata), las claves se cambian con frecuencia. En particular, si los mensajes están destinados a estar seguros de otros usuarios, se requiere una clave separada para cada posible par de usuarios.

Por el contrario, en un sistema de clave pública, las claves públicas pueden difundirse amplia y abiertamente, y su propietario solo necesita mantener en secreto las claves privadas correspondientes.


Se utiliza un número impredecible (generalmente grande y aleatorio ) para comenzar la generación de un par aceptable de claves adecuado para su uso por un algoritmo de clave asimétrica.
En un esquema de cifrado de clave asimétrica, cualquiera puede cifrar mensajes utilizando una clave pública, pero solo el titular de la clave privada emparejada puede descifrar dicho mensaje. La seguridad del sistema depende del secreto de la clave privada, que no debe ser conocida por nadie más.
En el esquema de intercambio de claves Diffie-Hellman , cada parte genera un par de claves pública/privada y distribuye la clave pública del par. Después de obtener una copia auténtica (nota, esto es fundamental) de las claves públicas de cada uno, Alice y Bob pueden calcular un secreto compartido sin conexión. El secreto compartido se puede utilizar, por ejemplo, como clave para un cifrado simétrico que será, esencialmente en todos los casos, mucho más rápido.
En este ejemplo, el mensaje está firmado digitalmente , pero no encriptado. 1) Alice firma un mensaje con su clave privada. 2) Bob puede verificar que Alice envió el mensaje y que el mensaje no ha sido modificado.